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
访问服务器

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

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选