Atlas / MCP servers / roarpeng / GraphFlow

GraphFlowBLOCK

mcp/roarpeng/graphflow

Local-first code knowledge graph and context harness for coding agents. MCP + DeepSeek Harness (dsh) plugin.

Verdict
BLOCK
Grade
F
Trust score
23 /100
Exposed tools
22 18r · 4w · 0d
Transport
stdio · streamable-http
License
Apache-2.0
Stars
19
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

English | 中文

[](https://www.npmjs.com/package/@roarpeng/graphflow) [](https://github.com/topics/dsh-plugin) [](https://modelcontextprotocol.io)

The memory & context harness for coding agents. Local-first code knowledge graph · bounded context compression (truly bounded responses: the package plus history echoes, which ship as short previews only; 92.2% fewer tokens than reading the top-10 files in full — a token ratio, not an answer-quality measure, see both baseline arms) · cross-session learning flywheel.

The community is converging on an "agent harness" vocabulary: memory + hooks + skills are the harness primitives that turn a stateless model into a reliable long-running agent. GraphFlow implements all three for coding agents and ships them through a portable MCP surface (Cursor, Claude Code, 15+ agents):

Pure TypeScript/Node. CLI + MCP + VS Code extension. Local-first: indexing, compressi

Read from source at commit a9cd7c50a567OBSERVED · 2026-10-12
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add graphflow --env ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} --env API_KEY=${API_KEY} --env APP_SECRET=${APP_SECRET} --env BAILIAN_API_KEY=${BAILIAN_API_KEY} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "graphflow": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}",
        "API_KEY": "${API_KEY}",
        "APP_SECRET": "${APP_SECRET}",
        "BAILIAN_API_KEY": "${BAILIAN_API_KEY}"
      }
    }
  }
}
03

Exposed tools (22)

18 read · 4 write · 0 destructive.

ToolRiskDescription
Areadkeep
D1-core-orchestrationreadOrchestrator, DAG engine, planner
D2-graph-enginereadFile indexer, retrieval, context compression
D3-learning-subsystemreadSkill flywheel, episodic memory, training
D4-config-routingreadConfiguration loader, model routing, providers
D5-integrationsreadMCP server, bridge mode, VS Code extension
freadd
graphflow.compressreadCompress codebase context using graph-based retrieval and token-efficient packaging.
graphflow.expandAnchorreadExpand a graph anchor node to get full content and source location.
graphflow.indexreadIndex a codebase into the knowledge graph for context-aware retrieval.
graphflow.inspectreadInspect the current knowledge graph structure and statistics.
graphflow.planreadPlan a coding task with graph context, producing structured task nodes with dependencies.
graphflow.planInsightreadAnalyze a task using Six Thinking Hats + 5 Whys structured thinking framework.
graphflow.runwriteRun a full task: plan + compress context + return execution descriptor (bridge mode).
graphflow_artifactwrite[Maintenance] Export or import graph artifact files for team sharing.
graphflow_contextreadPreview compressed GraphFlow context for a code question. Use before guessing about the codebase.
graphflow_indexread[Core] Index workspace into graph store. Use filePath for single-file, mode=
graphflow_insightwrite[Advanced] Submit or merge agent insights. Mode
graphflow_inspectreadReturn lightweight graph stats (node/edge counts).
graphflow_runwrite[Core] Plan and package a task with compressed context, returning a structured execution descriptor for external coding agents (Cursor, Claude Code) to execute. Bridge mode by default. The response carries an
graphflow_skill_insightsreadReturn top learned GraphFlow skill insights.
test_fnreadtest
04

Trust audit

BLOCKgrade F · trust 23/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (7 observation(s))
Network
declared (5 observation(s))
Shell
declared (5 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/efficiency-agent/scripts/release-gate.mjs:111
exec() {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/efficiency-agent/scripts/release-gate.mjs:134
exec() {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/efficiency-agent/scripts/release-gate.mjs:149
exec() {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/efficiency-agent/scripts/release-gate.mjs:168
exec() {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
packages/efficiency-agent/scripts/release-gate.mjs:182
exec() {
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/efficiency-agent/src/security/policy.ts:60
"**/id_rsa*",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/efficiency-agent/src/security/policy.ts:62
"**/id_ecdsa*",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/efficiency-agent/src/security/policy.ts:63
"**/id_ed25519*",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/efficiency-agent/src/security/policy.ts:66
"**/.netrc",
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
packages/efficiency-agent/src/security/policy.ts:67
"**/.git-credentials",
Why it matters. touches a credential store
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
.agents/skills/improve-animations/PLAN-TEMPLATE.md:19
```css
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
.agents/skills/improve-animations/PLAN-TEMPLATE.md:22
```
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
.agents/skills/improve-animations/PLAN-TEMPLATE.md:29
```css
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
HIGHPrompt injection · prompt.zero_width · CWE-94, CWE-1427
.agents/skills/improve-animations/PLAN-TEMPLATE.md:35
```
Why it matters. invisible characters in instruction text
Fix. strip non-printing characters
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.cursor/skills/animate
.cursor/skills/animate
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.cursor/skills/animation-vocabulary
.cursor/skills/animation-vocabulary
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.cursor/skills/apple-design
.cursor/skills/apple-design
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.cursor/skills/emil-design-eng
.cursor/skills/emil-design-eng
Why it matters. link not followed
MEDIUMInventory / provenance · inv.symlink · CWE-1104
.cursor/skills/find-animation-opportunities
.cursor/skills/find-animation-opportunities
Why it matters. link not followed
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
packages/efficiency-agent/src/security/untrusted.ts:47
{ signal: "exfiltration", re: /\bexfiltrat/i },
MEDIUMNetwork egress · net.beacon_words · CWE-200, CWE-319
packages/efficiency-agent/src/security/untrusted.ts:49
signal: "exfiltration",
MEDIUMObfuscation / stealth · obf.base64_blob · CWE-506, CWE-94
packages/efficiency-agent/security/adversarial-v1.jsonl:6
{"id":"adv-006","kind":"injection","input":{"op":"detectInjection","source":"graphflow-summary","text":"Embedded payload: QUJDQUJDQUJDQUJDQUJDQUJDQUJDQUJDQUJDQUJDQUJDQUJDQUJDQUJDQUJDQUJDQUJDQUJDQUJDQU
MEDIUMHard-coded secrets · secret.anthropic · CWE-798, CWE-321
tests/m-dialogue-redaction.test.ts:41
input: "the model call used sk-ant-FIXTUREONLYnotarealkey and timed out",
MEDIUMHard-coded secrets · secret.anthropic · CWE-798, CWE-321
tests/m-dialogue-redaction.test.ts:42
secret: "sk-ant-FIXTUREONLYnotarealkey",
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
tests/m-dialogue-redaction.test.ts:139
input: "use mysql://root:[email protected]:3306/shop for the migration",

Gates applied: no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha a9cd7c50a567full audit observations/trust-audit/mcp-server/roarpeng__graphflow.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12a9cd7c50a567BLOCKF23first audit
06

Questions

What is the @roarpeng/graphflow MCP server?

Local-first code knowledge graph and context harness for coding agents. MCP + DeepSeek Harness (dsh) plugin.

What tools does @roarpeng/graphflow expose?

22 in total: 18 read-only, 4 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is @roarpeng/graphflow safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (23/100) and found 14 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does @roarpeng/graphflow need?

It reads ANTHROPIC_API_KEY, API_KEY, APP_SECRET, BAILIAN_API_KEY, DEEPSEEK_API_KEY, DOUBAO_API_KEY, GF_M150_KEY, GF_M150_TOKEN, GRAPHFLOW_CACHE_AB_INJECT_TOKENS, GRAPHFLOW_CACHE_AB_STABLE_TOKENS, GRAPHFLOW_EMBEDDING_PASS_LIMIT and GRAPHFLOW_LLM_SMOKE_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does @roarpeng/graphflow run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as graphflow at 2.2.0.

How current is this page?

The grade is for one exact copy of the source (a9cd7c50a567), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement