From 5a7b2689d47fbe45d7df6c4d770b880c5b42968b Mon Sep 17 00:00:00 2001 From: Marc Weiner Date: Tue, 28 Jul 2026 19:32:29 -0400 Subject: [PATCH 1/5] fix: center callspec lockup mark and wordmark alignment Optically center the hub graphic in the mark box and vertically align callspec text with the icon using dominant-baseline middle. --- assets/callspec-lockup-dark.svg | 18 +++++++++--------- assets/callspec-lockup-light.svg | 18 +++++++++--------- assets/callspec-mark-dark.svg | 14 +++++++------- assets/callspec-mark-light.svg | 14 +++++++------- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/assets/callspec-lockup-dark.svg b/assets/callspec-lockup-dark.svg index f6755493..94e41870 100644 --- a/assets/callspec-lockup-dark.svg +++ b/assets/callspec-lockup-dark.svg @@ -1,11 +1,11 @@ - - - - - - - - - callspec + + + + + + + + + callspec diff --git a/assets/callspec-lockup-light.svg b/assets/callspec-lockup-light.svg index aafa2a6c..d0c6f71c 100644 --- a/assets/callspec-lockup-light.svg +++ b/assets/callspec-lockup-light.svg @@ -1,11 +1,11 @@ - - - - - - - - - callspec + + + + + + + + + callspec diff --git a/assets/callspec-mark-dark.svg b/assets/callspec-mark-dark.svg index 1478ba5b..98de3eb6 100644 --- a/assets/callspec-mark-dark.svg +++ b/assets/callspec-mark-dark.svg @@ -1,10 +1,10 @@ - - - - - - - + + + + + + + diff --git a/assets/callspec-mark-light.svg b/assets/callspec-mark-light.svg index 26739969..d8bc88ca 100644 --- a/assets/callspec-mark-light.svg +++ b/assets/callspec-mark-light.svg @@ -1,10 +1,10 @@ - - - - - - - + + + + + + + From 5581e28c018a30613773394e8206adadedd4a53e Mon Sep 17 00:00:00 2001 From: Marc Weiner Date: Tue, 28 Jul 2026 19:33:00 -0400 Subject: [PATCH 2/5] docs: remove internal express-typed-rpc references from README Describe callspec on its own merits; no mentions of prior internal RPC work. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6426efe6..08bc31c8 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@

One registry. HTTP RPC, interactive docs, OpenAPI, MCP, and a typed client.

-callspec replaces the old express-typed-rpc + Swagger + separate MCP tool list stack with a single `defineRegistry` object. Add a route once; it shows up everywhere. +One `defineRegistry` powers HTTP RPC, OpenAPI, callsheet docs, MCP tools, and a typed client. Add a route once; it shows up everywhere. ```typescript import {defineRegistry, defineRoute, mountRegistry, mountMcp, client} from 'callspec'; @@ -43,7 +43,7 @@ mountMcp(app, api, {path: '/mcp', contextResolver: getUserContext}); | Surface | How you get it | |---------|----------------| -| **HTTP RPC** | `POST /v1/` — same URLs as before | +| **HTTP RPC** | `POST /v1/` | | **Interactive docs** | Built-in **callsheet** UI at `/docs` | | **OpenAPI 3.1** | `GET /openapi.json` from the same registry | | **MCP tools** | `mcp: true` on a route → automatic `tools/list` | From 480d5309e954646493ad4cbf6b7c22cf1f96953c Mon Sep 17 00:00:00 2001 From: Marc Weiner Date: Tue, 28 Jul 2026 19:36:19 -0400 Subject: [PATCH 3/5] docs: finish removing express-typed-rpc from README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 08bc31c8..ca9d9607 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ Field `{ description }` on runtyp preds flows to JSON Schema → OpenAPI → cal ## Client -Fetch-only — works in the browser and in Node 18+ (global `fetch`). No `http`/`https`/`express` in the client entry, same split as `express-typed-rpc/dist/client` vs `client-node`. +Fetch-only — works in the browser and in Node 18+ (global `fetch`). The `callspec/client` entry has no `http`, `https`, or Express imports, so it is safe in frontend bundles. **Browser or frontend bundler** — import the client subpath so you do not pull server code: @@ -110,7 +110,7 @@ export const api = defineRegistry({ /* ... */ }); export type API = InferRegistry; ``` -Drop-in replacement for `express-typed-rpc/dist/client`. Same Date wire format (`deserializeResponse` on read). +Responses deserialize ISO date strings back to `Date` on read (`deserializeResponse`). ## Development From 913811f9a3caef10a86b043fa17d3217d17dd940 Mon Sep 17 00:00:00 2001 From: Marc Weiner Date: Tue, 28 Jul 2026 19:37:58 -0400 Subject: [PATCH 4/5] docs: add callsheet screenshot and highlight built-in MCP Show the Chirp demo home page with Connect MCP panel; expand README with a dedicated MCP section (opt-in routes, mountMcp, copy-paste configs). --- README.md | 57 +++++++++++++++++++++++++------- assets/callsheet-chirp-demo.png | Bin 0 -> 75735 bytes 2 files changed, 45 insertions(+), 12 deletions(-) create mode 100644 assets/callsheet-chirp-demo.png diff --git a/README.md b/README.md index ca9d9607..a099734e 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,14 @@ One `defineRegistry` powers HTTP RPC, OpenAPI, callsheet docs, MCP tools, and a typed client. Add a route once; it shows up everywhere. +

+ + callsheet home — Chirp demo API with Connect MCP panel showing Cursor config + +

+ +

callsheet — built-in docs UI with a Connect MCP panel. Copy the endpoint and a ready-made config for Cursor, Claude, VS Code, Windsurf, or Pi.

+ ```typescript import {defineRegistry, defineRoute, mountRegistry, mountMcp, client} from 'callspec'; import {predicates as p} from 'runtyp'; @@ -22,7 +30,7 @@ export const api = defineRegistry({ description: 'Returns pipelines for a team.', tags: ['pipelines'], }, - mcp: true, // → tools/list + mcp: true, // → MCP tools/list handler: getPipelines, }), }); @@ -31,14 +39,36 @@ mountRegistry(app, api, { contextResolver: getUserContext, docs: { openApi: {title: 'My API', version: '1.0.0'}, - // exposeOpenApi: true → GET /openapi.json - // exposeUi: true → GET /docs (callsheet UI) + exposeUi: true, // → /docs (callsheet + Connect MCP) + exposeOpenApi: true, // → /openapi.json }, }); mountMcp(app, api, {path: '/mcp', contextResolver: getUserContext}); ``` +Try the demo locally: `npm run build && npm run dev:docs` → [http://127.0.0.1:3456/v1/docs](http://127.0.0.1:3456/v1/docs) (Chirp API sample; use `Bearer demo` for private tools). + +## Built-in MCP server + +No separate MCP process. No hand-maintained tool manifest. No stdio bridge. + +1. **Opt in per route** — `mcp: true` on any `defineRoute`. Input/output schemas come from the same runtyp preds as HTTP. +2. **Mount once** — `mountMcp(app, api, { path: '/mcp' })` on the same Express app. Streamable HTTP at `/mcp`. +3. **Connect from callsheet** — at `/docs`, the **Connect MCP** panel shows your endpoint and copy-paste configs for Cursor (`.cursor/mcp.json`), Claude Desktop, Claude Code CLI, VS Code, Windsurf, and Pi — including `Authorization` headers when you have private tools. + +```typescript +searchRecent: defineRoute({ + input: p.object({query: p.string()}), + meta: {summary: 'Search recent', description: '…', tags: ['tweets']}, + access: 'private', + mcp: true, // this route is now an MCP tool — same handler as POST /v1/searchRecent + handler: searchRecent, +}), +``` + +Agents call the **same handlers** as your HTTP RPC. Auth uses the same `contextResolver` (e.g. `Authorization: Bearer …`). Public tools work without a token; private tools return 401 without one. + ## Why callspec | Surface | How you get it | @@ -46,7 +76,7 @@ mountMcp(app, api, {path: '/mcp', contextResolver: getUserContext}); | **HTTP RPC** | `POST /v1/` | | **Interactive docs** | Built-in **callsheet** UI at `/docs` | | **OpenAPI 3.1** | `GET /openapi.json` from the same registry | -| **MCP tools** | `mcp: true` on a route → automatic `tools/list` | +| **MCP tools** | `mcp: true` on a route → `tools/list` + `tools/call` at `/mcp` | | **Typed client** | `client('searchLogs', input)` | No second schema. No duplicate handler layer. No separate MCP subprocess. @@ -55,15 +85,20 @@ No second schema. No duplicate handler layer. No separate MCP subprocess. ### callsheet — interactive docs -Minimal, fast docs UI baked into callspec. Env-gated in production; flip on with `exposeDocs: true` or: +Minimal, fast docs UI baked into callspec. Browse routes, try RPCs, read OpenAPI, and **connect MCP clients** from the home page. Env-gated in production; flip on with: ```typescript docs: { openApi: {title: 'Logfox API', version: '1.0.0'}, exposeOpenApi: true, // machine-readable spec - exposeUi: true, // human-readable /docs + exposeUi: true, // human-readable /docs + Connect MCP openApiPath: '/openapi.json', uiPath: '/docs', + callsheet: { + mcp: { + authHint: 'Use Authorization: Bearer for private tools.', + }, + }, } ``` @@ -77,13 +112,9 @@ Toggle each surface independently — spec only, UI only, both, or neither (`doc Private gate runs **before** validation so unauthenticated callers never see field-level errors. -### MCP on the same Express process - -`mountMcp` at `/mcp` on the same app — not a stdio subprocess. Routes opt in with `mcp: true`. - ### runtyp + OpenAPI -Field `{ description }` on runtyp preds flows to JSON Schema → OpenAPI → callsheet. Route-level `meta` (summary, tags) is callspec-only. +Field `{ description }` on runtyp preds flows to JSON Schema → OpenAPI → callsheet → MCP `inputSchema`. Route-level `meta` (summary, tags) is callspec-only. ## Client @@ -116,9 +147,10 @@ Responses deserialize ISO date strings back to `Date` on read (`deserializeRespo ```bash npm run validate # build server + callsheet UI, lint, test (incl. integration) +npm run dev:docs # Chirp demo API + callsheet at :3456/v1/docs ``` -Integration tests spin up Express in-process and verify OpenAPI, `/docs`, auth, and RPC end-to-end. +Integration tests spin up Express in-process and verify OpenAPI, `/docs`, auth, MCP schemas, and RPC end-to-end. ## Package layout @@ -129,6 +161,7 @@ src/ executeRoute.ts # shared HTTP + MCP pipeline mountRegistry.ts # POST routes + openapi + callsheet mountMcp.ts # MCP on Express + mcpTools.ts # tools/list schemas from runtyp openapi.ts # OpenAPI 3.1 emitter client.ts # typed fetch client callsheet/ # built-in docs UI (bundled to dist/callsheet/ui) diff --git a/assets/callsheet-chirp-demo.png b/assets/callsheet-chirp-demo.png new file mode 100644 index 0000000000000000000000000000000000000000..c1340d81aa3e32e89f236e3d79a2a3306f65a329 GIT binary patch literal 75735 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 Date: Tue, 28 Jul 2026 19:39:40 -0400 Subject: [PATCH 5/5] fix: optically center callspec mark in logo assets Symmetric Y-node layout with equal arm lengths; inset square frame. Use object-fit contain for brand marks so small sizes are not cropped. --- assets/callspec-lockup-dark.svg | 18 +++++++++--------- assets/callspec-lockup-light.svg | 18 +++++++++--------- assets/callspec-mark-dark.svg | 16 ++++++++-------- assets/callspec-mark-light.svg | 16 ++++++++-------- src/callsheet/ui/styles.css | 2 +- 5 files changed, 35 insertions(+), 35 deletions(-) diff --git a/assets/callspec-lockup-dark.svg b/assets/callspec-lockup-dark.svg index 94e41870..ab107e09 100644 --- a/assets/callspec-lockup-dark.svg +++ b/assets/callspec-lockup-dark.svg @@ -1,11 +1,11 @@ - - - - - - - - - callspec + + + + + + + + + callspec diff --git a/assets/callspec-lockup-light.svg b/assets/callspec-lockup-light.svg index d0c6f71c..499dd6b9 100644 --- a/assets/callspec-lockup-light.svg +++ b/assets/callspec-lockup-light.svg @@ -1,11 +1,11 @@ - - - - - - - - - callspec + + + + + + + + + callspec diff --git a/assets/callspec-mark-dark.svg b/assets/callspec-mark-dark.svg index 98de3eb6..51f1b063 100644 --- a/assets/callspec-mark-dark.svg +++ b/assets/callspec-mark-dark.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/assets/callspec-mark-light.svg b/assets/callspec-mark-light.svg index d8bc88ca..08c3d694 100644 --- a/assets/callspec-mark-light.svg +++ b/assets/callspec-mark-light.svg @@ -1,10 +1,10 @@ - - - - - - - - + + + + + + + + diff --git a/src/callsheet/ui/styles.css b/src/callsheet/ui/styles.css index 18dbc4d5..e8b6a6b9 100644 --- a/src/callsheet/ui/styles.css +++ b/src/callsheet/ui/styles.css @@ -883,7 +883,7 @@ html, body { display: block; width: 100%; height: 100%; - object-fit: cover; + object-fit: contain; } .brand-mark-dark { display: none; }