Spec Workflow MCP
The Spec Workflow MCP server provides a comprehensive AI-assisted, spec-driven development environment that streamlines structured workflows from requirements to implementation.
Core Capabilities:
Guided Workflows: Step-by-step spec creation and project steering guidance
Spec Management: Create, update, and track specifications with status monitoring and comprehensive listing
Steering Documents: Establish foundational project guidance through product vision, technical decisions, and structure documents
Task Management: Handle spec implementation tasks with status tracking (pending, in-progress, completed) and context retrieval
Template System: Access built-in templates for specs, bugs, and steering documents
Approval System: Request, track, and manage human approvals for documents and actions
Real-Time Dashboard: Monitor progress, view documents, and manage tasks via a live web interface
IDE Integration: Works seamlessly with Claude Desktop, Cursor IDE, Continue IDE, Cline/Claude Dev, and other AI development tools
The server enables you to progress systematically from requirements through design to implementation while maintaining project context and facilitating collaboration through its integrated approval and monitoring systems.
Provides support link for the project through Buy Me A Coffee donation platform
Features embedded YouTube video demonstrations showcasing the approval system and dashboard functionality
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Spec Workflow MCPcreate a spec for user authentication"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Spec Workflow MCP
I HAVE TAKEN A SMALL BREAK FROM THIS REPO FOR PERSONAL REASONS BUT I WILL BE BACK WITH SOME UPDATES IN THE NEAR FUTURE THANK YOU FOR YOUR UNDERSTANDING
A Model Context Protocol (MCP) server for structured spec-driven development with real-time dashboard and VSCode extension.
☕ Support This Project
Related MCP server: OpenSpec MCP
📺 Showcase
🔄 Approval System in Action
See how the approval system works: create documents, request approval through the dashboard, provide feedback, and track revisions.
📊 Dashboard & Spec Management
Explore the real-time dashboard: view specs, track progress, navigate documents, and monitor your development workflow.
✨ Key Features
Structured Development Workflow - Sequential spec creation (Requirements → Design → Tasks)
Real-Time Web Dashboard - Monitor specs, tasks, and progress with live updates
VSCode Extension - Integrated sidebar dashboard for VSCode users
Approval Workflow - Complete approval process with revisions
Task Progress Tracking - Visual progress bars and detailed status
Implementation Logs - Searchable logs of all task implementations with code statistics
Multi-Language Support - Available in 11 languages
🌍 Supported Languages
🇺🇸 English • 🇯🇵 日本語 • 🇨🇳 中文 • 🇪🇸 Español • 🇧🇷 Português • 🇩🇪 Deutsch • 🇫🇷 Français • 🇷🇺 Русский • 🇮🇹 Italiano • 🇰🇷 한국어 • 🇸🇦 العربية
📖 Documentation in your language:
English | 日本語 | 中文 | Español | Português | Deutsch | Français | Русский | Italiano | 한국어 | العربية
🚀 Quick Start
Step 1: Add to your AI tool
Add to your MCP configuration (see client-specific setup below):
{
"mcpServers": {
"spec-workflow": {
"command": "npx",
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
}
}
}Step 2: Choose your interface
Option A: Web Dashboard (Required for CLI users) Start the dashboard (runs on port 5000 by default):
npx -y @pimzino/spec-workflow-mcp@latest --dashboardThe dashboard will be accessible at: http://localhost:5000
Note: Only one dashboard instance is needed. All your projects will connect to the same dashboard.
Option B: VSCode Extension (Recommended for VSCode users)
Install Spec Workflow MCP Extension from the VSCode marketplace.
📝 How to Use
Simply mention spec-workflow in your conversation:
"Create a spec for user authentication" - Creates complete spec workflow
"List my specs" - Shows all specs and their status
"Execute task 1.2 in spec user-auth" - Runs a specific task
🔧 MCP Client Setup
Configure in your Augment settings:
{
"mcpServers": {
"spec-workflow": {
"command": "npx",
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
}
}
}Add to your MCP configuration:
claude mcp add spec-workflow npx @pimzino/spec-workflow-mcp@latest -- /path/to/your/projectImportant Notes:
The
-yflag bypasses npm prompts for smoother installationThe
--separator ensures the path is passed to the spec-workflow script, not to npxReplace
/path/to/your/projectwith your actual project directory path
Alternative for Windows (if the above doesn't work):
claude mcp add spec-workflow cmd.exe /c "npx @pimzino/spec-workflow-mcp@latest /path/to/your/project"Add to claude_desktop_config.json:
{
"mcpServers": {
"spec-workflow": {
"command": "npx",
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
}
}
}Important: Run the dashboard separately with
--dashboardbefore starting the MCP server.
Add to your MCP server configuration:
{
"mcpServers": {
"spec-workflow": {
"command": "npx",
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
}
}
}Add to your Continue configuration:
{
"mcpServers": {
"spec-workflow": {
"command": "npx",
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
}
}
}Add to your Cursor settings (settings.json):
{
"mcpServers": {
"spec-workflow": {
"command": "npx",
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
}
}
}Add to your opencode.json configuration file:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"spec-workflow": {
"type": "local",
"command": ["npx", "-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"],
"enabled": true
}
}
}Add to your ~/.codeium/windsurf/mcp_config.json configuration file:
{
"mcpServers": {
"spec-workflow": {
"command": "npx",
"args": ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]
}
}
}Add to your ~/.codex/config.toml configuration file:
[mcp_servers.spec-workflow]
command = "npx"
args = ["-y", "@pimzino/spec-workflow-mcp@latest", "/path/to/your/project"]🐳 Docker Deployment
Run the dashboard in a Docker container for isolated deployment:
# Using Docker Compose (recommended)
cd containers
docker-compose up --build
# Or using Docker CLI
docker build -f containers/Dockerfile -t spec-workflow-mcp .
docker run -p 5000:5000 -v "./workspace/.spec-workflow:/workspace/.spec-workflow:rw" spec-workflow-mcpThe dashboard will be available at: http://localhost:5000
🔒 Security
Spec-Workflow MCP includes enterprise-grade security features suitable for corporate environments:
✅ Implemented Security Controls
Feature | Description |
Localhost Binding | Binds to |
Rate Limiting | 120 requests/minute per client with automatic cleanup |
Audit Logging | Structured JSON logs with timestamp, actor, action, and result |
Security Headers | X-Content-Type-Options, X-Frame-Options, X-XSS-Protection, CSP, Referrer-Policy |
CORS Protection | Restricted to localhost origins by default |
Docker Hardening | Non-root user, read-only filesystem, dropped capabilities, resource limits |
⚠️ Not Yet Implemented
Feature | Workaround |
HTTPS/TLS | Use a reverse proxy (nginx, Apache) with TLS certificates |
User Authentication | Use a reverse proxy with Basic Auth or OAuth2 Proxy for SSO |
For External/Network Access
If you need to expose the dashboard beyond localhost, we recommend:
Keep dashboard on localhost (
127.0.0.1)Use nginx or Apache as a reverse proxy with:
TLS/HTTPS termination
Basic authentication or OAuth2
Configure firewall rules to restrict access
# Example nginx reverse proxy with auth
server {
listen 443 ssl;
server_name dashboard.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
auth_basic "Dashboard Access";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}🔒 Sandboxed Environments
For sandboxed environments (e.g., Codex CLI with sandbox_mode=workspace-write) where $HOME is read-only, use the SPEC_WORKFLOW_HOME environment variable to redirect global state files to a writable location:
SPEC_WORKFLOW_HOME=/workspace/.spec-workflow-mcp npx -y @pimzino/spec-workflow-mcp@latest /workspace📚 Documentation
Configuration Guide - Command-line options, config files
User Guide - Comprehensive usage examples
Workflow Process - Development workflow and best practices
Interfaces Guide - Dashboard and VSCode extension details
Prompting Guide - Advanced prompting examples
Tools Reference - Complete tools documentation
Development - Contributing and development setup
Troubleshooting - Common issues and solutions
📁 Project Structure
your-project/
.spec-workflow/
approvals/
archive/
specs/
steering/
templates/
user-templates/
config.example.toml🛠️ Development
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev📄 License
GPL-3.0
⭐ Star History
Available Tools
5 toolsapprovalsA
Manage approval requests through the dashboard interface.
Instructions
Use this tool to request, check status, or delete approval requests. The action parameter determines the operation:
'request': Create a new approval request after creating each document
'status': Check the current status of an approval request
'delete': Clean up completed, rejected, or needs-revision approval requests (cannot delete pending requests)
CRITICAL: Only provide filePath parameter for requests - the dashboard reads files directly. Never include document content. Wait for user to review and approve before continuing.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The action to perform: request, status, or delete | |
| projectPath | No | Absolute path to the project root (optional - uses server context path if not provided) | |
| approvalId | No | The ID of the approval request (required for status and delete actions) | |
| title | No | Brief title describing what needs approval (required for request action) | |
| filePath | No | Path to the file that needs approval, relative to project root (required for request action) | |
| type | No | Type of approval request - "document" for content approval, "action" for action approval (required for request) | |
| category | No | Category of the approval request - "spec" for specifications, "steering" for steering documents (required for request) | |
| categoryName | No | Name of the spec or "steering" for steering documents (required for request) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and adds significant behavioral context beyond the schema. It discloses critical constraints: dashboard interface usage, filePath-only parameter for requests (no content), deletion restrictions, and workflow dependencies ('Wait for user to review and approve before continuing'). However, it doesn't mention error handling, rate limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and well-structured with clear sections. The first sentence states the purpose, followed by usage instructions and critical warnings. Every sentence adds value, though the 'CRITICAL' section could be more concise by integrating with the action descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, multiple operations) and lack of annotations/output schema, the description provides substantial context about usage patterns, constraints, and workflow integration. It covers the main behavioral aspects but doesn't address potential edge cases, error responses, or the format of status results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 some value by clarifying action-specific parameter requirements (e.g., 'Only provide filePath parameter for requests', 'approvalId required for status and delete', 'title required for request'), but doesn't provide additional semantic context beyond what's already documented in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Manage approval requests through the dashboard interface' and lists specific operations (request, check status, delete). It distinguishes from siblings by focusing on approval management rather than logging, spec status, or workflow guidance. However, it doesn't explicitly contrast with each sibling tool's specific domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use this tool to request, check status, or delete approval requests' with clear action-specific rules. It specifies when to use each action (e.g., 'request' after creating documents, 'delete' for completed/rejected/needs-revision requests) and includes critical exclusions ('cannot delete pending requests', 'Never include document content').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log-implementationA
Record comprehensive implementation details for a completed task.
⚠️ CRITICAL: Artifacts are REQUIRED. This creates a searchable knowledge base that future AI agents use to discover existing code and avoid duplication.
WHY DETAILED LOGGING MATTERS
Future AI agents (and future you) will use grep/ripgrep to search implementation logs before implementing new tasks. Complete logs prevent:
❌ Creating duplicate API endpoints
❌ Reimplementing existing components
❌ Duplicating utility functions and business logic
❌ Breaking established integration patterns
Incomplete logs = Duplicated code = Technical debt
REQUIRED FIELDS
artifacts (REQUIRED - Object)
Contains structured data about what was implemented. Must include relevant artifact types:
apiEndpoints (array of API endpoint objects)
When new API endpoints are created/modified, document:
method: HTTP method (GET, POST, PUT, DELETE, PATCH)
path: Route path (e.g., "/api/specs/:name/logs")
purpose: What this endpoint does
requestFormat: Request body/query params format (JSON schema or example)
responseFormat: Response structure (JSON schema or example)
location: File path and line number (e.g., "src/server.ts:245")
Example:
{
"method": "GET",
"path": "/api/specs/:name/implementation-log",
"purpose": "Retrieve implementation logs with optional filtering",
"requestFormat": "Query params: taskId (string, optional), search (string, optional)",
"responseFormat": "{ entries: ImplementationLogEntry[] }",
"location": "src/dashboard/server.ts:245"
}components (array of component objects)
When reusable UI components are created, document:
name: Component name
type: Framework type (React, Vue, Svelte, etc.)
purpose: What the component does
location: File path
props: Props interface or type signature
exports: What it exports (array of export names)
Example:
{
"name": "LogsPage",
"type": "React",
"purpose": "Main dashboard page for viewing implementation logs with search and filtering",
"location": "src/modules/pages/LogsPage.tsx",
"props": "{ specs: any[], selectedSpec: string, onSelect: (value: string) => void }",
"exports": ["LogsPage (default)"]
}functions (array of function objects)
When utility functions are created, document:
name: Function name
purpose: What it does
location: File path and line
signature: Function signature (params and return type)
isExported: Whether it can be imported
Example:
{
"name": "searchLogs",
"purpose": "Search implementation logs by keyword",
"location": "src/dashboard/implementation-log-manager.ts:156",
"signature": "(searchTerm: string) => Promise<ImplementationLogEntry[]>",
"isExported": true
}classes (array of class objects)
When classes are created, document:
name: Class name
purpose: What the class does
location: File path
methods: List of public methods
isExported: Whether it can be imported
Example:
{
"name": "ImplementationLogManager",
"purpose": "Manages CRUD operations for implementation logs",
"location": "src/dashboard/implementation-log-manager.ts",
"methods": ["loadLog", "addLogEntry", "getAllLogs", "searchLogs", "getTaskStats"],
"isExported": true
}integrations (array of integration objects)
Document how frontend connects to backend:
description: How components connect to APIs
frontendComponent: Which component initiates the connection
backendEndpoint: Which API endpoint is called
dataFlow: Describe the data flow (e.g., "User clicks → API call → State update → Re-render")
Example:
{
"description": "LogsPage fetches logs via REST API and subscribes to WebSocket for real-time updates",
"frontendComponent": "LogsPage",
"backendEndpoint": "GET /api/specs/:name/implementation-log",
"dataFlow": "Component mount → API fetch → Display logs → WebSocket subscription → Real-time updates on new entries"
}GOOD EXAMPLE (Include ALL relevant artifacts)
Task: "Implemented logs dashboard with real-time updates"
{
"taskId": "2.3",
"summary": "Implemented real-time implementation logs dashboard with filtering, search, and WebSocket updates",
"artifacts": {
"apiEndpoints": [
{
"method": "GET",
"path": "/api/specs/:name/implementation-log",
"purpose": "Retrieve implementation logs with optional filtering",
"requestFormat": "Query params: taskId (string, optional), search (string, optional)",
"responseFormat": "{ entries: ImplementationLogEntry[] }",
"location": "src/dashboard/server.ts:245"
}
],
"components": [
{
"name": "LogsPage",
"type": "React",
"purpose": "Main dashboard page for viewing implementation logs with search and filtering",
"location": "src/modules/pages/LogsPage.tsx",
"props": "None (uses React Router params)",
"exports": ["LogsPage (default)"]
}
],
"classes": [
{
"name": "ImplementationLogManager",
"purpose": "Manages CRUD operations for implementation logs",
"location": "src/dashboard/implementation-log-manager.ts",
"methods": ["loadLog", "addLogEntry", "getAllLogs", "searchLogs", "getTaskStats"],
"isExported": true
}
],
"integrations": [
{
"description": "LogsPage fetches logs via REST API and subscribes to WebSocket for real-time updates",
"frontendComponent": "LogsPage",
"backendEndpoint": "GET /api/specs/:name/implementation-log",
"dataFlow": "Component mount → API fetch → Display logs → WebSocket subscription → Real-time updates on new entries"
}
]
},
"filesModified": ["src/dashboard/server.ts"],
"filesCreated": ["src/modules/pages/LogsPage.tsx"],
"statistics": { "linesAdded": 650, "linesRemoved": 15, "filesChanged": 2 }
}BAD EXAMPLE (Don't do this)
❌ Empty artifacts - Future agents learn nothing:
{
"taskId": "2.3",
"summary": "Added endpoint and page",
"artifacts": {},
"filesModified": ["server.ts"],
"filesCreated": ["LogsPage.tsx"]
}❌ Vague summary with no structured data:
{
"taskId": "2.3",
"summary": "Implemented features",
"artifacts": {},
"filesModified": ["server.ts", "app.tsx"]
}Instructions
After completing a task, review what you implemented
Identify all artifacts (APIs, components, functions, classes, integrations)
Document each with full details and locations
Include ALL the information - be thorough!
Future agents depend on this data quality
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | No | Absolute path to the project root (optional - uses server context path if not provided) | |
| specName | Yes | Name of the specification | |
| taskId | Yes | Task ID (e.g., "1", "1.2", "3.1.4") | |
| summary | Yes | Brief summary of what was implemented | |
| filesModified | Yes | List of files that were modified | |
| filesCreated | Yes | List of files that were created | |
| statistics | Yes | Code statistics for the implementation | |
| artifacts | Yes | REQUIRED: Structured data about implemented artifacts (APIs, components, functions, classes, integrations). See tool description for detailed format. |
TDQS
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 thoroughly explains that this tool creates persistent records for future searchability, emphasizes the critical requirement of artifacts, and details the consequences of misuse (technical debt from duplication). It also implicitly indicates this is a write operation (recording details) without contradicting any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly verbose with extensive examples, markdown formatting, and repetitive emphasis. While the front-loaded purpose is clear, the length (multiple sections like '# WHY DETAILED LOGGING MATTERS', '# REQUIRED FIELDS', examples) reduces conciseness. Some content (e.g., detailed bad examples) could be condensed without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, nested objects) and lack of annotations/output schema, the description is highly complete. It covers the tool's purpose, usage context, parameter details (especially for 'artifacts'), behavioral implications, and examples. The only minor gap is no explicit mention of authentication or error handling, but this is reasonable for a logging tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 significant value by elaborating on the 'artifacts' parameter with detailed sub-field requirements (e.g., apiEndpoints, components), examples, and formatting guidelines. However, it doesn't provide additional context for other parameters like 'projectPath' or 'statistics' beyond what the schema already describes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: 'Record comprehensive implementation details for a completed task' and emphasizes creating 'a searchable knowledge base that future AI agents use to discover existing code and avoid duplication.' This clearly distinguishes it from sibling tools like approvals or spec-status, which appear unrelated to logging implementation artifacts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 this tool: 'After completing a task, review what you implemented' and 'Identify all artifacts (APIs, components, functions, classes, integrations).' It also includes strong warnings about when not to use it (e.g., 'Incomplete logs = Duplicated code = Technical debt') and contrasts good vs. bad examples to guide proper usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spec-statusA
Display comprehensive specification progress overview.
Instructions
Call when resuming work on a spec or checking overall completion status. Shows which phases are complete and task implementation progress. After viewing status, read tasks.md directly to see all tasks and their status markers ([ ] pending, [-] in-progress, [x] completed).
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | No | Absolute path to the project root (optional - uses server context path if not provided) | |
| specName | Yes | Name of the specification |
TDQS
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 describes what the tool does (displays progress overview, shows completion status) and mentions the relationship to tasks.md for detailed task status. However, it doesn't disclose important behavioral aspects like whether this is a read-only operation, what format the output takes, whether it requires specific permissions, or if there are any rate limits or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two main sections: a purpose statement and usage instructions. The first sentence clearly states the core function. The instructions section is useful but could be more concise. Overall, most sentences earn their place, though the relationship to tasks.md could be integrated more smoothly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with no annotations and no output schema, the description provides adequate but incomplete context. It explains the purpose and usage scenarios well, but doesn't describe the output format or behavioral constraints. Given the tool's moderate complexity (status overview with parameters), the description should ideally provide more information about what the agent can expect as a result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it doesn't explain how 'projectPath' and 'specName' interact, what format 'specName' should take, or provide examples. The baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Display comprehensive specification progress overview' with specific verbs ('display', 'shows') and resources ('specification progress overview', 'phases', 'task implementation progress'). It distinguishes from potential siblings by focusing on status overview rather than approvals, logging, or guidance functions. However, it doesn't explicitly differentiate from all sibling tools by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: 'when resuming work on a spec or checking overall completion status.' It also provides guidance on next steps: 'After viewing status, read tasks.md directly to see all tasks and their status markers.' However, it doesn't explicitly state when NOT to use this tool or name specific alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spec-workflow-guideA
Load essential spec workflow instructions to guide feature development from idea to implementation.
Instructions
Call this tool FIRST when users request spec creation, feature development, or mention specifications. This provides the complete workflow sequence (Requirements → Design → Tasks → Implementation) that must be followed. Always load before any other spec tools to ensure proper workflow understanding. Its important that you follow this workflow exactly to avoid errors.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 discloses that this is a read operation ('load') and emphasizes the workflow sequence, but lacks details on behavioral traits like error handling, response format, or performance. It adds some context (e.g., 'to avoid errors'), but is minimal for a tool with no annotation coverage, resulting in an average score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose in the first sentence, followed by structured instructions. It uses bullet points effectively but includes some redundancy (e.g., repeating the importance of calling first). Overall, it's efficient with minimal waste, though could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple, no parameters) and lack of annotations or output schema, the description is reasonably complete. It covers purpose, usage sequence, and importance, but could improve by detailing the workflow content or potential outputs. It's sufficient for basic understanding but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't mention parameters, which is appropriate. A baseline of 4 is applied as it compensates adequately for the lack of parameters by focusing on usage context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Load essential spec workflow instructions to guide feature development from idea to implementation.' It specifies the verb ('load'), resource ('workflow instructions'), and scope ('feature development from idea to implementation'). However, it doesn't explicitly distinguish from sibling tools like 'steering-guide' or 'spec-status', which might also provide guidance, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines: 'Call this tool FIRST when users request spec creation, feature development, or mention specifications' and 'Always load before any other spec tools to ensure proper workflow understanding.' It specifies when to use (for spec-related requests) and when not to use (after other spec tools), with a clear sequence requirement, earning the highest score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
steering-guideA
Load guide for creating project steering documents.
Instructions
Call ONLY when user explicitly requests steering document creation or asks about project architecture docs. Not part of standard spec workflow. Provides templates and guidance for product.md, tech.md, and structure.md creation. Its important that you follow this workflow exactly to avoid errors.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 mentions that the tool 'Provides templates and guidance' and emphasizes following the workflow 'exactly to avoid errors,' which hints at behavioral constraints. However, it lacks details on what 'errors' might occur, whether it's read-only or mutative, or any permissions/rate limits, leaving gaps in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the main purpose, followed by instructions. It uses two paragraphs efficiently, with no wasted sentences. However, the second paragraph could be slightly more concise by combining some points, but overall, it's clear and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0 parameters, the description provides good usage guidelines and purpose clarity. However, it lacks details on what the 'guide' output entails (e.g., format, content), and the behavioral aspects are under-specified. For a tool with no structured data, this leaves some contextual gaps, making it adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't discuss parameters, which is appropriate. However, it could slightly improve by noting the lack of inputs, but this is minor; thus, a baseline score of 4 is given for adequate handling in a parameterless context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Load guide for creating project steering documents' and specifies the resources involved ('templates and guidance for product.md, tech.md, and structure.md creation'). However, it doesn't explicitly differentiate from sibling tools like 'spec-workflow-guide' beyond stating 'Not part of standard spec workflow,' which is somewhat indirect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines: 'Call ONLY when user explicitly requests steering document creation or asks about project architecture docs. Not part of standard spec workflow.' It clearly defines when to use the tool and distinguishes it from alternatives by noting it's not part of the standard workflow, though it doesn't name specific sibling tools.
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.
14 tool updates
v1.0.0- Added
approvals - Removed
create-spec-doc - Removed
create-steering-doc - Removed
delete-approval - Removed
get-approval-status - Removed
get-spec-context - Removed
get-steering-context - Removed
get-template-context - Added
log-implementation - Removed
manage-tasks - Removed
refresh-tasks - Removed
request-approval - Removed
spec-list - Changed
spec-status2 fields changed- changed
Input schema / properties / projectPath / descriptionPrevious value: -"Absolute path to the project root"New value: +"Absolute path to the project root (optional - uses server context path if not provided)" - changed
Input schema / requiredPrevious value: -[ - "projectPath", - "specName" -]New value: +[ + "specName" +]
14 tool updates
- First observed
create-spec-doc - First observed
create-steering-doc - First observed
delete-approval - First observed
get-approval-status - First observed
get-spec-context - First observed
get-steering-context - First observed
get-template-context - First observed
manage-tasks - First observed
refresh-tasks - First observed
request-approval - First observed
spec-list - First observed
spec-status - First observed
spec-workflow-guide - First observed
steering-guide
TDQS
Each tool has a distinct, non-overlapping purpose: approvals manages approval requests, log-implementation records implementation details, spec-status shows progress, spec-workflow-guide provides workflow instructions, and steering-guide handles steering documents. The descriptions clearly differentiate their roles, with no ambiguity in selection.
Naming is mixed with no clear pattern: 'approvals' and 'spec-status' use noun phrases, 'log-implementation' uses a verb-noun format, and 'spec-workflow-guide' and 'steering-guide' use noun-noun compounds. While readable, the conventions vary without a consistent verb_noun or other predictable structure.
With 5 tools, this is well-scoped for a spec workflow server. Each tool serves a specific function in the workflow lifecycle (e.g., guidance, logging, approvals, status tracking), and none feel redundant or missing for the domain, making the count appropriate.
The toolset covers key aspects of spec workflow management: guidance (spec-workflow-guide), progress tracking (spec-status), implementation logging (log-implementation), approvals (approvals), and steering documents (steering-guide). A minor gap is the lack of a tool for directly creating or editing spec tasks, but agents can work around this by reading files as indicated.
Maintenance
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
AI-powered spec-to-task decomposition and execution orchestration for coding agents.
Project registry, behavioral specs, and engineering threads for AI coding agent workflows.
Turn PRDs and product ideas into structured specs so coding agents build your intent, not theirs.
AI-native project management for tasks, docs, collaboration, and agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceImplements GitHub's Spec-Driven Development methodology, transforming natural language requirements into executable specifications, technical plans, and ordered task lists with contract-based validation and progress tracking.272MIT
- AlicenseBqualityDmaintenanceEnables spec-driven development with task tracking, approval workflows, and real-time progress monitoring through OpenSpec CLI functionality. Includes a web dashboard for visual management of change proposals and specifications.4012631MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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.4MIT
- AlicenseAqualityCmaintenanceEnables AI coding tools to follow a structured spec-driven development workflow with three phases: requirements, design, and tasks, ensuring approval before advancing.10MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Pimzino/spec-workflow-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server