Skip to main content
The Model Context Protocol (MCP) is an open source project that welcomes contributions from the community. This guide walks you through everything you need to get started.

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)
Verify your setup:
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 the modelcontextprotocol 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
You can find the current list of maintainers in the 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

Replace YOUR-USERNAME with your GitHub username.
3

Install dependencies

This installs the tools needed for schema generation, documentation building, and validation.
4

Verify everything works