Skip to main content
Glama

aidflow

Session-based development workflow MCP server for Claude Code.

Every development task gets its own session with a plan, progress tracking, and archiving. Claude Code automatically resumes where you left off, even in new conversations.

Installation

npm install -g aidflow

Add to your Claude Code MCP configuration (~/.claude/settings.json or project .mcp.json):

{
  "mcpServers": {
    "aidflow": {
      "command": "aidflow",
      "env": {
        "AIDFLOW_ROOT": "/path/to/your/project"
      }
    }
  }
}

Or run with npx (no install):

{
  "mcpServers": {
    "aidflow": {
      "command": "npx",
      "args": ["-y", "aidflow"],
      "env": {
        "AIDFLOW_ROOT": "/path/to/your/project"
      }
    }
  }
}

AIDFLOW_ROOT defaults to process.cwd() if not set.

Related MCP server: CHARLIE

What It Does

aidflow structures your Claude Code workflow into sessions - isolated units of work with plans, progress tracking, and completion reports.

Development Cycle

init -> /spec -> session create -> plan create -> work -> /review -> session complete -> /report
  1. init - Set up .aidflow/ directory and configuration

  2. /spec - Define project engineering foundations (SPEC.md)

  3. session create - Start a new work session

  4. plan create - Structured planning with multi-round requirements gathering

  5. Work - Implement using Claude Code's native tools, following the plan

  6. /review - Quality gate before completing

  7. session complete - Archive the session to history

  8. /report - Generate a completion report

Context Recovery

When you start a new conversation, aidflow automatically detects active sessions and resumes where you left off - reading the plan, checking progress, and continuing work without losing context.

Git Worktree Support

Each session can optionally create a git worktree, giving you an isolated branch for the work. Useful for parallel tasks.

Tools

Tool

Actions

Description

init

-

Initialize aidflow in a project

session

create, list, status, complete

Manage development sessions

plan

create, get

Create and track work plans

guide

list, read

Access project-specific guide documents

Skills

Installed to .claude/commands/ during init:

Skill

Description

/spec

Create or update SPEC.md (project conventions)

/review

Quality review before session complete

/report

Generate completion report after archiving

Project Structure

After init, your project gets:

your-project/
  SPEC.md                    # Project engineering foundations (via /spec)
  .aidflow/
    config.yaml              # Configuration
    README.md                # Internal documentation
    sessions/                # Active sessions
      {name}/
        meta.json            # Session metadata
        plan.md              # Work plan (optional)
    history/                 # Archived sessions
      YYMMDD_{name}/
        meta.json
        plan.md
        report.md
    guides/                  # Project-specific guides
    worktrees/               # Git worktrees (gitignored)
  .claude/
    commands/                # Claude Code skills
      spec.md
      review.md
      report.md

Configuration

.aidflow/config.yaml:

version: 1

worktree:
  auto: false                # Auto-create worktree per session
  path: ".aidflow/worktrees"
  branch_prefix: ""          # e.g., "feature/", "fix/"

session:
  history_path: ".aidflow/history"
  date_format: "YYMMDD"     # or "YYYYMMDD"

guides:
  path: ".aidflow/guides"

Requirements

  • Node.js >= 22

  • Claude Code (or any MCP-compatible AI client)

License

MIT

Available Tools

5 tools
guideA

Access project guide documents. (list/read)

  • list: Show available guides (excludes _-prefixed required guides).

  • read: Read a specific guide by topic name.

Required guides (_plan.md, _session_*.md, etc.) are auto-loaded by corresponding tools. Regular guides: When a guide name matches the current task context, proactively read it without waiting for the user to ask.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNoGuide name to read (without .md extension)
actionNolist: show available guides, read: read a specific guidelist
sessionNoSession name to resolve service binding. Auto-detects if only one active session exists

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses core behavior: listing excludes _-prefixed guides, reading by topic, and auto-detection of session. It lacks details on error handling or resource usage, but is still informative.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with bullet points and clear sections. It is concise yet packs essential information without verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains list and read behavior but does not specify list output format or error handling. Still, it covers the main functionality adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. The description adds meaning: topic is without .md, action defaults to list, session auto-detects. This goes beyond the schema, earning a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool accesses project guide documents, with explicit sub-actions list and read. It distinguishes itself from sibling tools (init, plan, etc.) by focusing on guide access.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on when to use list versus read, and mentions proactive reading for context-matching guides. However, it does not explicitly state when not to use the tool or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

initA

Initialize aidflow in the current project.

Creates .aidflow/ directory, config, guides, and Claude Code skills (.claude/skills/). Call this once when first using aidflow in a project. If already initialized, returns current status (use force: true to overwrite).

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoOverwrite existing configuration

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. It discloses that initialization creates files and directories, and that re-running without force returns status. However, it does not detail whether overwriting is destructive, permissions needed, or what 'current status' means exactly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no wasted words. First sentence states the purpose, second details artifacts, third covers re-invocation and force flag. Information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given it is a simple setup tool with one parameter and no output schema, the description covers inputs, behavior, and idempotency. It could mention output format but is sufficient for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and description adds value by explaining the 'force' parameter: 'use force: true to overwrite'. This provides context beyond the schema's default value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Initialize' and the resource 'aidflow' in the current project, listing specific artifacts created (.aidflow/ directory, config, guides, skills). This distinguishes it from siblings like 'guide' or 'plan' which are post-setup tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Call this once when first using aidflow' and explains the behavior on re-initialization (returns current status unless force=true). This guides when to use and when to avoid, though it does not compare with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

planA

Manage session work plans. (create/get)

  • create: Start a structured planning workflow. Guides through requirements gathering (HITL via AskUserQuestion), codebase research, and writing a comprehensive plan.md (PRD + implementation plan). The plan serves as the final execution specification before coding.

  • get: Read existing plan and show progress (checkbox-based).

Optional - skip for simple bug fixes. Use for medium/large tasks that benefit from upfront planning.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNocreate: start planning, get: read existing plancreate
sessionNoSession name. Auto-detects if only one active session exists

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, but the description discloses that 'create' involves a structured workflow with HITL via AskUserQuestion, codebase research, and writing plan.md. 'get' provides checkbox-based progress. This is transparent but could mention any side effects or limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise with bullet points for actions and a usage note. Slightly verbose in the 'create' description but overall efficient. No wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers purpose, actions, usage guidelines, and workflow. It is sufficiently complete for an AI agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions. The description adds context beyond schema by explaining the workflow for each action and auto-detection of session. It enhances understanding of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages session work plans with two distinct actions (create/get). It specifies the workflow for 'create' (requirements gathering, research, plan.md) and distinguishes from siblings like 'guide' and 'init'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance provided: 'Optional - skip for simple bug fixes. Use for medium/large tasks that benefit from upfront planning.' This tells when to use and when to skip, with an alternative implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

select_serviceA

Select target service in multi-service workspace. (list/select/status)

  • list: Discover all .aidflow directories in workspace. Auto-selects if only one found.

  • select: Select a specific service by name. Optionally bind to a session for parallel work.

  • status: Show current service selection (session-bound or global).

Call this before other tools (session, plan, guide) when working in a multi-service workspace. Single-service projects are auto-selected on list.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNolist: 서비스 목록 조회, select: 서비스 선택, status: 현재 선택 상태 확인list
serviceNo선택할 서비스명 (action이 "select"일 때 필수)
sessionNo서비스를 바인딩할 세션명. 미지정 시 글로벌 선택
workspacePathNo서비스 탐색 기준 디렉토리. 미지정 시 워크스페이스 루트 사용

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It explains behaviors like auto-selection on list, session binding, and global selection. Missing details on what state changes occur upon selection, but overall adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with a clear structure: a brief intro followed by bullet-pointed actions and usage notes. Every sentence serves a purpose without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, no nested objects, no output schema), the description fully covers all actions, parameters, and usage context. It explains the tool's role in the workflow adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 4 parameters are described in the schema (100% coverage). The description adds contextual meaning, especially for the 'action' enum and the 'session' parameter, clarifying their roles beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: selecting a target service in a multi-service workspace. It lists three specific actions (list, select, status) and distinguishes itself from sibling tools by being the service selection mechanism.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: 'Call this before other tools (session, plan, guide) when working in a multi-service workspace.' It also notes that single-service projects auto-select, indicating when not to use explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sessionA

Manage development sessions. (create/list/status/complete)

  • create: Start a new session. Optionally creates a git worktree for isolation.

  • list: Show all active sessions with their status.

  • status: Get session progress (changed files, plan progress, next suggestion).

  • complete: Archive session to history. Prompts for worktree cleanup.

Start with create when beginning work, end with complete when done.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoSession name (for create, status, complete)
forceNoForce archive incomplete session (complete only)
actionYesSession action
worktreeNoCreate git worktree for this session (create only). Defaults to config.worktree.auto

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It discloses key behaviors: optional git worktree creation, archiving to history, prompting for cleanup on complete. However, it doesn't detail error states (e.g., if a session name already exists) or exact side effects of each action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with bullet points and a concise summary sentence. Every sentence adds value—no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 params, one enum) and no output schema, the description provides sufficient context for usage. It covers the main workflows but lacks details on return values or error handling, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining each action enum value and specifying that worktree defaults to config.worktree.auto. The name and force parameters are already well-described in the schema, so the description provides moderate additional context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool manages development sessions and lists four specific actions (create, list, status, complete) with brief explanations. This clearly distinguishes it from sibling tools like 'guide' or 'plan' which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'Start with create when beginning work, end with complete when done.' It also indicates when to use each action (e.g., 'list: Show all active sessions') and implies alternatives by context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 5 tool updatesv1.2.3
    • First observedguide
    • First observedinit
    • First observedplan
    • First observedselect_service
    • First observedsession

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation5/5

All five tools have clearly distinct purposes: guide for reading documents, init for project setup, plan for work plans, select_service for multi-service selection, and session for development sessions. No overlap in functionality.

Naming Consistency4/5

Most tool names are single lowercase verbs (guide, init, plan, session), which is consistent. However, 'select_service' breaks this pattern by using an underscore and a verb_noun structure, creating minor inconsistency.

Tool Count5/5

With 5 tools, the server is well-scoped. Each tool addresses a core aspect of the development workflow without being too numerous or too sparse.

Completeness4/5

The tool set covers the main lifecycle (init, plan, session, guide reading) with appropriate actions. Minor gaps like no explicit update for plans or deselect for service are acceptable for the domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers