- Use
GET /api/contracts/toolsfor strict SDK and Agent SDK contract truth. - Use
sf describe --all --jsonfor the installed local CLI command manifest. - Use
GET /api/toolsfor the broad hosted HTTP compatibility inventory. - Use MCP only as an adapter for MCP-compatible hosts.
/api/tools is not the SDK/Agent contract manifest. It can include broad
compatibility names such as get_world_state; SDK and Agent SDK code should use
canonical dotted names such as world.read from /api/contracts/tools.
Strict contract manifest
access.anonymousAllowed, sideEffect, costEffect,
Agent callability, SDK mapping, and replay metadata.
Local CLI catalog
HTTP tool catalog
public (no auth required) and authenticated (sf_live_...):
name, description, endpoint (when there is a 1:1 HTTP route), parameters, auth, returns, and an example URL.
This is not a byte-for-byte mirror of sf describe --all --json, and it is not
the strict SDK/Agent manifest. Use /api/tools for the broad remote HTTP
compatibility surface. Use sf describe --all --json for the installed CLI
command catalog and its command-level policy metadata. Use
MCP tools reference only for the MCP adapter inventory
and input schemas.
Skill catalog
/api/skill*.
/api/skill — see Skills.
Prompt context
MCP adapter
Bearer sf_live_... to access authenticated tools (thesis, intents, portfolio, …).
The MCP transport exposes SimpleFunctions tools to MCP-compatible clients (Claude Code, Cursor, Cline, …). Treat it as an adapter over the CLI/API product surface. See MCP server for client wire-up and MCP tools reference for the adapter tool list and input schemas.
One-line client setup:
Voice — text-to-speech (TTS)
Authorization: Bearer sf_live_...).
Body (JSON):
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
text | string | yes | — | 1 – 5000 chars. |
voiceId | string | optional | professional news anchor voice | Cartesia voice id. |
speed | number | optional | implementation default | Speech rate. |
language | string | optional | en | BCP-47 language tag. |
audio/mpeg binary stream (MP3).
Errors
| Status | Body | Cause |
|---|---|---|
400 | Invalid JSON body | Body is not JSON. |
400 | text required (string, min 1 char) | Empty text. |
400 | text too long (max 5000 chars) | Over the limit. |
401 | unauthorized | No / invalid auth. |
503 | TTS proxy not configured | Server has no Cartesia key configured. |
Voice — speech-to-text (STT)
multipart/form-data with field audio (or file). Max 10 MB.
Response 200
| Status | Body | Cause |
|---|---|---|
400 | Expected multipart/form-data with "audio" field | Missing form field. |
400 | "audio" file field required | Field empty or wrong type. |
400 | Audio file too large (max 10MB) | Over the size limit. |
401 | unauthorized | No / invalid auth. |
503 | STT proxy not configured | Server has no Cartesia key configured. |
sf agent voice mode uses these endpoints internally; you only need to call them directly when wiring SimpleFunctions tools into another voice agent.
See also
Tool manifest
Local discovery via
sf describe --all --json.Skills
User-owned skill CRUD, fork, publish.
MCP server
Adapter for Claude Code, Cursor, Cline.
MCP tools reference
MCP adapter inventory and input schemas.