Skip to content

Commit 6297ff2

Browse files
authored
Merge branch 'main' into groups
2 parents 1d266f9 + 500cc2d commit 6297ff2

36 files changed

+626
-459
lines changed

.github/workflows/render-seps.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
4848
id: changes
4949
run: |
50-
if [[ -n "$(git status --porcelain docs/community/seps/ docs/snippets/badge.mdx docs/docs.json)" ]]; then
50+
if [[ -n "$(git status --porcelain docs/community/seps/ docs/docs.json)" ]]; then
5151
echo "has_changes=true" >> $GITHUB_OUTPUT
5252
else
5353
echo "has_changes=false" >> $GITHUB_OUTPUT
@@ -58,6 +58,6 @@ jobs:
5858
run: |
5959
git config --local user.email "github-actions[bot]@users.noreply.github.com"
6060
git config --local user.name "github-actions[bot]"
61-
git add docs/community/seps/ docs/snippets/badge.mdx docs/docs.json
61+
git add docs/community/seps/ docs/docs.json
6262
git commit -m "docs: auto-render SEPs documentation"
6363
git push

.github/workflows/sep-reminder.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: SEP Review Reminder
2+
3+
on:
4+
schedule:
5+
# Every Wednesday at 10am PST (18:00 UTC)
6+
- cron: "0 18 * * 3"
7+
workflow_dispatch: # Allow manual triggering
8+
9+
permissions: {}
10+
11+
jobs:
12+
discord-reminder:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Post Discord reminder
17+
run: |
18+
curl -X POST "${{ secrets.DISCORD_MAINTAINER_WEBHOOK }}" \
19+
-H "Content-Type: application/json" \
20+
-d '{
21+
"content": "@everyone 📋 **Weekly SEP Review Reminder**\n\nPlease ensure any SEPs that should be reviewed in the next **MCP Core Maintainer Meeting** are:\n\n1. Put into `in-review` state\n2. Added to the [meeting doc](https://docs.google.com/document/d/1annqJ2m4jNFOx6vU0FMnDSr6V3c5uN4TCT_uuZcZFh8/edit?tab=t.0#heading=h.9k72mrwd8fnr)\n\nFor SEP guidelines, see: https://modelcontextprotocol.io/community/sep-guidelines"
22+
}'

AGENTS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,7 @@ npm run check:seps # Check SEP documents
6060
# Workflow
6161
npm run prep # Full prep before committing (check, generate, format)
6262
```
63+
64+
## Commit Guidelines
65+
66+
- Do not include model names or details (e.g., "Claude", "Opus") in commit messages

MAINTAINERS.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
This document lists current maintainers in the Model Context Protocol project.
44

5-
**Last updated:** January 13, 2026
5+
**Last updated:** February 2, 2026
66

77
## Lead Maintainers
88

@@ -11,13 +11,14 @@ This document lists current maintainers in the Model Context Protocol project.
1111

1212
## Core Maintainers
1313

14-
- [Inna Harper](https://github.com/ihrpr)
15-
- [Basil Hosmer](https://github.com/bhosmer-ant)
16-
- [Paul Carleton](https://github.com/pcarleton)
17-
- [Nick Cooper](https://github.com/nickcoai)
18-
- [Nick Aldridge](https://github.com/000-000-000-000-000)
14+
- [Caitie McCaffrey](https://github.com/CaitieM20)
1915
- [Che Liu](https://github.com/pwwpche)
2016
- [Den Delimarsky](https://github.com/localden)
17+
- [Kurtis Van Gent](https://github.com/kurtisvg)
18+
- [Nick Aldridge](https://github.com/000-000-000-000-000)
19+
- [Nick Cooper](https://github.com/nickcoai)
20+
- [Paul Carleton](https://github.com/pcarleton)
21+
- [Peter Alexander](https://github.com/pja-ant)
2122

2223
## SDK Maintainers
2324

docs/clients.mdx

Lines changed: 55 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,25 @@ description: "A list of applications that support MCP integrations"
55

66
{/* prettier-ignore-start */}
77

8-
export const FEATURES = ["Resources", "Prompts", "Tools", "Discovery", "Sampling", "Roots", "Elicitation", "Instructions", "Tasks", "Apps"];
8+
export const FEATURES = ["Resources", "Prompts", "Tools", "Discovery", "Instructions", "Sampling", "Roots", "Elicitation", "Tasks", "Apps"];
9+
10+
export const FEATURE_COLORS = {
11+
Resources: "blue",
12+
Prompts: "blue",
13+
Tools: "blue",
14+
Instructions: "purple",
15+
Discovery: "purple",
16+
Sampling: "green",
17+
Roots: "green",
18+
Elicitation: "green",
19+
Tasks: "orange",
20+
Apps: "orange",
21+
};
22+
23+
export const FeatureBadge = ({ feature }) => {
24+
const color = FEATURE_COLORS[feature.split(" (")[0]] || "gray";
25+
return <Badge shape="pill" stroke color={color}>{feature}</Badge>;
26+
};
927

1028
export const filterStore = {
1129
state: {
@@ -143,6 +161,12 @@ export const McpClient = ({ name, homepage, supports, sourceCode, instructions,
143161
sourceCode ??= homepage;
144162
}
145163

164+
const features = (supports ?? "").split(", ").sort((a, b) => {
165+
const featureA = a.split(" (")[0];
166+
const featureB = b.split(" (")[0];
167+
return FEATURES.indexOf(featureA) - FEATURES.indexOf(featureB);
168+
});
169+
146170
const instructionsLinks = Array.isArray(instructions)
147171
? <>
148172
<strong>Configuration instructions:</strong>{" "}
@@ -190,18 +214,23 @@ export const McpClient = ({ name, homepage, supports, sourceCode, instructions,
190214
#
191215
</a>
192216
</div>
193-
{supports && (
194-
<div className="flex items-start gap-1.5 mt-2 text-base">
195-
<span className="flex items-center h-[1lh]">
196-
<Icon icon="check" iconType="solid" size={18} />
217+
{features.length > 0 && (
218+
<div className="flex items-baseline gap-1.5 mt-2 text-base">
219+
<span className="inline-flex items-center h-[1lh]">
220+
{'\u200B'}<Icon icon="check" iconType="solid" size={18} />
221+
</span>
222+
<strong>Supports:</strong>
223+
<span className="flex flex-wrap gap-1">
224+
{features.map(feature => (
225+
<FeatureBadge key={feature} feature={feature} />
226+
))}
197227
</span>
198-
<span><strong>Supports:</strong> {supports}</span>
199228
</div>
200229
)}
201230
{sourceCode && (
202-
<div className="flex items-start gap-1.5 mt-2 text-base">
203-
<span className="flex items-center h-[1lh]">
204-
<Icon icon="code" iconType="solid" size={18} />
231+
<div className="flex items-baseline gap-1.5 mt-2 text-base">
232+
<span className="inline-flex items-center h-[1lh]">
233+
{'\u200B'}<Icon icon="code" iconType="solid" size={18} />
205234
</span>
206235
<span>
207236
<a href={sourceCode} target="_blank" rel="noopener noreferrer">
@@ -211,9 +240,9 @@ export const McpClient = ({ name, homepage, supports, sourceCode, instructions,
211240
</div>
212241
)}
213242
{instructions && (
214-
<div className="flex items-start gap-1.5 mt-2 text-base">
215-
<span className="flex items-center h-[1lh]">
216-
<Icon icon="gear" iconType="solid" size={18} />
243+
<div className="flex items-baseline gap-1.5 mt-2 text-base">
244+
<span className="inline-flex items-center h-[1lh]">
245+
{'\u200B'}<Icon icon="gear" iconType="solid" size={18} />
217246
</span>
218247
<span>
219248
{instructionsLinks}
@@ -248,7 +277,20 @@ export const McpClient = ({ name, homepage, supports, sourceCode, instructions,
248277

249278
{/* prettier-ignore-end */}
250279

251-
This page provides an overview of applications that support the Model Context Protocol (MCP). Each client may support different MCP features, allowing for varying levels of integration with MCP servers.
280+
This page showcases applications that support the Model Context Protocol (MCP). Each client may support different MCP features:
281+
282+
| Feature | Description |
283+
| --------------------------------------- | --------------------------------------------------------- |
284+
| <FeatureBadge feature="Resources" /> | Server-exposed data and content |
285+
| <FeatureBadge feature="Prompts" /> | Pre-defined templates for LLM interactions |
286+
| <FeatureBadge feature="Tools" /> | Executable functions that LLMs can invoke |
287+
| <FeatureBadge feature="Discovery" /> | Support for tools/prompts/resources changed notifications |
288+
| <FeatureBadge feature="Instructions" /> | Server-provided guidance for LLMs |
289+
| <FeatureBadge feature="Sampling" /> | Server-initiated LLM completions |
290+
| <FeatureBadge feature="Roots" /> | Filesystem boundary definitions |
291+
| <FeatureBadge feature="Elicitation" /> | User information requests |
292+
| <FeatureBadge feature="Tasks" /> | Long-running operation tracking |
293+
| <FeatureBadge feature="Apps" /> | Interactive HTML interfaces |
252294

253295
<Note>
254296

docs/community/sdk-tiers.mdx

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
---
2+
title: SDK Tiering System
3+
description: Feature completeness, protocol support, and maintenance commitment levels for Model Context Protocol SDKs
4+
---
5+
6+
The MCP SDK Tiering System establishes clear expectations for feature completeness, protocol support, and maintenance commitments across official and community-driven SDKs. This helps developers choose the right SDK for their needs and provides SDK maintainers with a clear path to improving adoption expectations.
7+
8+
<Note>
9+
**Key dates:**
10+
- **January 23, 2026**: Conformance tests available
11+
- **February 23, 2026**: Official SDK tiering published
12+
13+
Between January 23 and February 23, SDK maintainers can work with the
14+
Conformance Testing working group to adopt the tests and set up GitHub issue
15+
tracking with the standardized labels defined below.
16+
17+
</Note>
18+
19+
## Overview
20+
21+
SDKs are classified into three tiers based on feature completeness, maintenance commitments, and documentation quality:
22+
23+
- **Tier 1**: Fully supported SDKs with complete protocol implementation, including all
24+
non-experimental features and optional capabilities like sampling and elicitation
25+
- **Tier 2**: Actively-maintained SDKs working toward full protocol specification support
26+
- **Tier 3**: Experimental, partially implemented, or specialized SDKs
27+
28+
Experimental features (such as Tasks) and protocol extensions (such as MCP Apps) are not required
29+
for any tier.
30+
31+
## Tier Requirements
32+
33+
| Requirement | Tier 1: Fully Supported | Tier 2: Commitment to Full Support | Tier 3: Experimental |
34+
| --------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------- |
35+
| **Conformance Tests** | 100% pass rate | 80% pass rate | No minimum |
36+
| **New Protocol Features** | Before new spec version release, timeline agreed per release based on feature complexity | Within 6 months | No timeline commitment |
37+
| **Issue Triage** | Within 2 business days | Within a month | No requirement |
38+
| **Critical Bug Resolution** | Within 7 days | Within two weeks | No requirement |
39+
| **Stable Release** | Required with clear versioning | At least one stable release | Not required |
40+
| **Documentation** | Comprehensive with examples for all features | Basic documentation covering core features | No minimum |
41+
| **Dependency Policy** | Published update policy | Published update policy | Not required |
42+
| **Roadmap** | Published roadmap | Published plan toward Tier 1 or explanation for remaining Tier 2 | Not required |
43+
44+
**Issue Triage** means labeling and determining whether an issue is valid, not resolving the issue.
45+
46+
**Critical Bug** refers to P0 issues (see [Priority labels](#priority-only-if-actionable) for
47+
detailed criteria).
48+
49+
**Stable Release** is a published version explicitly marked as production-ready (e.g., version `1.0.0`
50+
or higher without pre-release identifiers like `-alpha`, `-beta`, or `-rc`).
51+
52+
**Clear Versioning** means following idiomatic versioning patterns with documented
53+
breaking change policies, so users can understand compatibility expectations when upgrading.
54+
55+
**Roadmap** outlines concrete steps and work items that track implementation of required MCP
56+
specification components (non-experimental features and optional capabilities as described in
57+
[Conformance Testing](#conformance-testing)), giving users visibility into upcoming feature support.
58+
59+
## Conformance Testing
60+
61+
All SDKs are evaluated using [automated conformance tests](https://github.com/modelcontextprotocol/conformance)
62+
that validate protocol support against the published specifications. SDKs receive a conformance score
63+
based on test results:
64+
65+
- **Tier 1**: 100% conformance required
66+
- **Tier 2**: 80% conformance required
67+
- **Tier 3**: No minimum requirement
68+
69+
Conformance scores are calculated against **applicable required tests** only:
70+
71+
- Tests for the specification version the SDK targets
72+
- Excluding tests marked as pending or skipped
73+
- Excluding tests for experimental features
74+
- Excluding legacy backward-compatibility tests (unless the SDK claims legacy support)
75+
76+
Conformance testing validates that SDKs correctly implement the protocol by running standardized test
77+
scenarios and checking protocol message exchanges. See [Tier Relegation](#tier-relegation) for how
78+
temporary test failures are handled.
79+
80+
## Tier Advancement
81+
82+
SDK maintainers can request tier advancement by:
83+
84+
1. Self-assessing against tier requirements
85+
2. Opening an issue in the [modelcontextprotocol/modelcontextprotocol](https://github.com/modelcontextprotocol/modelcontextprotocol) repository with supporting evidence
86+
3. Passing automated conformance testing
87+
4. Receiving approval from SDK Working Group maintainers
88+
89+
The SDK Working Group reviews advancement requests and makes final tier assignments.
90+
91+
## Tier Relegation
92+
93+
An SDK may be moved to a lower tier if existing conformance tests on the latest stable release fail
94+
continuously for 4 weeks:
95+
96+
- **Tier 1 → Tier 2**: Any conformance test fails
97+
- **Tier 2 → Tier 3**: More than 20% of conformance tests fail
98+
99+
## Issue Triage Labels
100+
101+
SDK repositories must use consistent labels to enable automated reporting on issue handling metrics.
102+
Tier calculations use these metrics to measure triage response times (time from issue creation to
103+
first label) and critical bug resolution times (time from P0 label to issue close).
104+
105+
### Type (pick one)
106+
107+
| Label | Description |
108+
| ------------- | ----------------------------- |
109+
| `bug` | Something isn't working |
110+
| `enhancement` | Request for new feature |
111+
| `question` | Further information requested |
112+
113+
Repositories using [GitHub's native issue types](https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/managing-issue-types-in-an-organization)
114+
satisfy this requirement without needing type labels.
115+
116+
### Status (pick one)
117+
118+
Use these exact label names across all repositories to enable consistent reporting and analysis.
119+
120+
| Label | Description |
121+
| -------------------- | ------------------------------------------------------- |
122+
| `needs confirmation` | Unclear if still relevant |
123+
| `needs repro` | Insufficient information to reproduce |
124+
| `ready for work` | Has enough information to start |
125+
| `good first issue` | Good for newcomers |
126+
| `help wanted` | Contributions welcome from those familiar with codebase |
127+
128+
### Priority (only if actionable)
129+
130+
| Label | Description |
131+
| ----- | --------------------------------------------------------------- |
132+
| `P0` | Critical: core functionality failures or high-severity security |
133+
| `P1` | Significant bug affecting many users |
134+
| `P2` | Moderate issues, valuable feature requests |
135+
| `P3` | Nice to haves, rare edge cases |
136+
137+
**P0 (Critical)** issues are:
138+
139+
- **Security vulnerabilities** with CVSS score ≥ 7.0 (High or Critical severity)
140+
- **Core functionality failures** that prevent basic MCP operations: connection establishment,
141+
message exchange, or use of core primitives (tools, resources, prompts)

docs/community/seps/1024-mcp-client-security-requirements-for-local-server-.mdx

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,25 @@ sidebarTitle: "SEP-1024: MCP Client Security Requirements for Lo…"
44
description: "MCP Client Security Requirements for Local Server Installation"
55
---
66

7-
import { Badge } from "/snippets/badge.mdx";
8-
97
<div className="flex items-center gap-2 mb-4">
10-
<Badge color="green">Final</Badge>
11-
<Badge color="gray">Standards Track</Badge>
8+
<Badge color="green" shape="pill">
9+
Final
10+
</Badge>
11+
<Badge color="gray" shape="pill">
12+
Standards Track
13+
</Badge>
1214
</div>
1315

14-
| Field | Value |
15-
| ------------- | ------------------------------------------------------------------------ |
16-
| **SEP** | 1024 |
17-
| **Title** | MCP Client Security Requirements for Local Server Installation |
18-
| **Status** | Final |
19-
| **Type** | Standards Track |
20-
| **Created** | 2025-07-22 |
21-
| **Author(s)** | Den Delimarsky |
22-
| **Sponsor** | None |
23-
| **PR** | [#1024](https://github.com/modelcontextprotocol/specification/pull/1024) |
16+
| Field | Value |
17+
| ------------- | ------------------------------------------------------------------------------- |
18+
| **SEP** | 1024 |
19+
| **Title** | MCP Client Security Requirements for Local Server Installation |
20+
| **Status** | Final |
21+
| **Type** | Standards Track |
22+
| **Created** | 2025-07-22 |
23+
| **Author(s)** | Den Delimarsky |
24+
| **Sponsor** | None |
25+
| **PR** | [#1024](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/1024) |
2426

2527
---
2628

0 commit comments

Comments
 (0)