Commit graph

144 commits

Author SHA1 Message Date
Olivier Chafik
e83d4207a6
chore: bump ext-apps + example servers to 1.7.1, sdk to 1.29.0
ext-apps@1.7.x peers on @modelcontextprotocol/sdk ^1.29.0, which
required bumping the pinned sdk from 1.24.2 and adapting to its
StreamableHTTPServerTransport refactor:

- redisTransport: sessionId is now a readonly getter on the Node
  wrapper; inject it (and _initialized) on the underlying web-standard
  transport so resumed sessions validate. Also guard message.id which
  is now optional on JSONRPCMessage.
- shttp.integration.test: handleRequest now routes through
  @hono/node-server, so the mock IncomingMessage needs url/host/
  rawHeaders/on/off/resume, and the session-id header now arrives via
  writeHead instead of setHeader.
2026-04-27 16:35:26 +01:00
Olivier Chafik
219bba3ab0
Merge pull request #42 from modelcontextprotocol/fix/example-apps-cleanup
fix: close per-request server and transport in example-apps handler
2026-04-23 14:57:55 +01:00
Olivier Chafik
811a78f310
fix: close per-request server and transport in example-apps handler
The stateless /:slug/mcp handler creates a fresh McpServer and
StreamableHTTPServerTransport on every request but never closed them,
leaking memory under load. Register a 'close' listener (fires on both
normal completion and client abort mid-SSE) to release them.
2026-04-23 14:15:47 +01:00
Olivier Chafik
4555e800ac
Merge pull request #41 from modelcontextprotocol/chore/bump-ext-apps-1.3.1
chore: bump ext-apps packages from ^1.1.2 to ^1.3.1
2026-03-23 21:13:37 +00:00
Olivier Chafik
bd1b77be5e
chore: bump ext-apps packages from ^1.1.2 to ^1.3.1 2026-03-23 20:26:29 +00:00
Jerome
51091fe1f2
Merge pull request #40 from modelcontextprotocol/guro/increase-rate-limits
Increase rate limits across server endpoints
2026-03-17 15:45:28 +00:00
guro
67ffeb0b93
Increase rate limits across server endpoints
Raise request limits to better accommodate legitimate traffic patterns:
- Splash page: 50 -> 200 req/min
- Auth endpoints: 20 -> 200 req/min
- Static assets (auth & mcp): 100 -> 500 req/min
- OAuth metadata: 100 -> 300 req/5s
- Client registration: 10 -> 60 req/min
2026-03-17 14:52:21 +00:00
guro
43f1f61019
fix: enable trust proxy for correct rate limiting behind reverse proxy
Without this, rate limiting uses the proxy's IP instead of actual client IPs,
causing all requests through Cloudflare to be rate limited together.
2026-03-17 14:46:52 +00:00
Olivier Chafik
da36d623ed
Merge pull request #39 from modelcontextprotocol/claude/bump-ext-apps-add-debug-qfSIo
Bump ext-apps to 1.1.2 and add debug-server
2026-02-25 21:28:27 +00:00
Claude
794de5d93e
chore: bump ext-apps packages from ^1.1.1 to ^1.1.2 2026-02-25 15:36:48 +00:00
Claude
4597f7453b
bump ext-apps and server packages to 1.1.1, add debug-server
- Bump @modelcontextprotocol/ext-apps from ^1.1.0 to ^1.1.1
- Bump all @modelcontextprotocol/server-* packages from ^1.1.0 to ^1.1.1
- Add new @modelcontextprotocol/server-debug package at ^1.1.1
- Wire up debug server in example-apps module at /debug/mcp
2026-02-24 14:15:15 +00:00
Olivier Chafik
4dea4f2fa6
Merge pull request #38 from modelcontextprotocol/ochafik/bump-ext-apps
bump ext-apps to 1.1.0 version
2026-02-22 01:49:22 +00:00
Olivier Chafik
8934d3069d
bump ext-apps to 1.1.0 version 2026-02-21 17:40:17 -08:00
Olivier Chafik
6cc88bdd88
Merge pull request #36 from modelcontextprotocol/claude/unauthenticated-mcp-endpoints-MsnNd
Remove OAuth authentication from example MCP app servers
2026-02-22 01:27:43 +00:00
Claude
12cacce7e9
Make example app MCP endpoints unauthenticated
Remove bearer auth middleware from all /:slug/mcp routes (pdf, map, etc.)
so they are publicly accessible without an OAuth token. The root /mcp
endpoint retains its existing bearer auth requirement.

https://claude.ai/code/session_019bG1wzY84JA7LbpkybddP9
2026-02-12 11:24:28 +00:00
Jerome
e3cfccbf90
Merge pull request #35 from modelcontextprotocol/claude/update-examples-v1-EQbLx
Update MCP Apps example server packages to v1.0.1
2026-01-27 07:55:41 +00:00
Olivier Chafik
d679eea486
Update MCP Apps example server packages to v1.0.1
- Update @modelcontextprotocol/ext-apps to ^1.0.1
- Update all @modelcontextprotocol/server-* packages to ^1.0.1
- Pin @modelcontextprotocol/sdk to 1.24.2 to avoid SDK upgrades from transitive deps
- Pin @types/express-serve-static-core to 5.1.0 for type compatibility

Claude-Generated-By: Claude Code (cli/claude-opus-4-5=100%)
Claude-Steers: 1
Claude-Permission-Prompts: 0
Claude-Escapes: 0
2026-01-26 23:09:50 +00:00
Olivier Chafik
9a9ed02059
update 2026-01-26 22:45:49 +00:00
Claude
c0261a467b
Update MCP Apps example server packages to v1.0.0
Bump all 13 @modelcontextprotocol/server-* packages from ^0.4.1 to ^1.0.0.

https://claude.ai/code/session_015HUUQ248MDW6Du6xmsiQJh
2026-01-26 18:11:32 +00:00
Jerome
3e3e60f696
Merge pull request #34 from modelcontextprotocol/jerome/log-more-init
logging full init body
2026-01-26 17:33:53 +01:00
Jerome Swannack
22d60f9e5a logging full init body 2026-01-26 16:33:16 +00:00
Jerome
117601ef16
Merge pull request #33 from modelcontextprotocol/jerome/init-log
Log client capabilities and extensions on initialize requests
2026-01-26 16:48:12 +01:00
Jerome Swannack
94ffb7922c Log client capabilities and extensions on initialize requests
Add INFO-level logging to both the stateful SHTTP handler and the
stateless example-apps handler to show the full client capabilities
sent during MCP initialization, including any extensions like
io.modelcontextprotocol/ui.

This helps verify that clients are correctly sending UI extension
capabilities during the initialization handshake.
2026-01-26 15:47:44 +00:00
Jerome
f48f411661
Merge pull request #32 from modelcontextprotocol/feature/fix-double-slash-urls
Fix double slash in example server URLs
2026-01-16 17:04:19 +00:00
Jerome Swannack
5772183ae8 Fix double slash in example server URLs
Remove trailing slash from baseUri before constructing example server
URLs to avoid URLs like "example.com//budget-allocator/mcp".

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 17:03:00 +00:00
Jerome
b62d515bb1
Merge pull request #31 from modelcontextprotocol/feature/splash-copy-buttons
feat: add copy buttons to example server URLs on splash page
2026-01-16 16:46:20 +00:00
Jerome Swannack
c8e22b8b00 feat: add copy buttons to example server URLs on splash page
Each MCP App example server now has a copy button that copies the
full URL (including domain) to clipboard for easy pasting into Claude.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 16:43:27 +00:00
Jerome
58554ed503
Merge pull request #30 from modelcontextprotocol/feature/mcp-apps-example-servers
feat: add MCP Apps example servers module
2026-01-16 16:28:16 +00:00
Jerome Swannack
5ebe44a237 chore: add .nvmrc for Node 22
The MCP server packages require Node 20.11+ due to use of
import.meta.filename. This .nvmrc ensures developers use the
correct Node version.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 16:24:36 +00:00
Jerome Swannack
015a9d9d91 refactor: make example servers stateless
Address PR feedback:
- Remove session store and session management
- Use stateless mode (sessionIdGenerator: undefined)
- Each request creates a fresh server instance
- Remove user-controlled format string in error message
- Simplify handler logic significantly

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 16:24:20 +00:00
Jerome Swannack
56a0835fd4 feat: add MCP Apps example servers module
Wire up 13 MCP Apps servers from the @modelcontextprotocol/server-* packages:
- budget-allocator: Interactive budget allocation UI
- cohort-heatmap: Customer retention heatmap
- customer-segmentation: Scatter chart with clustering
- map: Interactive 3D globe viewer (CesiumJS)
- pdf: Interactive PDF viewer
- scenario-modeler: SaaS business projections dashboard
- shadertoy: Real-time GLSL shader renderer
- sheet-music: ABC notation to sheet music visualizer
- system-monitor: Real-time OS metrics display
- threejs: 3D scene renderer
- transcript: Live speech transcription
- video-resource: Binary video streaming via MCP resources
- wiki-explorer: Wikipedia link graph visualization

Each server is mounted at /{slug}/mcp and shares the same OAuth
authentication as the main MCP server.

Also updates the splash page to dynamically list all available
example servers.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 16:24:20 +00:00
Jerome
6168d4f0b9
Merge pull request #29 from modelcontextprotocol/fix/update-package-lock
Update package-lock.json to sync with package.json
2026-01-15 16:44:41 +00:00
Jerome Swannack
c669c7731b
Update package-lock.json to sync with package.json 2026-01-15 16:43:33 +00:00
Jerome
30de2e9ccc
Merge pull request #28 from antonpk1/fix/mcp-apps-new-meta-format
fix: update MCP Apps to use new _meta.ui.resourceUri format
2026-01-14 21:57:40 +00:00
Anton Pidkuiko MacBook
2903c3a023
fix: update MCP Apps to use new _meta.ui.resourceUri format
- Update @modelcontextprotocol/ext-apps to 0.4.0
- Use new nested format `_meta.ui.resourceUri` in tool definition
- Remove resourceUri from tool result (only needed in tool definition)
- Add example structuredContent and _meta in tool result for demo
2026-01-14 20:10:41 +00:00
Jerome
e040655b45
Merge pull request #25 from modelcontextprotocol/jerome/mcp-apps-list-resource
Add UI resource to ListResources response
2025-12-07 18:23:13 +00:00
Jerome Swannack
50f135dace
Add UI resource to ListResources response
Include the MCP Apps UI resource in the resources list so clients
can discover it via resources/list.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-07 18:21:10 +00:00
Jerome
2b246dc707
Merge pull request #24 from modelcontextprotocol/jerome/mcp-apps
Add MCP Apps hello world demo tool
2025-12-07 18:12:09 +00:00
Jerome Swannack
730d8559e0
Update MCP Apps tool result message for clarity 2025-12-07 18:10:56 +00:00
Jerome Swannack
c872ecd224
Add MCP Apps hello world demo tool
Implements a simple MCP Apps tool that returns an interactive React UI:

- Add `mcp_apps_hello_world` tool with `_meta.ui/resourceUri` metadata
- Add resource handler for `ui://hello-world/app.html` returning HTML
- Create React app using `@modelcontextprotocol/ext-apps/react` hooks
- Add Vite build tooling to bundle React apps into single HTML files

The tool demonstrates the MCP Apps extension (SEP-1865) which allows
MCP servers to return interactive UI that runs in the client.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-07 18:06:38 +00:00
Jerome
d87c1262cc
Merge pull request #23 from modelcontextprotocol/jerome/dev-scripts-and-fixes
Add dev scripts for mitmproxy debugging and fix JSON-RPC error responses
2025-12-07 17:24:38 +00:00
Jerome Swannack
e6f4377452
Bump @modelcontextprotocol/sdk from PR preview to ^1.24.2
Replace the pkg.pr.new preview URL (PR #1189) with the official npm
release now that the changes have been merged and published.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-07 17:22:29 +00:00
Jerome Swannack
07300e8453
Add dev scripts for mitmproxy debugging and fix JSON-RPC error responses
- Add dev-with-mitm.sh for TUI-based traffic inspection
- Add dev-with-mitmweb.sh for web UI-based traffic inspection
- Fix missing 'id' field in JSON-RPC error responses (required by spec)
- Migrate from zod-to-json-schema to Zod v4's native z.toJSONSchema()

The mitmproxy scripts help developers debug MCP traffic by running
the server through a reverse proxy that intercepts all client requests.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 13:35:29 +00:00
bhosmer-ant
a02624c8b5
Update README.md with elicitation line item 2025-10-16 21:32:08 -04:00
bhosmer-ant
fde6be2c5d
Merge pull request #19 from modelcontextprotocol/update-splash-elicitation
Update splash page to reflect elicitation tool
2025-10-16 19:05:34 -04:00
Basil Hosmer
33e7827dbd
Update splash page to reflect elicitation tool
Updated demo tools count from 7 to 8 and added elicitations to the feature list

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-16 19:00:39 -04:00
bhosmer-ant
2a6413d8e5
Merge pull request #17 from modelcontextprotocol/ochafik/add-elicitation-tool
Add elicitInputs tool to MCP server
2025-10-16 14:47:50 -04:00
Olivier Chafik
1547891443
fix elicitation 2025-10-15 20:35:55 +01:00
Olivier Chafik
79b2444701
fix elicitation 2025-10-15 20:33:49 +01:00
Olivier Chafik
b6e39748aa
Merge branch 'main' into ochafik/add-elicitation-tool 2025-10-15 20:25:42 +01:00