Skip to main content
Glama
DevFlow MCP Server

DevFlow MCP Server

by FaerberK

DevFlow MCP Server

License: MIT

MCP server for integrating DevFlow with AI code assistants. Enables structured development workflows with enforced planning, task tracking, and code review gates.

What is DevFlow?

DevFlow brings structure to AI-assisted development. Instead of letting AI agents write code without oversight, DevFlow enforces a workflow:

idea -> planning -> approval -> ready -> in_progress -> review -> done

Every feature or bugfix goes through planning, gets approved, is tracked with tasks, and must pass review before completion. The MCP server connects your AI coding assistant to DevFlow, making this workflow seamless.

Related MCP server: jt-mcp-server

Installation

DevFlow is listed in the official Claude Code community marketplace. Install in one line:

/plugin marketplace add anthropics/claude-plugins-community
/plugin install devflow

This installs everything in one shot: MCP server (auto-registered via mcpServers in the plugin manifest), enforcement hooks, state-specific skills, and slash commands (/devflow-start, /devflow-status, /devflow-next, /devflow-tasks, /devflow-create, /devflow-list, /devflow-review). No separate MCP setup step needed.

Since 4.23.0: the MCP server no longer modifies your CLAUDE.md. The plugin's skills, hooks, and MCP tool responses cover the rules that the old <!-- DEVFLOW-RULES-START --> block used to inject. If you have an existing block from a pre-4.23 install and want it cleaned up, run npx @dev-flow-tech/mcp-server uninstall --client claude once.

Since 4.26.0 (DF-339): Two new auto-review skills fire when transitioning state. devflow-plan-critic reminds at planning → approval to deep-review the plan against 7 dimensions. devflow-code-critic does the same at in_progress → review for the implementation. Both support iterative loop (max 3), trivial-flow-skip, and auto-approve-gate based on project_configs.allow_agent_self_approval.

Since 4.30.0 (DF-374/DF-377): The DevFlow backend is the primary gate for state-transitions (unified flowGate service with conditions like plan-required, tasks-required, agent-summary, testing-instructions, knowledge-gaps-resolved, pr-state-consistent, adr-compliance-clean). The plugin's strictness checks are now informational warnings — the backend's 409 gate.failures[] response is the source of truth. This makes Multi-Client setups (Claude Code, Codex, Cursor, Gemini) consistent — the gate behavior is the same regardless of which client connects.

Updates: /plugin update devflow.

Manual Setup (fallback)

If you'd rather skip the plugin and wire the MCP server directly:

Claude Code

npx github:KlausFreiberufler/devflow-mcp setup

Cursor

npx github:KlausFreiberufler/devflow-mcp setup --client cursor

Gemini CLI

npx github:KlausFreiberufler/devflow-mcp setup --client gemini

Windsurf

npx github:KlausFreiberufler/devflow-mcp setup --client windsurf

Restart your AI client after setup.

Server-Split (since DF-334)

For clients with per-server tool-caps (e.g. Cursor 40-tool/server cap), DevFlow ships three entry-points:

Bin

Domain

Tool-Count

devflow-mcp

combined (default, BC)

~65

devflow-mcp-flows

workflow (flow_*, task_*, agent_session_*, devflow_*, release_*)

≤40

devflow-mcp-wiki

knowledge (adr_*, wiki_*, doc_page_*, knowledge_*, planning_context)

≤40

Cursor (or any cap'd client) registers BOTH split-bins to get full tool-coverage:

{
  "mcpServers": {
    "devflow-flows": { "command": "npx", "args": ["-y", "@dev-flow-tech/mcp-server", "devflow-mcp-flows"] },
    "devflow-wiki":  { "command": "npx", "args": ["-y", "@dev-flow-tech/mcp-server", "devflow-mcp-wiki"]  }
  }
}

Claude Code uses the combined devflow-mcp bin (no cap, simpler config).

Getting Started

  1. Run devflow_status() to check the connection

  2. The browser opens for authentication on first use

  3. Link your project — a .devflow.json file is created in your project directory

  4. Start working: flow_list() to see available flows, or flow_create() to create one

  5. Initialize your session: devflow_init({ flowId: "..." })

Compatible Clients

Client

MCP Support

Status

Claude Code

Native

Fully supported

Cursor

MCP

Supported

Gemini CLI

MCP

Supported

Windsurf

MCP

Supported

Flow States

State

Description

idea

New idea, no plan yet

planning

Agent creates implementation plan

approval

User approves the plan (wait state)

ready

Plan approved, ready for implementation

in_progress

Implementation in progress

review

User reviews the implementation (wait state)

done

Completed

Required Fields for State Transitions

Transition

Required Fields

-> approval

implementationPlan

-> review

agentSummary, testingInstructions

Available MCP Tools

Session & Flows

Tool

Description

devflow_init

Required before all other tools. Starts a flow session

devflow_status

Show connection status, link/unlink projects

flow_list

List flows (filtered by project)

flow_get

Get flow details including plan and audit trail

flow_create

Create a new flow

flow_update

Update state, plan, agent messages

flow_get_feedback

Get user feedback on plan or code

Tasks

Tool

Description

task_list

List tasks of a flow

task_create

Create a new task

task_update

Update task or mark as completed

Agent Sessions

Tool

Description

agent_session_create

Create agent session (tracking)

agent_session_log

Log progress to a session

agent_session_complete

Complete an agent session

agent_session_list

List sessions of a flow

Tool

Description

doc_page_list

List documentation pages

doc_page_get

Get a documentation page

doc_page_create

Create a documentation page

doc_page_update

Update a documentation page

project_guidelines_get

Get project guidelines

search

Search flows, tasks, and projects

Releases

Tool

Description

release_list

List releases

release_get

Get release details

release_create

Create a new release

release_update

Update release status/details

Knowledge — Wiki & ADRs (v4.5.0)

Tool

Description

wiki_search

Full-text search over flows, doc-pages, reviews, releases

wiki_get_page

Resolve a slug / title / display-id to a concrete asset + backlinks

wiki_list_by_type

List assets of a specific document-type (adr, pattern, runbook, …)

wiki_backlinks

Reverse lookup: all assets that link to X

wiki_graph_neighbors

Graph (nodes + edges) of the project or a subset

wiki_get_flow_context

A flow's outgoing + incoming wiki links

wiki_get_project_context

Project knowledge graph summary

adr_list

List ADRs (optional status filter)

adr_get

ADR detail with supersedes chain

adr_accept

Accept an ADR from a flow-attachment

adr_update_status

Move ADR through proposed → accepted → deprecated / superseded

Knowledge Drafts (v4.6.0)

Tool

Description

knowledge_backfill_request

Get done-flows + existing ADRs + instructions — you classify and call knowledge_draft_create for each draft

knowledge_draft_create

Create a draft (dedup-aware: same (project, type, title) merges sourceFlowIds)

knowledge_draft_list

List drafts (optional status filter)

knowledge_draft_accept

Accept a draft (creates the ADR / doc-page)

knowledge_draft_reject

Reject a draft with optional reviewer note

Knowledge Harvest / Check (v4.7.0)

Tool

Description

knowledge_harvest

Per-flow harvest — returns a single done-flow + context + instructions for draft proposal

knowledge_check_flow

Flow analysis — drift (against existing ADRs) + missing-knowledge suggestions

Code Drift (v4.9.0)

Tool

Description

knowledge_check_drift

Returns ADR content + its affects_paths + instructions. You use your own Glob/Read/Grep to compare claims vs code and report drift

MCP Resources (v4.8.0)

URI-addressable project assets for reading via ReadResource.

URI

Description

devflow://project/{id}/adr/{number}

ADR content as markdown

devflow://project/{id}/flow/{displayId}

Flow with plan + agent summary

devflow://project/{id}/graph

Project knowledge-graph summary

devflow://project/{id}/search?q=...

FTS search formatted as markdown

MCP Prompts (v4.8.0)

Guided one-shot workflows — each auto-assembles relevant project context.

Prompt

Args

Purpose

ask_project

query

Answer a free-form question; loads ADRs + recent done-flows as context

plan_with_project_knowledge

flowId

Pre-build a planning prompt with relevant ADRs + related flows

review_with_drift_check

flowId

Auto-run knowledge-check-prepare and produce a review prompt

Pipeline Integration

Projects with pipeline configuration get extended features:

Pipeline Model

Each pipeline step has four dimensions:

Field

Description

Values

actor

Who works on this step?

human, agent, both, auto, skip

transitionPolicy

Who can complete the step?

human_only, agent_only, human_or_agent, auto

kind

Semantic step type

work, review, handoff, terminal

skippable

Can the step be skipped?

true, false

Gate Handling

Gates are controlled via transitionPolicy:

  • human_only — Agent is blocked (403), human must act in the UI

  • agent_only — Only agents can proceed

  • human_or_agent — Both can complete the step

  • auto — System transition, no actor needed

Configuration

Environment Variables

Variable

Description

Default

DEVFLOW_URL

Backend URL

https://api.app.dev-flow.tech

DEVFLOW_TOKEN

Auth token (skips browser auth)

-

DEVFLOW_PROJECT_ID

Project scoping

from .devflow.json

Manual Configuration

Add to your client's MCP configuration:

{
  "mcpServers": {
    "devflow": {
      "command": "node",
      "args": ["/path/to/devflow-mcp/dist/index.js"],
      "env": {
        "DEVFLOW_URL": "https://api.app.dev-flow.tech"
      }
    }
  }
}

Development

See CONTRIBUTING.md for setup and development workflow.

License

MIT - DevFlow (dev-flow.tech)

Available Tools

65 tools
adr_acceptA

Accept a decision.md flow-attachment as an official ADR. Auto-assigns the next ADR number for this project, copies frontmatter, links back to the flow. Idempotent: re-calling with the same attachmentId returns the existing ADR.

Inputs: attachmentId (required), status, projectId, supersedesId.

adr_getA

Get a single ADR by its number. Returns full content, status, supersedes chain, originated flow. Use this to pull the full rationale of a specific decision before planning changes.

Inputs: number (required), projectId.

adr_get_audit_logA

Get the audit log (status change history) for an ADR. Returns the full timeline of status transitions with user, timestamp and optional note. Use this to understand why a decision moved from proposed → accepted or was later deprecated/superseded.

Inputs: adrId (required).

adr_listA

List all Architecture Decision Records for a project. Optional status filter (proposed | accepted | deprecated | superseded). Returns ADR-###, title, status, decided_at.

Inputs: status, projectId.

adr_update_statusA

Change an ADR's status (proposed → accepted → deprecated → superseded). Use when an architectural decision is formally accepted, deprecated, or replaced.

Inputs: adrId (required), status (required).

agent_session_completeA

Complete an active agent session. Use this when you're done with a unit of work to mark the session as finished. Optionally provide a summary of what was accomplished.

Inputs: id (required), summary.

agent_session_createA

Create a new agent session for a flow. An agent session tracks a unit of work performed by the AI agent. Use this at the start of a work session to log what you're doing.

Returns the created session with its ID for subsequent log and complete calls.

Inputs: flowId (required), type.

agent_session_listA

List agent sessions for a flow. Returns all sessions with their status, timing, and summary. Use this to review past work sessions on a flow.

Inputs: flowId (required).

agent_session_logA

Log a message to an active agent session. Use this to record progress, decisions, or issues during a work session.

Supports different log levels:

  • debug: Detailed tracing, rarely needed

  • info: General progress updates (default)

  • warning: Potential issues or concerns — a review verdict belongs here

  • error: Errors encountered during work

"warn" is accepted as an alias and stored as "warning". Anything else falls back to "info" — a rejected level would cost the entry, and a logged entry at the wrong level beats no entry at all.

Inputs: id (required), message (required), level.

devflow_connectA

Connect this project to DevFlow. Links the current directory to a DevFlow project, enabling flow tracking and enforcement. Use when you want to start using DevFlow in this directory.

Inputs: name, createNew, projectId.

devflow_disconnectA

Disconnect this project from DevFlow. Removes .devflow.json and stops the heartbeat. You can re-enable anytime with devflow_connect.

Inputs: no named parameters.

devflow_initA

Initialize a DevFlow work session for a flow.

MUST be called before any other tools (except flow_list and flow_create). Without devflow_init, all tools are blocked.

What it does:

  • Validates and loads the flow

  • Locks the flow for this agent (exclusive)

  • Creates an agent session for tracking

  • Returns full context: flow details, feedback, tasks, allowed actions, next step

Call this at the start of every work session.

Inputs: flowId.

devflow_statusA

Show DevFlow MCP connection status or manage the connection. Works without devflow_init.

Actions:

  • status (default): Show version, auth, project, heartbeat

  • reconnect: Refresh auth token and restart heartbeat

  • link: Link to a project (requires projectId)

  • unlink: Remove project link (passive mode)

  • projects: List available projects

Inputs: action, projectId.

devflow_token_emitA

Emit a discipline-token for a flow + skill (DF-289 backend, DF-292 gate-check).

A discipline-token is an HMAC-signed proof that a discipline-skill ran successfully. The signed token is returned ONLY once — the backend stores only the hash. Keep the signed token in session memory.

Use this at the END of a discipline-skill run (devflow-tdd, devflow-verification-gate, devflow-adr-compliance, devflow-collision-acknowledged, ...) once all iron-laws of the skill are satisfied.

Pass the token later to flow_update when transitioning under agent_with_discipline policy: flow_update({ flowId, currentState: 'done', selfApproved: true, disciplineTokens: [token] })

The backend verifies all required tokens before allowing the transition. Without an opt-in project (project_configs.allow_agent_self_approval=1) and matching pipeline_steps.required_skills, the gate-check rejects.

Inputs: flowId (required), skillName (required), evidence.

devflow_tokens_listA

List active (non-expired) discipline-tokens for a flow. Does NOT return raw tokens — only metadata (id, skillName, createdAt, expiresAt, evidence). Use this to check what a flow already has before deciding whether to emit a fresh one.

Inputs: flowId (required).

discipline_tokens_auto_emitA

DF-437 — Bulk auto-emit all discipline-tokens required for a target transition (POST /api/flows/:id/discipline-tokens/auto-emit).

PREFER the DF-435 body fields on flow_update itself — they carry real evidence and the backend derives the tokens from them:

  • testStrategy: "<Red→Green-Strategie ≥30 Zeichen>" (approval/ready → devflow-tdd)

  • acVerification: [{acId, command, output}] (done → devflow-verification-gate)

  • planReconciliation: { perAcStatus: [{acId, status}] } (done → devflow-plan-reconciliation)

  • filesChanged: [] (done → devflow-adr-compliance)

Use this tool as a FALLBACK when the body-field path is not available (e.g. older backend) or a token is missing after a 403 discipline_incomplete. Tokens land in the DB — the next flow_update passes via implicit self-approval (DF-371), no token-strings needed.

Inputs: flowId (required), targetState (required).

doc_page_createA

Create a new documentation page in a project. Use this to add new knowledge, guides, or documentation. Pages are organized by sections (e.g. "Architecture", "Getting Started", "API Reference").

Automatically uses the linked project if no projectId is provided.

Inputs: title (required), content (required), section (required), projectId.

doc_page_deleteA

Delete a documentation page. Use doc_page_list first to find the page ID.

Inputs: docId (required), projectId.

doc_page_getA

Get a single documentation page with its full content. Returns title, section, content (markdown), tags, and metadata.

Use doc_page_list first to find the page ID.

Inputs: docId (required), projectId.

doc_page_listA

List all documentation pages for a project, grouped by section. Returns sections with their pages (title, id, section, sortOrder). Use this to see what documentation exists before creating or updating pages.

Automatically uses the linked project if no projectId is provided.

Inputs: projectId.

doc_page_updateB

Update an existing documentation page. All fields are optional — only provide the fields you want to change.

Use doc_page_list first to find the page ID.

Inputs: docId (required), title, content, section, +1 more.

error_context_getA

DF-316 — Error-Driven Wiki Lookup. When you hit an unexpected error / exception / failing test, call this FIRST (via the devflow-error-investigator skill) to pull every wiki signal that's relevant: matching runbooks (FTS), ADRs whose affects_paths cover the error file, recent flows in the same area, related patterns, similar past errors from done-flows, plus a briefing-Markdown.

Iron Law of compounding wikis: never debug from scratch what the wiki has already seen. If no runbook matches AND the fix is non-trivial, write a runbook on the way out.

Inputs: filePath, projectId, stackTrace, errorMessage, +1 more.

flow_comments_getA

Reload only the discussion (comments) for a flow as a Markdown section.

Returns the same "## Discussion (N)"-section that flow_get appends. Useful when:

  • The user said something new in the UI and you want fresh context without re-fetching the entire flow + attachments.

  • You want a focused view of resolution status across comments.

Resolved comments are marked with [✓ resolved]. Body is rendered verbatim — wikilinks like [[adr-134]] stay raw (use wiki_get_page to resolve them).

Inputs: flowId (required).

flow_createA

Create a new flow in a project. Use this to create new feature requests, bug reports, or tasks. The flow starts in 'idea' state by default.

DF-378 — Valid metadata triple required:

  • summary: short one-line title, 3..80 characters (NOT a paragraph)

  • description: detailed body, ≥ 30 characters (the goal, motivation, constraints)

  • acceptanceCriteria: at least 1 testable success criterion, each ≥ 10 characters

If your text is long, put the title into summary (≤ 80 chars) and the body into description. The backend rejects payloads that violate these limits with a structured 400 flow_input_invalid.

Requires a projectId (use project_list to find it).

Inputs: summary (required), description (required), acceptanceCriteria (required), flowType, +1 more.

flow_getA

Get detailed information about a specific flow. Returns the full flow including:

  • Summary and description

  • Acceptance criteria

  • Current state

  • Agent status (if being worked on)

  • Implementation plan (full content)

  • Audit info (who created/approved)

Use this before starting work on a flow to understand requirements.

Inputs: flowId (required).

flow_get_feedbackA

Get user feedback for a flow. Use this at the start of a session to check if the user has provided feedback on:

  • The implementation plan (approval phase)

  • The code implementation (review phase, when rejected back to in_progress)

If feedback exists, you should address it before continuing work.

Inputs: flowId (required).

flow_listA

List flows as a Markdown table (ID | State | Assignee | Titel).

Conventions enforced uniformly across the plugin (skill: devflow-flow-display):

  • ⭐ prefix marks flows assigned to / created by the current user

  • 🔒 marks active agent sessions; idle flows have no lock-marker

  • Done-flows are hidden by default (focus on open work). Pass includeDone=true to see them.

  • Order matches the browser FlowsPage default (kanban_sort_order ASC for project-scope, updated_at DESC for cross-project).

Use this to find flows to work on or to brief the user on the backlog.

Inputs: mine, state, projectId, includeDone.

flow_updateA

Update a flow's state or submit deliverables. Use this to:

  • Change flow state (idea -> planning -> approval -> ready -> in_progress -> review -> done)

  • Submit implementation plan for review

  • Submit agent summary after implementation

agentStatus is automatically derived from your tool calls - you don't need to set it manually.

IMPORTANT: Some state transitions require mandatory fields:

  • approval requires: implementationPlan

  • review requires: agentSummary AND testingInstructions

Inputs: flowId (required), prUrl, commits, prState, +15 more.

flow_uploadA

Upload a file as an attachment to the current flow. Use this to attach markdown documents, text notes, HTML docs, or other text-based files. The file will be visible in the DevFlow UI and accessible to other agents.

Common use cases:

  • Upload implementation plans as .md files (use kind="plan" to link it to the flow)

  • Attach analysis notes or design documents (kind="design" or "notes")

  • Save code review summaries (kind="summary")

  • Document architectural decisions (kind="decision" — can be promoted to ADR via adr_accept)

Inputs: content (required), filename (required), kind, flowId.

flow_upload_fileA

Attach a file from disk to the current flow. Use this for images / PDFs / large files (up to 50 MB).

For agent-written text content (markdown plans, summaries, notes), prefer flow_upload which takes the content as a string.

The file is read from filePath, the mime-type is detected from the extension, and the upload is sent as multipart/form-data with auth.

Common use cases:

  • Attach a screenshot, photo, or generated cover image to a flow

  • Attach a PDF report or design doc the user has on disk

  • Attach large CSV / YAML / JSON exports that exceed the 100 KB string-content boundary

Inputs: filePath (required), kind, flowId.

idea_prompts_getA

DF-318 — Idea-Prompt-Garage. Returns curated prompts per area (Auth, Billing, Performance, …) with wiki-evidence already loaded. The user pastes one of these prompts into a chat with you, and you respond using the devflow-area-ideation skill.

Each area has: name, icon, counts (ADRs/patterns/runbooks in scope), and a ready-to-paste prompt. Use this to find well-grounded next-step ideas for a project domain instead of brainstorming from scratch.

Inputs: projectId.

ideas_getA

DF-315 — Idea-Backlog: aggregates 5 organic idea sources from the wiki into one curated pipeline:

  • Open intents (forward-deferred topics from past flows)

  • Stale ADRs (>90d old, still cited — refresh candidates)

  • Orphan pages (no in/out wiki-links — reconnect candidates)

  • Contradictions (deprecated/superseded ADRs still cited — refactor candidates)

  • Hotspot topics (resolved 2+ times across flows — strategic-review candidates)

Each item has a prefilledSummary + prefilledDescription ready to feed into flow_create. Use this to pick the next thing to work on without staring at a blank page — the wiki itself is the idea backlog.

Inputs: projectId.

intent_resolveA

Close a forward-intent page. Sets frontmatter.status='resolved' and links the resolving flow.

Forward-intents are doc_pages with document_type='intent' — written by flow_seal (DF-254) when a done-flow declared follow-up work via forward_intents frontmatter. When your current flow actually delivers that follow-up, call this tool so the loop is closed and the intent disappears from pending_work / planning_context.

flowId = the flow that is resolving the intent (typically your current flow). pageId = the intent doc-page id (find via pending_work → openIntents).

Inputs: flowId (required), pageId (required), note.

knowledge_autotag_suggestA

Suggest project tags for a piece of content using TF-IDF against the existing project tag pool. Never invents new tags — only existing ones are suggested, to avoid tag-wildwuchs.

Use when you are writing a new doc-page / ADR / flow summary and want to tag it consistently with the rest of the project. Returns suggestions ranked by confidence with matchedTokens for debuggability.

Pass existingTags so already-applied tags are excluded from suggestions.

Inputs: content (required), limit, projectId, existingTags.

knowledge_backfill_requestA

Prepare a knowledge backfill run for a project. Returns done-flows + existing ADRs + structured instructions that YOU (Claude) must follow to classify and propose knowledge drafts.

This is the MCP-first alternative to the keyword heuristic. Workflow:

  1. Call this tool → receive flows, existing ADRs, and the ruleset

  2. Read the flows, decide which qualify as ADR / Pattern / Runbook / Lessons-Learned

  3. Skip anything already covered by existing ADRs

  4. Group similar flows into ONE draft with multiple sourceFlowIds

  5. For each draft: call knowledge_draft_create with the payload

Be conservative. Only propose drafts you are confident about. Better few high-quality drafts than many noisy ones.

Inputs: limit, projectId.

knowledge_check_driftB

Check whether an ADR has drifted from the actual codebase.

Returns the ADR content + its affects_paths (glob patterns). YOU THEN:

  1. Use your own Glob/Read/Grep tools to inspect the files under those paths in the user's workspace

  2. Compare the ADR's claims/decisions to what the code actually does

  3. Return a structured drift report: { drifts: [{ claim, evidence, severity }] } or {} if no drift.

If affectsPaths is empty, tell the user: "ADR-N has no affects_paths configured — ask them to add glob patterns via the UI".

Inputs: adrNumber (required), projectId.

knowledge_check_flowA

Run a knowledge check on a flow: spot drift against existing ADRs and identify missing knowledge (topics without an asset). Returns flow text + ADR snapshots + instructions. YOU return the analysis — no draft creation in this tool. Use before submitting a flow to review.

Inputs: flowId (required).

knowledge_check_resolveA

Resolve a single knowledge-check warning manually. In most cases you do NOT need this tool anymore — the pre-tool-use hook on flow_update auto-calls POST /api/projects/:id/knowledge/auto-resolve which applies the Iron Law in bulk (extend > create > intent_defer; never dismiss). Use this manual tool only for surgical overrides.

Iron Law of the LLM-Wiki: extend > create > intent_defer > NEVER dismiss. The backend now ENFORCES this — calling resolutionType='dismiss' when an extend-target exists returns 400 'iron_law_dismiss_blocked' with the recommended slug.

Resolution types:

  • 'extend' — PREFERRED. Append a dated update section to an existing ADR/pattern/runbook. Pass entityType + entityId + body + rationale. Backend appends '## Update YYYY-MM-DD — extended by '.

  • 'adr' — link to a NEW/existing ADR (entityType='adr', entityId=).

  • 'pattern' — existing pattern doc covers it (entityType='doc_page', entityId=).

  • 'runbook' — existing runbook covers it.

  • 'intent_defer' — defer to a later flow. Seeds an intent doc-page; horizon: 'next-quarter'|'later'.

  • 'dismiss' — LAST RESORT. Backend rejects this whenever an extend-target exists; reserved for genuinely off-topic mentions.

flowId = the flow the warning is attached to. topic = the warning's topic string (e.g. 'billing').

Inputs: topic (required), flowId (required), resolutionType (required), body, +5 more.

knowledge_draft_acceptA

Accept a draft. Creates the corresponding ADR or doc_page and marks the draft accepted. This is the commit step — use only when you are certain the draft is good to merge. Normally users accept via the UI; this tool exists for autonomous workflows.

Inputs: id (required).

knowledge_draft_createA

Create a new knowledge draft. Called by YOU (Claude) after classifying flows via knowledge_backfill_request, or standalone when you identify a flow worth documenting.

Dedup is automatic — if a draft with the same (projectId, draftType, title) already exists in any status, the existing draft is returned and sourceFlowIds are merged. You can safely call this repeatedly.

Rules:

  • draftType: one of adr | pattern | runbook | lessons_learned

  • title: deklarativ, max 60 chars, no prefix like "ADR candidate:"

  • body: 2–6 short markdown paragraphs, the consumable form of the knowledge

  • rationale: one sentence why this matters

  • sourceFlowIds: all flow ids that contributed to this draft (grouping)

Inputs: title (required), draftType (required), body, projectId, +2 more.

knowledge_draft_listA

List knowledge drafts for a project. Optional status filter (pending | accepted | rejected). Useful before proposing new drafts — check what is already queued so you don't duplicate your own suggestions.

Inputs: status, projectId.

knowledge_draft_rejectA

Reject a draft with optional reviewer notes. Rejected drafts are remembered — dedup will not propose the same title again.

Inputs: id (required), notes.

knowledge_harvestA

Harvest knowledge from a single done-flow. Call this right after flow_update transitions a flow to done (the server's nextStep will remind you). Returns the flow + existing ADRs + related drafts + instructions. Decide: does this flow warrant a new draft? If yes, call knowledge_draft_create. If the theme is already covered, skip.

Inputs: flowId (required).

pending_workA

Snapshot of open work across the project. Returns four buckets:

  • inFlightFlows: flows currently in planning / in_progress / review

  • openIntents: forward-intent doc-pages with status != 'resolved' (from flow_seal / DF-254)

  • proposedAdrs: ADRs with status='proposed' (not yet accepted)

  • pendingDrafts: knowledge_drafts with status='pending'

Use this BEFORE starting planning so you don't propose something already in flight or already captured as an intent. Optional tag / path filters narrow the result to your area. Pass excludeFlowId= to exclude the flow you are currently planning for.

Inputs: tags, paths, projectId, excludeFlowId.

planning_contextA

Get a compact context bundle for planning a flow. Returns related ADRs, parallel open flows, similar done flows, forward-intents, architecture-module excerpts and drift warnings — all in one call, priority- scored, budgeted under ~5500 tokens.

Call this AT THE START of planning instead of scattering wiki_search/adr_list/ flow_list calls. Use the markdown output directly as context; use the JSON sections if you want to cross-reference specific items.

Inputs: flowId (required).

project_bootstrap_auditA

Bootstrap the knowledge base of a project by auditing its code. Returns a structured prompt: default subsystem list (auth/data/api/frontend/realtime/billing/admin/mobile/docs/devops/testing), dedup-list of existing ADRs/drafts/pages, and explicit instructions for Claude to read the local repo with Glob/Grep/Read and then create architecture_module pages + knowledge drafts.

Call this once per new project. Idempotent — re-running will skip existing entries via the dedup-list.

Inputs: projectId, subsystems.

release_createA

Create a new release for a project. Use this to plan a new version or milestone. Automatically uses the linked project if no projectId is provided.

Inputs: name (required), projectId, targetDate, description.

release_getA

Get detailed information about a specific release. Returns the full release including name, description, status, and dates.

Inputs: id (required).

release_listA

List all releases for a project. Returns releases with their status, target dates, and descriptions. Automatically uses the linked project if no projectId is provided.

Inputs: projectId.

release_updateA

Update an existing release. Use this to change the release name, description, status, or target date.

Inputs: id (required), name, status, targetDate, +1 more.

task_createA

Create a new task under a flow. Use this to break down a flow into smaller, trackable steps. Tasks can have:

  • Summary (required): Brief description of what to do

  • Description: Detailed implementation notes

  • Acceptance criteria: List of conditions for completion

  • Parent task: For creating sub-tasks

Best practice: Create tasks for each logical step before starting implementation.

Inputs: flowId (required), summary (required), parentId, description, +1 more.

task_listA

List all tasks for a flow. Tasks are sub-items of a flow that track implementation progress. Returns tasks with their completion status and hierarchy.

Inputs: flowId (required).

task_updateA

Update a task's status or details. Use this to:

  • Mark tasks as completed when done

  • Update task description with implementation notes

  • Modify acceptance criteria

  • Change task status for Kanban board

Always mark tasks complete when you finish them to track progress.

Inputs: taskId (required), status, summary, description, +2 more.

wiki_get_briefingA

DF-310 — Per-flow LLM-Wiki briefing. Returns the curated set of related ADRs, related patterns/runbooks/intents, parallel work in scope, and open knowledge gaps for a specific flow. This is the same data the Knowledge-Tab in the UI renders via WikiBriefingPanel.

Use this in planning + before review→done to make sure the flow's plan + implementation respect the existing wiki and to find gaps that the agent should close (preferably via 'extend', see knowledge_check_resolve).

Inputs: flowId (required).

wiki_get_flow_contextB

Return a compact context briefing for a flow: outgoing wiki links + backlinks + tags. Use this before writing a plan to pull relevant ADRs/Patterns automatically.

Inputs: flowId (required).

wiki_get_indexA

DF-312 — Hierarchical TOC of the project's wiki, grouped by lifecycle_stage (release / plan / idea / superseded / deprecated). Each entry has id, displayId, title, lifecycleStage, documentType, tags, updatedAt.

Use this for "what does the wiki actually contain" — global counterpart to wiki_get_briefing (which is per-flow).

Inputs: projectId.

wiki_get_lintA

DF-312 — Health-report of the wiki: stale (release-stage entries older than N days that are still cited), orphan (entries with no in/out wiki-links), contradictions (deprecated/superseded ADRs that newer sources still cite).

Use periodically (or before a major refactor) to keep the wiki clean. Resolve findings via the devflow-wiki-lint skill — never delete entries, always extend / cross-link / re-classify.

Inputs: projectId, staleDays.

wiki_get_logA

DF-312 — Chronological mutation feed of the wiki: ADR/doc_page creates, extends, supersedes, deprecates within a time window. Default window: 30 days. Use 'days' to widen up to 365.

Useful for "what's been happening to the wiki recently" — drives the Activity-Tab in the UI.

Inputs: days, projectId.

wiki_get_pageA

Resolve a wiki reference to a concrete asset and return it with backlinks. The raw can be a slug (e.g. "adr-014"), a doc_page title, or a flow display_id.

Inputs: raw (required), projectId.

wiki_get_project_contextB

Return a brief overview of the project knowledge: number of assets per type, top-tagged categories, and recent updates. Useful as a project primer.

Inputs: projectId.

wiki_graph_neighborsC

Return the local knowledge graph around a project (nodes + edges). Optional type filter to limit which asset types appear.

Inputs: tags, types, projectId.

wiki_list_by_typeA

List all wiki assets of a specific document_type (adr | pattern | runbook | customer_context | glossary). Returns a summary (id, title, slug, verified_state).

Inputs: documentType (required), projectId.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 65 tools

    Disambiguation2/5

    Multiple tools occupy nearly the same conceptual niche: wiki_get_flow_context, wiki_get_briefing, and planning_context all return pre-planning context for a flow, while search and wiki_search both search flows, and devflow_init overlaps with agent_session_create. The descriptions are detailed, but an agent selecting among 65 tools will frequently face unclear boundaries.

    Naming Consistency3/5

    Most subdomains follow a clear domain-prefix pattern (flow_, task_, doc_page_, release_, wiki_, adr_, knowledge_, agent_session_), which keeps the set readable. However, the pattern breaks often: flow_comments_get is object-first, wiki_backlinks and wiki_graph_neighbors are nouns rather than get_* verbs, devflow_token_emit vs devflow_tokens_list mix singular/plural, and standalone names like search, planning_context, pending_work, and ideas_get escape the convention.

    Tool Count1/5

    65 tools is an extreme surface for a single MCP server, far beyond the 50+ threshold. Even if each subdomain is individually justified, the aggregate tool count forces agents to parse a huge namespace and makes misselection much more likely.

    Completeness4/5

    The server covers the full flow lifecycle, tasks, sessions, doc pages, releases, wiki/ADR reads and writes, knowledge-draft workflows, and discipline tokens, so core workflows have no dead ends. Minor gaps exist: no release delete, no single-task get, no way for agents to create flow comments, and no direct wiki page create for patterns/runbooks except via knowledge drafts.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers