Functional Requirements MCP Server

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.

Category
Visit Server

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

  1. Clone the repository:

    git clone <repository-url>
    cd Coding_MCP
    
  2. Install dependencies:

    uv sync
    
  3. 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"
          ]
        }
      }
    }
    
  4. 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

  1. Activate the virtual environment:

    uv venv
    .venv\Scripts\activate
    
  2. Install in development mode:

    uv pip install -e .
    
  3. 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

  1. 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}"""
    
  2. Follow the established patterns for structured output and clear instructions.

  3. 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

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/new-prompt
  3. Add your changes and tests
  4. Commit with clear messages: git commit -m "Add new prompt for..."
  5. 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.json is correct
  • Ensure uv is installed and accessible
  • Check that Python 3.11+ is installed
  • Restart Claude Desktop after configuration changes

Import errors:

  • Run uv sync to 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured