SpecPilot
Server Details
Generate and validate a .specs/ bundle for your repo, then hand it to your AI coding agent
- Status
- Healthy
- Uptime
- 100.0% over 38 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- girishr/SpecPilot
- GitHub Stars
- 38
- Server Listing
- SpecPilot
TDQS
Scored across 2 tools
The two tools have clearly distinct roles: specpilot_next_questions retrieves gated onboarding questions, while specpilot_generate_specs produces the final file set. There is no meaningful overlap, and the descriptions make the sequential relationship explicit.
Both names share the specpilot_ prefix and snake_case formatting, which is predictable. However, 'next_questions' is a noun phrase rather than the verb_noun pattern established by 'generate_specs', a minor deviation.
Only two tools for a spec-generation workflow, with an enormous amount of procedure compressed into the descriptions. The surface is thin but arguably matches the narrow two-phase domain (gather answers, emit files), making it borderline rather than clearly wrong.
The lifecycle is covered end-to-end via next_questions then generate_specs, and the agent writes files from returned payloads. But there is no way to regenerate or update a single step, validate existing specs, or reset/cancel the onboarding flow, leaving notable gaps.
Available Tools
2 toolsspecpilot_generate_specsSpecPilot: generate the .specs/ filesRead-onlyIdempotentInspect
Generates the complete SpecPilot .specs/ file set plus the matching IDE rules and slash-command files from a full answer set - identical to what the SpecPilot web chat produces for the same answers. Requires projectName and projectDescription. Returns the files to write and the steps to follow after writing them.
| Name | Required | Description | Default |
|---|---|---|---|
| answers | Yes | The complete SpecPilot answer set to generate from - everything collected through specpilot_next_questions, whose schema describes each field. projectName and projectDescription are required; every other field falls back to a sensible default. |
Output Schema
| Name | Required | Description |
|---|---|---|
| files | Yes | Every file to write - spec files, the .specs/ README, and IDE or repository config. |
| fileCount | Yes | How many files were generated. |
| nextSteps | Yes | What to do after writing the files, including where each path belongs. |
specpilot_next_questionsSpecPilot: next onboarding questionsRead-onlyIdempotentInspect
Returns the still-unanswered SpecPilot onboarding questions of the next incomplete step, gated by the answers supplied so far - questions that do not apply to this kind of project are omitted, and options are filtered, badged or flagged the same way the SpecPilot web chat would. Stateless: send every answer collected so far on each call.
Procedure: (1) Decide whether the repository already has real source code and set isNewBuild accordingly - it changes which onboarding analysis is generated at the end. (2) Infer what the repo already answers rather than asking: platforms from the dependency manifests and layout, languageOverride, ideAgent (you are the IDE - claudecode, cursor, copilot, codex, windsurf), handle from git config or the origin remote, projectName from the package manifest or folder name, and projectDescription from the README only if it plainly says what the project is. (3) Call this tool with what you have; answer what the repo makes obvious and ask the developer the rest, a whole step per message. Send an empty value for an optional question the developer declines, or it will be asked again; send todoSentinel verbatim when they do not know yet. For projectDescription, sending one of the returned chip labels exactly is what infers projectCategory and gates every later question - free prose infers nothing. Confirm any pre-seeded value rather than accepting it silently. (4) Loop until done is true, then call specpilot_generate_specs and follow its nextSteps for where each file goes.
| Name | Required | Description | Default |
|---|---|---|---|
| answers | No | Every SpecPilot onboarding answer collected so far. The server is stateless, so resend the whole object on every call; omit it entirely on the first call to get step 1. |
Output Schema
| Name | Required | Description |
|---|---|---|
| done | Yes | True when every applicable question is answered and specpilot_generate_specs can be called. |
| step | No | Number of the step these questions belong to. |
| answers | Yes | Every answer as the server now understands it, including defaults and seeded values. Send this back on the next call. |
| questions | Yes | The still-unanswered questions of the next incomplete step. Empty when done. |
| stepLabel | No | Human-readable name of that step, e.g. "Scale & deploy". |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
specpilot_generate_specs39 fields changed- changed
Input schema / properties / answers / descriptionPrevious value: -"The complete SpecPilot answer set to generate from - everything collected through specpilot_next_questions. projectName and projectDescription are required; every other field falls back to a sensible default."New value: +"The complete SpecPilot answer set to generate from - everything collected through specpilot_next_questions, whose schema describes each field. projectName and projectDescription are required; every other field falls back to a sensible default." - removed
Input schema / properties / answers / properties / accessControl / descriptionRemoved value: -"The access control model. Drives the security spec auth/authorization section and the permission model." - removed
Input schema / properties / answers / properties / accessibilityNotes / descriptionRemoved value: -"Anything further on accessibility or constraints, in free text." - removed
Input schema / properties / answers / properties / activeUsers / descriptionRemoved value: -"Roughly how many active users are expected, as a range." - removed
Input schema / properties / answers / properties / apiResponseTime / descriptionRemoved value: -"Target API response time." - removed
Input schema / properties / answers / properties / apiStyle / descriptionRemoved value: -"API style - REST, GraphQL, gRPC or tRPC. Shapes how the architecture spec documents client-server communication." - removed
Input schema / properties / answers / properties / authStrategy / descriptionRemoved value: -"Auth approach - a protocol built in-house (JWT/OAuth/SAML) or a managed service (Clerk, Auth0, Firebase). Feeds the security spec." - removed
Input schema / properties / answers / properties / availability / descriptionRemoved value: -"Availability SLA target as a fraction of uptime; higher percentages allow far less downtime per year." - removed
Input schema / properties / answers / properties / buildTimeline / descriptionRemoved value: -"How long the build is expected to take." - removed
Input schema / properties / answers / properties / cicd / descriptionRemoved value: -"CI/CD practices - automatically running tests and deploying on every change." - removed
Input schema / properties / answers / properties / compliance / descriptionRemoved value: -"Compliance regimes that apply - GDPR, HIPAA, SOC 2. Pick by the actual situation (EU users, health data, payments), since getting it wrong has legal consequences." - removed
Input schema / properties / answers / properties / constraintDescription / descriptionRemoved value: -"More detail on whatever was named in technicalConstraints." - removed
Input schema / properties / answers / properties / customUserType / descriptionRemoved value: -"A user type in free text, when none of the userTypes options fit." - removed
Input schema / properties / answers / properties / dataSyncStrategy / descriptionRemoved value: -"How conflicting local and server state gets reconciled once the device is back online." - removed
Input schema / properties / answers / properties / databases / descriptionRemoved value: -"Database kinds in use - SQL, NoSQL, cache/key-value, vector. As many as apply." - removed
Input schema / properties / answers / properties / deploymentTargets / descriptionRemoved value: -"Where this ships - cloud hosting, a package registry, a browser store. The option list depends on the project type." - removed
Input schema / properties / answers / properties / handle / descriptionRemoved value: -"The developer GitHub handle. Optional; it namespaces generated task IDs (e.g. CD-jsmith-001). Infer from git config or the origin remote." - removed
Input schema / properties / answers / properties / ideAgent / descriptionRemoved value: -"The editor or AI IDE in use - claudecode, cursor, copilot, codex, windsurf. You are the IDE, so set this yourself; it decides which rules and config files are generated." - removed
Input schema / properties / answers / properties / integrations / descriptionRemoved value: -"Third-party integrations keyed by category, e.g. { payments: [\"stripe\"] }. Only categories relevant to the project type apply." - removed
Input schema / properties / answers / properties / isNewBuild / descriptionRemoved value: -"True for a greenfield project, false when adding onto an existing codebase. Decides which onboarding analysis is generated at the end." - removed
Input schema / properties / answers / properties / languageOverride / descriptionRemoved value: -"Primary language, when it should override what SpecPilot infers from the repo." - removed
Input schema / properties / answers / properties / localDatabases / descriptionRemoved value: -"On-device stores backing offline support. Leave empty when offline is not needed." - removed
Input schema / properties / answers / properties / nonGoals / descriptionRemoved value: -"What this project explicitly will NOT do. Becomes the non-goals section of the specs." - removed
Input schema / properties / answers / properties / offlineSupport / descriptionRemoved value: -"Whether this has to work offline. Set automatically when localDatabases is non-empty." - removed
Input schema / properties / answers / properties / otherApis / descriptionRemoved value: -"External APIs or services not covered by integrations." - removed
Input schema / properties / answers / properties / platforms / descriptionRemoved value: -"Platforms this should run on, e.g. web, ios, android, desktop. Infer from the dependency manifests and repo layout." - removed
Input schema / properties / answers / properties / projectCategory / descriptionRemoved value: -"Project archetype. Normally inferred from projectDescription when it exactly matches a returned chip label - send it only if you already know it." - removed
Input schema / properties / answers / properties / projectDescription / descriptionRemoved value: -"One line saying what the project is. Required by specpilot_generate_specs. Sending one of the chip labels returned by specpilot_next_questions verbatim is what infers projectCategory and gates every later question; free prose infers nothing." - removed
Input schema / properties / answers / properties / projectName / descriptionRemoved value: -"Short name for the project. Required by specpilot_generate_specs. Infer from the package manifest or the folder name." - removed
Input schema / properties / answers / properties / realtimeEnabled / descriptionRemoved value: -"Whether anything updates live without a refresh. Set automatically when realtimeTypes is non-empty." - removed
Input schema / properties / answers / properties / realtimeTypes / descriptionRemoved value: -"Realtime transports - WebSockets, SSE, polling. Leave empty when nothing needs to update live." - removed
Input schema / properties / answers / properties / scaleTier / descriptionRemoved value: -"Expected scale of the system. Drives infrastructure and architecture choices." - removed
Input schema / properties / answers / properties / securityConcerns / descriptionRemoved value: -"Security measures to plan for - encryption, rate limiting, audit logging." - removed
Input schema / properties / answers / properties / specialConsiderations / descriptionRemoved value: -"Cross-cutting concerns that apply, such as accessibility, internationalisation or offline support." - removed
Input schema / properties / answers / properties / systemPattern / descriptionRemoved value: -"Architecture pattern - monolith, modular monolith, or microservices." - removed
Input schema / properties / answers / properties / teamSize / descriptionRemoved value: -"How many people are building this." - removed
Input schema / properties / answers / properties / technicalConstraints / descriptionRemoved value: -"Hard constraints - budget, existing infrastructure, legacy systems, a fixed deadline." - removed
Input schema / properties / answers / properties / testingStrategy / descriptionRemoved value: -"Testing approaches this project will use." - removed
Input schema / properties / answers / properties / userTypes / descriptionRemoved value: -"Who is going to use this system, e.g. end users, admins, internal staff."
- Changed
specpilot_next_questions20 fields changed- changed
Input schema / properties / answers / properties / accessControl / descriptionPrevious value: -"The access control model. Drives the security spec auth/authorization section and the permission model."New value: +"The access control model." - changed
Input schema / properties / answers / properties / apiStyle / descriptionPrevious value: -"API style - REST, GraphQL, gRPC or tRPC. Shapes how the architecture spec documents client-server communication."New value: +"API style - REST, GraphQL, gRPC or tRPC." - changed
Input schema / properties / answers / properties / authStrategy / descriptionPrevious value: -"Auth approach - a protocol built in-house (JWT/OAuth/SAML) or a managed service (Clerk, Auth0, Firebase). Feeds the security spec."New value: +"Auth approach - a protocol built in-house (JWT/OAuth/SAML) or a managed service (Clerk, Auth0, Firebase)." - changed
Input schema / properties / answers / properties / availability / descriptionPrevious value: -"Availability SLA target as a fraction of uptime; higher percentages allow far less downtime per year."New value: +"Availability SLA target as a fraction of uptime." - changed
Input schema / properties / answers / properties / compliance / descriptionPrevious value: -"Compliance regimes that apply - GDPR, HIPAA, SOC 2. Pick by the actual situation (EU users, health data, payments), since getting it wrong has legal consequences."New value: +"Compliance regimes that apply - GDPR, HIPAA, SOC 2. Pick by the actual situation (EU users, health data, payments)." - changed
Input schema / properties / answers / properties / handle / descriptionPrevious value: -"The developer GitHub handle. Optional; it namespaces generated task IDs (e.g. CD-jsmith-001). Infer from git config or the origin remote."New value: +"The developer GitHub handle. Optional. Infer from git config or the origin remote." - changed
Input schema / properties / answers / properties / ideAgent / descriptionPrevious value: -"The editor or AI IDE in use - claudecode, cursor, copilot, codex, windsurf. You are the IDE, so set this yourself; it decides which rules and config files are generated."New value: +"The editor or AI IDE in use - claudecode, cursor, copilot, codex, windsurf. You are the IDE, so set this yourself." - changed
Input schema / properties / answers / properties / isNewBuild / descriptionPrevious value: -"True for a greenfield project, false when adding onto an existing codebase. Decides which onboarding analysis is generated at the end."New value: +"True for a greenfield project, false when adding onto an existing codebase." - changed
Input schema / properties / answers / properties / nonGoals / descriptionPrevious value: -"What this project explicitly will NOT do. Becomes the non-goals section of the specs."New value: +"What this project explicitly will NOT do." - changed
Input schema / properties / answers / properties / scaleTier / descriptionPrevious value: -"Expected scale of the system. Drives infrastructure and architecture choices."New value: +"Expected scale of the system." - changed
Output schema / properties / answers / properties / accessControl / descriptionPrevious value: -"The access control model. Drives the security spec auth/authorization section and the permission model."New value: +"The access control model." - changed
Output schema / properties / answers / properties / apiStyle / descriptionPrevious value: -"API style - REST, GraphQL, gRPC or tRPC. Shapes how the architecture spec documents client-server communication."New value: +"API style - REST, GraphQL, gRPC or tRPC." - changed
Output schema / properties / answers / properties / authStrategy / descriptionPrevious value: -"Auth approach - a protocol built in-house (JWT/OAuth/SAML) or a managed service (Clerk, Auth0, Firebase). Feeds the security spec."New value: +"Auth approach - a protocol built in-house (JWT/OAuth/SAML) or a managed service (Clerk, Auth0, Firebase)." - changed
Output schema / properties / answers / properties / availability / descriptionPrevious value: -"Availability SLA target as a fraction of uptime; higher percentages allow far less downtime per year."New value: +"Availability SLA target as a fraction of uptime." - changed
Output schema / properties / answers / properties / compliance / descriptionPrevious value: -"Compliance regimes that apply - GDPR, HIPAA, SOC 2. Pick by the actual situation (EU users, health data, payments), since getting it wrong has legal consequences."New value: +"Compliance regimes that apply - GDPR, HIPAA, SOC 2. Pick by the actual situation (EU users, health data, payments)." - changed
Output schema / properties / answers / properties / handle / descriptionPrevious value: -"The developer GitHub handle. Optional; it namespaces generated task IDs (e.g. CD-jsmith-001). Infer from git config or the origin remote."New value: +"The developer GitHub handle. Optional. Infer from git config or the origin remote." - changed
Output schema / properties / answers / properties / ideAgent / descriptionPrevious value: -"The editor or AI IDE in use - claudecode, cursor, copilot, codex, windsurf. You are the IDE, so set this yourself; it decides which rules and config files are generated."New value: +"The editor or AI IDE in use - claudecode, cursor, copilot, codex, windsurf. You are the IDE, so set this yourself." - changed
Output schema / properties / answers / properties / isNewBuild / descriptionPrevious value: -"True for a greenfield project, false when adding onto an existing codebase. Decides which onboarding analysis is generated at the end."New value: +"True for a greenfield project, false when adding onto an existing codebase." - changed
Output schema / properties / answers / properties / nonGoals / descriptionPrevious value: -"What this project explicitly will NOT do. Becomes the non-goals section of the specs."New value: +"What this project explicitly will NOT do." - changed
Output schema / properties / answers / properties / scaleTier / descriptionPrevious value: -"Expected scale of the system. Drives infrastructure and architecture choices."New value: +"Expected scale of the system."
2 tool updates
- Changed
specpilot_generate_specs2 fields changed- added
Input schema / properties / answers / descriptionAdded value: +"The complete SpecPilot answer set to generate from - everything collected through specpilot_next_questions. projectName and projectDescription are required; every other field falls back to a sensible default." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "fileCount": { + "description": "How many files were generated.", + "type": "number" + }, + "files": { + "description": "Every file to write - spec files, the .specs/ README, and IDE or repository config.", + "items": { + "additionalProperties": false, + "properties": { + "content": { + "description": "Full file contents to write verbatim.", + "type": "string" + }, + "path": { + "description": "Path to write, relative to the repository root. Do not rename it.", + "type": "string" + } + }, + "required": [ + "path", + "content" + ], + "type": "object" + }, + "type": "array" + }, + "nextSteps": { + "description": "What to do after writing the files, including where each path belongs.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "files", + "fileCount", + "nextSteps" + ], + "type": "object" +}
- Changed
specpilot_next_questions2 fields changed- added
Input schema / properties / answers / descriptionAdded value: +"Every SpecPilot onboarding answer collected so far. The server is stateless, so resend the whole object on every call; omit it entirely on the first call to get step 1." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "additionalProperties": false, + "properties": { + "answers": { + "additionalProperties": false, + "description": "Every answer as the server now understands it, including defaults and seeded values. Send this back on the next call.", + "properties": { + "accessControl": { + "description": "The access control model. Drives the security spec auth/authorization section and the permission model.", + "type": "string" + }, + "accessibilityNotes": { + "description": "Anything further on accessibility or constraints, in free text.", + "type": "string" + }, + "activeUsers": { + "description": "Roughly how many active users are expected, as a range.", + "type": "string" + }, + "apiResponseTime": { + "description": "Target API response time.", + "type": "string" + }, + "apiStyle": { + "description": "API style - REST, GraphQL, gRPC or tRPC. Shapes how the architecture spec documents client-server communication.", + "type": "string" + }, + "authStrategy": { + "description": "Auth approach - a protocol built in-house (JWT/OAuth/SAML) or a managed service (Clerk, Auth0, Firebase). Feeds the security spec.", + "type": "string" + }, + "availability": { + "description": "Availability SLA target as a fraction of uptime; higher percentages allow far less downtime per year.", + "type": "string" + }, + "buildTimeline": { + "description": "How long the build is expected to take.", + "type": "string" + }, + "cicd": { + "description": "CI/CD practices - automatically running tests and deploying on every change.", + "items": { + "type": "string" + }, + "type": "array" + }, + "compliance": { + "description": "Compliance regimes that apply - GDPR, HIPAA, SOC 2. Pick by the actual situation (EU users, health data, payments), since getting it wrong has legal consequences.", + "items": { + "type": "string" + }, + "type": "array" + }, + "constraintDescription": { + "description": "More detail on whatever was named in technicalConstraints.", + "type": "string" + }, + "customUserType": { + "description": "A user type in free text, when none of the userTypes options fit.", + "type": "string" + }, + "dataSyncStrategy": { + "description": "How conflicting local and server state gets reconciled once the device is back online.", + "type": "string" + }, + "databases": { + "description": "Database kinds in use - SQL, NoSQL, cache/key-value, vector. As many as apply.", + "items": { + "type": "string" + }, + "type": "array" + }, + "deploymentTargets": { + "description": "Where this ships - cloud hosting, a package registry, a browser store. The option list depends on the project type.", + "items": { + "type": "string" + }, + "type": "array" + }, + "handle": { + "description": "The developer GitHub handle. Optional; it namespaces generated task IDs (e.g. CD-jsmith-001). Infer from git config or the origin remote.", + "type": "string" + }, + "ideAgent": { + "description": "The editor or AI IDE in use - claudecode, cursor, copilot, codex, windsurf. You are the IDE, so set this yourself; it decides which rules and config files are generated.", + "type": "string" + }, + "integrations": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": "Third-party integrations keyed by category, e.g. { payments: [\"stripe\"] }. Only categories relevant to the project type apply.", + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "isNewBuild": { + "description": "True for a greenfield project, false when adding onto an existing codebase. Decides which onboarding analysis is generated at the end.", + "type": "boolean" + }, + "languageOverride": { + "description": "Primary language, when it should override what SpecPilot infers from the repo.", + "type": "string" + }, + "localDatabases": { + "description": "On-device stores backing offline support. Leave empty when offline is not needed.", + "items": { + "type": "string" + }, + "type": "array" + }, + "nonGoals": { + "description": "What this project explicitly will NOT do. Becomes the non-goals section of the specs.", + "type": "string" + }, + "offlineSupport": { + "description": "Whether this has to work offline. Set automatically when localDatabases is non-empty.", + "type": "boolean" + }, + "otherApis": { + "description": "External APIs or services not covered by integrations.", + "type": "string" + }, + "platforms": { + "description": "Platforms this should run on, e.g. web, ios, android, desktop. Infer from the dependency manifests and repo layout.", + "items": { + "type": "string" + }, + "type": "array" + }, + "projectCategory": { + "anyOf": [ + { + "enum": [ + "saas", + "api", + "mobile", + "cli", + "pipeline", + "ml", + "static", + "docs", + "extension", + "library", + "other" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Project archetype. Normally inferred from projectDescription when it exactly matches a returned chip label - send it only if you already know it." + }, + "projectDescription": { + "description": "One line saying what the project is. Required by specpilot_generate_specs. Sending one of the chip labels returned by specpilot_next_questions verbatim is what infers projectCategory and gates every later question; free prose infers nothing.", + "type": "string" + }, + "projectName": { + "description": "Short name for the project. Required by specpilot_generate_specs. Infer from the package manifest or the folder name.", + "type": "string" + }, + "realtimeEnabled": { + "description": "Whether anything updates live without a refresh. Set automatically when realtimeTypes is non-empty.", + "type": "boolean" + }, + "realtimeTypes": { + "description": "Realtime transports - WebSockets, SSE, polling. Leave empty when nothing needs to update live.", + "items": { + "type": "string" + }, + "type": "array" + }, + "scaleTier": { + "description": "Expected scale of the system. Drives infrastructure and architecture choices.", + "type": "string" + }, + "securityConcerns": { + "description": "Security measures to plan for - encryption, rate limiting, audit logging.", + "items": { + "type": "string" + }, + "type": "array" + }, + "specialConsiderations": { + "description": "Cross-cutting concerns that apply, such as accessibility, internationalisation or offline support.", + "items": { + "type": "string" + }, + "type": "array" + }, + "systemPattern": { + "description": "Architecture pattern - monolith, modular monolith, or microservices.", + "type": "string" + }, + "teamSize": { + "description": "How many people are building this.", + "type": "string" + }, + "technicalConstraints": { + "description": "Hard constraints - budget, existing infrastructure, legacy systems, a fixed deadline.", + "items": { + "type": "string" + }, + "type": "array" + }, + "testingStrategy": { + "description": "Testing approaches this project will use.", + "items": { + "type": "string" + }, + "type": "array" + }, + "userTypes": { + "description": "Who is going to use this system, e.g. end users, admins, internal staff.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "done": { + "description": "True when every applicable question is answered and specpilot_generate_specs can be called.", + "type": "boolean" + }, + "questions": { + "description": "The still-unanswered questions of the next incomplete step. Empty when done.", + "items": { + "additionalProperties": false, + "properties": { + "allowCustom": { + "description": "True when a value outside the listed options is accepted.", + "type": "boolean" + }, + "field": { + "description": "The answers field this question fills - send the reply under this key.", + "type": "string" + }, + "groups": { + "description": "Choices arranged into groups, for grouped questions.", + "items": { + "additionalProperties": false, + "properties": { + "group": { + "description": "Group heading.", + "type": "string" + }, + "items": { + "description": "Options within this group.", + "items": { + "additionalProperties": false, + "properties": { + "badge": { + "description": "recommended marks a suggested choice; flagged marks one that needs care.", + "enum": [ + "recommended", + "flagged" + ], + "type": "string" + }, + "description": { + "description": "Longer explanation of what choosing this means.", + "type": "string" + }, + "group": { + "description": "Group this option belongs to.", + "type": "string" + }, + "id": { + "description": "Value to send back for this option.", + "type": "string" + }, + "label": { + "description": "Human-readable label shown to the developer.", + "type": "string" + }, + "warning": { + "description": "Caveat to surface to the developer before they pick this.", + "type": "string" + } + }, + "required": [ + "id", + "label" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "group", + "items" + ], + "type": "object" + }, + "type": "array" + }, + "id": { + "description": "Stable question id.", + "type": "string" + }, + "optional": { + "description": "True when the question may be answered with an empty value to decline it.", + "type": "boolean" + }, + "options": { + "description": "Choices for a select-style question.", + "items": { + "additionalProperties": false, + "properties": { + "badge": { + "description": "recommended marks a suggested choice; flagged marks one that needs care.", + "enum": [ + "recommended", + "flagged" + ], + "type": "string" + }, + "description": { + "description": "Longer explanation of what choosing this means.", + "type": "string" + }, + "group": { + "description": "Group this option belongs to.", + "type": "string" + }, + "id": { + "description": "Value to send back for this option.", + "type": "string" + }, + "label": { + "description": "Human-readable label shown to the developer.", + "type": "string" + }, + "warning": { + "description": "Caveat to surface to the developer before they pick this.", + "type": "string" + } + }, + "required": [ + "id", + "label" + ], + "type": "object" + }, + "type": "array" + }, + "prompt": { + "description": "The question text, rendered against the answers so far.", + "type": "string" + }, + "required": { + "description": "True when a non-empty answer is needed to move on.", + "type": "boolean" + }, + "todoSentinel": { + "description": "Send this exact value when the developer does not know yet.", + "type": "string" + }, + "type": { + "description": "Shape of the expected answer, e.g. text, single-select, multi-select.", + "type": "string" + } + }, + "required": [ + "id", + "field", + "type", + "prompt" + ], + "type": "object" + }, + "type": "array" + }, + "step": { + "description": "Number of the step these questions belong to.", + "type": "number" + }, + "stepLabel": { + "description": "Human-readable name of that step, e.g. \"Scale & deploy\".", + "type": "string" + } + }, + "required": [ + "done", + "questions", + "answers" + ], + "type": "object" +}
2 tool updates
- Changed
specpilot_generate_specs38 fields changed- added
Input schema / properties / answers / properties / accessControl / descriptionAdded value: +"The access control model. Drives the security spec auth/authorization section and the permission model." - added
Input schema / properties / answers / properties / accessibilityNotes / descriptionAdded value: +"Anything further on accessibility or constraints, in free text." - added
Input schema / properties / answers / properties / activeUsers / descriptionAdded value: +"Roughly how many active users are expected, as a range." - added
Input schema / properties / answers / properties / apiResponseTime / descriptionAdded value: +"Target API response time." - added
Input schema / properties / answers / properties / apiStyle / descriptionAdded value: +"API style - REST, GraphQL, gRPC or tRPC. Shapes how the architecture spec documents client-server communication." - added
Input schema / properties / answers / properties / authStrategy / descriptionAdded value: +"Auth approach - a protocol built in-house (JWT/OAuth/SAML) or a managed service (Clerk, Auth0, Firebase). Feeds the security spec." - added
Input schema / properties / answers / properties / availability / descriptionAdded value: +"Availability SLA target as a fraction of uptime; higher percentages allow far less downtime per year." - added
Input schema / properties / answers / properties / buildTimeline / descriptionAdded value: +"How long the build is expected to take." - added
Input schema / properties / answers / properties / cicd / descriptionAdded value: +"CI/CD practices - automatically running tests and deploying on every change." - added
Input schema / properties / answers / properties / compliance / descriptionAdded value: +"Compliance regimes that apply - GDPR, HIPAA, SOC 2. Pick by the actual situation (EU users, health data, payments), since getting it wrong has legal consequences." - added
Input schema / properties / answers / properties / constraintDescription / descriptionAdded value: +"More detail on whatever was named in technicalConstraints." - added
Input schema / properties / answers / properties / customUserType / descriptionAdded value: +"A user type in free text, when none of the userTypes options fit." - added
Input schema / properties / answers / properties / dataSyncStrategy / descriptionAdded value: +"How conflicting local and server state gets reconciled once the device is back online." - added
Input schema / properties / answers / properties / databases / descriptionAdded value: +"Database kinds in use - SQL, NoSQL, cache/key-value, vector. As many as apply." - added
Input schema / properties / answers / properties / deploymentTargets / descriptionAdded value: +"Where this ships - cloud hosting, a package registry, a browser store. The option list depends on the project type." - added
Input schema / properties / answers / properties / handle / descriptionAdded value: +"The developer GitHub handle. Optional; it namespaces generated task IDs (e.g. CD-jsmith-001). Infer from git config or the origin remote." - added
Input schema / properties / answers / properties / ideAgent / descriptionAdded value: +"The editor or AI IDE in use - claudecode, cursor, copilot, codex, windsurf. You are the IDE, so set this yourself; it decides which rules and config files are generated." - added
Input schema / properties / answers / properties / integrations / descriptionAdded value: +"Third-party integrations keyed by category, e.g. { payments: [\"stripe\"] }. Only categories relevant to the project type apply." - added
Input schema / properties / answers / properties / isNewBuild / descriptionAdded value: +"True for a greenfield project, false when adding onto an existing codebase. Decides which onboarding analysis is generated at the end." - added
Input schema / properties / answers / properties / languageOverride / descriptionAdded value: +"Primary language, when it should override what SpecPilot infers from the repo." - added
Input schema / properties / answers / properties / localDatabases / descriptionAdded value: +"On-device stores backing offline support. Leave empty when offline is not needed." - added
Input schema / properties / answers / properties / nonGoals / descriptionAdded value: +"What this project explicitly will NOT do. Becomes the non-goals section of the specs." - added
Input schema / properties / answers / properties / offlineSupport / descriptionAdded value: +"Whether this has to work offline. Set automatically when localDatabases is non-empty." - added
Input schema / properties / answers / properties / otherApis / descriptionAdded value: +"External APIs or services not covered by integrations." - added
Input schema / properties / answers / properties / platforms / descriptionAdded value: +"Platforms this should run on, e.g. web, ios, android, desktop. Infer from the dependency manifests and repo layout." - added
Input schema / properties / answers / properties / projectCategory / descriptionAdded value: +"Project archetype. Normally inferred from projectDescription when it exactly matches a returned chip label - send it only if you already know it." - added
Input schema / properties / answers / properties / projectDescription / descriptionAdded value: +"One line saying what the project is. Required by specpilot_generate_specs. Sending one of the chip labels returned by specpilot_next_questions verbatim is what infers projectCategory and gates every later question; free prose infers nothing." - added
Input schema / properties / answers / properties / projectName / descriptionAdded value: +"Short name for the project. Required by specpilot_generate_specs. Infer from the package manifest or the folder name." - added
Input schema / properties / answers / properties / realtimeEnabled / descriptionAdded value: +"Whether anything updates live without a refresh. Set automatically when realtimeTypes is non-empty." - added
Input schema / properties / answers / properties / realtimeTypes / descriptionAdded value: +"Realtime transports - WebSockets, SSE, polling. Leave empty when nothing needs to update live." - added
Input schema / properties / answers / properties / scaleTier / descriptionAdded value: +"Expected scale of the system. Drives infrastructure and architecture choices." - added
Input schema / properties / answers / properties / securityConcerns / descriptionAdded value: +"Security measures to plan for - encryption, rate limiting, audit logging." - added
Input schema / properties / answers / properties / specialConsiderations / descriptionAdded value: +"Cross-cutting concerns that apply, such as accessibility, internationalisation or offline support." - added
Input schema / properties / answers / properties / systemPattern / descriptionAdded value: +"Architecture pattern - monolith, modular monolith, or microservices." - added
Input schema / properties / answers / properties / teamSize / descriptionAdded value: +"How many people are building this." - added
Input schema / properties / answers / properties / technicalConstraints / descriptionAdded value: +"Hard constraints - budget, existing infrastructure, legacy systems, a fixed deadline." - added
Input schema / properties / answers / properties / testingStrategy / descriptionAdded value: +"Testing approaches this project will use." - added
Input schema / properties / answers / properties / userTypes / descriptionAdded value: +"Who is going to use this system, e.g. end users, admins, internal staff."
- Changed
specpilot_next_questions38 fields changed- added
Input schema / properties / answers / properties / accessControl / descriptionAdded value: +"The access control model. Drives the security spec auth/authorization section and the permission model." - added
Input schema / properties / answers / properties / accessibilityNotes / descriptionAdded value: +"Anything further on accessibility or constraints, in free text." - added
Input schema / properties / answers / properties / activeUsers / descriptionAdded value: +"Roughly how many active users are expected, as a range." - added
Input schema / properties / answers / properties / apiResponseTime / descriptionAdded value: +"Target API response time." - added
Input schema / properties / answers / properties / apiStyle / descriptionAdded value: +"API style - REST, GraphQL, gRPC or tRPC. Shapes how the architecture spec documents client-server communication." - added
Input schema / properties / answers / properties / authStrategy / descriptionAdded value: +"Auth approach - a protocol built in-house (JWT/OAuth/SAML) or a managed service (Clerk, Auth0, Firebase). Feeds the security spec." - added
Input schema / properties / answers / properties / availability / descriptionAdded value: +"Availability SLA target as a fraction of uptime; higher percentages allow far less downtime per year." - added
Input schema / properties / answers / properties / buildTimeline / descriptionAdded value: +"How long the build is expected to take." - added
Input schema / properties / answers / properties / cicd / descriptionAdded value: +"CI/CD practices - automatically running tests and deploying on every change." - added
Input schema / properties / answers / properties / compliance / descriptionAdded value: +"Compliance regimes that apply - GDPR, HIPAA, SOC 2. Pick by the actual situation (EU users, health data, payments), since getting it wrong has legal consequences." - added
Input schema / properties / answers / properties / constraintDescription / descriptionAdded value: +"More detail on whatever was named in technicalConstraints." - added
Input schema / properties / answers / properties / customUserType / descriptionAdded value: +"A user type in free text, when none of the userTypes options fit." - added
Input schema / properties / answers / properties / dataSyncStrategy / descriptionAdded value: +"How conflicting local and server state gets reconciled once the device is back online." - added
Input schema / properties / answers / properties / databases / descriptionAdded value: +"Database kinds in use - SQL, NoSQL, cache/key-value, vector. As many as apply." - added
Input schema / properties / answers / properties / deploymentTargets / descriptionAdded value: +"Where this ships - cloud hosting, a package registry, a browser store. The option list depends on the project type." - added
Input schema / properties / answers / properties / handle / descriptionAdded value: +"The developer GitHub handle. Optional; it namespaces generated task IDs (e.g. CD-jsmith-001). Infer from git config or the origin remote." - added
Input schema / properties / answers / properties / ideAgent / descriptionAdded value: +"The editor or AI IDE in use - claudecode, cursor, copilot, codex, windsurf. You are the IDE, so set this yourself; it decides which rules and config files are generated." - added
Input schema / properties / answers / properties / integrations / descriptionAdded value: +"Third-party integrations keyed by category, e.g. { payments: [\"stripe\"] }. Only categories relevant to the project type apply." - added
Input schema / properties / answers / properties / isNewBuild / descriptionAdded value: +"True for a greenfield project, false when adding onto an existing codebase. Decides which onboarding analysis is generated at the end." - added
Input schema / properties / answers / properties / languageOverride / descriptionAdded value: +"Primary language, when it should override what SpecPilot infers from the repo." - added
Input schema / properties / answers / properties / localDatabases / descriptionAdded value: +"On-device stores backing offline support. Leave empty when offline is not needed." - added
Input schema / properties / answers / properties / nonGoals / descriptionAdded value: +"What this project explicitly will NOT do. Becomes the non-goals section of the specs." - added
Input schema / properties / answers / properties / offlineSupport / descriptionAdded value: +"Whether this has to work offline. Set automatically when localDatabases is non-empty." - added
Input schema / properties / answers / properties / otherApis / descriptionAdded value: +"External APIs or services not covered by integrations." - added
Input schema / properties / answers / properties / platforms / descriptionAdded value: +"Platforms this should run on, e.g. web, ios, android, desktop. Infer from the dependency manifests and repo layout." - added
Input schema / properties / answers / properties / projectCategory / descriptionAdded value: +"Project archetype. Normally inferred from projectDescription when it exactly matches a returned chip label - send it only if you already know it." - added
Input schema / properties / answers / properties / projectDescription / descriptionAdded value: +"One line saying what the project is. Required by specpilot_generate_specs. Sending one of the chip labels returned by specpilot_next_questions verbatim is what infers projectCategory and gates every later question; free prose infers nothing." - added
Input schema / properties / answers / properties / projectName / descriptionAdded value: +"Short name for the project. Required by specpilot_generate_specs. Infer from the package manifest or the folder name." - added
Input schema / properties / answers / properties / realtimeEnabled / descriptionAdded value: +"Whether anything updates live without a refresh. Set automatically when realtimeTypes is non-empty." - added
Input schema / properties / answers / properties / realtimeTypes / descriptionAdded value: +"Realtime transports - WebSockets, SSE, polling. Leave empty when nothing needs to update live." - added
Input schema / properties / answers / properties / scaleTier / descriptionAdded value: +"Expected scale of the system. Drives infrastructure and architecture choices." - added
Input schema / properties / answers / properties / securityConcerns / descriptionAdded value: +"Security measures to plan for - encryption, rate limiting, audit logging." - added
Input schema / properties / answers / properties / specialConsiderations / descriptionAdded value: +"Cross-cutting concerns that apply, such as accessibility, internationalisation or offline support." - added
Input schema / properties / answers / properties / systemPattern / descriptionAdded value: +"Architecture pattern - monolith, modular monolith, or microservices." - added
Input schema / properties / answers / properties / teamSize / descriptionAdded value: +"How many people are building this." - added
Input schema / properties / answers / properties / technicalConstraints / descriptionAdded value: +"Hard constraints - budget, existing infrastructure, legacy systems, a fixed deadline." - added
Input schema / properties / answers / properties / testingStrategy / descriptionAdded value: +"Testing approaches this project will use." - added
Input schema / properties / answers / properties / userTypes / descriptionAdded value: +"Who is going to use this system, e.g. end users, admins, internal staff."
2 tool updates
- First observed
specpilot_generate_specs - First observed
specpilot_next_questions
Related MCP Connectors
Turn PRDs and product ideas into structured specs so coding agents build your intent, not theirs.
Turn an idea or meeting transcript into a working single-file AI agent, check it, use it right away.
Turn an idea or meeting transcript into a working single-file AI agent, check it, use it right away.
Turn an idea or meeting transcript into a working single-file AI agent, check it, use it right away.
Related MCP Servers
- AlicenseDqualityDmaintenanceSpec-driven development tool for AI coding assistants that generates specs, validates code compliance, and provides actionable feedback.1129MIT
- AlicenseNot gradedqualityCmaintenanceEnables auditing and drafting of AI agent files (CLAUDE.md, AGENTS.md, Cursor rules) and turning project descriptions into full build specs, with local and API-based tools.11 npmMIT
- AlicenseNot gradedqualityBmaintenanceUnified AI coding-agent framework combining Spec-Driven Development (SDD), AST semantic code reuse, and progressive project memory (.ai/) for Claude Code, Cursor, Windsurf, and Zed.23 npm3MIT
- 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
Glama MCP Gateway
Add one secure layer between your agents and this server.