inspector/core/mcp
Repository files (latest commit first)
Filename Latest commit message Latest commit date
cliffhall 11ac134975 feat: require the modern list envelope on skills/list (review round 14)
The review finally quoted the normative text, which is what I asked for
across five rounds before declining: SEP-2640's `skills/list` section says
"In protocol versions 2026-07-28 and later, the result also carries …
`ttlMs` and `cacheScope`." So the era-aware validation is in.

- skillsSchemas: `ModernListSkillsResultSchema` = the page plus the base
  list envelope, with field shapes mirroring `ModernResultEnvelopeSchema`
  in `listSalvage.ts` so this repo's two statements of a modern envelope
  cannot drift. `InspectorClient.listSkills` picks it from the negotiated
  era; the legacy shape stays permissive, because those are 2026-era
  attributes a legacy server has no business sending.
  Nothing else catches this: `skills/*` is consumer-owned, so it is absent
  from the SDK's cacheable-method registry and a modern server answering
  `{ skills: [] }` was reaching the conformance UI as a clean list.
- skills.ts: count `frontmatter.description` (and `name`) length in Unicode
  CODE POINTS. `String.length` counts UTF-16 code units, so 600 non-BMP
  characters measured as 1200 and a perfectly valid description was
  reported `malformed-description` — a conforming server failed by an
  off-by-encoding, which is the direction this module works hardest to
  avoid. The Agent Skills reference validator uses Python `len()`.
- #2248 narrowed: the `skills/list` half is settled here; what remains is
  whether `skills/get` carries the same attributes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018kfrH3uRNUM4JAk1reKtyY
Signed-off-by: cliffhall <cliff@futurescale.com>
2026-09-05 02:01:18 -04:00
..
__tests__ feat: support the Skills extension (SEP-2640) with digest verification 2026-09-04 20:45:15 -04:00
import chore(deps): migrate to eslint 10 to clear the brace-expansion DoS advisory (#1900) 2026-08-01 20:13:30 -04:00
node Merge remote-tracking branch 'origin/v2/main' into v2/fix/2071-oauth-resource-metadata 2026-08-24 21:26:59 -04:00
remote Merge branch 'v2/main' into v2/feat/2144-oauth-revocation 2026-08-28 08:28:57 -04:00
state fix: address Copilot review round 3 on #2251 2026-09-04 22:06:36 -04:00
appElicitation.ts fix(apps): address review of app-rendered elicitations 2026-08-22 19:43:44 -04:00
apps.ts SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') (#1624) 2026-07-15 10:44:24 -04:00
config.ts chore: close quality-gate coverage gaps (#1689) (#1766) 2026-07-24 17:20:12 -04:00
elicitationCreateMessage.ts fix(core): register peer-request handlers before connect (#1797) (#1798) 2026-07-27 11:32:23 -04:00
extensions.ts feat(apps): negotiated app-rendered form elicitations 2026-08-22 19:05:33 -04:00
fetchTracking.ts Network: modern Mcp-* headers, new error codes, cancellation-as-abort (#1628) (#1722) 2026-07-18 17:32:05 -04:00
index.ts fix: salvage a list result's valid entries when one is malformed (#1909) 2026-08-15 16:52:11 -04:00
inspectorClient.ts feat: require the modern list envelope on skills/list (review round 14) 2026-09-05 02:01:18 -04:00
inspectorClientEventTarget.ts feat: allow complex JSON values in request _meta 2026-08-23 12:23:40 -04:00
inspectorClientProtocol.ts feat: support the Skills extension (SEP-2640) with digest verification 2026-09-04 20:45:15 -04:00
listSalvage.ts fix: return the era-parsed tool, and hide aggregate reports in paginated mode (#1909) 2026-08-15 20:08:03 -04:00
messageTrackingTransport.ts fix: cancel a Streamable HTTP call by closing its stream (#2140) 2026-08-28 00:55:29 -04:00
modernTaskSchemas.ts Tasks: io.modelcontextprotocol/tasks extension on modern servers (era fork) (#1731) 2026-07-21 19:17:04 -04:00
oauthManager.ts fix(web): address Copilot review on the OAuth recovery failure arms 2026-08-29 01:54:53 -04:00
samplingCreateMessage.ts fix(core): register peer-request handlers before connect (#1797) (#1798) 2026-07-27 11:32:23 -04:00
serverList.ts feat(auth): revoke OAuth tokens at the authorization server on clear (#2144) 2026-08-28 00:48:57 -04:00
sessionStorage.ts feat(core): port v1.5 hook layer (#1243) (#1300) 2026-05-13 17:43:07 -04:00
sha256.ts fix: address Copilot review round 4 on #2251 2026-09-04 22:38:03 -04:00
skills.ts feat: require the modern list envelope on skills/list (review round 14) 2026-09-05 02:01:18 -04:00
skillsSchemas.ts feat: require the modern list envelope on skills/list (review round 14) 2026-09-05 02:01:18 -04:00
subscriptionAck.ts fix(core): say why a never-acknowledged subscriptions/listen ended 2026-08-27 20:49:55 -04:00
taskNotificationSchemas.ts SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') (#1624) 2026-07-15 10:44:24 -04:00
toolCallCancelledError.ts fix(web): send a cancellation notification when cancelling an ordinary tool call (#1458) (#1463) 2026-06-13 22:23:02 -04:00
toolOutputValidation.ts Refactor / justify codebase-wide 'as unknown as' casts (#1690) (#1756) 2026-07-24 09:34:32 -04:00
typedEventTarget.ts fix(core): read state stores during render instead of re-syncing in an effect 2026-08-29 02:07:53 -04:00
types.ts fix(auth): keep the failure path total, and align the docs with the new order (#2144) 2026-08-28 05:55:00 -04:00
uriTemplate.ts fix: scope the value ceiling to the names a template references 2026-08-17 01:54:37 -04:00
urlElicitation.ts Address @claude review: format core/, typed output-validation error, document progress heuristic 2026-07-15 11:08:54 -04:00