skillscript-runtime 0.15.5 → 0.15.6

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.
@@ -83,22 +83,33 @@ This same skill body runs unchanged against your substrate, against SQLite-FTS (
83
83
 
84
84
  ### Case 2 — MCP-tools wiring (substrate-locked)
85
85
 
86
- Your substrate exposes itself as MCP tools (via a local MCP server or remote one). You wire it as an `McpConnector` (typically `RemoteMcpConnector` for spawned MCP processes) and skills reference its tools by name with substrate-specific kwargs.
86
+ Your substrate exposes itself as MCP tools (via a local MCP server or remote one). You wire it as an `McpConnector` and skills reference its tools by name with substrate-specific kwargs.
87
87
 
88
- ```typescript
89
- // connectors.json:
90
- {
91
- "my_store": {
92
- "class": "RemoteMcpConnector",
93
- "config": {
94
- "command": "my-store-mcp-server",
95
- "args": ["--db", "/var/store"]
88
+ **MCP transport — two paths.** The protocol's wire layer is the same; the transport differs:
89
+
90
+ - **Stdio MCP** (most common for community servers — YouTrack, GitHub, Linear, etc.): the MCP server is a binary you spawn as a child process and communicate with via stdin/stdout. Wired via `RemoteMcpConnector`:
91
+
92
+ ```json
93
+ {
94
+ "my_store": {
95
+ "class": "RemoteMcpConnector",
96
+ "config": {
97
+ "command": "my-store-mcp-server",
98
+ "args": ["--db", "/var/store"]
99
+ }
96
100
  }
97
101
  }
98
- }
99
- ```
102
+ ```
103
+
104
+ - **HTTP MCP / Streamable HTTP** (Anthropic's hosted MCP, AMP, increasingly common for hosted services): the MCP server speaks JSON-RPC over HTTP with Server-Sent Events for the stream channel. Two ways to wire it:
105
+
106
+ - **(a) Stdio bridge** — `RemoteMcpConnector` + `npx mcp-remote https://... --sse` runs a node child process that bridges HTTPS-SSE into stdio for the runtime to consume. Works today; adds the bridge subprocess.
107
+ - **(b) Direct HTTP connector** — wire your own `McpConnector` class against the HTTP transport (no subprocess). See `examples/connectors/McpConnectorTemplate/` for the fork template.
108
+
109
+ Pick (a) for quick wiring against a remote HTTP MCP server with no implementation effort; pick (b) when subprocess overhead matters or you want direct control over connection lifecycle.
110
+
111
+ **In skills**, regardless of transport:
100
112
 
101
- **In skills:**
102
113
  ```
103
114
  $ my_store.search query="customer feedback" region="eu-west" cluster="prod" -> CONTEXT
104
115
  ```
@@ -14,13 +14,15 @@ A skeleton `McpConnector` implementation for adopters writing their own. Not run
14
14
 
15
15
  **Fork this template only when none of those fit** — e.g.:
16
16
 
17
- - Direct HTTP MCP (JSON-RPC over HTTP, no child process)
17
+ - Direct HTTP MCP (JSON-RPC over HTTP, no child process) — for now; check the bundled `McpConnector` classes before forking, as a bundled `HttpMcpConnector` is on the near-term roadmap
18
18
  - WebSocket MCP
19
19
  - In-process MCP (call methods directly without IPC)
20
20
  - Custom transport that doesn't match stdio framing
21
21
  - Cross-thread / worker-pool dispatch
22
22
 
23
- If you're trying to wire a remote MCP server like YouTrack or GitHub, **you want `RemoteMcpConnector` in `connectors.json`**, not this template. See `connectors.json.example` for the wiring pattern.
23
+ If you're trying to wire a remote stdio MCP server like YouTrack or GitHub, **you want `RemoteMcpConnector` in `connectors.json`**, not this template. See `connectors.json.example` for the wiring pattern.
24
+
25
+ If you're trying to wire a Streamable HTTP MCP server (AMP, Anthropic's hosted MCP, etc.), the simplest path today is `RemoteMcpConnector` + `npx mcp-remote https://... --sse` (bridges HTTPS-SSE into stdio via a node subprocess). For lower overhead (no subprocess layer) check whether a bundled `HttpMcpConnector` is available in your installed runtime version — if so, declare an instance in `connectors.json` rather than forking this template.
24
26
 
25
27
  ## Forking workflow
26
28
 
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "_comment": "Onboarding scaffold connectors.json — wires example MCP servers an adopter might add alongside the bundled bridges. Most onboarding deployments don't need anything here; the file-backed data store + OpenAI LLM + tmux-shell wiring lives in bootstrap.ts. This file is the place for adopter-specific MCP servers (your in-house tools, a YouTrack instance, a custom agent API, etc.).",
3
3
 
4
+ "_comment_transport": "RemoteMcpConnector bridges stdio MCP servers. The `mcp-remote` shape below also bridges Streamable HTTP MCP servers (the wire transport increasingly common for hosted MCPs — Anthropic's hosted MCP, AMP, etc.): `mcp-remote https://endpoint/sse` runs a node subprocess that adapts HTTPS-SSE to stdio for the runtime. For lower overhead (no subprocess layer), wire a direct HTTP MCP connector class — see docs/adopter-playbook.md §Case 2 and examples/connectors/McpConnectorTemplate/.",
5
+
4
6
  "_example_remote_mcp": {
5
7
  "class": "RemoteMcpConnector",
6
8
  "config": {
@@ -2,7 +2,7 @@
2
2
  "provenance_version": "1.0",
3
3
  "language_version": "1.0",
4
4
  "compiler_version": "0.1.0-dev",
5
- "compiled_at": "2026-06-01T20:23:35.853Z",
5
+ "compiled_at": "2026-06-01T20:44:19.882Z",
6
6
  "source_skill": {
7
7
  "name": "hello-world"
8
8
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skillscript-runtime",
3
- "version": "0.15.5",
3
+ "version": "0.15.6",
4
4
  "description": "Runtime, compiler, lint, CLI, and dashboard for Skillscript — a small declarative language for authoring agent workflows.",
5
5
  "license": "MIT",
6
6
  "author": "Scott Shwarts <scotts@pobox.com>",