Coding Agents
Telo manifests are dense and the standard library moves fast. The Telo
hub — the federated discovery index over every registered module — exposes
a Model Context Protocol server at https://telo.sh/mcp that any MCP-aware
coding agent can plug into. Once connected, the agent can search for a resource
kind by what it does, fetch the owning module's telo.yaml, and follow a
built-in primer that explains how Telo works — so a model with no prior Telo
context can compose a working manifest.
No authentication is needed for reads.
What the agent gets
On initialize, the server publishes its tools and an instructions primer.
The ones an agent composes with:
search_resources(query | queries)— searches resource kinds across every registered module, on any host or transport, for one need or several in one call. The unit an agent composes with is a kind it can import, not a package, so hits are grouped under the module that owns them — its exact location ref + version stated once — and each carries the bare kind suffix (e.g.Bucket— the prefix is your chosen import alias), its capability and description.get_kinds(kinds)— the definitions of exactly the kinds named, across modules: each module'simports:line with its version and integrity pin, each kind'sTelo.Definition, and every shape or parent kind it references. This is the agent's source of truth for field shapes, at a fraction of a whole manifest's size.list_libraries(publisher?)— every tracked library in one line each: ref, name, summary, exported kinds and instances.get_module_manifest(ref, version?)— returns the rawtelo.yamlfor a tracked module by its location ref (e.g.oci://ghcr.io/telorun/consoleoroci://ghcr.io/acme/telo-s3).versiondefaults tolatest. For when the whole module is wanted rather than a few of its kinds.- Instructions primer — explains Telo's runtime model, built-in kinds
(
Telo.Application,Telo.Library,Telo.Definition), CEL!cel "…"templating, and the recommended workflow: search → read the kinds → compose.
The primer is surfaced to the LLM as system context, so the model knows Telo before you've written a single message.
The hub only indexes discovery metadata and cached manifests — it never stores artifact payloads. Installing and running resolve against each module's own origin, so the discovery surface and the resolution path are fully decoupled.
Claude Code
claude mcp add --transport http telo https://telo.sh/mcp
Verify:
claude mcp list
The next session picks up the tools and the primer automatically.
Cursor
Add to ~/.cursor/mcp.json (or .cursor/mcp.json in your project root for
a per-project setup):
{
"mcpServers": {
"telo": {
"url": "https://telo.sh/mcp",
"transport": "http"
}
}
}
Restart Cursor and the tools become available to the agent.
Claude Desktop
Claude Desktop's MCP client speaks stdio rather than HTTP, so it needs a
small bridge. mcp-remote (npm) adapts any HTTP MCP server to a stdio
transport:
{
"mcpServers": {
"telo": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://telo.sh/mcp"]
}
}
}
Put that in ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then
restart Claude Desktop.
What to ask
Once connected, prompts that lean on the catalog work well:
- "Build me a Telo manifest for an HTTP API that writes feedback entries to SQLite."
- "Wire up an MCP server in Telo that exposes
get_userandlist_usersagainst a Postgres database." - "Add a daily job that reads new rows from a SQL database, summarizes
each with
Ai.Text, and writes the summaries to S3."
The agent will call search_resources, read the definitions of the matching
kinds with get_kinds, and produce YAML against the actual
schemas — no guessed kind names, no stale field shapes.