You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Require issues for all PRs (except trivial fixes like typos)
- Add requirement to wait for maintainer buy-in before starting work
- Add "SDK is opinionated" section for maintainer discretion
- Restructure with clearer "What Needs Discussion" section
- Add welcoming opening to balance strict rules
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+15-7Lines changed: 15 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,26 +4,34 @@ Thank you for your interest in contributing to the MCP Python SDK! This document
4
4
5
5
## Before You Start
6
6
7
-
### Bug Fixes
7
+
We welcome contributions! These guidelines exist to save everyone time, yours included. Following them means your work is more likely to be accepted.
8
8
9
-
Bug fixes are welcome! For straightforward bugs, feel free to open a PR directly. For complex bugs that require significant changes, consider opening an issue first to discuss the approach.
9
+
**All pull requests require a corresponding issue.** Unless your change is trivial (typo, docs tweak, broken link), create an issue first. PRs without a linked issue will be closed.
10
10
11
-
### New Features and Enhancements
11
+
Having an issue doesn't guarantee acceptance. Wait for maintainer feedback or a `ready for work` label before starting. PRs for issues without buy-in may also be closed.
12
12
13
-
**Please open an issue before starting work on new features or significant enhancements.** We will often close pull requests for new features that were not previously discussed. This isn't because we don't appreciate the contribution—it's because adding features creates long-term maintenance burden and requires alignment with the SDK's direction.
13
+
Use issues to validate your idea before investing time in code. PRs are for execution, not exploration.
14
14
15
-
What counts as "significant"?
15
+
### The SDK is Opinionated
16
+
17
+
Not every contribution will be accepted, even with a working implementation. We prioritize maintainability and consistency over adding capabilities. This is at maintainers' discretion.
18
+
19
+
### What Needs Discussion
20
+
21
+
These always require an issue first:
16
22
17
23
- New public APIs or decorators
18
24
- Architectural changes or refactoring
19
25
- Changes that touch multiple modules
20
26
- Features that might require spec changes (these need a [SEP](https://github.com/modelcontextprotocol/modelcontextprotocol) first)
21
27
28
+
Bug fixes for clear, reproducible issues are welcome—but still create an issue to track the fix.
29
+
22
30
### Good Candidates for Contribution
23
31
24
-
Issues labeled [`good first issue`](https://github.com/modelcontextprotocol/python-sdk/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) or [`help wanted`](https://github.com/modelcontextprotocol/python-sdk/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) are great places to start. Issues labeled [`ready for work`](https://github.com/modelcontextprotocol/python-sdk/issues?q=is%3Aopen+is%3Aissue+label%3A%22ready+for+work%22) have been triaged and are ready for implementation.
32
+
Issues labeled [`good first issue`](https://github.com/modelcontextprotocol/python-sdk/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) or [`help wanted`](https://github.com/modelcontextprotocol/python-sdk/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) are great starting points. Issues labeled [`ready for work`](https://github.com/modelcontextprotocol/python-sdk/issues?q=is%3Aopen+is%3Aissue+label%3A%22ready+for+work%22) have been triaged and are ready for implementation.
25
33
26
-
Issues labeled `needs confirmation` or `needs maintainer action` are **not** good candidates—please wait for maintainer input before starting work on these.
34
+
Issues labeled `needs confirmation` or `needs maintainer action` are **not** good candidates—wait for maintainer input before starting work.
0 commit comments