Commit graph

26 commits

Author SHA1 Message Date
Luca Chang
9263312d11 Bump CI
Some checks failed
CI / check-schema (push) Has been cancelled
Deploy VitePress site to Pages / build (push) Has been cancelled
Deploy VitePress site to Pages / deploy (push) Has been cancelled
2026-09-04 10:03:32 -07:00
Luca Chang
0d0a6bd4c2
feat: lock 2026-07-28 specification and schema (#19) 2026-08-24 12:10:45 -07:00
Luca Chang
e4345978be
fix: make generated schema.json enforce spec constraints (#18)
The generated JSON Schema artifact previously failed to encode several
normative requirements, forcing non-TypeScript implementations to
maintain their own mirrors of core shapes and discriminators:

- InputRequest/InputResponse collapsed to anyOf:[{},{},{}] because the
  imported request/result types resolved to empty schemas, accepting
  any instance.
- The required resultType discriminators ('task' on CreateTaskResult,
  'complete' on Get/Update/CancelTaskResult) appeared nowhere in the
  artifact despite being normative MUSTs in the extension prose.
- Strip-mode object emission produced additionalProperties:false inside
  allOf intersections, making CreateTaskResult unsatisfiable: every
  spec-conformant instance (with resultType or _meta) was rejected.

The canonical specification is now the sole source of truth for all
core-spec shapes — no SDK package is consulted at any layer.
scripts/fetch-spec-schema.ts vendors spec.schema.json and spec.types.ts
from the same recorded spec commit with provenance headers:

- schema.ts imports every core type (JSON-RPC envelopes, Result,
  NotificationParams, the MRTR InputRequests/InputResponses, and the
  JSON-RPC Error object) from the vendored spec.types.ts, deleting the
  local mirrors that had already drifted from upstream.
- generate-schemas.ts emits $ref for all spec-owned types — including
  the JSON-RPC envelopes intersected by the extension's own types — and
  splices their transitive $ref closure verbatim from the vendored
  canonical schema.json. Core-spec corrections flow in via an explicit,
  reviewable refresh (npm run fetch:spec-schema) instead of silently
  diverging. The @modelcontextprotocol/sdk devDependency is removed.
- Runtime Zod stand-ins for imported types are permissive locals whose
  shapes never reach the artifact; generation fails on any unmapped
  placeholder, and on any definition that cannot be converted.
- JSON Schema emission uses io:'input' so TypeScript's open interface
  semantics are preserved and intersections remain satisfiable.
- resultType discriminators are encoded structurally in schema.ts.
- FailedTask.error now requires the canonical JSON-RPC Error shape;
  ttlMs and pollIntervalMs are integers per the prose.
- createdAt/lastUpdatedAt deliberately remain unconstrained strings:
  the prose requires ISO 8601 generally, and JSON Schema's date-time
  format/pattern machinery can only express RFC 3339, which would
  reject valid basic-form timestamps.

Validated with a Draft 2020-12 jsonschema matrix covering union
rejection/acceptance, discriminator enforcement, JSON-RPC envelope
enforcement, error-shape and integer constraints, byte-fidelity of all
56 spliced canonical definitions, complete $ref resolution, and
check-mode idempotency.
2026-08-21 13:44:01 -07:00
dependabot[bot]
dcc8d2bbec
Bump the npm_and_yarn group across 1 directory with 8 updates (#16)
Bumps the npm_and_yarn group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [mermaid](https://github.com/mermaid-js/mermaid) | `11.15.0` | `11.17.0` |
| [@hono/node-server](https://github.com/honojs/node-server) | `1.19.14` | `1.19.17` |
| [brace-expansion](https://github.com/juliangruber/brace-expansion) | `2.1.0` | `2.1.4` |
| [brace-expansion](https://github.com/juliangruber/brace-expansion) | `5.0.6` | `5.0.9` |
| [dompurify](https://github.com/cure53/DOMPurify) | `3.4.12` | `3.4.14` |
| [fast-uri](https://github.com/fastify/fast-uri) | `3.1.2` | `3.1.5` |
| [hono](https://github.com/honojs/hono) | `4.12.30` | `4.13.3` |
| [ip-address](https://github.com/beaugunderson/ip-address) | `10.2.0` | `10.5.0` |
| [postcss](https://github.com/postcss/postcss) | `8.5.15` | `8.5.26` |



Updates `mermaid` from 11.15.0 to 11.17.0
- [Release notes](https://github.com/mermaid-js/mermaid/releases)
- [Commits](https://github.com/mermaid-js/mermaid/compare/mermaid@11.15.0...mermaid@11.17.0)

Updates `@hono/node-server` from 1.19.14 to 1.19.17
- [Release notes](https://github.com/honojs/node-server/releases)
- [Commits](https://github.com/honojs/node-server/compare/v1.19.14...v1.19.17)

Updates `brace-expansion` from 2.1.0 to 2.1.4
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v2.1.0...v2.1.4)

Updates `brace-expansion` from 5.0.6 to 5.0.9
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/v2.1.0...v2.1.4)

Updates `dompurify` from 3.4.12 to 3.4.14
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.4.12...3.4.14)

Updates `fast-uri` from 3.1.2 to 3.1.5
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.2...v3.1.5)

Updates `hono` from 4.12.30 to 4.13.3
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.12.30...v4.13.3)

Updates `ip-address` from 10.2.0 to 10.5.0
- [Release notes](https://github.com/beaugunderson/ip-address/releases)
- [Commits](https://github.com/beaugunderson/ip-address/compare/v10.2.0...v10.5.0)

Updates `postcss` from 8.5.15 to 8.5.26
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.15...8.5.26)

---
updated-dependencies:
- dependency-name: mermaid
  dependency-version: 11.17.0
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: "@hono/node-server"
  dependency-version: 1.19.17
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: brace-expansion
  dependency-version: 2.1.4
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: brace-expansion
  dependency-version: 5.0.9
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: dompurify
  dependency-version: 3.4.14
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: fast-uri
  dependency-version: 3.1.5
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: hono
  dependency-version: 4.13.3
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: ip-address
  dependency-version: 10.5.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: postcss
  dependency-version: 8.5.26
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-19 20:12:22 -07:00
dependabot[bot]
4824f3a6fa
Bump the npm_and_yarn group across 1 directory with 2 updates (#8)
Bumps the npm_and_yarn group with 2 updates in the / directory: [dompurify](https://github.com/cure53/DOMPurify) and [hono](https://github.com/honojs/hono).


Updates `dompurify` from 3.4.8 to 3.4.12
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/3.4.8...3.4.12)

Updates `hono` from 4.12.23 to 4.12.30
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.12.23...v4.12.30)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-version: 3.4.12
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: hono
  dependency-version: 4.12.30
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-19 19:32:48 -07:00
Rich Smith
7b8e2bde21
fix: restore auth binding requirement to Security Considerations (#9) 2026-08-19 19:32:20 -07:00
Rich Smith
f29ffe5ad3
fix: correct MISSING_REQUIRED_CLIENT_CAPABILITY error code to -32021 (#10) 2026-08-19 19:30:36 -07:00
Copilot
8889b9d8b2
Update Tasks extension docs to reflect official MCP status (#13)
* Initial plan

* docs: remove outdated experimental wording for tasks extension

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-08-19 19:21:58 -07:00
JoannaaKL
c523f2c21d
Fix Missing Required Client Capability error code (#15)
The spec cites -32003 for "Missing Required Client Capability", but the
canonical code is -32021: SEP-2663 uses -32021 in all four of these
spots, the core 2026-07-28 schema defines MissingRequiredClientCapability
Error as -32021, and the TypeScript SDK exports
MISSING_REQUIRED_CLIENT_CAPABILITY = -32021. -32003 appears in no core
schema version.
2026-08-19 19:21:20 -07:00
dependabot[bot]
2c1425d9a2
Bump hono in the npm_and_yarn group across 1 directory (#6)
Bumps the npm_and_yarn group with 1 update in the / directory: [hono](https://github.com/honojs/hono).


Updates `hono` from 4.12.18 to 4.12.23
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.12.18...v4.12.23)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.12.23
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-15 13:41:09 -07:00
Luca Chang
8966bea9c4
Set up Vitepress deployment (#7) 2026-06-09 12:18:41 -07:00
dependabot[bot]
dd47977f4e
Bump qs in the npm_and_yarn group across 1 directory (#3)
Bumps the npm_and_yarn group with 1 update in the / directory: [qs](https://github.com/ljharb/qs).


Updates `qs` from 6.15.1 to 6.15.2
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.15.1...v6.15.2)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.15.2
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-03 14:49:29 -07:00
Luca Chang
932668b768
Port #2756 (#5)
https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2756
2026-05-29 12:08:56 -07:00
Luca Chang
104a270d5f
chore: port ResultType fix (#4)
https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2773
2026-05-28 13:02:59 -07:00
Luca Chang
29f83d5c8b
Write updated docs and port SEP-2663 content (#2)
* Port SEP-2663 content

* Commit package-lock.json

* Add TODOs to import new types from SDK

* Copy InputRequests/InputResponses types from main repo

* Specify error for servers that require tasks

* Allow servers to require tasks

* Move "existing code" note to separate section

* Update 2663-tasks-extension.md

Co-authored-by: Caitie McCaffrey <caitiem20@github.com>

* Update 2663-tasks-extension.md

Co-authored-by: Caitie McCaffrey <caitiem20@github.com>

* Task Update Requests

* Link to MRTR spec for inputRequests

* Add auth check requirement

* Rename notifications/tasks/status

* Move detailed task types into task status section

* Add back explicit polling response requirements

* Disallow progress/logging notifications for now

* Add spec language for client behavior on inputRequests

* Mark Accepted

* Mark Final

* regenerate schema

* Fix check mode in generate-schemas.ts

Check mode previously compared the gitignored intermediate
schema/draft/generated/schema.ts against fresh output, then wrote a
temp file under that same directory to dynamic-import for JSON Schema
generation. On fresh checkouts (every CI run, since schema/**/generated/
is gitignored) the directory does not exist, so the temp-file write
crashed with ENOENT before reporting any real result. Local runs hid
the bug because once a developer runs the generator the directory
sticks around.

Drop the comparison against the gitignored intermediate (it cannot be
stale on CI by definition) and check only the committed schema.json.
The Zod schemas file is now written unconditionally so the dynamic
import resolves.

---------

Co-authored-by: Caitie McCaffrey <caitiem20@github.com>
2026-05-22 12:06:55 -07:00
Luca Chang
d9494a5b83
Merge pull request #1 from CaitieM20/initialCommit
Initial commit populating repo with 11-25-2025 content
2026-05-11 16:24:12 -07:00
Caitie McCaffrey
7fd9c1c81b
Update seps/1686-tasks.md
Co-authored-by: Luca Chang <131398524+LucaButBoring@users.noreply.github.com>
2026-05-11 16:22:15 -07:00
Caitie McCaffrey
0b65dc6188 Rename folders to draft 2026-05-11 16:04:32 -07:00
Caitie McCaffrey
bfb58b3f4f update readme 2026-05-11 16:00:35 -07:00
Caitie McCaffrey
ca977811cc update generation scripts and readme 2026-05-11 16:00:24 -07:00
Caitie McCaffrey
b8acfa0b6b generate schema with refs 2026-05-11 15:53:04 -07:00
Caitie McCaffrey
b5f037fea3 Update MAINTAINERS.md 2026-05-11 15:18:16 -07:00
Caitie McCaffrey
fd6d6b5d8e update .gitignore 2026-05-11 14:43:27 -07:00
Caitie McCaffrey
5cac9229cf Use SDK imports for TypeScript and remote refs for JSON Schema
- schema.ts: Import core MCP types from @modelcontextprotocol/sdk/types.js
  instead of inline stubs
- schema.json: Use remote \ URIs pointing to core MCP schema at
  https://raw.githubusercontent.com/modelcontextprotocol/modelcontextprotocol/
  main/schema/2025-11-25/schema.json
- Add package.json with SDK and TypeScript as devDependencies
- Add .gitignore for node_modules
- Add skipLibCheck to tsconfig.json
- Add index signature to TaskStatusNotificationParams for SDK type compat

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-11 14:37:49 -07:00
Caitie McCaffrey
8c434efe8d first agentic pass 2026-05-11 14:25:28 -07:00
Caitie McCaffrey
0ef93eaaaa first commit 2026-05-11 13:48:45 -07:00