-
Notifications
You must be signed in to change notification settings - Fork 19
Contribution
Thank you for your interest in contributing to the IoWarp MCPs project! This document provides guidelines for contributing new MCP servers and improvements to existing ones.
To add a new MCP server:
-
Create directory: Add your server to
mcps/YourNewServer/
-
Add pyproject.toml: Include entry point like
your-server-mcp = "module:main"
- That's it! The launcher will auto-discover it
No manual mapping required - the system automatically finds all servers in the mcps/
folder.
All MCP implementations follow this development lifecycle:
Status Options:
- active development: Core functionality being built
- descriptions: Needs description updates
- documentation: Ready for documentation phase
- testing: Ready for testing phase
-
Prerequisites
- Python 3.10 or higher
- uv package manager
- Linux/macOS environment (for optimal compatibility)
-
Clone and Setup
git clone https://github.com/iowarp/scientific-mcps.git cd scientific-mcps # Create and activate environment python3 -m venv mcp-server source mcp-server/bin/activate # On macOS/Linux # Install uv pip install uv
-
Install Dependencies
# Install all MCPs uv pip install --requirement pyproject.toml # Or install specific MCPs as needed
Each MCP server should follow this structure:
mcps/YourNewServer/
├── pyproject.toml # Package configuration with entry point
├── README.md # Server-specific documentation
├── src/
│ └── your_server/
│ ├── __init__.py
│ └── server.py # Main server implementation
└── tests/ # Test files
-
Test with Universal Client:
# Install client dependencies uv pip install -r bin/requirements.txt # Run with your preferred LLM provider python bin/wrp.py --conf=bin/confs/Gemini.yaml
-
Test Direct Server Execution:
cd mcps/YourNewServer uv run your-server-mcp
-
Test with Unified Launcher:
uvx iowarp-mcps your-server
- Follow Python PEP 8 style guidelines
- Include comprehensive docstrings
- Add type hints where appropriate
- Write tests for your MCP functionality
- Update documentation as needed
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-new-mcp
) - Make your changes
- Test thoroughly
- Commit your changes (
git commit -m 'Add YourNewServer MCP'
) - Push to the branch (
git push origin feature/your-new-mcp
) - Create a Pull Request
- Provide a clear description of the changes
- Include any relevant issue numbers
- Ensure all tests pass
- Update documentation if needed
- Follow the existing code style
For questions or help with contributions:
- Create an issue in the GitHub repository
- Check existing documentation in individual MCP README files
- Review the main project README for setup instructions
For detailed implementation guidance, see these focused guides:
- MCP Architecture - Understanding MCP protocol and components
- Testing Guidelines - Unit and integration testing strategies
- Documentation Standards - README requirements and code documentation
- Contributing Workflow - Issue creation and development process
By contributing to this project, you agree that your contributions will be licensed under the same license as the project.