Skip to content

Repository files navigation

Callspec

One TypeScript route → typed SDK, docs, OpenAPI, and MCP.

For humans: callspec.logfox.ai · Try the demo

Callspec flow: define in TypeScript, mountSpec, CLI SDK, and OpenAPI export

Most teams duct-tape the same API across REST routes, OpenAPI specs, DIY clients, docs, types, validators and MCP. That's a ton of repetitive work and brittle code that drifts.

Instead, define each route once in TypeScript — inputs, outputs, and errors — and Callspec ships the server, SDK, docs, OpenAPI, and MCP from that contract. One source of truth, unit-testable, no drift.

On the frontend you call api.searchPosts({…}) and get a Result back — success value or a typed error code you can switch on. Same methods, same types, same errors as the server and as agents on MCP. Unit-test the real handler with .handler(input, ctx) — no HTTP, no req/res.

Quick start

npm i callspec runtyp express

Getting started walks through a route, spec(), mountSpec(), and the generated client. For a minimal one-file spike, see Single-file server example.

Coding agents

Optional — for Cursor, Claude Code, and similar tools: skills/callspec/SKILL.md (rules) and copy-paste prompts. The guides below are the source of truth for the API.

Contents

Same guides as callspec.logfox.ai. Links are repo-relative — they work in a checkout and on GitHub’s file browser.

Introduction

API reference

Working with Coding Agents

Server

Client

Docs UI

MCP Server

OpenAPI

Project

About

One spec powers input-validated API, docs UI, OpenAPI, MCP, and typed clients.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages