Skip to content

test(conformance): cover SEP-2640 skills server - #2797

Open
tobi-oye wants to merge 1 commit into
modelcontextprotocol:mainfrom
tobi-oye:codex/sep-2640-server-conformance
Open

test(conformance): cover SEP-2640 skills server#2797
tobi-oye wants to merge 1 commit into
modelcontextprotocol:mainfrom
tobi-oye:codex/sep-2640-server-conformance

Conversation

@tobi-oye

Copy link
Copy Markdown
Member

Summary

Adds SEP-2640 (Skills extension) coverage to the TypeScript SDK's server conformance fixture, so the merged skills scenarios in modelcontextprotocol/conformance#330 run against this SDK.

The conformance server now:

  • Advertises the io.modelcontextprotocol/skills extension with directoryRead: true.
  • Serves a small, complete skill fixture — a SKILL.md plus one supporting file in a subdirectory, with real SHA-256 digests and byte sizes.
  • Implements skills/list, skills/get, and resources/directory/read through the SDK's typed custom request-handler API.
  • Returns ttlMs and cacheScope for modern protocol requests (2026-07-28 and later), and omits them on earlier revisions.
  • Returns -32602 Invalid params for unknown skill URIs and for non-directory resource requests.

Scope

This is a conformance fixture that demonstrates the existing public SDK APIs. It does not add a new first-class registerSkill API, and it does not change any SDK implementation code. Skill files are registered as ordinary resources via registerResource, and the three SEP-2640 methods are wired with server.setRequestHandler, using the typed { params, result } schema form the SDK already exposes.

All changes are confined to test/conformance/:

File Change
test/conformance/src/skills.ts New — the fixture and its three request handlers
test/conformance/src/everythingServer.ts Declares the extension capability and registers the fixture

Test results

Scenario Result
SEP-2640 enumeration 32/32 passed
SEP-2640 manifest 6/6 passed
SEP-2640 directory read 7/7 passed
Total SEP-2640 45/45 passed, 0 failures, 0 warnings
2026 active server suite 41/41 passed
Legacy SEP-2640 enumeration 30/30 applicable checks passed; two modern cache checks correctly skipped
Repository pre-push checks build, typecheck, and lint all passed

The legacy run confirms the cache attributes are correctly version-gated: on the 2025-11-25 lifecycle the two ttlMs/cacheScope checks skip rather than fail.

Terminal output


🤖 Generated with Claude Code

@tobi-oye
tobi-oye requested a review from a team as a code owner September 12, 2026 12:46
@changeset-bot

changeset-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 9284357

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@pkg-pr-new

pkg-pr-new Bot commented Sep 12, 2026

Copy link
Copy Markdown

Open in StackBlitz

@modelcontextprotocol/client

npm i https://pkg.pr.new/@modelcontextprotocol/client@2797

@modelcontextprotocol/codemod

npm i https://pkg.pr.new/@modelcontextprotocol/codemod@2797

@modelcontextprotocol/core

npm i https://pkg.pr.new/@modelcontextprotocol/core@2797

@modelcontextprotocol/server

npm i https://pkg.pr.new/@modelcontextprotocol/server@2797

@modelcontextprotocol/server-legacy

npm i https://pkg.pr.new/@modelcontextprotocol/server-legacy@2797

@modelcontextprotocol/express

npm i https://pkg.pr.new/@modelcontextprotocol/express@2797

@modelcontextprotocol/fastify

npm i https://pkg.pr.new/@modelcontextprotocol/fastify@2797

@modelcontextprotocol/hono

npm i https://pkg.pr.new/@modelcontextprotocol/hono@2797

@modelcontextprotocol/node

npm i https://pkg.pr.new/@modelcontextprotocol/node@2797

commit: 9284357

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant