MCP Server

Warning

specify mcp is experimental. Its command inventory and tool contracts may change before the MCP surface is declared stable.

specify mcp

Starts a Model Context Protocol server over stdio only. The command does not provide HTTP, SSE, daemon/service management, or transport-selection options. Configure an MCP host to launch specify mcp as a local subprocess.

Because stdout carries MCP protocol frames, the server does not print the Spec Kit banner, Rich output, startup messages, warnings, or logs there.

Tools

The server exposes three generic tools:

Tool Purpose
specify_list_commands List CLI commands currently supported through MCP
specify_describe_command Describe one supported dotted CLI command
specify_run_command Run one supported command through the real Specify CLI

This first experimental release supports only the dotted command version. Every other command name is rejected with an unavailable_command tool error. The server does not expose project discovery, artifacts, mutations, installation or update operations, workflows, confirmations, or access tiers.

Version result and errors

specify_run_command invokes the canonical command below in an isolated child process using the same Python environment as the running CLI:

specify version --json

On success, the MCP tool returns that command's direct JSON object with cli_version, runtime, system, and features. It does not wrap the result in universal schema_version, ok, or result fields.

On CLI failure, the adapter consumes the structured JSON error from stderr and returns an MCP tool error containing error.code, error.message, and error.details. Empty, malformed, mixed, or non-JSON child-process output is reported as a sanitized adapter_internal_error; the server never substitutes a success-shaped fallback or exposes a traceback.