io.github.laurells/outflow-mcp
MCP server exposing an Outflow workspace's live architecture graph as context for AI coding agents
Open source Open in the app JSON README (API)
About
MCP server exposing an Outflow workspace's live architecture graph as context for AI coding agents
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- laurells
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.1.1
- Last push
- 2026-07-17T15:24:25Z
- Repository state
- ativo
- Language
- JavaScript
- License
- NOASSERTION
- Added
- 2026-08-29 04:00:22
- Updated
- 2026-08-29 04:00:22
- Origin id
io.github.laurells/outflow-mcp
README
# 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**:
```bash
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):
```json
{
"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
| Tool | Use it to ask |
|---|---|
| `find_node` | Is this file tracked? What's its ID? |
| `list_nodes` | What's deprecated / low health / a given type? |
| `get_dependencies` | What does this file rely on? |
| `get_impact` | What breaks if I change this file? (blast radius) |
| `find_path` | How are these two files connected? |
| `get_architecture_health` | What's the overall health grade and at-risk nodes? |
| `find_architecture_smells` | Any circular deps, god nodes, or dead code right now? |
| `get_architecture_graph` | Give me the whole graph at a zoom level. |
| `get_last_session_recap` | What 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`.