@procedures/mcp-server 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +58 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/procedures/mcp/list-tools.d.ts.map +1 -1
- package/dist/procedures/mcp/list-tools.js +4 -2
- package/dist/procedures/mcp/list-tools.js.map +1 -1
- package/dist/procedures/mcp/serve.d.ts +6 -3
- package/dist/procedures/mcp/serve.d.ts.map +1 -1
- package/dist/procedures/mcp/serve.js +13 -7
- package/dist/procedures/mcp/serve.js.map +1 -1
- package/dist/transport/http.d.ts +28 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +114 -0
- package/dist/transport/http.js.map +1 -0
- package/dist/transport/mcp-transport.d.ts +12 -0
- package/dist/transport/mcp-transport.d.ts.map +1 -1
- package/dist/transport/mcp-transport.js +75 -12
- package/dist/transport/mcp-transport.js.map +1 -1
- package/dist/types.d.ts +35 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/procedures/mcp/list-tools.ts +5 -3
- package/src/procedures/mcp/serve.ts +18 -6
- package/src/transport/http.ts +129 -0
- package/src/transport/mcp-transport.ts +75 -15
- package/src/types.ts +35 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,63 @@
|
|
|
1
1
|
# @procedures/mcp-server
|
|
2
2
|
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 3d24d5b: MCP over Streamable HTTP (roadmap R26), the HTTP transport of the current MCP specification. `McpServerTransport` takes `transport: "http"` and `httpOptions` (port, host, path, token, allowed origins, or an HTTP server of its own). Each client gets a session with an MCP server of its own, and so gets the progress of a tool call and the `list_changed` notifications. The endpoint listens on loopback by default, refuses a web page of another host or origin, and with a token refuses a request without the token. `mark mcp --http <port> [--host <host>] [--token <token>]` (or `MCP_HTTP_PORT`, `MCP_HTTP_HOST`, `MCP_HTTP_TOKEN`) serves the dev tools over it. Before, the package had only stdio, and its SSE transport only threw.
|
|
8
|
+
- c5528e4: Streams that can run without an end (roadmap R15). A procedure declares `stream: { unbounded: true }` in its metadata (`docker.logs`, for `follow`, and `shell.stream` do). `ProcedureServer` marks its stream response, and the faces that collect a stream obey the mark: HTTP without NDJSON answers 406 `NOT_ACCEPTABLE` at once (before, the request waited until a timeout), and the MCP transport stops the stream at its `streamLimits` (default 100 items or 30 seconds) and says so in the result (before, `docker.logs` with `follow` ended only at the time limit of 10 minutes).
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- 956e88b: One manifest type (roadmap R17). `describeRegistry(registry, { expose })` and `describeProcedure` (exported as `describeProcedureEntry`) describe each procedure: the path, the description, the tags, the effects, the JSON Schemas of the input and the output, the calls, an unbounded stream, the command-line metadata, and a hash of the manifest (`procedures.manifest/1`). The new procedure `procedure.manifest` gives it, and it is an MCP tool of the dev tools (63 tools). `procedure.get` gives the JSON Schemas and the effects. The context of a handler has the expose rule of its host (`ctx.expose`), and `procedure.get`, `procedure.list`, `procedure.manifest`, `procedure.export`, `client.lookup`, `mcp.list-tools`, `manifest.generate` and `_discovery.announce` show only the exposed procedures: before, an MCP tool could list the procedures that the host hides. `_discovery.announce` gives the JSON Schemas, and `manifest.generate`, `getProcedureInfos` and the manifest of `mark` use the one description.
|
|
13
|
+
- fb30718: Typed durations (roadmap R11). This change breaks the API. Each public option that is a time takes a `Duration` of `@mark1russell7/quantity`, made with `ms()`, `seconds()`, `minutes()` or `hours()` of `@procedures/client`. A plain number is a type error, and at run time the option throws a `TypeError` that names it. This covers the timeouts and `resilience()`, the retry delays, the cache, the circuit breaker, the rate limit, the HTTP, WebSocket and mock transports, the WebSocket server heartbeat, `timeoutInterceptor({ limit })` (was `ms`), `hostPolicy({ timeout })` (was `timeoutMs`), the idempotency cache (`ttl`, was `ttlMs`), `ApiStorage`, `HybridStorage`, the synced registry and `connect()` of the peer. The per-call overrides in a context (`timeout`, `retry.delay`, `cache.ttl`) and the `route()` overrides (`timeout.overall`, was `timeout.ms`) take durations too. The wire and the inputs of procedures keep milliseconds.
|
|
14
|
+
|
|
15
|
+
Migration: `createOverallTimeoutMiddleware({ overall: 5000 })` becomes `createOverallTimeoutMiddleware({ overall: seconds(5) })`.
|
|
16
|
+
- 21f7743: Wire protocol v1 (roadmap R25). `WIRE-PROTOCOL.md` specifies the HTTP and WebSocket formats. A WebSocket connection starts with a `hello` frame of each side (`getServerProtocol()` on the client), and HTTP sends the header `Procedures-Protocol: 1` on each request and response. A side refuses a newer version with `PROTOCOL_VERSION`. `ERROR_CODES` is the one list of error codes and HTTP statuses of all faces. The reason of a `FORBIDDEN` error travels on each face: in the HTTP error body, in the item metadata of the HTTP and local transports, and in the `_meta` of an MCP error result. `Method.version` is deprecated: the server ignores it. Golden tests in `packages/client/test/wire/` pin the frames.
|
|
17
|
+
- Updated dependencies [ddea529]
|
|
18
|
+
- Updated dependencies [b2a3e3a]
|
|
19
|
+
- Updated dependencies [a8c47f1]
|
|
20
|
+
- Updated dependencies [381ce3a]
|
|
21
|
+
- Updated dependencies [0c627f8]
|
|
22
|
+
- Updated dependencies [ae7f05f]
|
|
23
|
+
- Updated dependencies [7873940]
|
|
24
|
+
- Updated dependencies [29a7b29]
|
|
25
|
+
- Updated dependencies [a70d445]
|
|
26
|
+
- Updated dependencies [bc70357]
|
|
27
|
+
- Updated dependencies [07cc998]
|
|
28
|
+
- Updated dependencies [a6b01a9]
|
|
29
|
+
- Updated dependencies [c799cdd]
|
|
30
|
+
- Updated dependencies [540f8d9]
|
|
31
|
+
- Updated dependencies [b6daaec]
|
|
32
|
+
- Updated dependencies [5b9264e]
|
|
33
|
+
- Updated dependencies [956e88b]
|
|
34
|
+
- Updated dependencies [ff62281]
|
|
35
|
+
- Updated dependencies [d81d0ed]
|
|
36
|
+
- Updated dependencies [aa67cc7]
|
|
37
|
+
- Updated dependencies [061fa22]
|
|
38
|
+
- Updated dependencies [cfb9d69]
|
|
39
|
+
- Updated dependencies [43f7de5]
|
|
40
|
+
- Updated dependencies [b07bb50]
|
|
41
|
+
- Updated dependencies [4a3bfa1]
|
|
42
|
+
- Updated dependencies [bd0b626]
|
|
43
|
+
- Updated dependencies [a6be873]
|
|
44
|
+
- Updated dependencies [fb30718]
|
|
45
|
+
- Updated dependencies [c5528e4]
|
|
46
|
+
- Updated dependencies [fee5d9c]
|
|
47
|
+
- Updated dependencies [21f7743]
|
|
48
|
+
- Updated dependencies [31a0b46]
|
|
49
|
+
- @procedures/client@0.3.0
|
|
50
|
+
- @procedures/mcp@0.3.0
|
|
51
|
+
|
|
52
|
+
## 0.2.3
|
|
53
|
+
|
|
54
|
+
### Patch Changes
|
|
55
|
+
|
|
56
|
+
- 15e48cf: Three fixes of the architecture review (2026-10-16). A `timeoutMs` that is not a finite number of zero or more asks for nothing: before, `NaN` removed the deadline. A procedure of `procedure.define` declares no effects of its own, so a read-only capability runs it and examines each nested call. `mcp.list-tools`, `mcp.serve`, `_discovery.announce`, `manifest.generate`, `server.create`, `procedure.export` and `lib.audit` read the registry of the call, not the global registry. `getProcedureInfos` and `watchProcedures` take a registry.
|
|
57
|
+
- Updated dependencies [15e48cf]
|
|
58
|
+
- @procedures/client@0.2.3
|
|
59
|
+
- @procedures/mcp@0.2.3
|
|
60
|
+
|
|
3
61
|
## 0.2.2
|
|
4
62
|
|
|
5
63
|
### Patch Changes
|