Public alpha · v1.0.0-alpha.2

Turn your API into an MCP server

TypeScript framework for MCP servers. Type-safe, edge-deployable, AI-agent-ready.

$ npx @mcify/cli@alpha init my-mcp

What you actually get

Six things you'd build by hand the first week. Already in the box.

Write the tool. Skip the boilerplate.

You write a defineTool({ input, output, handler }). We handle the JSON-RPC, the schema validation, the tools/list contract, the auth header, the timeouts.

Schemas you write once

Define a Zod schema and you get the runtime check, the JSON Schema the agent reads, and the TypeScript types — all from the same line.

Auth, rate limits and timeouts ship in

Bearer or API-key auth at the server, per-tool rate limits, deadline-aware timeouts. All composable. None to install separately.

See every tool call live

mcify dev opens an inspector with a real-time call log, a playground to invoke tools by hand, and a chat tab that talks to Claude or GPT directly.

Your AI assistant already knows the rules

Every project ships an AGENTS.md that Claude Code, Cursor, Windsurf and Copilot Workspace read automatically. New tools land in the same shape every time.

One command to ship to any cloud

mcify deploy cloudflare / vercel / fly / railway / docker. Same handler everywhere. The CLI generates the config and calls the platform CLI for you.

Define a tool. See it live.

Schemas double as runtime validation, MCP tools/list contracts, and TypeScript types. The inspector reflects them in real time as you save.

tools/create-payment.ts typescript
import { defineTool, schema } from '@mcify/core';
import { requireAuth, rateLimit, withTimeout } from '@mcify/core/middleware';
import { z } from 'zod';

export const createPayment = defineTool({
  name: 'khipu_create_payment',
  description: 'Create a Khipu payment link',
  middlewares: [
    requireAuth(),
    rateLimit({ max: 60, windowMs: 60_000 }),
    withTimeout({ ms: 5_000 }),
  ],
  input: z.object({
    subject: z.string().min(1).max(255),
    currency: z.enum(['CLP', 'USD']),
    amount: z.number().positive(),
  }),
  output: z.object({
    paymentId: z.string(),
    paymentUrl: schema.httpUrl(),
  }),
  handler: async (input, ctx) => {
    return ctx.fetch('https://payment-api.khipu.com/v3/payments', {
      method: 'POST',
      headers: { 'x-api-key': process.env.KHIPU_API_KEY },
      body: JSON.stringify(input),
    }).then((r) => r.json());
  },
});
mcify [email protected] live Tools Calls Log Playground Settings Tools 2 registered khipu_create_payment show schema Create a Khipu payment link. Returns a paymentUrl the customer opens to pay. khipu_get_payment_status show schema Look up a Khipu payment by id. Returns current status, amount, subject, and your transaction id. RECENT CALLS 14:22:08.142 khipu_create_payment {"subject":"Order #1","currency":"CLP",…} 238 OK 14:21:47.011 khipu_get_payment_status {"paymentId":"abc123"} 112 OK 14:21:30.998 khipu_create_payment validation error (input): amount 3 ERR 14:20:55.332 khipu_create_payment {"subject":"Order #2","currency":"USD",…} 214 OK localhost:3001 — connected to khipu MCP server on :8888

Three steps

From zero to a deployable MCP server. AGENTS.md ships with the template, so any AI assistant follows the conventions automatically.

  1. 01

    Scaffold

    npx @mcify/cli@alpha init my-mcp
    cd my-mcp
    pnpm install

    Generates the project, an AGENTS.md for your AI agent, and a mcify.config.ts with one example tool.

  2. 02

    Develop with the inspector

    pnpm dev
    # → http://localhost:8888/mcp   (your server)
    # → http://localhost:3001       (inspector)

    Hot reload reflects your tool edits in the inspector instantly. Invoke from the Playground tab; see latency, args, and result live.

  3. 03

    Ship

    mcify deploy cloudflare        # Cloudflare Workers
    mcify deploy vercel --prod     # Vercel Edge
    mcify deploy fly               # Fly.io
    mcify deploy railway           # Railway
    mcify deploy docker --push     # Docker → registry

    One command per target. Bundles, generates the right config (wrangler.toml, fly.toml, railway.json…), invokes the platform's CLI for you.

Reference connectors

Real APIs wired to mcify, shipped as both runnable examples and clonable templates. Used by Lelemon Agentes in production.

Khipu

live

Chilean payment links — two tools (create, status), bearer auth, fetch-mocked tests. The canonical "wrap a payment API" reference.

mcify init my-server --template example-khipu Source on GitHub →

Bsale

live

Chilean DTE / facturación electrónica — four tools: emit_dte, list_invoices, get_invoice, list_clients. Lower rate-limit on emit because DTEs have legal weight.

Source on GitHub →

Fintoc

live

Open banking for Chile and México — list accounts, list movements, get balance. Two-credential auth: org secret_key on the server, per-user link_token as a tool input.

Source on GitHub →

Try it in 60 seconds

Public alpha. Apache 2.0. Built for any team with a TypeScript backend that wants to expose itself to AI agents the right way.

$ npx @mcify/cli@alpha init my-mcp

Docs also at /llms-full.txt for AI agents.