For an agent that has a shell, a skill plus a CLI beats a token-heavy MCP server. This site does not publish an MCP server. The pages, the skills, and the package catalog are the surface an agent should read.

The token tax

An MCP server places every tool schema into the model context on every request. The agent pays that cost whether it calls the tools or not. A wide server is a standing charge on the whole conversation.

A skill is knowledge the agent loads when the task matches. Until then it is a name in an index. After it loads, the agent acts with tools it already has: a shell, an editor, and dotnet.

The shell is the dividing line

The dividing line is whether the consuming agent has a shell. A live HTTP API does not move that line. A shell can call the API.

Agents with a shell — Claude Code, Cursor, a person at a terminal — can run a CLI. For them, a CLI plus a skill is the smaller and simpler path, including when the work is a live API. Put a CLI in front of the API and a skill beside it that says when to run the CLI.

Agents without a shell — a hosted or sandboxed assistant that can only emit tool calls — have one door. A tool-call protocol is that door. MCP is the right fallback there.

When a TimeWarp.Nuru app must speak that protocol, TimeWarp.Nuru.McpHost serves the same routes as MCP tools (myapp mcp, or WithNuruTools inside an existing host). The separate TimeWarp.Nuru.Mcp package is frozen and is outside the Nuru 3.0 line. Its answers do not match current Nuru. Use the skill.

The skill drives the CLI

The Nuru skill published here is tw-nuru. Every skill on this site is on the skills index. Install it with TimeWarp.Skills:

dnx TimeWarp.Skills -- add tw-nuru https://timewarp.software/

The skill stays out of the prompt until the task is about a Nuru CLI. It then tells the agent to discover routes from the binary and to run them:

myapp --capabilities
myapp add 15 25

--capabilities prints the route catalog: command names, parameters, options, and return types. The agent reads that catalog when it needs a command. It does not carry every schema on every turn. Structured input uses the same binder through --json-args. The tw-nuru skill documents that binder next to the endpoint DSL. add 15 25 is the calculator quick start on the TimeWarp.Nuru package page.

Where Nuru is headed

Nuru routes are source-generated and compile to Native AOT. The product direction is to read an HTTP API's OpenAPI document, generate that AOT CLI, and ship the binary with a skill. The agent learns the API when the skill loads, then calls it through the shell, with no idle token tax.

That OpenAPI generator is the direction. It is not a package on this site today. The pattern you can use today is the skill plus --capabilities above.

Start here

This page is free. A tip, when tips are enabled, happens only at /api/tip.