MCP Spec Generator
Click on "Deploy 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., "@MCP Spec GeneratorGenerate spec from /Documents/HU-045-login.docx"
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.
MCP Spec Generator
Servidor MCP que convierte documentos de Historias de Usuario a archivos .md con el formato SPEC_KIT_TEMPLATE del workspace de alfred-egit.
¿Para qué sirve?
Automatiza el proceso de documentación técnica: tomas cualquier texto con Historias de Usuario (HUs) — ya sea copiado de Notion, un Google Doc, un correo, un PDF o escrito a mano — y el servidor lo transforma en un archivo spec.md estructurado y listo para el equipo de desarrollo.
El archivo generado sigue el formato estándar del proyecto:
workspace/specs/007-nombre-feature/
├── HU-023-nombre-feature-SPEC.md ← documento generado
└── tasks/
└── tasks.md ← placeholder de tareasEl nombre del archivo toma el identificador de la HU directamente del documento cargado y le agrega el sufijo -SPEC.md. Por ejemplo:
HU cargada | Archivo generado |
|
|
|
|
|
|
Related MCP server: wassden
Requisitos
Node.js 22+
Claude Code CLI
ANTHROPIC_API_KEYen tu entorno
Instalación
cd ~/mcp-spec-generator
npm installEl servidor ya está registrado en ~/.claude/settings.json. Se activa automáticamente al iniciar Claude Code.
Inputs soportados
El MCP acepta documentos de HU en cualquiera de estas formas:
Archivos
Formato | Extensión | Cómo entregarlo |
Word |
| Ruta absoluta al archivo |
| Ruta absoluta al archivo | |
Markdown |
| Ruta absoluta al archivo |
Texto plano |
| Ruta absoluta al archivo |
Ejemplo en Claude Code:
"Genera la spec desde este archivo: /Users/openclaw/Desktop/HU-023-pedidos.docx"
Texto directo
Pega el contenido del documento directamente en el chat. Funciona con texto copiado desde:
Notion
Google Docs
Confluence
Correo electrónico
Cualquier fuente de texto
Ejemplo en Claude Code:
"Convierte esta HU en spec: [pegar texto aquí]"
Herramientas disponibles
generate_spec
Convierte un documento de Historia de Usuario en un {HU-name}-SPEC.md y lo guarda en workspace/specs/.
Parámetro | Requerido | Descripción |
| Uno de los dos | Ruta absoluta a un archivo |
| Uno de los dos | Texto plano del documento de HU |
| No | Nombre de la HU para el archivo (ej. |
| No | Slug del nombre de la carpeta (ej. |
| No | Número de 3 dígitos (ej. |
Usa
file_pathouser_story_text, no ambos.
Formatos de archivo soportados:
Formato | Extensión |
Word |
|
| |
Markdown |
|
Texto plano |
|
Prioridad para el nombre del archivo de salida:
Valor explícito de
hu_nameIdentificador extraído del texto (
HU-XXX,US-XXX)Título del documento generado por Claude como fallback
Ejemplos de uso en Claude Code:
"Genera la spec desde este archivo: /Desktop/HU-023-pedidos.docx"
"Convierte esta Historia de Usuario en una spec: [pegar texto]"
Claude llamará generate_spec automáticamente y guardará el archivo.
list_specs
Lista todas las specs existentes en workspace/specs/ con su estado.
Ejemplo:
- 001-api-gateway (spec.md: ✅)
- 004-whatsapp (spec.md: ✅)
- 007-pagos-online (spec.md: ✅)get_spec_template
Devuelve el contenido del SPEC_KIT_TEMPLATE vigente. Útil para consultar la estructura sin abrir archivos.
read_spec
Lee el contenido de una spec existente.
Parámetro | Requerido | Descripción |
| Sí | Nombre de la carpeta (ej. |
Formato de salida (SPEC_KIT_TEMPLATE)
Cada spec generada incluye estas secciones:
Contexto de Negocio — problema u oportunidad que motiva el requerimiento
Actores del Sistema — usuarios, sistemas y servicios involucrados
Flujos Principales — pasos del proceso con diagramas cuando aplica
Integraciones — APIs y sistemas externos
Criterios de Aceptación — checklist con
- [ ]para cada condiciónEstimación de Complejidad — Baja / Media / Alta con justificación
Observaciones Adicionales — notas, restricciones y aclaraciones
Configuración
El servidor lee la variable de entorno SPECS_DIR para saber dónde guardar las specs:
// ~/.claude/settings.json
{
"mcpServers": {
"spec-generator": {
"command": "node",
"args": ["/Users/openclaw/mcp-spec-generator/index.js"],
"env": {
"SPECS_DIR": "/Users/openclaw/alfred-egit/workspace/specs"
}
}
}
}Para apuntar a otro workspace, cambia SPECS_DIR en ese archivo.
Flujo típico de trabajo
1. Product Owner entrega documento de HUs
(.docx / .pdf / texto en Notion / correo / etc.)
↓
2. En Claude Code, según el formato:
Archivo: "Genera la spec desde: /Desktop/HU-023.docx"
Texto directo: "Convierte esta HU en spec: [pegar texto]"
↓
3. El MCP extrae el texto del documento (si es archivo)
y llama a Claude API para estructurar el contenido
↓
4. Se crea: workspace/specs/NNN-feature/HU-023-SPEC.md
workspace/specs/NNN-feature/tasks/tasks.md
↓
5. Revisar, ajustar y aprobar en equipo
↓
6. Completar tasks/tasks.md con tareas de implementaciónAvailable Tools
4 toolsgenerate_specA
Converts a User Story document into a SPEC_KIT formatted .md file named {hu-name}-SPEC.md and saves it to workspace/specs/. Returns the file path.
| Name | Required | Description | Default |
|---|---|---|---|
| hu_name | No | Name of the HU/US used for the file name (e.g. 'HU-016-whatsapp'). If omitted, it is extracted from the document content. | |
| file_path | No | Absolute path to a .docx, .pdf, .md or .txt file containing the User Story. Use this OR user_story_text, not both. | |
| spec_number | No | 3-digit spec number (e.g. '007'). If omitted, the next available number is used. | |
| feature_slug | No | Short slug for the feature folder name (e.g. 'pagos-online'). If omitted, it is inferred from the content. | |
| user_story_text | Yes | Plain text content of the User Story document. Use this OR file_path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose key traits: it writes a file to workspace/specs/, follows a naming convention, and returns the path. It does not mention authentication needs, rate limits, or overwrite behavior (what happens if a file with the same name exists), leaving a residual gap.
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?
Two sentences, front-loaded with the core conversion behavior and then the side effect/return. Every clause earns its place with no repetition of the schema's field 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?
For a 5-parameter file-generating tool with no output schema, the description covers purpose, destination, naming, and return value. It stops short of explaining overwrite behavior and permission requirements, but the core contract an agent needs is present.
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 explains all five parameters, including that file_path and user_story_text are alternatives. The description adds the {hu-name}-SPEC.md naming convention, which reinforces the hu_name semantics, but otherwise does not extend parameter meaning beyond the schema. Baseline 3 is appropriate.
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 specifies a concrete verb (converts), a source artifact (User Story document), a target format (SPEC_KIT formatted .md file), a naming convention ({hu-name}-SPEC.md), a destination (workspace/specs/), and a return value. This clearly distinguishes it from read_spec, list_specs, and get_spec_template, which read or list rather than generate.
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 implies when to use it (when you have a User Story document to convert into a spec), but it never states when not to use it or how it differs from siblings such as get_spec_template. An agent could reasonably infer the context, but routing among get_spec_template, list_specs, and read_spec remains undocumented.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_spec_templateB
Returns the SPEC_KIT_TEMPLATE used in the alfred-egit workspace
| 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 of behavioral disclosure. It implies a read-only fetch of a fixed constant but never states that it is read-only, non-destructive, or whether the template is static or workspace-dependent; nothing about the return shape is given.
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?
A single compact sentence with no filler, front-loading the verb and the returned artifact. It is efficiently stated, though arguably too terse to be fully self-sufficient.
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?
With no output schema covering the return value, the description should describe what the returned template looks like or how it is consumed, and it does not. For a zero-param, zero-annotation tool on a shared template concept, an agent is left guessing at format and purpose.
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 takes zero parameters, so the baseline is 4 and there is nothing for the description to clarify. No parameter meaning is missing.
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?
States a specific verb ("Returns") and a clearly named resource (the SPEC_KIT_TEMPLATE), so an agent can tell this apart from list_specs/read_spec at a glance. It adds the workspace scope (alfred-egit), but does not explicitly contrast itself against the sibling tools.
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?
There is no statement of when to use this tool versus read_spec or generate_spec, and no prerequisites or exclusions. The agent must infer that this fetches a static template rather than a user spec.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_specsB
Lists existing spec folders in the alfred-egit workspace/specs directory
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies a read-only directory listing, but says nothing about permissions, whether the listing recurses, ordering, or what happens when the directory is empty or missing.
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?
A single front-loaded sentence with the verb first and the scope appended; every word earns its place with no padding.
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 zero-parameter, no-annotation, no-output-schema tool the description is minimally viable, but it leaves the return content (folder names? paths? spec files inside?) unstated, which is the main thing an agent needs to chain into read_spec.
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 takes zero parameters, so per the rubric the baseline is 4. The description correctly adds no parameter noise, though it also gives no clue about the output shape an agent might filter on client-side.
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 gives a specific verb (Lists) and resource (spec folders) and scopes it to the workspace/specs directory, which is enough to distinguish it from read_spec and generate_spec. It stops short of explicitly contrasting itself with those siblings, which would be needed for a 5.
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?
There is no statement of when to call this versus the siblings — e.g. 'call this first to discover available specs before read_spec'. Usage is only loosely inferable, and no exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_specB
Reads the content of an existing spec file (*-SPEC.md) inside a spec folder
| Name | Required | Description | Default |
|---|---|---|---|
| folder | Yes | Spec folder name (e.g. '004-whatsapp') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and 'Reads' only implicitly conveys a non-destructive operation. It discloses nothing about error behavior for a missing folder, nor about pagination or return shape, which leaves real gaps for a tool with zero annotation coverage.
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?
A single front-loaded sentence with zero filler that puts the verb and resource first and the file constraint second. Nothing is wasted.
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 one-parameter read tool with no output schema and no annotations, the definition is adequate but thin: it does not state what the read returns, how a missing spec is signaled, or which sibling to prefer. An agent can call it, but not confidently.
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 coverage is 100% and the single 'folder' parameter is already documented with an example, so the baseline is 4. The description reinforces that the folder argument scopes to a spec folder, adding marginal meaning over the schema.
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?
States a specific verb ('Reads') plus the resource ('content of an existing spec file') and constrains it with the file pattern (*-SPEC.md) and location (spec folder). It is distinct from sibling list_specs and generate_spec, though it never names them explicitly.
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?
There is no guidance on when to use this versus the siblings (list_specs, get_spec_template, generate_spec) or on what happens if the spec does not exist. The word 'existing' faintly implies a prerequisite, but nothing is spelled out.
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.
4 tool updates
v1.0.0- First observed
generate_spec - First observed
get_spec_template - First observed
list_specs - First observed
read_spec
TDQS
Scored across 4 tools
Each tool performs a distinct operation: retrieval of template, listing specs, reading a spec, and generating a spec. Their purposes are clear and non-overlapping, making selection straightforward.
All tools follow a consistent snake_case naming pattern with verb_noun structure (get_spec_template, list_specs, read_spec, generate_spec). This predictability aids tool selection.
Four tools are appropriate for the narrow scope of spec template management and generation. It is slightly thin but covers essential operations without redundancy.
The surface covers listing, reading, getting a template, and generating specs, but lacks update or delete operations for specs. Users cannot manage spec lifecycle completely, which may cause workarounds.
Maintenance
Related MCP Connectors
Turn PRDs and product ideas into structured specs so coding agents build your intent, not theirs.
Convert docs to agent-readable specs with criteria and constraints. $0.10/convert.
Generate and validate a .specs/ bundle for your repo, then hand it to your AI coding agent
Convert PDF, DOCX, HTML, and URLs to clean, LLM-ready markdown with tables preserved
Related MCP Servers
- FlicenseBqualityCmaintenanceReads README files from the file system and automatically generates structured Product Requirements Documents (PRDs), saving users time on documentation tasks.19-
- AlicenseNot gradedqualityDmaintenanceA Spec-Driven Development toolkit that transforms LLMs into development agents by providing expert-crafted prompts for generating structured specifications and validating documents across the Requirements → Design → Tasks → Code workflow.1MIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables automated project analysis and structured development specification generation. Supports multiple export formats and integrates with AI models for comprehensive project documentation and validation.-
- 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.8 npm2MIT