Skip to main content
Glama
jthom233
by jthom233

Overview

speckitmcp bridges GitHub's Spec-Kit toolkit with any MCP-compatible AI assistant — Claude Code, Cursor, VS Code Copilot, Windsurf, and more.

It exposes the full Spec-Driven Development (SDD) workflow as MCP tools, resources, and prompts, so your AI agent can:

  • Initialize and manage spec-kit projects

  • Author specifications, technical plans, and task breakdowns

  • Track implementation progress and mark tasks complete

  • Validate cross-artifact consistency with a 6-pass analysis engine

  • Generate quality checklists and convert tasks to GitHub issues

All without leaving your editor.


Related MCP server: Gigaspec

Quick Start

Prerequisites

Requirement

Install

Node.js 18+

nodejs.org

spec-kit CLI

uv tool install --from git+https://github.com/github/spec-kit.git specify-cli

Install & Build

git clone https://github.com/jthom233/speckitmcp.git
cd speckitmcp
npm install
npm run build

Connect to Your AI Agent

Add to ~/.claude/settings.json (global) or .claude/settings.json (project):

{
  "mcpServers": {
    "spec-kit": {
      "command": "node",
      "args": ["/absolute/path/to/speckitmcp/dist/index.js"]
    }
  }
}

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "spec-kit": {
      "command": "node",
      "args": ["/absolute/path/to/speckitmcp/dist/index.js"]
    }
  }
}

Add to .vscode/mcp.json in your project root:

{
  "servers": {
    "spec-kit": {
      "command": "node",
      "args": ["/absolute/path/to/speckitmcp/dist/index.js"]
    }
  }
}

Point your client's MCP configuration at:

node /absolute/path/to/speckitmcp/dist/index.js

The server communicates over stdio using the standard MCP JSON-RPC protocol.


Tools

The server exposes 13 tools that map to every phase of the SDD workflow:

Tool

Description

speckit_init

Initialize spec-kit project structure

speckit_check

Check spec-kit installation and system prerequisites

speckit_version

Get spec-kit CLI version

speckit_status

View project status with task completion stats

speckit_constitution

Read, create, or update project constitution with optional version bumping

speckit_specify

Create feature spec with template loading, script integration, and auto-generated quality checklist

speckit_plan

Multi-phase planning (research, design, plan) with spec prerequisite and constitution gate

speckit_tasks

Generate user-story-organized task lists (requires spec.md and plan.md)

speckit_implement

Read tasks/docs, mark tasks complete with checklist gate, or add notes

speckit_clarify

Scan spec.md for ambiguities (9 categories, max 5 questions) or answer them inline

speckit_analyze

Read-only 6-pass analysis: duplication, ambiguity, underspecification, constitution alignment, coverage gaps, inconsistency

speckit_checklist

Generate requirement quality checklists (spec quality, not implementation) in checklists/ subdirectory

speckit_tasks_to_issues

Convert tasks.md to GitHub issues (dry-run by default)

Key Features

  • Script integration — Platform-aware bash/powershell helper scripts invoked automatically

  • Template loading — Loads templates from .specify/templates/ with embedded fallbacks

  • Prerequisites checking — Tools verify prior artifacts exist before proceeding

  • Constitution gate — Planning phase reads the project constitution as mandatory context

  • Checklist gate — Implementation checks for incomplete checklist items before marking tasks done

  • 6-pass analysis engine — Catches duplication, ambiguity, underspecification, constitution violations, coverage gaps, and inconsistencies

  • GitHub issue creation — Convert a tasks.md file into GitHub issues via speckit_tasks_to_issues


Resources

The server exposes spec-kit project files as read-only MCP resources:

URI

Content

speckit://constitution

Project constitution

speckit://templates/{name}

Spec-kit templates

speckit://specs/{feature}/spec

Feature specification

speckit://specs/{feature}/plan

Implementation plan

speckit://specs/{feature}/tasks

Task list

speckit://specs/{feature}/research

Research notes

speckit://specs/{feature}/data-model

Data model

speckit://specs/{feature}/quickstart

Quickstart guide

speckit://specs/{feature}/checklists/{name}

Quality checklists

speckit://specs/{feature}/contracts/{name}

API contracts


Prompts

Ten built-in prompts guide your AI agent through each SDD phase:

Prompt

Purpose

sdd_workflow

End-to-end walkthrough of the full SDD lifecycle

sdd_specify

Structured feature specification authoring

sdd_clarify

Guided ambiguity resolution

sdd_plan

Technical planning with architecture and stack decisions

sdd_tasks

Task breakdown with phasing, dependencies, and parallelism

sdd_implement

Task execution and progress tracking

sdd_checklist

Requirement quality checklist generation

sdd_analyze

Cross-artifact consistency validation

sdd_constitution

Guided creation of project principles and governance

sdd_taskstoissues

Convert tasks to GitHub issues


The SDD Workflow

  init → constitution → specify → clarify → plan → tasks → checklist → analyze → implement → tasks_to_issues
  1. Initspeckit_init — Scaffold the project with .specify/ templates

  2. Constitutionspeckit_constitution — Define project principles and governance before specifying

  3. Specifyspeckit_specify — Define requirements as prioritized user stories with template loading

  4. Clarifyspeckit_clarify — Scan for and resolve ambiguities before committing to a plan

  5. Planspeckit_plan — Multi-phase planning gated on project constitution

  6. Tasksspeckit_tasks — Generate user-story-organized task lists with prerequisites check

  7. Checklistspeckit_checklist — Generate requirement quality checklists

  8. Analyzespeckit_analyze — 6-pass validation of spec / plan / tasks alignment

  9. Implementspeckit_implement — Track completion with checklist gate and regex-safe marking

  10. Tasks to Issuesspeckit_tasks_to_issues — Push tasks to GitHub as issues


Project Structure

src/
├── index.ts                   # Entry point — stdio transport
├── server.ts                  # MCP server — handler registration
├── cli.ts                     # spec-kit CLI wrapper (child_process)
├── tools/
│   ├── index.ts               # Tool registry
│   ├── init.ts                # speckit_init
│   ├── check.ts               # speckit_check
│   ├── version.ts             # speckit_version
│   ├── status.ts              # speckit_status
│   ├── constitution.ts        # speckit_constitution
│   ├── specify.ts             # speckit_specify
│   ├── plan.ts                # speckit_plan
│   ├── tasks.ts               # speckit_tasks
│   ├── implement.ts           # speckit_implement
│   ├── clarify.ts             # speckit_clarify
│   ├── analyze.ts             # speckit_analyze
│   ├── checklist.ts           # speckit_checklist
│   └── tasks-to-issues.ts     # speckit_tasks_to_issues
├── resources/
│   └── index.ts               # MCP resource handlers
└── prompts/
    └── index.ts               # SDD workflow prompts

Development

npm install          # Install dependencies
npm run build        # Compile TypeScript → dist/
npm run dev          # Watch mode (rebuild on change)

Manual Smoke Test

echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | node dist/index.js

You should see a JSON-RPC response with serverInfo.name: "spec-kit-mcp".


Tech Stack

Layer

Choice

Language

TypeScript 5 (strict mode, ESM)

Runtime

Node.js 18+

Protocol

@modelcontextprotocol/sdk v1.x

Validation

Zod

Transport

stdio (JSON-RPC 2.0)

CLI Integration

Node.js child_process wrapping specify


Contributing

Contributions are welcome! Please open an issue first to discuss what you'd like to change.

  1. Fork the repo

  2. Create a feature branch (git checkout -b feat/my-feature)

  3. Commit your changes

  4. Push to your fork and open a Pull Request


License

MIT

Available Tools

13 tools
speckit_analyzeA

Analyze cross-artifact consistency for a feature across 6 passes: Duplication, Ambiguity, Underspecification, Constitution Alignment, Coverage Gaps, and Inconsistency. Strictly read-only — never writes files.

ParametersJSON Schema
NameRequiredDescriptionDefault
feature_nameYesName of the feature to analyze.
project_pathNoPath to the spec-kit project root.

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It explicitly states 'Strictly read-only — never writes files,' which is a strong side-effect disclosure. Enumerating the six passes also provides insight into the tool's internal behavior, though it does not mention runtime prerequisites or output behavior.

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 the purpose and lists the six passes, the second adds the read-only guarantee. Every word contributes meaning, and the structure is front-loaded with the essential information.

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?

The six-pass analysis is complex, yet the description does not explain what each pass entails or describe the output format (e.g., report, logs, exit codes). Since there is no output schema, this omission leaves ambiguity about what the user will receive, so the description is adequate but not fully complete.

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 already provides descriptions for both parameters (100% coverage). The tool description does not add any additional parameter-level meaning, such as how the parameters interact or example values. With high schema coverage, the baseline score is 3.

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 specific verb 'Analyze' and identifies the resource as 'cross-artifact consistency for a feature,' listing six concrete analysis passes. This clearly differentiates it from sibling tools like speckit_check or speckit_status, which likely serve 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 Guidelines3/5

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

The description implies the tool is used for analyzing consistency via the six passes, but it does not explicitly state when to use it over alternatives or mention when not to use it. There is no comparison to sibling tools or exclusions, leaving usage context implied rather than explicit.

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

speckit_checkA

Check that spec-kit and all required tools are installed. Returns version and system information.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/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 of behavioral disclosure. It discloses that the tool returns version and system information, which is helpful. However, it does not explicitly state whether it has side effects (likely read-only) or how it behaves if installation is missing, leaving some ambiguity.

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 a single sentence that is front-loaded with the action and resource. Every word earns its place, with no padding or 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?

This is a simple check tool with no parameters and no output schema. The description fully covers what the tool does and what it returns, which is sufficient for an agent to understand its role and invoke it 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?

The tool takes zero parameters, as shown by the empty input schema. The baseline for 0 params is 4, and there is no need for the description to add parameter details. The description's mention of return info is irrelevant to params.

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 a specific verb 'Check' and names the resource 'spec-kit and all required tools', clearly distinguishing it from siblings like speckit_version (which only returns version) and speckit_status. It also states the return value (version and system information), making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage as a pre-flight check before running other speckit tools, but it does not explicitly say when to use it versus alternatives. No exclusions or alternative recommendations are provided, but the verb 'Check that... installed' implies a verification context.

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

speckit_checklistA

Create a requirement quality checklist for a feature. Generates checklists that assess spec quality (completeness, clarity, coverage, consistency) — not implementation status. Saved to specs/{feature}/checklists/{name}.md.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentNoChecklist content in markdown. If omitted, creates from template.
feature_nameYesName of the feature.
project_pathNoPath to the spec-kit project root.
checklist_nameNoDescriptive name for the checklist (e.g., requirements, api, security). Saved as checklists/{checklist_name}.md.
checklist_typeNoDeprecated alias for checklist_name.

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 carries the burden. It discloses a key side effect: 'Saved to specs/{feature}/checklists/{name}.md,' making clear this is a write operation. It also scopes the tool's behavior to spec quality assessment, not implementation status. This is useful behavioral context, though it doesn't mention permissions or exact return behavior.

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 and front-loaded with the primary action. Every clause adds value: purpose, scope (spec quality vs implementation), and file location. No redundant or filler text.

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 tool with 5 parameters and no output schema, the description covers the essential job: what it creates, where it saves, and what it doesn't do. It doesn't explain return values or the template fallback behavior, but the schema covers parameter details and the description is reasonably complete for an agent to invoke it 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 description coverage is 100%, so parameters are already documented. The description adds value by explaining the output path pattern using feature_name and checklist_name, which helps the agent understand how these parameters interact. It also notes that content is optional, though this is only in the schema, not the description itself.

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 function: 'Create a requirement quality checklist for a feature.' It specifies the resource (a checklist) and the action (create), and further differentiates by clarifying it assesses 'spec quality (completeness, clarity, coverage, consistency) — not implementation status,' distinguishing it from related tools like speckit_check.

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 gives clear context for use: when you need a quality checklist for a feature's spec. It also provides a negative guideline ('not implementation status'), which helps avoid misuse. However, it does not name specific sibling alternatives, so it stops short of explicit alternative comparison.

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

speckit_clarifyA

Manage clarification questions for a feature. Scan spec.md for ambiguities across 9 taxonomy categories and return up to 5 prioritized questions (scan), or write an answer inline in spec.md (answer). Does not write clarifications.md.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction: scan (identify ambiguities in spec), answer (write answer inline in spec.md).
answerNoThe answer text to write inline in spec.md (required for answer action).
feature_nameYesName of the feature to clarify.
project_pathNoPath to the spec-kit project root.
question_indexNoZero-based index of the [NEEDS CLARIFICATION] marker to answer (required for answer action).

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 carries full responsibility for behavioral disclosure. It reveals that scan returns up to 5 prioritized questions, answer writes inline in spec.md, and it does not write clarifications.md. These are meaningful behavioral traits beyond what the schema alone implies, especially the specific file exclusions and the prioritized question output.

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 long, front-loaded with the core purpose, and every clause contributes information: taxonomy categories, question limit, file targets, and an explicit non-target. There is no fluff or redundancy, and the structure is 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?

Even without an output schema, the description explains the key return behavior for scan (up to 5 prioritized questions) and the side effect for answer (writes inline in spec.md). It covers the primary invocation details and the non-writing boundary. Minor gaps exist, such as not listing the 9 taxonomy categories or prioritization criteria, but overall it is complete enough for correct use.

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 the baseline is 3, but the description adds value by explaining the behavior of the 'action' parameter in context: scan produces up to 5 prioritized questions, and answer modifies spec.md. It also clarifies that answers are written to spec.md rather than clarifications.md, enriching the answer parameter's meaning beyond the schema description.

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 clarification questions for a feature, and specifies two concrete operations (scan and answer) with their targets (spec.md). The verb 'manage' is broad but immediately narrowed by the specific actions. This distinguishes it from sibling tools like speckit_specify or speckit_plan, which focus on other aspects of the workflow.

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 gives clear guidance on when to use scan (identify ambiguities) versus answer (write an answer inline). It also explicitly states what the tool does not do (does not write clarifications.md), which sets a boundary. However, it does not explicitly mention alternative sibling tools, so it stops short of full guidance.

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

speckit_constitutionA

Read, create, or update the project constitution. The constitution defines core principles, technology choices, quality standards, and governance rules for the project.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoAction: read (get constitution), write (update constitution), or create (load template for AI to fill out).read
contentNoNew constitution content (required for write action).
placeholdersNoOn create or write, replace [TOKEN] patterns with provided values. Keys are token names (without brackets).
project_pathNoPath to the spec-kit project root.
version_bumpNoOn write action, bump the version in the constitution. major: X+1.0.0, minor: X.Y+1.0, patch: X.Y.Z+1.

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While it states the tool can read, create, or update, it does not disclose potential side effects, permissions required, or whether actions are reversible (e.g., overwriting an existing constitution). This is a significant gap for a tool that supports mutation.

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 concise and front-loaded, consisting of two sentences that immediately state the action and then define the resource. Every sentence adds value, with no 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's moderate complexity (5 parameters, no required fields, no output schema, no annotations), the description provides a clear purpose and definition of the constitution. It is missing some behavioral context like permissions or side effects, but the schema covers parameter semantics. This earns a solid 4.

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% coverage with detailed descriptions for all five parameters, so the baseline is 3. The description adds minimal parameter-specific semantics beyond noting the constitution's content areas (e.g., 'core principles, technology choices'), which provides general context but does not directly explain parameters like version_bump or placeholders.

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 function: 'Read, create, or update the project constitution.' It specifies both the verb and the resource, and explains what the constitution contains. This distinguishes it from sibling tools like speckit_init or speckit_check, which focus on other aspects of the spec-kit workflow.

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

Usage Guidelines3/5

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

The description implies the tool is used for managing the project constitution, but does not explicitly state when to use each action (read vs write vs create) or when alternatives might be more appropriate. No exclusions or alternative tools are mentioned. The schema provides some guidance for the action parameter, but the description itself lacks this context.

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

speckit_implementB

Track implementation progress for a feature. Read current tasks and related docs, mark tasks complete (with optional checklist gate), or add implementation notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoBypass the checklist gate when completing a task (default false).
notesNoImplementation notes to append.
actionNoAction to perform.read
task_idNoTask ID to mark as complete (e.g., T001).
feature_nameYesName of the feature being implemented.
project_pathNoPath to the spec-kit project root.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It mentions an 'optional checklist gate' and that tasks can be marked complete, but does not explain what this gate does, whether it modifies files, or the effects of the 'update_status' action. For a tool capable of mutation, this is a significant gap.

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?

The description is composed of two concise sentences, with the main purpose front-loaded. It avoids unnecessary detail, though 'related docs' is vague, and the omission of update_status makes it slightly incomplete. Overall it is efficient and to the point.

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?

For a multi-action tool with six parameters and no output schema, the description covers most actions but misses the update_status action in the enum. It also lacks details on return values, side effects, and the 'checklist gate' mechanics. The schema fills some gaps, but the description does not fully carry the tool's usage context.

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 description coverage is 100%, so the baseline is 3. The description adds no meaningful detail beyond the schema – it references 'optional checklist gate' which is already described in the force parameter. It does not explain the relationship between task_id and feature_name beyond what the schema already states.

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?

The description clearly states the tool's purpose: 'Track implementation progress for a feature' and enumerates primary actions (read, mark tasks complete, add notes). However, it does not explicitly differentiate from sibling tools like speckit_tasks or speckit_status, and it omits the 'update_status' action from the enum, which slightly reduces clarity.

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

Usage Guidelines3/5

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

Usage is implied through the action list: use this tool when you need to read tasks, complete them, or add notes for a feature. No explicit when-to-use vs alternatives is given, nor are any exclusions mentioned. The description does not reference sibling tools such as speckit_checklist or speckit_tasks, providing only implied context.

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

speckit_initA

Initialize a new spec-kit project. Creates .specify/ directory with templates, constitution, and agent command files. Automatically confirms if the directory is non-empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
ai_agentNoAI agent to configure for (claude, copilot, cursor-agent, etc.)claude
script_typeNoScript type: sh (bash) or ps (powershell).
project_nameNoProject name. If omitted, initializes in current directory with --here.
project_pathNoDirectory to initialize. Defaults to current directory.

TDQS

A3.9/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 the full burden of behavioral disclosure. It discloses that it creates files in .specify/ and mentions automatic confirmation for non-empty directories. However, 'automatically confirms' is ambiguous (whether it prompts or proceeds without asking), and details about overwriting, permissions, or reversibility are missing. Some useful disclosure exists, but key behavioral traits are left unclear.

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 main purpose, and each sentence earns its place. It avoids unnecessary fluff and is efficiently structured.

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?

The tool has 4 parameters, no annotations, and no output schema, so the description must compensate. It covers the core action and one edge case (non-empty directory), but it doesn't explain what happens after initialization (e.g., status output, next steps) or how this fits into the overall spec-kit workflow. This leaves meaningful gaps for an agent deciding whether to use this 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 description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; parameters like ai_agent, script_type, project_name, and project_path are already fully described in the schema. The description does not clarify any usage details or relationships between 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 verb and resource: 'Initialize a new spec-kit project.' It explains what is created (.specify/ directory with templates, constitution, and agent command files), which distinguishes it from sibling tools like speckit_check, speckit_status, and speckit_plan that perform different operations.

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 context: this tool is for initialization of a new project. It does not explicitly mention exclusions or alternatives, but the purpose is unambiguous. Sibling tools imply other phases, yet the description doesn't reference them, so 'clear context, no exclusions' fits.

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

speckit_planA

Create or update a technical implementation plan. Creates specs/{feature}/plan.md with architecture, tech stack, and implementation approach. Also supports writing research and design artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
phaseNoPhase to write: research (research.md), design (data-model.md, contracts/, quickstart.md), plan (plan.md), all (plan.md, backward compat).all
contentNoPlan content in markdown. If omitted, creates from template.
contractsNoArray of contract documents to write under contracts/ (used when phase=design).
feature_nameYesName of the feature to plan.
plan_contentNoExplicit plan.md content. Supplements or replaces content param for the plan phase.
project_pathNoPath to the spec-kit project root.
research_contentNoContent for research.md (used when phase=research).
data_model_contentNoContent for data-model.md (used when phase=design).
quickstart_contentNoContent for quickstart.md (used when phase=design).

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It does disclose that the tool writes files, specifically plan.md and optionally research/design artifacts, and that it can update existing plans. However, it does not mention potential side effects like overwriting files, directory creation, or dependencies on prior initialization (e.g., speckit_init). This is partial disclosure 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?

The description is two sentences, front-loaded with the primary action and resource. Every sentence adds meaningful context: the first covers the core plan.md creation, the second expands to research/design artifacts. No fluff or repetition.

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 the tool's complexity (9 parameters, no output schema, no annotations), the description provides a high-level overview but lacks critical behavioral context such as overwrite semantics, prerequisites, or how phases relate to each other. The schema compensates for parameter details, but the description does not fully cover the workflow, leaving it acceptable but incomplete for complex usage.

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 description coverage is 100%, so the baseline is 3. The description does not add parameter-level meaning beyond the schema, except for an overall sense that phases map to artifact types. Since the schema already documents each parameter (including phase enum, content fields, etc.), the description adds marginal value in this dimension.

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 specific verbs ('Create or update') and identifies the resource ('technical implementation plan') with an exact file path ('specs/{feature}/plan.md'). It clearly distinguishes this from sibling tools by focusing on planning artifacts, and even mentions additional research/design artifact support, which is unambiguous.

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

Usage Guidelines3/5

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

The description implies its usage context (planning phase) through the tool name and content, but does not explicitly state when to use this tool versus alternatives like speckit_tasks or speckit_implement. No exclusions or alternative tool references are provided, leaving the agent to infer based on naming.

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

speckit_specifyA

Create or update a feature specification. Creates specs/{feature}/spec.md with requirements, user stories, and acceptance criteria.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentNoSpecification content in markdown. If omitted, creates from template.
descriptionNoAlternative to feature_name for unnamed features. Used as the spec description when feature_name is not provided.
feature_nameNoName of the feature (used as directory name).
project_pathNoPath to the spec-kit project root.

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must carry the full transparency burden. It fails to disclose side effects (e.g., whether existing files are overwritten), permissions, prerequisites, or behavior when 'content' is omitted. The only added behavioral detail is the file path, which is insufficient.

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?

The description is a single sentence and front-loaded with the primary action. Minor redundancy exists ('Create...' then 'Creates...'), but overall it is concise and to the point.

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

Completeness2/5

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

Given 4 optional parameters and no annotations or output schema, the description lacks sufficient context for an agent to fully understand parameter interactions (e.g., what happens when feature_name is omitted) or expected return values. It is not complete enough for reliable tool selection and invocation.

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 the baseline is 3. The description does not add meaning beyond the schema for parameters like 'content', 'feature_name', or 'project_path'. It only reiterates that feature_name maps to a directory, which the schema already states.

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 identifies the tool's action ('Create or update a feature specification') and specifies the exact output path ('specs/{feature}/spec.md'), distinguishing it from sibling tools like speckit_plan or speckit_tasks. The verb+resource is specific and unambiguous.

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 implies usage for creating or updating a spec file, which is distinct from siblings that handle plans, tasks, or checks. However, it does not explicitly name alternatives or provide when/when-not conditions, so it falls short of a 5.

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

speckit_statusA

Get the status of a spec-kit project. Shows which specs, plans, tasks, checklists, research, data-model, quickstart, and contracts exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_pathNoPath to the spec-kit project. Defaults to current directory.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the disclosure burden. It explains that the tool reads and reports which project artifacts exist, covering the core behavior. However, it does not explicitly state that the operation is non-destructive or read-only, nor does it address edge cases like invalid project paths. For a low-risk status tool, this is acceptable but not thorough.

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 concise sentences: the first states the primary function, the second lists the artifact types. There is no filler or redundant information, and the key 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?

With one optional parameter and no output schema, the description is largely sufficient: it names all artifact categories that the status covers. It could improve by mentioning output format or error handling, but the provided information gives a solid mental model of the tool's 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?

The schema provides 100% coverage for the single optional parameter, including its purpose and default behavior. The tool description does not add further parameter semantics, so the schema already carries the load. 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 with a specific verb ("Get") and resource ("status of a spec-kit project"), then enumerates the artifact types it covers. This distinguishes it from sibling tools like speckit_check or speckit_implement.

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

Usage Guidelines3/5

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

The description implies usage when one needs an overview of existing spec-kit artifacts, but it does not explicitly compare against alternatives or state when not to use it. Sibling tools are not referenced, leaving usage context implicit rather than explicit.

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

speckit_tasksB

Create or update a task breakdown. Creates specs/{feature}/tasks.md with phased, actionable tasks with dependencies and parallel opportunities.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentNoTasks content in markdown. If omitted, creates from template.
feature_nameYesName of the feature.
project_pathNoPath to the spec-kit project root.

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It mentions 'Create or update' but does not clarify whether it overwrites existing files, how it merges content, or whether it requires an initialized project. It also doesn't disclose potential side effects or permissions needed. The file path and content format are helpful, but overwrite semantics are ambiguous.

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 concise, two sentences, front-loaded with the primary action ('Create or update') and specific artifact path. Every phrase earns its place, providing clear action, target, and content characteristics with no 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?

The description is fairly complete for a simple create/update tool: it names the output file, its location, and the nature of the content. The schema covers all parameters. While it could mention prerequisites like an initialized project or overwrite behavior, the essential information for using the tool is present and the tool's scope is narrow.

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 all three parameters have descriptions. The description adds context about the output file and content structure, but does not add further meaning to individual parameters beyond what the schema already provides. Baseline of 3 is appropriate because the schema handles parameter documentation.

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 identifies the tool's purpose: 'Create or update a task breakdown' and specifies the exact output path 'specs/{feature}/tasks.md'. It also describes content style ('phased, actionable tasks with dependencies and parallel opportunities'), which distinguishes it from sibling tools like speckit_plan or speckit_tasks_to_issues that have different focuses.

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

Usage Guidelines2/5

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

No explicit guidance is provided about when to use this tool versus alternatives. The description states what it does but does not mention prerequisites, exclusions, or when another sibling tool would be more appropriate. There is no 'use this when' or 'instead of X' instruction.

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

speckit_tasks_to_issuesA

Convert spec-kit tasks to GitHub issues. Reads tasks.md and creates corresponding GitHub issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelsNoAdditional labels to attach to each created issue.
dry_runNoPreview issues that would be created without actually creating them. Defaults to true.
feature_nameYesName of the feature whose tasks.md will be converted.
project_pathNoPath to the spec-kit project root. Defaults to current directory.

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 'creates corresponding GitHub issues,' which is a significant side effect, but does not mention authentication requirements, potential idempotency issues, whether it modifies tasks.md, or any failure modes. The behavior is largely obvious from the name, and the description adds only minimal context beyond that.

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 long, front-loaded with the core action, and contains no fluff. Every sentence earns its place: the first gives a concise summary, the second clarifies the exact mechanism (reads tasks.md). This is appropriately sized for the tool's simplicity.

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 the tool's moderate complexity (4 parameters, all schema-documented) and no output schema, the description is minimal but not fully complete. It does not mention return values (e.g., what happens after creation), error cases, or the fact that dry_run defaults to true. While the schema covers parameter details, the absence of annotation and output schema leaves gaps that a fuller description could fill.

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 covers all four parameters with descriptions (100% coverage), so the baseline is 3. The tool description itself does not add any parameter-specific meaning—it does not explain feature_name, dry_run, labels, or project_path beyond what the schema already states. Since the schema handles parameter semantics well, no deduction is needed, but no extra credit is given either.

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: converting spec-kit tasks to GitHub issues, specifically reading tasks.md and creating corresponding issues. The verb 'convert' and the explicit resource ('spec-kit tasks' to 'GitHub issues') make it distinct from sibling tools like speckit_tasks or speckit_plan, which focus on task generation or planning rather than issue creation.

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

Usage Guidelines3/5

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

The description implies usage (when you have tasks and want GitHub issues) but does not explicitly state when to use this tool versus alternatives. It neither names alternatives like speckit_tasks (which might generate tasks) nor provides exclusion criteria. The lack of explicit guidance on prerequisites or sequencing relative to sibling tools leaves this dimension at a basic level.

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

speckit_versionA

Get version information for both the MCP server and the spec-kit CLI.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/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 the full burden. It indicates a read-only operation ('Get version information') and specifies the two components addressed, but does not disclose output format, potential errors, or any side effects. For a simple version 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?

The description is a single, focused sentence that immediately conveys the purpose. It is front-loaded with the action and resource, with no extraneous content.

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 (zero parameters, no output schema), the description is complete: it names both entities whose versions are returned. No further detail is necessary for an agent to select and invoke this 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?

The input schema has zero parameters, so there is nothing to explain. The baseline of 4 applies because the description is not required to add parameter details when none exist. The description adds no parameter info, but none is needed.

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: retrieving version information for both the MCP server and the spec-kit CLI. It uses a specific verb ('Get') and resource ('version information'), distinguishing it from sibling tools that handle init, check, status, etc.

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 implies when to use the tool: whenever version information is needed. It does not explicitly mention alternatives or exclusions, but the clear scope ('MCP server and spec-kit CLI') and contrast with sibling tools provide sufficient 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. Dates show when Glama detected each change.

  1. 13 tool updatesv1.0.0
    • First observedspeckit_analyze
    • First observedspeckit_check
    • First observedspeckit_checklist
    • First observedspeckit_clarify
    • First observedspeckit_constitution
    • First observedspeckit_implement
    • First observedspeckit_init
    • First observedspeckit_plan
    • First observedspeckit_specify
    • First observedspeckit_status
    • First observedspeckit_tasks
    • First observedspeckit_tasks_to_issues
    • First observedspeckit_version

TDQS

A3.7/5.0
Disambiguation3/5

Several tools have overlapping purposes or similar names: speckit_check, speckit_status, and speckit_checklist could be confused, and speckit_clarify and speckit_analyze both address ambiguity. Descriptions differentiate them, but the boundaries are not instantly clear.

Naming Consistency3/5

All tools share the speckit_ prefix, but the suffixes mix verbs (init, check, specify, implement, clarify, analyze) and nouns (version, status, constitution, tasks, checklist) without a consistent verb_noun pattern. The compound tasks_to_issues also breaks the pattern.

Tool Count5/5

At 13 tools, the server covers setup, project status, spec/plan/task creation, implementation tracking, quality analysis, and GitHub integration without feeling bloated. Each tool serves a distinct phase of the spec-kit workflow.

Completeness4/5

The toolset covers the full spec-kit lifecycle: init, check, version, status, constitution, spec, plan, tasks, implement, clarify, analyze, checklist, and GitHub issue conversion. Minor gaps include no explicit read/delete operations for artifacts, but these are not critical for the workflow.

Maintenance

ActivityInactive
ResponsivenessNo issues

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
    D
    maintenance
    Enables spec-driven development workflows with AI assistants, providing tools for managing specification lifecycles, task dependencies, code navigation, testing, and automated reviews through a unified CLI and MCP interface.
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An AI-native specification framework that enables deep requirements analysis and structured project planning through intelligent Q\&A workflows. The MCP server provides tools for project initialization, requirement analysis, and the generation of living documentation like development plans and architecture specs.
    16
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Centralized MCP server for spec-driven AI agent workflows, enabling isolated feature management, task tracking, and implementation with handoff and archiving capabilities across multiple projects and developers.
    23
    1
    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/jthom233/speckitmcp'

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