MCP Contributing Guidance

This document will help you understand how to contribute to our projects, whether you are a scientist looking to add new modules or a developer.

Related Projects

mcp.science: A Collection of Scientific Servers

The mcp.science repository is a community-maintained collection of MCP (Modern Computational Platform) servers specifically packaged for scientific use cases. It contains a variety of powerful tools, such as GROMACS for molecular dynamics and AlphaFold for protein structure prediction, ready to be deployed and used within the MCP ecosystem.

Contributions to this project typically involve packaging a new scientific tool as an MCP server and adding it to the collection, or improving the functionality and efficiency of an existing one. This is the primary way for developers to add new scientific capabilities to the platform.

MCPM and its registry

MCPM is an open source CLI tool for managing MCP servers. It provides a simplified global configuration approach where you install servers once and organize them with profiles, then integrate them into any MCP client. Features include server discovery through a central registry, direct execution, sharing capabilities, and client integration tools.

MCPM Registry, maintained within the same mcpm.sh repository, serves as the central directory for all community-contributed servers (packages). When you use MCPM to search for or install a new scientific tool, it queries this registry. For scientists, contributing to the ecosystem means packaging your work as a server and adding it to this registry, making it discoverable and usable by others.



How to Contribute

mcp.science

If you’re We enthusiastically welcome contributions to MCP.science! You can help with improving the existing servers, adding new servers, or anything that you think will make this project better.

If you are not familiar with GitHub and how to contribute to a open source repository, then it might be a bit of challenging, but it’s still easy for you. We would recommend you to read these first:

In short, you can follow these steps:

  1. Fork the repository to your own GitHub account
  2. Clone the forked repository to your local machine
  3. Create a feature branch (git checkout -b feature/amazing-feature)
  4. Make your changes and commit them (git commit -m 'Add amazing feature'):backhand_index_pointing_left: Click to see more conventions about directory and naming

Please create your new server in the servers folder. For creating a new server folder under repository folder, you can simply run (replace your-new-server with your server name)

uv init --package --no-workspace servers/your-new-server
uv add --directory servers/your-new-server mcp

This will create a new server folder with the necessary files:

servers/your-new-server/ 
├── README.md 
├── pyproject.toml 
└── src 
        └── your_new_server 
        └── __init__.py

You may find there are 2 related names you might see in the config files:

  1. Project name (hyphenated): The folder, project name and script name in pyproject.toml, e.g. your-new-server.
  2. Python package name (snake_case): The folder inside src/, e.g. your_new_server.
  3. Push to the branch (git push origin feature/amazing-feature)
  4. Open a Pull Request

Please make sure your PR adheres to:

  • Clear commit messages
  • Proper documentation updates
  • Test coverage for new features

Contributor Recognition in Subrepos

If you want to recognize contributors for a specific server/subrepo (e.g. servers/gpaw-computation/), you can use the All Contributors CLI in that subdirectory.

More information

Please check the instruction of GitHub repo.



MCPM registry

We’re continually exploring better ways to make your contribution process more convenient.

There are 2 ways to add your server to the registry currently:

1. Create a GitHub Issue

Simply create a new GitHub issue with “MCP Server Submission” template:

We’ll generate the necessary files and create a PR for you

2. Manually submit a Pull Request

For more control over your submission:

  1. Fork this repository
  2. Create a JSON file in mcp-registry/servers/ named [your-server-name].json. The JSON should follow our schema
  3. Validate locally to ensure correct schema: python scripts/validate_manifest.py | grep "your-server-name"
    If validation succeeds, you should see:
    ✓ your-server-name: Valid
    
  4. Submit a pull request

:open_file_folder: Registry Structure

mcp-registry/
├── README.md               # Overview, usage instructions
├── servers/                # Directory containing all registered servers
│   ├── [server-1-name].json   # Server metadata and configuration
│   ├── [server-2-name].json   
│   └── ...
└── schema/                 # Schema definitions
    └── server-schema.json  # JSON Schema for server validation

More information

Please check the instruction of GitHub repo