Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · mcp

Contributing to MCP changedcommunity/contributing

Nearest release: v2.1.280, published an hour after upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Upstream edited this page at 22 Sep 2026 14:26 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 20 Oct 2026 20:07 UTC.

Upstream edited
Recorded here
Lines+225added
Lines−243removed
From line 35 where the diff opens
First seen 14 Aug 2026 this site's first read of the page
Recorded edits4to this page, all time

The whole hunk

from line 35, old and new numbered
/
lines
from line 35
3535git --version # Any recent version
3636```
3737 
38<Note>
39 These commands work the same on macOS, Linux, and Windows, so you're good to
40 go on any platform.
41</Note>
38> [!NOTE]
39>
40> These commands work the same on macOS, Linux, and Windows, so you're good to
41> go on any platform.
4242 
4343### Repository Structure
4444 
from line 85
8585 
8686Start here if you are new to MCP and contributing to its ecosystem.
8787 
88<Note>
89 While we use the specification repository as an example, the key patterns are
90 applicable to other MCP repos as well.
91</Note>
88> [!NOTE]
89>
90> While we use the specification repository as an example, the key patterns are
91> applicable to other MCP repos as well.
9292 
9393### Step 1: Set Up Your Environment
9494 
9595Set up your local environment so you can test and validate changes before submitting them.
9696 
97<Steps>
98 <Step title="Fork the repository">
99 Click the **Fork** button on the [repository page](https://github.com/modelcontextprotocol/modelcontextprotocol) to create your own copy. This gives you a personal workspace where you can make changes without affecting the main project.
100 </Step>
97**1. Fork the repository**
10198 
102 <Step title="Clone your fork">
103 ```bash theme={null}
104 git clone https://github.com/YOUR-USERNAME/modelcontextprotocol.git
105 cd modelcontextprotocol
106 ```
99Click the **Fork** button on the [repository page](https://github.com/modelcontextprotocol/modelcontextprotocol) to create your own copy. This gives you a personal workspace where you can make changes without affecting the main project.
107100 
108 Replace `YOUR-USERNAME` with your GitHub username.
109 </Step>
101**2. Clone your fork**
110102 
111 <Step title="Install dependencies">
112 ```bash theme={null}
113 npm install
114 ```
103```bash theme={null}
104git clone https://github.com/YOUR-USERNAME/modelcontextprotocol.git
105cd modelcontextprotocol
106```
115107 
116 This installs the tools needed for schema generation, documentation building, and validation.
117 </Step>
108Replace `YOUR-USERNAME` with your GitHub username.
118109 
119 <Step title="Verify everything works">
120 ```bash theme={null}
121 npm run check
122 ```
110**3. Install dependencies**
123111 
124 This runs TypeScript compilation, schema validation, example validation, documentation link checks, and formatting checks. If everything passes, your environment is good and you're ready to contribute.
125 </Step>
126</Steps>
112```bash theme={null}
113npm install
114```
127115 
116This installs the tools needed for schema generation, documentation building, and validation.
117 
118**4. Verify everything works**
119 
120```bash theme={null}
121npm run check
122```
123 
124This runs TypeScript compilation, schema validation, example validation, documentation link checks, and formatting checks. If everything passes, your environment is good and you're ready to contribute.
125 
128126If `npm run check` fails, see [Troubleshooting](#troubleshooting) below.
129127 
130128### Step 2: Find Something to Work On
from line 142
144142 
145143Create your changes in a dedicated branch.
146144 
147<Steps>
148 <Step title="Create a branch">
149 ```bash theme={null}
150 git checkout -b fix/your-description
151 ```
145**1. Create a branch**
152146 
153 Use a descriptive branch name that reflects your change, like `fix/typo-in-tools-doc` or `feat/add-example-for-resources`.
154 </Step>
147```bash theme={null}
148git checkout -b fix/your-description
149```
155150 
156 <Step title="Make your changes">
157 Edit the relevant files in your local copy. If you're editing schema files, remember to run `npm run generate:schema` to regenerate the JSON schema and documentation.
158 </Step>
151Use a descriptive branch name that reflects your change, like `fix/typo-in-tools-doc` or `feat/add-example-for-resources`.
159152 
160 <Step title="Run checks">
161 ```bash theme={null}
162 npm run check
163 ```
153**2. Make your changes**
164154 
165 Fix any issues before committing. If you have formatting errors, `npm run format` can auto-fix most of them.
166 </Step>
155Edit the relevant files in your local copy. If you're editing schema files, remember to run `npm run generate:schema` to regenerate the JSON schema and documentation.
167156 
168 <Step title="Commit with a clear message">
169 ```bash theme={null}
170 git commit -m "Fix typo in tools documentation"
171 ```
157**3. Run checks**
172158 
173 Write a concise message that describes what you changed and why. Reference issue numbers if applicable (e.g., `Fix typo in tools documentation (#123)`).
174 </Step>
175</Steps>
159```bash theme={null}
160npm run check
161```
176162 
163Fix any issues before committing. If you have formatting errors, `npm run format` can auto-fix most of them.
164 
165**4. Commit with a clear message**
166 
167```bash theme={null}
168git commit -m "Fix typo in tools documentation"
169```
170 
171Write a concise message that describes what you changed and why. Reference issue numbers if applicable (e.g., `Fix typo in tools documentation (#123)`).
172 
177173### Step 4: Submit a Pull Request
178174 
179175When you're ready, push your branch and open a pull request.
180176 
181<Steps>
182 <Step title="Push your branch">
183 ```bash theme={null}
184 git push origin fix/your-description
185 ```
186 </Step>
177**1. Push your branch**
187178 
188 <Step title="Open a PR on GitHub">
189 You can use the [GitHub CLI](https://cli.github.com/) to make this process easier:
179```bash theme={null}
180git push origin fix/your-description
181```
190182 
191 ```bash theme={null}
192 gh pr create --fill
193 ```
183**2. Open a PR on GitHub**
194184 
195 Alternatively, navigate to your fork on GitHub and click **Compare & pull request**.
196 </Step>
185You can use the [GitHub CLI](https://cli.github.com/) to make this process easier:
197186 
198 <Step title="Fill in the PR template">
199 Provide a clear description of your changes and link any related issues.
200 </Step>
187```bash theme={null}
188gh pr create --fill
189```
201190 
202 <Step title="Wait for review">
203 Maintainers typically respond within 1-5 business days.
204 </Step>
205</Steps>
191Alternatively, navigate to your fork on GitHub and click **Compare & pull request**.
206192 
207<Tip>
208 That's it, **congratulations on your first contribution**! Every improvement,
209 no matter how small, helps make MCP better for everyone.
210</Tip>
193**3. Fill in the PR template**
211194 
195Provide a clear description of your changes and link any related issues.
196 
197**4. Wait for review**
198 
199Maintainers typically respond within 1-5 business days.
200 
201> [!TIP]
202>
203> That's it, **congratulations on your first contribution**! Every improvement,
204> no matter how small, helps make MCP better for everyone.
205 
212206### What Makes a Good Contribution
213207 
214208Help us review your contribution quickly by following these patterns:
from line 219
225219 
226220Different contributions follow different processes depending on their scope.
227221 
228<Tip>
229 Not sure which category your change falls into? Ask in the [MCP Contributor
230 Discord](/community/communication#discord) before starting any significant
231 work.
232</Tip>
222> [!TIP]
223>
224> Not sure which category your change falls into? Ask in the [MCP Contributor
225> Discord](/community/communication#discord) before starting any significant
226> work.
233227 
234228### Small Changes (Direct PR)
235229 
from line 273
279273 
280274To modify the schema:
281275 
282<Steps>
283 <Step title="Edit the TypeScript schema">
284 Make your changes in `schema/draft/schema.ts`.
285 </Step>
276**1. Edit the TypeScript schema**
286277 
287 <Step title="Add examples (optional)">
288 Add JSON examples in `schema/draft/examples/[TypeName]/` (e.g., `Tool/my-example.json`). Reference them in the schema using `@example` + `@includeCode` JSDoc tags.
289 </Step>
278Make your changes in `schema/draft/schema.ts`.
290279 
291 <Step title="Generate JSON schema and docs">
292 ```bash theme={null}
293 npm run generate:schema
294 ```
295 </Step>
280**2. Add examples (optional)**
296281 
297 <Step title="Validate your changes">
298 ```bash theme={null}
299 npm run check
300 ```
301 </Step>
302</Steps>
282Add JSON examples in `schema/draft/examples/[TypeName]/` (e.g., `Tool/my-example.json`). Reference them in the schema using `@example` + `@includeCode` JSDoc tags.
303283 
284**3. Generate JSON schema and docs**
285 
286```bash theme={null}
287npm run generate:schema
288```
289 
290**4. Validate your changes**
291 
292```bash theme={null}
293npm run check
294```
295 
304296### Documentation Changes
305297 
306298Docs are written in [MDX format](https://mdxjs.com/) (Markdown with JSX components) and powered by
from line 303
311303 
312304Here is how you can contribute to our documentation:
313305 
314<Steps>
315 <Step title="Start the local docs server">
316 ```bash theme={null}
317 npm run serve:docs
318 ```
306**1. Start the local docs server**
319307 
320 This launches a live preview at `http://localhost:3000` with hot reloading.
321 </Step>
308```bash theme={null}
309npm run serve:docs
310```
322311 
323 <Step title="Make your changes">
324 Edit the relevant `.mdx` files. You can use [Mintlify components](https://www.mintlify.com/docs/components) like `<Note>`, `<Tip>`, `<Steps>`, and `<Card>` for richer formatting.
325 </Step>
312This launches a live preview at `http://localhost:3000` with hot reloading.
326313 
327 <Step title="Check for issues">
328 ```bash theme={null}
329 npm run check:docs
330 ```
314**2. Make your changes**
331315 
332 This validates formatting, broken links, and other common issues.
333 </Step>
334</Steps>
316Edit the relevant `.mdx` files. You can use [Mintlify components](https://www.mintlify.com/docs/components) like `<Note>`, `<Tip>`, `<Steps>`, and `<Card>` for richer formatting.
335317 
318**3. Check for issues**
319 
320```bash theme={null}
321npm run check:docs
322```
323 
324This validates formatting, broken links, and other common issues.
325 
336326### Major Protocol Changes
337327 
338328For significant changes, follow the [SEP process](/community/sep-guidelines). Prior to spending a
339329lot of time on a spec proposal, make sure to follow these best practices.
340330 
341<Steps>
342 <Step title="Validate your idea first">
343 Discuss in an [Interest Group](/community/working-interest-groups) or on
344 [Discord](https://discord.gg/6CSzBmMkjX).
345 </Step>
331**1. Validate your idea first**
346332 
347 <Step title="Build a prototype">
348 Demonstrate practical application of your idea.
349 </Step>
333Discuss in an [Interest Group](/community/working-interest-groups) or on
334[Discord](https://discord.gg/6CSzBmMkjX).
350335 
351 <Step title="Find a sponsor">
352 A maintainer from the [maintainer
353 list](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/MAINTAINERS.md)
354 who will champion your proposal. See [Finding a Sponsor for
355 SEPs](#finding-a-sponsor-for-seps) below.
356 </Step>
336**2. Build a prototype**
357337 
358 <Step title="Write the SEP">
359 Follow the [SEP Guidelines](/community/sep-guidelines).
360 </Step>
361</Steps>
338Demonstrate practical application of your idea.
362339 
340**3. Find a sponsor**
341 
342A maintainer from the [maintainer
343list](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/MAINTAINERS.md)
344who will champion your proposal. See [Finding a Sponsor for
345SEPs](#finding-a-sponsor-for-seps) below.
346 
347**4. Write the SEP**
348 
349Follow the [SEP Guidelines](/community/sep-guidelines).
350 
363351### Finding a Sponsor for SEPs
364352 
365353A **sponsor** is a Core Maintainer or Maintainer who champions your SEP through the review
from line 354
366354process. They provide feedback, help refine your proposal, and present it at Core Maintainer
367355meetings.
368356 
369<Warning>
370 Every SEP needs a sponsor to move forward. SEPs that don't find a sponsor
371 within 6 months are marked as **dormant**. Dormant SEPs aren't rejected
372 outright - they can be revived later if a sponsor is found or the proposal is
373 re-assessed to be needed.
374</Warning>
357> [!WARNING]
358>
359> Every SEP needs a sponsor to move forward. SEPs that don't find a sponsor
360> within 6 months are marked as **dormant**. Dormant SEPs aren't rejected
361> outright - they can be revived later if a sponsor is found or the proposal is
362> re-assessed to be needed.
375363 
376364To find a sponsor:
377365 
378<Steps>
379 <Step title="Find relevant maintainers">
380 Look at the [maintainer
381 list](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/MAINTAINERS.md)
382 to find maintainers working in your area.
383 </Step>
366**1. Find relevant maintainers**
384367 
385 <Step title="Tag maintainers in your PR">
386 Tag 1-2 relevant maintainers (don't spam everyone).
387 </Step>
368Look at the [maintainer
369list](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/MAINTAINERS.md)
370to find maintainers working in your area.
388371 
389 <Step title="Share in Discord">
390 Post your PR in the relevant Discord channel to increase visibility.
391 </Step>
372**2. Tag maintainers in your PR**
392373 
393 <Step title="Follow up if needed">
394 If no response after 2 weeks, ask in `#general` or reach out to a Core
395 Maintainer.
396 </Step>
397</Steps>
374Tag 1-2 relevant maintainers (don't spam everyone).
398375 
376**3. Share in Discord**
377 
378Post your PR in the relevant Discord channel to increase visibility.
379 
380**4. Follow up if needed**
381 
382If no response after 2 weeks, ask in `#general` or reach out to a Core
383Maintainer.
384 
399385Maintainers review open proposals regularly, but response time varies based on complexity and
400386availability.
401387 
from line 390
404390MCP maintains official SDKs in multiple languages. Contributions are welcome - whether you're
405391fixing bugs, improving performance, adding features, or enhancing documentation.
406392 
407<Note>
408 Each SDK has its own repository, maintainers, and contribution guidelines.
409 Some SDKs are maintained in collaboration with larger partner organizations,
410 such as Google, Microsoft, JetBrains, and others, so processes may vary
411 slightly between repositories.
412</Note>
393> [!NOTE]
394>
395> Each SDK has its own repository, maintainers, and contribution guidelines.
396> Some SDKs are maintained in collaboration with larger partner organizations,
397> such as Google, Microsoft, JetBrains, and others, so processes may vary
398> slightly between repositories.
413399 
414400### Before Contributing to an SDK
415401 
416402Before diving into code, follow these steps.
417403 
418<Steps>
419 <Step title="Open an issue first">
420 Before starting significant work, open an issue to discuss your approach.
421 This helps avoid duplicate effort, ensures your contribution aligns with the
422 SDK's direction, and gives maintainers a chance to provide early feedback.
423 </Step>
404**1. Open an issue first**
424405 
425 <Step title="Join the SDK channel">
426 Find the relevant channel in [Discord](https://discord.gg/6CSzBmMkjX) (e.g.,
427 `#typescript-sdk-dev`, `#python-sdk-dev`).
428 </Step>
406Before starting significant work, open an issue to discuss your approach.
407This helps avoid duplicate effort, ensures your contribution aligns with the
408SDK's direction, and gives maintainers a chance to provide early feedback.
429409 
430 <Step title="Read the SDK's CONTRIBUTING.md">
431 Each repository has its own `CONTRIBUTING.md` with specific instructions for
432 setting up your development environment, coding standards, commit message
433 conventions, and PR requirements.
434 </Step>
410**2. Join the SDK channel**
435411 
436 <Step title="Write tests">
437 All contributions should include appropriate test coverage. Bug fixes should
438 include a test that reproduces the issue, and new features should have tests
439 covering the expected behavior. This helps maintain SDK reliability and
440 prevents regressions.
441 </Step>
442</Steps>
412Find the relevant channel in [Discord](https://discord.gg/6CSzBmMkjX) (e.g.,
413`#typescript-sdk-dev`, `#python-sdk-dev`).
443414 
415**3. Read the SDK's CONTRIBUTING.md**
416 
417Each repository has its own `CONTRIBUTING.md` with specific instructions for
418setting up your development environment, coding standards, commit message
419conventions, and PR requirements.
420 
421**4. Write tests**
422 
423All contributions should include appropriate test coverage. Bug fixes should
424include a test that reproduces the issue, and new features should have tests
425covering the expected behavior. This helps maintain SDK reliability and
426prevents regressions.
427 
444428### SDK Repositories
445429 
446<CardGroup cols={2}>
447 <Card title="TypeScript SDK" icon="square-js" href="https://github.com/modelcontextprotocol/typescript-sdk" />
430> **[TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)**
448431 
449 <Card title="Python SDK" icon="python" href="https://github.com/modelcontextprotocol/python-sdk" />
432> **[Python SDK](https://github.com/modelcontextprotocol/python-sdk)**
450433 
451 <Card title="Go SDK" icon="golang" href="https://github.com/modelcontextprotocol/go-sdk" />
434> **[Go SDK](https://github.com/modelcontextprotocol/go-sdk)**
452435 
453 <Card title="Kotlin SDK" icon="square-k" href="https://github.com/modelcontextprotocol/kotlin-sdk" />
436> **[Kotlin SDK](https://github.com/modelcontextprotocol/kotlin-sdk)**
454437 
455 <Card title="Java SDK" icon="java" href="https://github.com/modelcontextprotocol/java-sdk" />
438> **[Java SDK](https://github.com/modelcontextprotocol/java-sdk)**
456439 
457 <Card title="C# SDK" icon="square-c" href="https://github.com/modelcontextprotocol/csharp-sdk" />
440> **[C# SDK](https://github.com/modelcontextprotocol/csharp-sdk)**
458441 
459 <Card title="Swift SDK" icon="swift" href="https://github.com/modelcontextprotocol/swift-sdk" />
442> **[Swift SDK](https://github.com/modelcontextprotocol/swift-sdk)**
460443 
461 <Card title="Rust SDK" icon="rust" href="https://github.com/modelcontextprotocol/rust-sdk" />
444> **[Rust SDK](https://github.com/modelcontextprotocol/rust-sdk)**
462445 
463 <Card title="Ruby SDK" icon="gem" href="https://github.com/modelcontextprotocol/ruby-sdk" />
446> **[Ruby SDK](https://github.com/modelcontextprotocol/ruby-sdk)**
464447 
465 <Card title="PHP SDK" icon="php" href="https://github.com/modelcontextprotocol/php-sdk" />
466</CardGroup>
448> **[PHP SDK](https://github.com/modelcontextprotocol/php-sdk)**
467449 
468450## Getting Help
469451 
Feedback