Functional Requirements MCP Server
Enables developers to generate structured software documentation including user stories, requirements, technical specifications, and more using AI-powered prompts via the MCP protocol.
README
Functional Requirements MCP Server
A Model Context Protocol (MCP) server that provides AI-powered prompts for generating user stories, requirements, technical specifications, and other software development documentation.
šÆ Overview
This MCP server offers a collection of specialized prompts designed to streamline the software development lifecycle by automating the creation of structured documentation. It focuses on functional requirements analysis and technical documentation generation.
⨠Features
Core Functionality
- User Story Creation: Generate detailed user stories with proper formatting and structure
- Requirements Generation: Convert user stories into functional and non-functional requirements
- Technical Specifications: Transform requirements into detailed technical documentation
- Meeting Documentation: Extract action items and decisions from meeting notes
- Release Notes: Create professional release documentation
- Architecture Decision Records (ADRs): Document technical decisions and rationale
Structured Data Models
- UserStory Model: Comprehensive data structure with MoSCoW prioritization
- Step-by-Step Processes: Support for normal and exceptional flow documentation
- Actor Management: Track stakeholders and system users
š Quick Start
Prerequisites
- Python 3.13 or higher
- uv package manager
- Claude Desktop or compatible MCP client
Installation
-
Clone the repository:
git clone <repository-url> cd Coding_MCP -
Install dependencies:
uv sync -
Configure Claude Desktop: Add this server configuration to your
claude_desktop_config.json:{ "mcpServers": { "Functional Requirements": { "command": "C:\\Users\\<your-username>\\AppData\\Local\\Programs\\Python\\Python311\\Scripts\\uv.EXE", "args": [ "run", "--with", "mcp[cli]", "mcp", "run", "C:\\Users\\<your-username>\\source\\repos\\Coding_MCP\\main.py" ] } } } -
Restart Claude Desktop to load the new server.
š Usage Guide
Available Prompts
1. Create User Story
Purpose: Generate structured user stories from contextual information.
Usage: Provide context about a feature or requirement, and the prompt will create a properly formatted user story following the "As a [actor], I want [feature] so that [benefit]" convention.
Output: JSON-structured user story with:
- Unique identifier and name
- Definition following user story conventions
- Pre/post conditions
- Actors involved
- Normal and exceptional process flows
- MoSCoW prioritization with explanation
- Related requirements
2. Create Requirements
Purpose: Transform user stories into detailed functional and non-functional requirements.
Input: UserStory object Output: Comprehensive requirements covering:
- Functional requirements (system capabilities)
- Non-functional requirements (performance, security, usability)
- Technical constraints and dependencies
- Acceptance criteria for testing
3. Technical Specification Writer
Purpose: Convert requirements into detailed technical specifications.
Output Structure:
- Overview and Scope
- System Architecture
- Detailed Design (APIs, data models, database design)
- Implementation Details
- Integration Points
- Quality Attributes
4. Meeting Summary Generator
Purpose: Extract structured information from meeting notes.
Output Includes:
- Key decisions made
- Action items with owners and due dates
- Discussion points and open questions
- Next steps and dependencies
- Parking lot items
5. Release Notes Creator
Purpose: Generate professional, user-facing release documentation.
Sections Include:
- What's New (features and enhancements)
- Improvements (performance, UX, developer experience)
- Bug Fixes
- Security Updates
- Breaking Changes with migration guides
- Technical details and acknowledgments
6. Architecture Decision Record (ADR)
Purpose: Document technical decisions with proper rationale.
Structure:
- Status and decision makers
- Context and problem statement
- Options considered with pros/cons
- Decision rationale
- Implementation plan
- Consequences and risks
- Compliance considerations
šļø Project Structure
Coding_MCP/
āāā main.py # MCP server with prompt definitions
āāā pyproject.toml # Project configuration and dependencies
āāā uv.lock # Dependency lock file
āāā models/
ā āāā user_story.py # UserStory and Step data models
ā āāā requirements.py # Requirements-related models
āāā prompts/ # (Future: Additional prompt templates)
āāā __pycache__/ # Python bytecode cache
š§ Development
Local Development Setup
-
Activate the virtual environment:
uv venv .venv\Scripts\activate -
Install in development mode:
uv pip install -e . -
Run the server directly (for testing):
uv run python main.py
Testing the Server
You can test individual prompts by running the server locally and using the MCP client tools:
# Run the server
uv run mcp run main.py
# In another terminal, test prompts
uv run mcp call main.py prompts/list
Adding New Prompts
-
Define your prompt function in
main.py:@mcp.prompt(title="your prompt title", description="Description of what it does") def your_prompt_function(input_parameter: str) -> str: return f"""Your prompt template here with {input_parameter}""" -
Follow the established patterns for structured output and clear instructions.
-
Test your prompt thoroughly before deployment.
š Data Models
UserStory Model
The UserStory class provides a comprehensive structure for capturing user requirements:
class UserStory(BaseModel):
id: str # Unique identifier
name: str # Concise title
definition: str # "As a..., I want..., so that..."
pre_condition: Optional[str] # Required state before execution
post_condition: Optional[str] # Expected state after completion
actors: List[str] # Involved stakeholders
normal_flow: List[Step] # Happy path steps
exceptional_flows: List[Step] # Error/alternative paths
moscow: MoSCoW # Priority (Must/Should/Could/Won't Have)
moscow_explanation: Optional[str] # Priority rationale
requirements: List[str] # Related requirement references
Step Model
For process flow documentation:
class Step(BaseModel):
id: str # Step identifier (e.g., "1", "2a", "3b")
action: str # Description of what happens
š Security Considerations
- The server processes text input only - no file system access
- All prompts generate documentation, not executable code
- Input validation is handled by Pydantic models
- No external API calls or network access required
š¤ Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-prompt - Add your changes and tests
- Commit with clear messages:
git commit -m "Add new prompt for..." - Push and create a pull request
Code Style
- Follow PEP 8 for Python code
- Use type hints for all function parameters and returns
- Add docstrings for new models and complex functions
- Maintain consistent prompt formatting and structure
š License
[Add your license information here]
š Troubleshooting
Common Issues
Server not appearing in Claude Desktop:
- Verify the path in
claude_desktop_config.jsonis correct - Ensure uv is installed and accessible
- Check that Python 3.11+ is installed
- Restart Claude Desktop after configuration changes
Import errors:
- Run
uv syncto ensure all dependencies are installed - Verify you're using Python 3.11 or higher
Prompt not working as expected:
- Check the prompt formatting and structure
- Ensure input parameters match the expected types
- Review the output for any parsing errors
Getting Help
- Check the MCP documentation
- Review existing prompt implementations in
main.py - Create an issue for bugs or feature requests
š® Future Enhancements
- Additional prompt templates for specific domains
- Integration with project management tools
- Export capabilities for generated documentation
- Batch processing for multiple user stories
- Custom template support
- Integration with version control systems
Made with ā¤ļø for better software documentation
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.