Skip to content

Commit b8a39a9

Browse files
Merge branch 'main' into fix/inline-ref-in-tool-schema
2 parents 6fdbc11 + df4b6cc commit b8a39a9

77 files changed

Lines changed: 2598 additions & 287 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@modelcontextprotocol/fastify': minor
3+
---
4+
5+
Add Fastify middleware adapter for MCP servers, following the same pattern as the Express and Hono adapters.

.changeset/fast-dragons-lead.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
'@modelcontextprotocol/express': patch
3+
'@modelcontextprotocol/fastify': patch
4+
'@modelcontextprotocol/hono': patch
5+
'@modelcontextprotocol/node': patch
6+
'@modelcontextprotocol/client': patch
7+
'@modelcontextprotocol/server': patch
8+
---
9+
10+
tsdown exports resolution fix
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@modelcontextprotocol/server': patch
3+
---
4+
5+
fix(server): propagate negotiated protocol version to transport in _oninitialize
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@modelcontextprotocol/server': patch
3+
---
4+
5+
Prevent stack overflow in StreamableHTTPServerTransport.close() with re-entrant guard
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@modelcontextprotocol/client': patch
3+
---
4+
5+
Fix StreamableHTTPClientTransport to handle error responses in SSE streams

.changeset/odd-forks-enjoy.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@modelcontextprotocol/client": patch
3+
---
4+
5+
fix(client): append custom Accept headers to spec-required defaults in StreamableHTTPClientTransport
6+
7+
Custom Accept headers provided via `requestInit.headers` are now appended to the spec-mandated Accept types instead of being overwritten. This ensures the required media types (`application/json, text/event-stream` for POST; `text/event-stream` for GET SSE) are always present while allowing users to include additional types for proxy/gateway routing.

.changeset/pre.json

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
{
2+
"mode": "pre",
3+
"tag": "alpha",
4+
"initialVersions": {
5+
"@modelcontextprotocol/eslint-config": "2.0.0",
6+
"@modelcontextprotocol/tsconfig": "2.0.0",
7+
"@modelcontextprotocol/vitest-config": "2.0.0",
8+
"@modelcontextprotocol/examples-client": "2.0.0-alpha.0",
9+
"@modelcontextprotocol/examples-client-quickstart": "2.0.0-alpha.0",
10+
"@modelcontextprotocol/examples-server": "2.0.0-alpha.0",
11+
"@modelcontextprotocol/examples-server-quickstart": "2.0.0-alpha.0",
12+
"@modelcontextprotocol/examples-shared": "2.0.0-alpha.0",
13+
"@modelcontextprotocol/client": "2.0.0-alpha.0",
14+
"@modelcontextprotocol/core": "2.0.0-alpha.0",
15+
"@modelcontextprotocol/express": "2.0.0-alpha.0",
16+
"@modelcontextprotocol/fastify": "2.0.0-alpha.0",
17+
"@modelcontextprotocol/hono": "2.0.0-alpha.0",
18+
"@modelcontextprotocol/node": "2.0.0-alpha.0",
19+
"@modelcontextprotocol/server": "2.0.0-alpha.0",
20+
"@modelcontextprotocol/test-conformance": "2.0.0-alpha.0",
21+
"@modelcontextprotocol/test-helpers": "2.0.0-alpha.0",
22+
"@modelcontextprotocol/test-integration": "2.0.0-alpha.0"
23+
},
24+
"changesets": [
25+
"abort-handlers-on-close",
26+
"add-fastify-middleware",
27+
"add-hono-peer-dep",
28+
"add-resource-size-field",
29+
"brave-lions-glow",
30+
"busy-rice-smoke",
31+
"busy-weeks-hang",
32+
"cyan-cycles-pump",
33+
"drop-zod-peer-dep",
34+
"expose-auth-server-discovery",
35+
"extract-task-manager",
36+
"fast-dragons-lead",
37+
"finish-sdkerror-capability",
38+
"fix-abort-listener-leak",
39+
"fix-oauth-5xx-discovery",
40+
"fix-onerror-callbacks",
41+
"fix-server-protocol-version",
42+
"fix-session-status-codes",
43+
"fix-stdio-epipe-crash",
44+
"fix-stdio-windows-hide",
45+
"fix-streamable-http-error-response",
46+
"fix-task-session-isolation",
47+
"fix-transport-exact-optional-property-types",
48+
"fix-unknown-tool-protocol-error",
49+
"funky-baths-attack",
50+
"heavy-walls-swim",
51+
"oauth-error-http200",
52+
"quick-islands-occur",
53+
"reconnection-scheduler",
54+
"remove-websocket-transport",
55+
"respect-capability-negotiation",
56+
"rich-hounds-report",
57+
"schema-object-type-for-unions",
58+
"shy-times-learn",
59+
"spotty-cats-tickle",
60+
"stdio-skip-non-json",
61+
"support-standard-json-schema",
62+
"tame-camels-greet",
63+
"tender-snails-fold",
64+
"token-provider-composable-auth",
65+
"twelve-dodos-taste",
66+
"use-scopes-supported-in-dcr"
67+
]
68+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@modelcontextprotocol/core': patch
3+
---
4+
5+
Allow additional JSON Schema properties in elicitInput's requestedSchema type by adding .catchall(z.unknown()), matching the pattern used by inputSchema. This fixes type incompatibility when using Zod v4's .toJSONSchema() output which includes extra properties like $schema and additionalProperties.

.github/workflows/main.yml

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ on:
44
- main
55
pull_request:
66
workflow_dispatch:
7-
release:
8-
types: [published]
97

108
concurrency:
119
group: ${{ github.workflow }}-${{ github.ref }}
@@ -94,53 +92,3 @@ jobs:
9492
- name: Run ${{ matrix.runtime }} integration tests
9593
run: pnpm --filter @modelcontextprotocol/test-integration test:integration:${{ matrix.runtime }}
9694

97-
publish:
98-
runs-on: ubuntu-latest
99-
if: github.event_name == 'release'
100-
environment: release
101-
needs: [build, test, test-runtimes]
102-
103-
permissions:
104-
contents: read
105-
id-token: write
106-
107-
steps:
108-
- uses: actions/checkout@v6
109-
110-
- name: Install pnpm
111-
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
112-
id: pnpm-install
113-
with:
114-
run_install: false
115-
- uses: actions/setup-node@v6
116-
with:
117-
node-version: 24
118-
cache: pnpm
119-
cache-dependency-path: pnpm-lock.yaml
120-
registry-url: 'https://registry.npmjs.org'
121-
- run: pnpm install
122-
123-
- name: Determine npm tag
124-
id: npm-tag
125-
run: |
126-
VERSION=$(node -p "require('./package.json').version")
127-
# Check if this is a beta release
128-
if [[ "$VERSION" == *"-beta"* ]]; then
129-
echo "tag=--tag beta" >> $GITHUB_OUTPUT
130-
# Check if this release is from a non-primary branch (patch/maintenance release)
131-
elif [[ "${{ github.event.release.target_commitish }}" != "main" && "${{ github.event.release.target_commitish }}" != "v1.x" ]]; then
132-
# Use "release-X.Y" as tag for old branch releases (e.g., "release-1.23" for 1.23.x)
133-
# npm tags are mutable pointers to versions (like "latest" pointing to 1.24.3).
134-
# Using "release-1.23" means users can `npm install @modelcontextprotocol/sdk@release-1.23`
135-
# to get the latest patch on that minor version, and the tag updates if we
136-
# release 1.23.2, 1.23.3, etc.
137-
# Note: Can't use "v1.23" because npm rejects tags that look like semver ranges.
138-
MAJOR_MINOR=$(echo "$VERSION" | cut -d. -f1,2)
139-
echo "tag=--tag release-${MAJOR_MINOR}" >> $GITHUB_OUTPUT
140-
else
141-
echo "tag=" >> $GITHUB_OUTPUT
142-
fi
143-
144-
- run: pnpm publish --provenance --access public ${{ steps.npm-tag.outputs.tag }}
145-
env:
146-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

.github/workflows/publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,4 @@ jobs:
4040
- name: Publish preview packages
4141
run:
4242
pnpm dlx pkg-pr-new publish --packageManager=npm --pnpm './packages/server' './packages/client'
43-
'./packages/middleware/express' './packages/middleware/hono' './packages/middleware/node'
43+
'./packages/middleware/express' './packages/middleware/fastify' './packages/middleware/hono' './packages/middleware/node'

0 commit comments

Comments
 (0)