MCP Project Orchestrator
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Supports containerized deployment using Docker, with specific container configurations for testing and development workflows.
Integrates with GitHub Actions for CI/CD pipelines, including automated testing, container image building, and deployment workflows.
Generates visual diagrams using the Mermaid tool to help visualize project architecture and implementation strategies in the generated documentation.
mcp-project-orchestrator
Overview
The mcp-project-orchestrator is an MCP server designed to assist with the orchestration of new software projects by applying standardized templates and best practices in design patterns and software architecture.
This server extracts key information from user input, selects an appropriate project template from a standardized catalogue (with consistent structure for both project and component templates), and generates comprehensive documentation that includes:
- Software Architecture
- Components and Modules
- File Structures and Directory Trees
- Implementation Strategies
- Visual diagrams using the Mermaid tool
Key Features
- Standardized Templates: All project and component templates follow a consistent structure with standardized keys (e.g., 'name', 'type', 'mermaid', 'directory_structure').
- Redundancy Elimination: Redundant or overlapping templates have been consolidated or removed to keep the catalogue clean and configurable.
- Dynamic Configuration: The server loads its configuration from
project_orchestration.json
, which contains MCP-specific settings such as communication protocols and compliance standards. - Documentation Generation: Automatically generated comprehensive README files and Mermaid diagrams help visualize the project architecture and implementation strategy.
How It Works
- Information Extraction: The server analyzes the user's project idea to extract design patterns and architecture concepts.
- Template Selection: Based on the analysis, an appropriate project template is selected from a standardized catalogue (e.g., Microservices Architecture, Event-Driven, Repository Pattern, etc.).
- Project Setup: The server creates the project directory structure and placeholder files based on the chosen template. It populates component files (interfaces, implementations, tests, etc.) with TODO comments, ensuring consistent naming and file organization.
- Documentation and Visualization: The server generates a comprehensive README with details about the software architecture, components, process flows, file structures, and implementation strategy, including visual diagrams generated by the Mermaid tool.
Configuration
The server loads its configuration from project_orchestration.json
, which contains settings such as:
- Communication Protocol: JSON-RPC
- MCP Compliance: true
- Steps for orchestration and orchestration guidelines
This configuration is attached to the FastMCP instance as mcp.config
.
Usage
To run the MCP server, execute:
Ensure that the required JSON template files (e.g., project_templates.json
, component_templates.json
, and project_orchestration.json
) are present in the workspace.
Extending the Server
Developers can extend or modify the orchestration process by:
- Updating the standardized templates (both project and component templates) to change the structure or add new keys as needed.
- Modifying
project_orchestration.json
to update configuration details and orchestration steps. - Customizing the MCP orchestration logic in
project_orchestration.py
to refine project and documentation generation.
License
This project is licensed under the MIT License.
Virtual Environment Setup
To set up the project locally using a virtual environment:
- Create a virtual environment:Copy
- Activate the virtual environment:Copy
- Upgrade pip (optional but recommended):Copy
- Install the package in editable mode:Copy
Running Tests
Run tests using pytest (clear cache to avoid stale data):
Containerized Deployment
A Containerfile is provided for containerizing the application using either Docker or Podman.
Build the Container Image
Choose your preferred container engine:
Using Docker
Using Podman
Run the Container
Using Docker
Using Podman
Testing with Containers
If you're encountering "module not found" errors with containers, use this approach that mounts the project directory:
Podman (Recommended)
Docker
Note: Docker doesn't use the 'localhost/' prefix that Podman uses. Make sure to use the correct image name for your container engine.
GitHub Actions Workflow for CI/CD
A comprehensive GitHub Actions workflow is set up in the .github/workflows/ci-cd.yml
file to automate:
- Code linting and type checking
- Running tests with coverage reporting
- Building and testing container images
- Testing with MCP Inspector
- Publishing to GitHub Container Registry
- Deployment to production (on manual trigger)
Key features of the CI/CD pipeline:
- Validates MCP server functionality with multiple inspector tests
- Tests with both Docker and Podman (disabled by default)
- Includes a dedicated manual validation step
For further details, refer to the workflow file.
MCP Integration
This server follows the Model Context Protocol (MCP) standards:
Resources Exposed
- Project templates catalog
- Component templates catalog
- Generated project structures
Tools Provided
create_project
: Create a new project based on description and design patternslist_templates
: List available project templatesgenerate_documentation
: Generate documentation for existing code
MCP Protocol Compliance
- Implements the MCP server specification version 0.9
- Uses the FastMCP server for communication
- Provides proper error handling and logging
Testing with MCP Inspector
The MCP Inspector is a powerful tool for testing and validating MCP servers. Follow these steps to test your server:
- Install the MCP Inspector:Copy
- Start your MCP server (if not already running):Copy
- Run the MCP Inspector against your server:Copy
- Validate your server:Copy
- Interactive mode for testing tools:Copy
The inspector will:
- Verify your server complies with the MCP protocol
- List the resources and tools your server exposes
- Allow you to interactively call tools and test functionality
- Provide detailed error information if issues are found
For more information on MCP Inspector, visit MCP Inspector Documentation.
Interactive Testing with MCP Inspector
The interactive mode of MCP Inspector is particularly useful for manual testing:
In interactive mode, you can:
- View all available tools and resources
- Execute tools with custom parameters
- View detailed server responses
- Test edge cases and error handling
Common MCP Inspector commands:
MCP Server Validation Commands
You can run various validation checks on your MCP server:
For CI/CD environments, you can run non-interactive validation:
Convenience Testing Script
A convenience script is provided to run all the key MCP test commands in sequence:
The script:
- Builds the container image
- Runs the container
- Installs MCP Inspector if needed
- Runs basic connectivity test
- Runs validation test
- Cleans up containers
Claude Desktop Integration
To add this MCP server to Claude Desktop, you have two options:
Option 1: Using the Setup Script (Recommended)
We provide a convenient setup script that automatically configures Claude Desktop for you:
For Container Integration Issues
If you're experiencing "module not found" errors, use these specialized scripts for container-based integration with volume mounting:
These scripts:
- Mount your project directory into the container
- Use the container's Python interpreter to run the module
- Override the entrypoint to ensure the module is found
Using the Shell Script (Easiest)
A shell script wrapper is provided that automatically finds a suitable Python interpreter and handles environment issues:
Using the Python Script Directly
If you prefer to use the Python script directly:
If you encounter Python environment errors when running the Python script directly, try using a specific Python interpreter:
The script will:
- Detect your OS and locate the Claude Desktop config file
- Check if the necessary tools are installed
- Generate the appropriate configuration
- Save it to the correct location
Run with --help
to see all available options:
Option 2: Manual Configuration
- Install Claude Desktop if you haven't already
- Open Claude Desktop and go to Settings > Developer > Edit Config
- Add the configuration that matches your setup:
Option 1: Using the installed package (recommended)
First, make sure the package is installed globally or in a virtual environment that Claude Desktop can access:
Then add this to your claude_desktop_config.json
:
Option 2: Using Docker
If you've published the image to GitHub Container Registry:
Option 3: Using Podman
- Restart Claude Desktop to access the Project Orchestrator tools in the tools menu (hammer icon).
Troubleshooting Claude Desktop Integration
If you encounter errors with the MCP server in Claude Desktop:
- Check the logs at:
- MacOS:
~/Library/Logs/Claude/mcp-server-project-orchestrator.log
- Windows:
%APPDATA%\Claude\logs\mcp-server-project-orchestrator.log
- MacOS:
- Common issues and solutions:
- Module not found errors: Make sure your Python path includes the package or use the containerized version with the specialized scripts provided
- Port conflicts: Change the port number if 8080 is already in use
- Permission issues: Run Claude Desktop with appropriate permissions to execute commands
- Container issues: Ensure the container image is built correctly and accessible to Claude Desktop
For more information on MCP, visit modelcontextprotocol.io.
This server cannot be installed
An MCP server that assists with the orchestration of new software projects by applying standardized templates and best practices in design patterns and software architecture.
- Overview
- Key Features
- How It Works
- Configuration
- Usage
- Extending the Server
- License
- Virtual Environment Setup
- Running Tests
- Containerized Deployment
- GitHub Actions Workflow for CI/CD
- MCP Integration