Skip to main content
Glama

vibecompass-mcp

MCP stdio server for VibeCompass.

It connects Claude Code, Codex, Cursor, and similar MCP-capable tools to a VibeCompass project so sessions can read project context and write back decisions, conflicts, and session handoff notes.

Requirements

  • Node.js 20+

  • One of:

    • VIBECOMPASS_API_KEY for hosted mode

    • VIBECOMPASS_ROOT for local read mode

  • Local mode uses the bundled @vibecompass/vibecompass core dependency for file-backed reads

Related MCP server: kb

Environment

Hosted mode:

  • VIBECOMPASS_API_KEY

  • VIBECOMPASS_API_URL Defaults to https://vibecompass.dev

Local mode:

  • VIBECOMPASS_ROOT Absolute path to the canonical local project-memory root (project.yaml, architecture/, decisions/, sessions/, state/manifest.json)

Hybrid mode:

  • If both VIBECOMPASS_ROOT and VIBECOMPASS_API_KEY are set, read tools resolve from the local root, while write tools and hosted conflict reads remain enabled through the API client

Install

npm

Run the public scoped package:

npx -y @vibecompass/vibecompass-mcp

Development

npm test uses Node's t.mock.timers for timeout coverage. Node 20 prints an experimental MockTimers warning; the warning is expected and does not indicate a test failure.

Known upstream client issues: Codex 0.33 issue #3426 and Claude Code 2.0.76's internal effortLevel failure. See https://github.com/jack-whimvy/vibecompass-docs/blob/main/architecture/mcp-server/context-delivery/resilience.md for current dogfood status.

Example config

Hosted mode

Claude Code (claude mcp add)

claude mcp add --transport stdio vibecompass \
  --env VIBECOMPASS_API_KEY='your-api-key' \
  --env VIBECOMPASS_API_URL='https://vibecompass.dev' \
  -- npx -y @vibecompass/vibecompass-mcp

Claude Code (claude mcp add-json)

claude mcp add-json vibecompass '{"type":"stdio","command":"npx","args":["-y","@vibecompass/vibecompass-mcp"],"env":{"VIBECOMPASS_API_KEY":"your-api-key","VIBECOMPASS_API_URL":"https://vibecompass.dev"}}'

Claude Code project config (.mcp.json)

{
  "mcpServers": {
    "vibecompass": {
      "command": "npx",
      "args": ["-y", "@vibecompass/vibecompass-mcp"],
      "env": {
        "VIBECOMPASS_API_KEY": "your-api-key",
        "VIBECOMPASS_API_URL": "https://vibecompass.dev"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "vibecompass": {
      "command": "npx",
      "args": ["-y", "@vibecompass/vibecompass-mcp"],
      "env": {
        "VIBECOMPASS_API_KEY": "your-api-key",
        "VIBECOMPASS_API_URL": "https://vibecompass.dev"
      }
    }
  }
}

Codex

Add this to ~/.codex/config.toml:

[mcp_servers.vibecompass]
command = "npx"
args = ["-y", "@vibecompass/vibecompass-mcp"]
env = { VIBECOMPASS_API_KEY = "your-api-key", VIBECOMPASS_API_URL = "https://vibecompass.dev" }

Keep the repo-level AGENTS.md file committed so Codex knows when to call the VibeCompass tools.

Local read mode

Example env:

{
  "VIBECOMPASS_ROOT": "/absolute/path/to/project-memory-root"
}

Claude Code local-mode command:

claude mcp add --transport stdio vibecompass \
  --env VIBECOMPASS_ROOT='/absolute/path/to/project-memory-root' \
  -- npx -y @vibecompass/vibecompass-mcp

Hybrid mode

Example env:

{
  "VIBECOMPASS_ROOT": "/absolute/path/to/project-memory-root",
  "VIBECOMPASS_API_KEY": "your-api-key",
  "VIBECOMPASS_API_URL": "https://vibecompass.dev"
}

Hybrid asymmetry, by design: reads prefer the local root (conflicts and pending proposals still come from hosted — they are collaboration metadata), while ALL write tools (log_decision, add_session_summary, update_feature_status, flag_conflict) go to the hosted project only. A decision logged over MCP lands in the hosted structured tables and does NOT appear in your local canonical decisions/*.md unless it comes back through the proposal flow. Local file writes stay with the @vibecompass/vibecompass package.

Changing a project's hosting mode

Environment variables are read once at startup — after moving a project between modes, update the variables and restart the MCP server:

  • Promoted to hosted-only (vibecompass promote-hosted): set VIBECOMPASS_API_KEY (create a key on the hosted Setup page) and remove VIBECOMPASS_ROOT.

  • Demoted to local-primary (vibecompass demote-hosted): set VIBECOMPASS_ROOT back to the local root; keep the API key for hybrid writes if you want them.

Local development

npm install
npm run build
npm test
VIBECOMPASS_API_KEY=your-api-key npm run start

Local-only read development:

VIBECOMPASS_ROOT=/absolute/path/to/project-memory-root npm run start

Tools

Read tools work in hosted mode or local mode:

  • get_project_context

  • get_feature_context

  • get_decision_log

  • get_conflicts

  • get_file_context

Write tools require VIBECOMPASS_API_KEY and are disabled in pure local mode:

  • log_decision

  • update_feature_status

  • flag_conflict

  • add_session_summary

Available Tools

10 tools
add_session_summaryA

Call this at the END of every coding session. Summarize what you accomplished, what is left to do, and any blockers. List all features you touched. The next AI session will read this summary to continue where you left off.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYesSummary of the session: what was done, what is remaining, any blockers or open questions
features_touchedYesArray of feature slugs that were worked on in this session. In repo-local multi-repo projects these may be repo-prefixed (for example "web--authentication").

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses that the next AI session will read the summary, implying persistence, but does not specify whether summaries accumulate or overwrite, nor any destructive effects or authorization requirements. Basic purpose is clear, but behavioral details are lacking.

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 concise sentences: the first commands when to call, the second specifies content, the third explains the purpose. Zero wasted words, front-loaded with the key usage instruction. Highly efficient and scannable.

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?

For a simple logging tool with no output schema and no annotations, the description is adequate. It covers what, when, and why. It does not mention how summaries are stored or retrieved later (e.g., through a sibling tool), but the tool's function is sufficiently self-contained. A minor gap is the lack of mention of any limits or accumulation behavior.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The tool's description reiterates the same guidelines ('Summarize what you accomplished...') already present in the schema. The only added value is the context for when to call, not parameter-specific meaning. Baseline 3 is appropriate.

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: to be called at the end of every coding session to summarize accomplishments, remaining tasks, and blockers. It explicitly identifies the verb (summarize) and resource (session session) and distinguishes from siblings like log_decision or get_conflicts by focusing on session state handoff.

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 explicitly states when to call the tool ('at the END of every coding session'), providing clear usage context. It does not discuss when not to use it or name specific alternatives, but the singularity of purpose and sibling tool list make exclusions implicit.

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

flag_conflictA

Flag a conflict when you notice contradictory patterns, duplicated logic across features, or disagreement with a past decision. Conflicts are surfaced to the developer in the dashboard for resolution. Do not try to auto-resolve conflicts — flag them and move on.

ParametersJSON Schema
NameRequiredDescriptionDefault
descriptionYesClear description of the conflict: what contradicts what, and why it matters
feature_slugYesThe slug of the feature where the conflict was found. In repo-local multi-repo projects this may be repo-prefixed (for example "web--authentication").

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses that conflicts are surfaced to the developer in the dashboard and that the tool should not auto-resolve. Without annotations, it carries the full burden and adequately explains the tool's side effects (flagging, not resolving). Missing details like latency or idempotency, but these are minor for this simple 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 three sentences, each serving a distinct purpose: defining the action, specifying triggers, and setting boundaries. No redundant or extraneous information.

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?

The description covers purpose, usage, and behavioral constraints. It does not mention return values or confirmation messages, but given the tool's simplicity and lack of output schema, this is acceptable. Missing minor but useful detail.

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

Parameters3/5

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

The input schema has 100% description coverage for both parameters, so the description adds no additional parameter-level detail beyond the schema. The tool description itself does not explain parameter format or examples, so baseline 3 is appropriate.

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 'flag', the resource 'conflict', and provides specific triggers: 'contradictory patterns, duplicated logic across features, or disagreement with a past decision'. It distinguishes from sibling tools like 'get_conflicts' and 'log_decision' by framing flagging as a separate action.

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 specifies when to use the tool (noticing contradictory patterns etc.) and explicitly discourages auto-resolving conflicts, providing clear boundaries. It could explicitly mention alternatives (e.g., 'log_decision' for recording decisions), but the context from sibling tool names is accessible.

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

get_conflictsA

Check for open conflicts before starting work. Conflicts indicate areas where code changes contradicted prior decisions or where patterns collided. You MUST check conflicts before modifying affected features.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It explains that conflicts indicate areas of contradiction but does not detail what happens after checking (e.g., whether it returns a list, raises warnings, or blocks actions). For a read-only check tool, this is minimally 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?

Three concise sentences with no wasted words. The first sentence clearly states the action, the second provides context, and the third gives an imperative instruction. It is front-loaded and easy to parse.

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 simplicity (no parameters, no output schema, low complexity), the description is sufficiently complete. It specifies the key context of use (before modifying features) and the meaning of conflicts. Missing return value info is acceptable without an output schema.

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?

The tool has zero parameters, and the schema description coverage is 100% (trivially). The description adds no parameter info, but none is needed. According to guidelines, the baseline is 4 for 0 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's purpose: to check for open conflicts. It uses a specific verb ('Check') and resource ('open conflicts'), and explains what conflicts are (code contradictions). This effectively distinguishes it from sibling tools like flag_conflict and get_decision_log, which have different functions.

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 explicit guidance on when to use the tool: 'before starting work' and 'before modifying affected features'. It emphasizes the necessity with 'You MUST check conflicts'. However, it does not mention when not to use it or suggest alternatives, which would improve clarity.

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

get_decision_logA

Check past architectural decisions before proposing changes. Prevents re-debating settled decisions. Call this when you are unsure why something was built a certain way, or before making a significant architectural choice.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of decisions to return (default 20, max 100)
feature_slugNoOptional feature slug to filter decisions. This may be an adapter-defined composite slug (for example "web--authentication" or "mcp-server--context-delivery").

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It correctly implies a read-only operation (checking) but doesn't explicitly state side effects or details like pagination or error handling. Adequate but lacks deeper behavioral disclosure.

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?

Two sentences, no wasted words. The first sentence states purpose, the second gives usage guidance. Well-structured and 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?

For a simple retrieval tool with 2 parameters and no output schema, the description combined with the schema provides enough context. Could mention return format but not required.

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

Parameters3/5

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

Schema coverage is 100%, with clear descriptions for both parameters (limit and feature_slug). The description adds no extra parameter info, which is acceptable given the schema's thoroughness.

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: 'Check past architectural decisions before proposing changes.' It uses a specific verb (check) and resource (past decisions), and distinguishes from siblings by focusing on the decision log.

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?

Provides explicit usage guidance: 'Call this when you are unsure why something was built a certain way, or before making a significant architectural choice.' While it doesn't list alternatives, the context of sibling tools implies when not to use.

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

get_feature_contextA

Get FULL details for a specific feature before working on it. Returns description, components, involved files, repo ownership, recent decisions, and open conflicts for that feature. Always call this before modifying code that belongs to a feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
feature_slugYesThe slug of the feature to get context for. This may be an adapter-defined composite slug (for example "web--authentication" or "mcp-server--context-delivery"). Discover exact slugs via get_project_context() or get_file_context().
component_slugNoOptional component slug to filter to a specific component

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the transparency burden. It lists the return contents (description, components, files, ownership, decisions, conflicts), which is informative. It does not mention side effects or performance, but for a read-only 'get' tool, this is 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?

The description is two sentences: the first states purpose and output, the second adds usage guidance. Every sentence is necessary and concisely written, with no redundancy or filler.

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 has 2 parameters, no output schema, and no annotations, the description provides sufficient completeness: it explains what the tool does, what it returns, and when to use it. It could mention that it is read-only, but that is implied.

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

Parameters3/5

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

Schema coverage is 100%, and both parameters have descriptions in the schema. The tool description adds no further meaning to the parameters beyond what the schema provides. The baseline of 3 is appropriate.

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 uses the verb 'Get' and specifies 'FULL details for a specific feature', clearly indicating the action and scope. It distinguishes from sibling tools like get_file_context and get_project_context by stating it returns comprehensive details including decisions and conflicts.

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 explicitly states 'Always call this before modifying code that belongs to a feature', providing clear when-to-use guidance. It does not explicitly contrast with siblings or state when not to use, but the context implies preparatory use.

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

get_file_contextA

Before modifying any file, call this to understand which feature and component owns it. This prevents accidental cross-feature changes and helps you stay within the right domain. For multi-repo projects, pass file paths in repo:path form (for example "web:src/app/page.tsx").

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYesThe file path to inspect. Use repo:path for multi-repo projects (for example web:src/lib/auth.ts); single-repo projects can use repo-root-relative paths.

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, description carries full burden. It explains the function and multi-repo path format, but lacks details on edge cases (e.g., file not found, permissions) or response structure. Adequate but not comprehensive.

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, each serving a purpose. Front-loaded with main action and reason. No redundant or unnecessary words.

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

Completeness3/5

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

Given no output schema and a single required parameter, the description covers core usage and purpose. However, it omits details about return values, error handling, or prerequisites, making it somewhat incomplete for a developer unfamiliar with the tool.

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

Parameters3/5

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

Schema coverage is 100%. The description adds useful context on path format (repo:path) and example, which goes beyond the schema description. However, it does not add significantly more value than the schema already provides.

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

Purpose4/5

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

Clearly states it provides the owning feature and component of a file, with a specific use case (before modifications). Could more explicitly differentiate from sibling tools like get_feature_context or get_project_context.

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 when to use (before modifying any file) and why (prevent cross-feature changes). Does not mention when not to use or compare directly with siblings, but the context is strong.

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

get_project_contextA

Call this FIRST at the START of every coding session. Returns a summary of the entire project: domains, features, their statuses, recent decisions, and open conflicts. Use this to orient yourself before writing any code. If you need detail on a specific feature, follow up with get_feature_context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, but the description implies a read-only operation (returns a summary) and suggests it can be called multiple times for orientation. It could explicitly state it does not modify state, but the context is clear enough.

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?

Two sentences, front-loaded with the most important usage instruction, and no wasted words. Every sentence adds value.

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?

Despite no output schema, the description fully explains what the tool returns and how to use it within the ecosystem of sibling tools, providing complete context for an AI 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?

Zero parameters, so schema coverage is 100%. The description adds meaning beyond the schema by explaining the output, which is sufficient for a parameter-less tool.

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 returns a summary of the entire project, including domains, features, statuses, decisions, and conflicts. It uses specific verbs and distinguishes itself from siblings like get_feature_context by positioning itself as the initial orientation call.

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?

Explicitly instructs to call this first at the start of every coding session and suggests get_feature_context for detailed follow-up, providing clear when-to-use and when-not-to-use guidance.

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

list_pending_proposalsA

Read hosted proposal summaries for Hybrid mode. This is read-only: local project-memory files remain authoritative, and proposal application must happen through the VibeCompass package sync flow.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoProposal status to list. Defaults to open pending proposals.open

TDQS

A5/5.0
Behavior5/5

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

Discloses read-only behavior: 'local project-memory files remain authoritative'. States that proposal application must happen elsewhere. No annotations exist, so description carries full burden and does so thoroughly.

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?

Two efficient sentences: first states purpose and scope, second adds restrictions. Front-loaded, no redundancy, every sentence earns its place.

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 low complexity (1 param, no output schema), description fully covers purpose, read-only nature, and application process. No gaps for agent to select and invoke correctly.

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

Parameters5/5

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

Single parameter 'status' with enum and default. Schema coverage 100%. Description adds value by clarifying default maps to 'open pending proposals', enhancing schema meaning.

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?

Description clearly states 'Read hosted proposal summaries for Hybrid mode', specifying a specific verb and resource. It distinguishes from sibling tools by emphasizing read-only nature and the requirement to apply proposals via the VibeCompass package sync flow.

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?

Explicitly says use for reading, not for applying proposals. Provides alternative for proposal application ('VibeCompass package sync flow'). Guides when not to use this tool and where else to go.

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

log_decisionA

Log EVERY significant architectural decision you make during this session. This creates a permanent record that future sessions will read. If you chose between two approaches, log why. If you changed an existing pattern, explain the reasoning. Future sessions depend on this.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesA short title for the decision (e.g. "Use Redis for session cache")
descriptionYesFull description including rationale, alternatives considered, and why this was chosen
feature_slugYesThe slug of the feature this decision relates to. In repo-local multi-repo projects this may be repo-prefixed (for example "web--authentication").

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, but the description discloses that the tool creates a permanent record that future sessions will read. It implies non-destructive, persistent logging behavior, which is sufficient.

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?

Concise, three sentences with no fluff. Front-loaded with the core purpose, making it easy for an AI agent to quickly grasp the tool's function.

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 simplicity (3 required params, no output schema), the description comprehensively covers purpose, usage, and behavioral context. No gaps.

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

Parameters3/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 general guidance but does not elaborate on parameter specifics beyond what the schema already provides.

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: to log significant architectural decisions during a session for future reference. It distinguishes itself from siblings like get_decision_log (for reading) and add_session_summary (different scope).

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?

Provides explicit guidance on when to use: after making a decision, especially when choosing between approaches or changing patterns. Could be improved by specifying when not to use, but the context is clear.

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

update_feature_statusA

Update a feature's status when you make progress. Mark "in_progress" when you start working on it, "complete" when done, "blocked" if stuck. This keeps the project brain accurate for the next session.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoOptional notes about the status change (appended to next steps)
statusYesThe new status
feature_slugYesThe slug of the feature to update. In repo-local multi-repo projects this may be repo-prefixed (for example "web--authentication").

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It explains the behavior: updating status and optionally appending notes to next steps. It also mentions the consequence of keeping the project brain accurate, adding context.

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 two sentences, front-loaded with the core purpose. Every sentence provides essential information: what the tool does, when to use it, and why it matters. No extraneous content.

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?

For a simple tool with 3 parameters and no output schema, the description covers the main aspects: purpose, usage guidance, parameter meanings. It does not explain error cases or return values, but given the tool's nature, it is sufficiently complete.

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. However, the description adds semantic value by explaining what each status means in the workflow (e.g., 'in_progress' when starting). The notes parameter is described as appended to next steps, giving context 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 updates a feature's status and explains the meaning of each status in the context of progress. It distinguishes itself from sibling tools like get_feature_context which are read-only.

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 explicitly guides when to use each status: 'in_progress' when starting, 'complete' when done, 'blocked' if stuck. It does not explicitly say when not to use it, but the usage is well implied for a project tracking workflow.

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

TDQS

A4.4/5.0
Disambiguation5/5

Every tool targets a distinct purpose: session summary, conflict management, decision logging, feature/file/project context, proposals, and status updates. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow a clear verb_noun pattern (e.g., get_feature_context, log_decision) using snake_case, making them predictable and easy to navigate.

Tool Count5/5

With 10 tools, the set is well-scoped for a project context server. It covers session handling, conflicts, decisions, features, files, proposals, and status without being too numerous or sparse.

Completeness5/5

The tool surface covers the full lifecycle for project context: reading current state (get_project_context, get_feature_context, get_file_context, get_conflicts, get_decision_log, list_pending_proposals) and updating it (add_session_summary, flag_conflict, log_decision, update_feature_status). No obvious gaps.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A local MCP server that provides a shared context and learning foundation across multiple AI tools (Claude, Copilot, Codex) for multiple projects, enabling persistent knowledge, decisions, and gap reflection through note storage.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that enables AI coding agents to communicate, share state, and coordinate work in real time via MCP tools or REST API.
    159
    5
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jack-whimvy/vibecompass-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server