Elysia MCP Adapterelysia-mcp-adapter
MCP Extensions

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.

ExtensionCurrent / draftPinned implementations
Core protocol
MCP
2026-07-28
Draft:
2026-07-28 · stable · included 2026-07-30
5f5440bb26a6 · schema/2026-07-28/schema.json
SHA-256: ef70b61f99b6d2e5e3b46863822eab08dff6a45bedc7a08914e0e5b133f40203
2025-11-25 · stable · included 2026-07-30
38c84e9f93ad · schema/2025-11-25/schema.json
SHA-256: 1ffe4c5577974012f5fa02af14ea88df4b7146679df1abaaad497c8d9230ca8a
Tasks
io.modelcontextprotocol/tasks
2026-07-28
Draft: draft
2026-07-28 · stable · included 2026-07-30
5f5440bb26a6 · seps/2663-tasks-extension.md
SHA-256: f311ca76f5d10545cf422a947af4f8a257f197cdd0ec6709b5fee0a2a65bcf80
draft · draft · included 2026-07-30
2c1425d9a288 · specification/draft/tasks.md
SHA-256: ae908a883d8489f1ebfee47496dd8818f182b467a4196c17df98b40a3d8b2b11
OAuth protected resource
mcp-authorization
2026-07-28
Draft: draft
2026-07-28 · stable · included 2026-07-30
5f5440bb26a6 · docs/specification/2026-07-28/basic/authorization/index.mdx
SHA-256: e31841f18b21f83f984689c0b0409577139cc50b698ce7c8fbd09a8c920a5241
draft · draft · included 2026-07-30
41d9e938e9a9 · docs/specification/draft/basic/authorization/index.mdx
SHA-256: 7559c591b265ef71549f02775423c8c1ae152028601ee331da12f66bec0baa55
2025-11-25 · stable · included 2026-07-30
38c84e9f93ad · docs/specification/2025-11-25/basic/authorization.mdx
SHA-256: 8182f6a204013b497369c2ad690ff313f8bd1d2ce9ebb68e8f5d0392aa348cb9
2025-06-18 · stable · included 2026-07-30
f5ccad944fdf · docs/specification/2025-06-18/basic/authorization.mdx
SHA-256: f9a7ebfc5e56aa9717934aaaf5e9dd0310fcfdc942b21b09248653adeb723025
OAuth Client Credentials
io.modelcontextprotocol/oauth-client-credentials
draft
Draft: draft
draft · draft · included 2026-07-30
fb374c7db2b3 · specification/draft/oauth-client-credentials.mdx
SHA-256: 5db1ffb20f0f33ddbebd6e9747be20c1be3a395a1bd1faad3719334c35a70d3f
Enterprise-Managed Authorization
io.modelcontextprotocol/enterprise-managed-authorization
2026-06-17
Draft:
2026-06-17 · stable · included 2026-07-30
fb374c7db2b3 · specification/stable/enterprise-managed-authorization.mdx
SHA-256: df4fe01daec0eac6069e17a293d4ed7e197ab20463038d806f71e63b22fd8986
Apps
io.modelcontextprotocol/ui
2026-01-26
Draft: draft
2026-01-26 · stable · included 2026-07-30
v1.7.5 · specification/2026-01-26/apps.mdx
Package: 1.7.5
SHA-256: ee452a7d1b9b7fb900acfeb4d6932d3963375b0f3f37d196a4b93eb80312af0e
draft · draft · included 2026-07-30
v1.7.5 · specification/draft/apps.mdx
Package: 1.7.5
SHA-256: 00e97500a71cd46f27a0c661a3c9ee4df60cf64ba7b069e41227ddf8d41b4269

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.

On this page