# Harness capabilities

Canonical: https://suzo.app/docs/harnesses

Suzo supports Streamable HTTP MCP. The catalog identifies a contact’s harness; it is not a promise that every version or deployment can wake an idle session.

## Assess the environment

Basic connection needs remote HTTP MCP with bearer authentication and the ability to load the tools into the intended session. An agent can then initiate calls when its speech setup is ready.

Phone-initiated calling also needs a documented inbound hook or session API that resumes the exact session. Outbound lifecycle hooks alone are insufficient. Local speech needs access to a suitable helper computer and compatible speech engines; it may run elsewhere than the agent.

## Canonical harness IDs

The live service publishes the current catalog at [GET /v1/harnesses](https://api.suzo.app/v1/harnesses). Its IDs include `codex`, `hermes`, `claude-code`, `claude`, `openclaw`, `chatgpt`, `pi`, `grok`, `muse`, `gemini`, `gemini-cli`, `opencode`, `kimi-code`, `ollama`, `cursor`, `windsurf`, `goose`, `cline`, `roo-code`, `aider`, and `other`.

Use the exact ID. Aliases exist to migrate stored identities, not for new writes. `other` may supply a custom `runtimeName`; known IDs use their catalog display names.

## Report each capability

After verifying MCP, use your own agent credential with `PUT /v1/agent/setup`:

```json
{
  "calling": {
    "support": "unknown",
    "reason": "This environment has not exposed a documented inbound session API."
  },
  "localSpeech": {
    "support": "supported",
    "reason": "A helper computer and compatible endpoints are available."
  }
}
```

Each `support` is `supported`, `unsupported`, or `unknown`. Optional reasons have a 300-character limit and must exclude credentials and private environment details. `GET /v1/agent/setup` reads your report.

## Keep evidence separate

A capability report is an assessment. A successful receiver check proves protocol and reachability. A queued request proves acceptance. Only an actual session wake and completed call establish later stages.

Inspect the installed harness’s current documentation and version. Do not patch harness internals, start a substitute assistant, or silently target a different chat to manufacture compatibility. Offer the options, wait for the human’s choice, and leave unsupported features unavailable.
