Give AI access, not control

Define TypeScript capabilities that send emails, manage calendars, and automate work. Expose them to the Routcraft agent, Claude, ChatGPT, Cursor, or any AI agent via MCP. AI calls your code, not your computer.

import { mcp } from '@routecraft/ai'
import { craft, mail } from '@routecraft/routecraft'
import { z } from 'zod'
export default craft()
.id('send-team-email')
.from(mcp('send-team-email', {
description: 'Send email to team members',
schema: z.object({
to: z.string().email(),
subject: z.string(),
message: z.string()
})
}))
// Guardrail: Only allow emails to company domain
.filter(({ to }) => to.endsWith('@company.com'))
.to(mail())

Getting Started

Getting started

Give AI access, not control

Build capabilities that agents can use without handing over the keys to your system.

  • Deterministic capabilities: Write TypeScript capabilities that define exactly what an agent can do. Send emails, manage calendars, and trigger workflows entirely from code you own.
  • Two-way agent integration: Expose your capabilities natively via the Model Context Protocol (MCP) for Claude and Cursor, or route events directly to your own agents in code using .to(agent()).
  • Secure by design: Agents can only execute the specific capabilities you expose. No arbitrary filesystem access. No unchecked shell commands. You maintain absolute authority.

Your first capability

Here's a simple capability that fetches user data and logs a greeting:

// capabilities/hello-world.ts
import { log, craft, simple, http } from "@routecraft/routecraft";

export default craft()
  .id("hello-world")
  .from(simple({ userId: 1 }))
  .enrich(
    http<{ userId: number }, { name: string }>({
      method: "GET",
      url: (ex) =>
        `https://jsonplaceholder.typicode.com/users/${ex.body.userId}`,
    }),
  )
  .transform((result) => `Hello, ${result.body.name}!`)
  .to(log());

Run it instantly without any setup:

npx @routecraft/cli run capabilities/hello-world.ts

This pattern (source, enrich, transform, destination) is the foundation of every RouteCraft capability.


Play Online

Try RouteCraft in your browser or a cloud environment:

Open in GitHub Codespaces

Recommended: Full terminal environment with all features.

Open on CodeSandbox

Quick browser-based playground.

GitHub Codespaces is recommended since RouteCraft is terminal-first and works best with full shell access.


Create a new project

Scaffold a complete RouteCraft project with all configuration:

npm create routecraft@latest my-app

Start the development server:

cd my-app
npm run dev

You should see your capabilities start and log output in your terminal.


What Can You Build?

Email Assistant

"Unsubscribe me from promotional emails" → Scans inbox, categorizes, unsubscribes automatically

Meeting Coordinator

"Move my meeting with John to 2pm" → Finds the meeting, updates time, notifies attendees

Travel Planner

"Book me a flight to NYC next Tuesday" → Searches flights, finds best option, presents details


Next steps

Introduction

Learn what RouteCraft is and understand the core concepts.

AI & MCP Setup

Connect RouteCraft to Claude Desktop or Cursor.

Email Assistant

Build an AI that can send and manage emails.

Installation

System requirements, production builds, and manual setup.