{
  "markdown": "# outflow-mcp\n\nAn MCP (Model Context Protocol) server that exposes a live Outflow architecture\ngraph as context for AI coding agents — Claude Code, Claude Desktop, or any\nother MCP-compatible client. Lets an agent ask \"what does this file depend\non\", \"what breaks if I change this\", or \"did my last batch of edits introduce\na circular dependency\" against your workspace's real, currently-live graph.\n\nIt's a thin client over Outflow's existing `/api/v1` REST API and the\nworkspace graph routes — no graph logic \nis duplicated here.\n\n> This package is developed inside the main Outflow monorepo but published\n> from a standalone public mirror: **https://github.com/laurells/outflow-mcp**\n> — that's the repo MCP registries/crawlers point at, and where `npm publish`\n> runs from. Changes here get synced there before each release.\n\n## Setup\n\n1. **Create an API key** for the workspace you want to expose. In Outflow,\n   go to workspace settings → API Keys → create one. The raw key (`ofk_...`)\n   is shown once — copy it.\n2. **Find your workspace ID** — it's in the workspace URL\n   (`.../workspace/<id>/...`) or workspace settings.\n3. **Build the server**:\n   ```bash\n   cd packages/mcp-server\n   npm install\n   npm run build\n   ```\n4. **Add it to your MCP client config.** For Claude Code, add to your MCP\n   settings (`claude mcp add` or the equivalent config file):\n   ```json\n   {\n     \"mcpServers\": {\n       \"outflow\": {\n         \"command\": \"node\",\n         \"args\": [\"/absolute/path/to/outflow/packages/mcp-server/dist/index.js\"],\n         \"env\": {\n           \"OUTFLOW_BASE_URL\": \"https://your-outflow-domain.com\",\n           \"OUTFLOW_API_KEY\": \"ofk_...\",\n           \"OUTFLOW_WORKSPACE_ID\": \"your-workspace-id\"\n         }\n       }\n     }\n   }\n   ```\n   For local development, `OUTFLOW_BASE_URL` defaults to `http://localhost:3000`\n   if omitted.\n\n## Tools\n\n| Tool | Use it to ask |\n|---|---|\n| `find_node` | Is this file tracked? What's its ID? |\n| `list_nodes` | What's deprecated / low health / a given type? |\n| `get_dependencies` | What does this file rely on? |\n| `get_impact` | What breaks if I change this file? (blast radius) |\n| `find_path` | How are these two files connected? |\n| `get_architecture_health` | What's the overall health grade and at-risk nodes? |\n| `find_architecture_smells` | Any circular deps, god nodes, or dead code right now? |\n| `get_architecture_graph` | Give me the whole graph at a zoom level. |\n| `get_last_session_recap` | What happened in my last coding session? |\n\nAll tools that take a `path` accept a partial match (e.g. `\"ApiClient\"` will\nmatch `src/ApiClient.ts`) — you never need to know Outflow's internal\n`file::`/`method::` ID format. An ambiguous partial match returns an error\nlisting the candidates instead of guessing.\n\n## Notes\n\n- This package is standalone — it is never bundled into `server/` or `web/`,\n  and has no build-time dependency on them. It only talks to a running\n  Outflow instance over HTTP using an API key, so it works equally well\n  pointed at localhost or a deployed instance.\n- `get_dependencies`/`get_impact` and `find_architecture_smells`/`find_path`\n  call workspace graph routes that (as of this package's introduction) were\n  extended to accept `Authorization: Bearer ofk_...` alongside the existing\n  cookie-session auth — see `server/src/graph/pathRouter.ts` and\n  `smellsRouter.ts`.\n",
  "bytes": 3367,
  "sha": "853f0c08c1a1e9e40f8753112eb793ebff0393fa75c66c6a8ee88b25f143104c",
  "repo_slug": "laurells/outflow-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_laurells_outflow_mcp_8e4f1934/readme"
}