MCP extensions
Add durable work, OAuth authorization, and interactive application views to MCP.
MCP Extensions add optional capabilities to the core protocol without forcing every client and server to implement them. This adapter implements Tasks, Authorization, and Apps as thin, opt-in protocol layers around the same Elysia application. Route-backed operations still pass through Elysia validation, hooks, guards, error handling, and response mapping.
import { mcp } from '@mwillbanks/elysia-mcp-adapter'
app.use(mcp({
transport: {
protocolVersions: ['2026-07-28', '2025-11-25']
},
extensions: {
tasks: { version: 'current', provider },
auth: {
version: 'current',
resource: 'https://api.example.com/mcp',
authorizationServers: ['https://auth.example.com'],
verifyAccessToken
},
apps: { version: 'current' }
}
}))Architecture
Implemented extensions and versions
current selects the reviewed stable implementation when one exists. draft selects the newest
reviewed draft pinned by this release. A supported YYYY-MM-DD is immutable, and omitting
version means current. Unsupported versions fail during plugin construction.
| Extension | Current / draft | Pinned implementations |
|---|---|---|
Core protocolMCP | 2026-07-28Draft: — |
|
Tasksio.modelcontextprotocol/tasks | 2026-07-28Draft: draft |
|
OAuth protected resourcemcp-authorization | 2026-07-28Draft: draft |
|
OAuth Client Credentialsio.modelcontextprotocol/oauth-client-credentials | draftDraft: draft |
|
Enterprise-Managed Authorizationio.modelcontextprotocol/enterprise-managed-authorization | 2026-06-17Draft: — |
|
Appsio.modelcontextprotocol/ui | 2026-01-26Draft: draft |
|
The table is generated from the package's exported MCP_EXTENSION_SUPPORT manifest. Every pin
records its inclusion date, upstream revision or package version, specification path, status, and
schema hash. Aliases move only through reviewed source, fixtures, tests, and documentation; the
upstream watcher reports drift but never changes an alias automatically.
Tasks
Tasks turn eligible tool calls into durable work that clients can poll, cancel, supply input to, and subscribe to. The application supplies the durable provider and owns retention, isolation, execution, and recovery.
Authorization
Authorization makes the adapter an OAuth protected resource. It verifies final access tokens, publishes RFC 9728 metadata, filters discovery by scope, and supports the Client Credentials and Enterprise-Managed Authorization capability profiles.
Apps
Apps associate tools with self-contained ui:// HTML resources. Apps
can receive structured tool results and call app-only tools while preserving useful text fallback
for clients without an Apps host.
Modern MCP 2026-07-28 uses per-request protocol metadata and server/discover. Legacy 2025-11-25 initialization remains available, but Tasks methods are modern-only.
Client implementations vary. Use the canonical MCP Extension Support Matrix when deciding which capabilities to enable.