Skip to main content
agtOS exposes an MCP (Model Context Protocol) server via Streamable HTTP transport. External AI clients can connect to invoke voice pipeline, system monitoring, workflow, and scheduling tools. Endpoint: http://<host>:<MCP_PORT>/mcp Default: http://localhost:4100/mcp Transport: Streamable HTTP (ADR-005) Server Name: agtos | Server Version: 1.0.0

Voice Tools

Synthesize text to speech and play it through the agtOS voice pipeline. Returns confirmation when synthesis begins.

Input Schema

text
string
required
The text to speak (min length: 1).
voice
string
Voice name override (e.g. "af_heart").
sessionId
string
Target voice session ID. Omit for default session.

Example Input

Success Response

Error Response

Start listening for speech input via the agtOS voice pipeline. Returns the transcribed text when speech is detected and processed.

Input Schema

durationMs
number
Maximum listen duration in milliseconds (default: 5000, max: 30000). Must be a positive integer.
sessionId
string
Target voice session ID. Omit for default session.

Example Input

Success Response

If no speech is detected:

Error Response

System Tools

Get comprehensive system health status including all registered services (Redis, STT, TTS, Ollama, Claude). Returns per-service status, response times, and overall system health.

Input Schema

No input parameters.

Success Response

Error Response

Get information about voice sessions. When called without a sessionId, returns a summary of all active sessions. When called with a specific sessionId, returns detailed information about that session.

Input Schema

sessionId
string
Specific session ID to query. Omit for overview of all sessions.

Example Input (all sessions)

Example Input (specific session)

Success Response (all sessions)

Error Response

Orchestration Tools

Orchestration tools are conditionally registered. Workflow tools require a workflow engine; scheduler tools require a Redis-backed scheduler. If neither is available, orchestration tools are skipped entirely.
Execute a registered workflow by ID with optional input. Returns the execution ID and final state.

Input Schema

workflowId
string
required
ID of the registered workflow to execute (min: 1).
input
object
Optional input payload to pass to the workflow.

Example Input

Success Response

Error Response

List all registered workflow definitions. Returns workflow IDs, names, descriptions, and step counts.

Input Schema

No input parameters.

Success Response

Error Response

Create a new scheduled task. Supports cron expressions for recurring tasks, one-time execution at a timestamp, or interval-based repetition.

Input Schema

name
string
required
Human-readable name for the scheduled task (min: 1).
scheduleType
string
required
Type of schedule: cron, once, or interval.
expression
string
Cron expression (e.g. "*/5 * * * *"). Required when scheduleType is cron.
atTimestamp
number
Unix millisecond timestamp. Required when scheduleType is once.
intervalMs
number
Interval in milliseconds. Required when scheduleType is interval.
eventTopic
string
required
Event bus topic to publish when the task fires (min: 1).
payload
object
Optional payload included in the fired event.

Example Input (cron)

Example Input (once)

Example Input (interval)

Success Response

Error Response

List all scheduled tasks with optional status filtering. Returns task IDs, names, statuses, schedule types, and next run times.

Input Schema

status
string
Filter by status: active, paused, completed, cancelled, failed.

Example Input

Success Response

Error Response

Cancel a scheduled task by ID. The task will no longer fire.

Input Schema

taskId
string
required
ID of the scheduled task to cancel (min: 1).

Example Input

Success Response

Error Response

Memory Tools

Ask a question about the user via the Dialectic reasoning engine. Gathers the user profile, stored conclusions, and relevant episodic memories to synthesize an answer with a confidence score.

Input Schema

question
string
required
The question to ask about the user (max 2,000 characters).

Example Input

Success Response

Error Response

This tool requires the memory coordinator to be initialized (Redis must be connected). The confidence score ranges from 0.0 to 1.0. The sources array lists episodic memory IDs used to generate the answer.

Discovery Tools

Search the tool registry for available tools by keyword or category. This meta-tool is always included in the LLM context window (regardless of dynamic tool selection) so the agent can discover tools that were not pre-selected for the current request.

Input Schema

query
string
required
Keyword search query to match against tool names and descriptions.
category
string
Optional category filter (e.g., smart_home, voice, system).

Example Input

Success Response

Error Response

This tool is only registered when a toolSelector is configured (dynamic tool selection is enabled). It allows the agent to search for tools that were filtered out by the initial similarity-based selection. See Dynamic Tool Selection for details.

Connecting to the MCP Server

Using the MCP SDK (Node.js)

Using curl (for testing)

The MCP protocol uses JSON-RPC over HTTP. You can test with curl by sending properly formatted JSON-RPC requests:

Claude Desktop Configuration

Add agtOS as an MCP server in your Claude Desktop config (claude_desktop_config.json):

Tool Availability

Not all tools are always available. Tool registration depends on which services are running:
Use tools/list to discover which tools are currently available on a running server.