Odel
outflow mcp

outflow mcp

Local
@laurellsJavaScriptUpdated 1mo ago

MCP server exposing an Outflow workspace's live architecture graph as context for AI coding agents

outflow-mcp

An MCP (Model Context Protocol) server that exposes a live Outflow architecture graph as context for AI coding agents — Claude Code, Claude Desktop, or any other MCP-compatible client. Lets an agent ask "what does this file depend on", "what breaks if I change this", or "did my last batch of edits introduce a circular dependency" against your workspace's real, currently-live graph.

It's a thin client over Outflow's existing /api/v1 REST API and the workspace graph routes — no graph logic is duplicated here.

This package is developed inside the main Outflow monorepo but published from a standalone public mirror: https://github.com/laurells/outflow-mcp — that's the repo MCP registries/crawlers point at, and where npm publish runs from. Changes here get synced there before each release.

Setup

  1. Create an API key for the workspace you want to expose. In Outflow, go to workspace settings → API Keys → create one. The raw key (ofk_...) is shown once — copy it.
  2. Find your workspace ID — it's in the workspace URL (.../workspace/<id>/...) or workspace settings.
  3. Build the server:
    cd packages/mcp-server
    npm install
    npm run build
    
  4. Add it to your MCP client config. For Claude Code, add to your MCP settings (claude mcp add or the equivalent config file):
    {
      "mcpServers": {
        "outflow": {
          "command": "node",
          "args": ["/absolute/path/to/outflow/packages/mcp-server/dist/index.js"],
          "env": {
            "OUTFLOW_BASE_URL": "https://your-outflow-domain.com",
            "OUTFLOW_API_KEY": "ofk_...",
            "OUTFLOW_WORKSPACE_ID": "your-workspace-id"
          }
        }
      }
    }
    
    For local development, OUTFLOW_BASE_URL defaults to http://localhost:3000 if omitted.

Tools

ToolUse it to ask
find_nodeIs this file tracked? What's its ID?
list_nodesWhat's deprecated / low health / a given type?
get_dependenciesWhat does this file rely on?
get_impactWhat breaks if I change this file? (blast radius)
find_pathHow are these two files connected?
get_architecture_healthWhat's the overall health grade and at-risk nodes?
find_architecture_smellsAny circular deps, god nodes, or dead code right now?
get_architecture_graphGive me the whole graph at a zoom level.
get_last_session_recapWhat happened in my last coding session?

All tools that take a path accept a partial match (e.g. "ApiClient" will match src/ApiClient.ts) — you never need to know Outflow's internal file::/method:: ID format. An ambiguous partial match returns an error listing the candidates instead of guessing.

Notes

  • This package is standalone — it is never bundled into server/ or web/, and has no build-time dependency on them. It only talks to a running Outflow instance over HTTP using an API key, so it works equally well pointed at localhost or a deployed instance.
  • get_dependencies/get_impact and find_architecture_smells/find_path call workspace graph routes that (as of this package's introduction) were extended to accept Authorization: Bearer ofk_... alongside the existing cookie-session auth — see server/src/graph/pathRouter.ts and smellsRouter.ts.