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
* Fix typos and formatting
* Reorient section headings
This swaps the "SEP Workflow" and "Submitting a SEP" headings so that
"Submitting a SEP" is the umbrella for "SEP Workflow", "SEP States",
etc.
* Bump up "SEP Format" section
This commit renames the "What belongs in a successful SEP?" heading to
"SEP Format" and places that section just below the "SEP Workflow"
section, which alludes to format. This commit also removes the
redundant (and less thorough) description of the SEP format from the
"SEP Workflow" section.
* Refine "SEP Workflow" steps
This commit rewords the "SEP Workflow" section for clarity. This commit
does not change the actual information content.
* Refine "SEP Format" items
This commit rewords the "SEP Format" section for clarity. This commit
does not change the information content; however, it does swap the order
of the "Rationale" and "Specification" points, placing "Specification"
before "Rationale" because "Rationale" explains the design decisions of
"Specification".
Copy file name to clipboardExpand all lines: docs/community/sep-guidelines.mdx
+25-37Lines changed: 25 additions & 37 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,52 +34,53 @@ There are three kinds of SEP:
34
34
2.**Informational** SEP describes a Model Context Protocol design issue, or provides general guidelines or information to the MCP community, but does not propose a new feature. Informational SEPs do not necessarily represent a MCP community consensus or recommendation.
35
35
3.**Process** SEP describes a process surrounding MCP, or proposes a change to (or an event in) a process. Process SEPs are like Standards Track SEPs but apply to areas other than the MCP protocol itself.
36
36
37
-
## SEP Workflow
37
+
## Submitting a SEP
38
38
39
39
The SEP process begins with a new idea for the Model Context Protocol. It is highly recommended that a single SEP contain a single key proposal or new idea. Small enhancements or patches often don't need a SEP and can be injected into the MCP development workflow with a pull request to the MCP repo. The more focused the SEP, the more successful it tends to be.
40
40
41
-
### SEP Author
42
-
43
41
Each SEP must have an **SEP author** -- someone who writes the SEP using the style and format described below, shepherds the discussions in the appropriate forums, and attempts to build community consensus around the idea. The SEP author should first attempt to ascertain whether the idea is SEP-able. Posting to the MCP community forums (Discord, GitHub Discussions) is the best way to go about this.
44
42
45
-
### Submitting a SEP
43
+
### SEP Workflow
46
44
47
-
SEPs should be submitted as a GitHub Issue in the [specification repository](https://github.com/modelcontextprotocol/modelcontextprotocol). The draft must be written in the style of this SEP and must include:
45
+
SEPs should be submitted as a GitHub Issue in the [specification repository](https://github.com/modelcontextprotocol/modelcontextprotocol). The standard SEP workflow is:
48
46
49
-
- A clear and concise title
50
-
- A written motivation and rationale for the change
51
-
- A pull request with the changes to the specification
52
-
- Example code and usage patterns
53
-
- Backwards compatibility analysis
54
-
- Security analysis
55
-
- At least one reference implementation
47
+
1. You, the SEP author, create a [well-formatted](#sep-format) GitHub Issue with the `SEP` and `proposal` tags. Do not assign an SEP number; one will be assigned by the SEP sponsor.
48
+
2. Find a Core Maintainer or Maintainer to sponsor your proposal. Core Maintainers and Maintainers will regularly go over the list of open proposals to determine which proposals to sponsor.
49
+
3. Once a sponsor is found, the GitHub Issue is assigned to the sponsor. The sponsor will add the `draft` tag, assign a unique SEP number, and assign a milestone.
50
+
4. The sponsor will informally review the proposal and may request changes based on community feedback. When ready for formal review, the sponsor will add the `in-review` tag.
51
+
5. After the `in-review` tag is added, the SEP enters formal review by the Core Maintainers team. The SEP may be accepted, rejected, or returned for revision.
52
+
6. If the SEP has not found a sponsor within three months, Core Maintainers may close the SEP as `dormant`.
56
53
57
-
The standard SEP workflow is:
54
+
### SEP Format
58
55
59
-
1. You, the SEP author, create a well-formatted GitHub Issue with the proposal and SEP tags
60
-
2. Find a Core Maintainer or Maintainer to sponsor your proposal. Core Maintainers and Maintainers will regularly go over the list of open proposals to determine which proposals to sponsor. Once a sponsor is found, the sponsor is "assigned" to the issue and a milestone is assigned. The tag `draft` is added. At this point a unique SEP number is assigned.
61
-
3. The sponsor will review and may request changes before formal review, based on community feedback. Once ready for review, the tag `in-review` is added.
62
-
4. Once tagged `in-review`, the SEP enters formal review by the core team
63
-
5. The SEP may be accepted, rejected, or returned for revision.
64
-
6. If the SEP has not found a sponsor within three months, core-maintainers are free to close the SEP as `dormant`.
56
+
Each SEP should have the following parts:
57
+
58
+
1.**Preamble** -- A short descriptive title, the names and contact info for each author, the current status.
59
+
2.**Abstract** -- A short (~200 word) description of the technical issue being addressed.
60
+
3.**Motivation** -- The motivation should clearly explain why the existing protocol specification is inadequate to address the problem that the SEP solves. The motivation is critical for SEPs that want to change the Model Context Protocol. SEP submissions without sufficient motivation may be rejected outright.
61
+
4.**Specification** -- The technical specification should describe the syntax and semantics of any new protocol feature. The specification should be detailed enough to allow competing, interoperable implementations. A PR with the changes to the specification should be provided.
62
+
5.**Rationale** -- The rationale explains why particular design decisions were made. It should describe alternate designs that were considered and related work. The rationale should provide evidence of consensus within the community and discuss important objections or concerns raised during discussion.
63
+
6.**Backward Compatibility** -- All SEPs that introduce backward incompatibilities must include a section describing these incompatibilities and their severity. The SEP must explain how the author proposes to deal with these incompatibilities.
64
+
7.**Reference Implementation** -- The reference implementation must be completed before any SEP is given status "Final", but it need not be completed before the SEP is accepted. While there is merit to the approach of reaching consensus on the specification and rationale before writing code, the principle of "rough consensus and running code" is still useful when it comes to resolving many discussions of protocol details.
65
+
8.**Security Implications** -- If there are security concerns in relation to the SEP, those concerns should be explicitly written out to make sure reviewers of the SEP are aware of them.
65
66
66
67
### SEP States
67
68
68
69
SEPs can be one one of the following states
69
70
70
-
-`proposal:` SEP proposal without a sponsor.
71
-
-`draft`: SEP proposal with a sponsor.
71
+
-`proposal`: SEP proposal without a sponsor.
72
+
-`draft`: SEP proposal with a sponsor.
72
73
-`in-review`: SEP proposal ready for review.
73
-
-`accepted`: SEP accepted by core maintainers, but still requires final wording and reference implementation.
74
-
-`rejected`: SEP rejected by core maintainers.
74
+
-`accepted`: SEP accepted by Core Maintainers, but still requires final wording and reference implementation.
75
+
-`rejected`: SEP rejected by Core Maintainers.
75
76
-`withdrawn`: SEP withdrawn.
76
77
-`final`: SEP finalized.
77
78
-`superseded`: SEP has been replaced by a newer SEP.
78
79
-`dormant`: SEP that has not found sponsors and was subsequently closed.
79
80
80
81
### SEP Review & Resolution
81
82
82
-
SEPs are reviewed by the MCP core maintainers team on a bi-weekly basis.
83
+
SEPs are reviewed by the MCP Core Maintainers team on a bi-weekly basis.
83
84
84
85
For a SEP to be accepted it must meet certain minimum criteria:
85
86
@@ -91,19 +92,6 @@ Once a SEP has been accepted, the reference implementation must be completed. Wh
91
92
92
93
A SEP can also be "Rejected" or "Withdrawn". A SEP that is "Withdrawn" may be re-submitted at a later date.
93
94
94
-
## What belongs in a successful SEP?
95
-
96
-
Each SEP should have the following parts:
97
-
98
-
1.**Preamble** -- A short descriptive title, the names and contact info for each author, the current status.
99
-
2.**Abstract** -- a short (~200 word) description of the technical issue being addressed.
100
-
3.**Motivation** -- The motivation is critical for SEPs that want to change the Model Context Protocol. It should clearly explain why the existing protocol specification is inadequate to address the problem that the SEP solves. SEP submissions without sufficient motivation may be rejected outright.
101
-
4.**Rationale** -- The rationale fleshes out the specification by describing what motivated the design and why particular design decisions were made. It should describe alternate designs that were considered and related work. The rationale should provide evidence of consensus within the community and discuss important objections or concerns raised during discussion.
102
-
5.**Specification** -- The technical specification should describe the syntax and semantics of any new protocol feature. The specification should be detailed enough to allow competing, interoperable implementations. A PR with the changes to the specification should be provided.
103
-
6.**Backwards Compatibility** -- All SEPs that introduce backwards incompatibilities must include a section describing these incompatibilities and their severity. The SEP must explain how the author proposes to deal with these incompatibilities.
104
-
7.**Reference Implementation** -- The reference implementation must be completed before any SEP is given status "Final", but it need not be completed before the SEP is accepted. While there is merit to the approach of reaching consensus on the specification and rationale before writing code, the principle of "rough consensus and running code" is still useful when it comes to resolving many discussions of protocol details.
105
-
8.**Security Implications** -- If there are security concerns in relation to the SEP, those concerns should be explicitly written out to make sure reviewers of the SEP are aware of them.
106
-
107
95
## Reporting SEP Bugs, or Submitting SEP Updates
108
96
109
97
How you report a bug, or submit a SEP update depends on several factors, such as the maturity of the SEP, the preferences of the SEP author, and the nature of your comments. For SEPs not yet reaching `final` state, it's probably best to send your comments and changes directly to the SEP author. Once SEP is finalized, you may want to submit corrections as a GitHub comment on the issue or pull request to the reference implementation.
0 commit comments