Before You Begin
Prerequisites
Before contributing, ensure you have the following installed and ready:- Git - For cloning repositories and submitting changes
- Node.js 24+ - Required for building and testing our projects
- npm - Comes with Node.js, used for dependency management
- GitHub account - For submitting pull requests and issues
- Language-specific tooling - If contributing to an SDK, you’ll need the appropriate development environment for that language (e.g., Python, Rust, Go)
These commands work the same on macOS, Linux, and Windows, so you’re good to
go on any platform.
Repository Structure
MCP spans multiple repositories in themodelcontextprotocol organization on GitHub. Here are
a few notable sub-projects worth checking out:
Throughout this guide, specification repository refers to
modelcontextprotocol/modelcontextprotocol, which contains the protocol spec, this documentation
site, and Spec Enhancement Proposals (SEPs).
Project Roles
MCP follows a governance model with different levels of responsibility:- Contributors - Anyone who files issues, submits PRs, or participates in discussions (that’s you!)
- Maintainers - Steward specific areas like SDKs, documentation, or Working Groups
- Core Maintainers - Guide overall project direction, review SEPs, and oversee the specification
MAINTAINERS.md
file.
Maintainers are here to help you succeed! Don’t hesitate to reach out if you have questions or
need guidance on your contribution.
Your First Contribution
Start here if you are new to MCP and contributing to its ecosystem.While we use the specification repository as an example, the key patterns are
applicable to other MCP repos as well.
Step 1: Set Up Your Environment
Set up your local environment so you can test and validate changes before submitting them.1
Fork the repository
Click the Fork button on the repository page to create your own copy. This gives you a personal workspace where you can make changes without affecting the main project.
2
Clone your fork
YOUR-USERNAME with your GitHub username.3
Install dependencies
4
Verify everything works