---
title: "canimcp"
description: "Which MCP clients support what, how each claim is known, and research notes on the parts a support matrix cannot express."
canonical: https://canimcp.io/
last-updated: 2026-11-14
---

# canimcp

Which MCP clients support what, how each claim is known, and research notes on the parts a support matrix cannot express.

A capability here carries evidence, and evidence carries a tier and the protocol revision it applies to.

| Tier | Means |
|---|---|
| `declared` | The client says so, in `initialize.capabilities` or a curated list |
| `verified` | A probe or conformance scenario exercised it |
| `observed` | Telemetry over real traffic |
| `read` | Someone read the client's source at a pinned commit |

Tiers are not ranked. Several can sit on one capability and disagree, and a disagreement is a finding. `2026-07-28` is stateless with per-request `_meta`, and every revision through `2025-11-25` uses the initialize handshake, so a result on one says nothing about the other.

## When to use this

- Before relying on an MCP feature in a server, check which clients implement it and at which protocol revision.
- To find out what a client does with a tool result: which of `content` and `structuredContent` reaches the model.
- To see where a client's declared capabilities, its source and its observed traffic disagree.

Every page has a Markdown version at the same URL with `.md` appended, and the same URL returns Markdown for `Accept: text/markdown`. The registry is JSON under `/data`, and [`/llms.txt`](/llms.txt) indexes all of it.

## Clients

| Client | Vendor | Category | Prefers | Last read |
|---|---|---|---|---|
| [goose](/clients/goose.md) | Block | agent-framework | `2026-07-28` | 2026-08-23 |
| [Codex CLI](/clients/openai-codex.md) | OpenAI | cli | `2025-06-18` | 2026-08-24 |
| [opencode](/clients/opencode.md) | Anomaly | cli | `2025-11-25` | 2026-08-24 |
| [Cline](/clients/cline.md) | Cline Bot Inc. | ide | `2025-11-25` | 2026-08-25 |
| [fast-agent](/clients/fast-agent.md) | Shaun Smith (llmindset) | agent-framework | `2026-07-28` | 2026-08-25 |
| [OpenClaw](/clients/openclaw.md) | OpenClaw Foundation | agent-framework | `2025-11-25` | 2026-08-26 |
| [Hermes Agent](/clients/hermes-agent.md) | Nous Research | cli | `2025-11-25` | 2026-11-09 |
| [Kilo Code](/clients/kilocode.md) | Kilo Code | ide | `2025-11-25` | 2026-11-10 |
| [Google Antigravity](/clients/antigravity.md) | Google | ide | `2026-07-28` |  |

## Across clients

- [Tool result handling, verified](/tool-results.md): what reached the model when each client called a fixture tool, from 17 clients run through the probe.
- [Capabilities observed in traffic](/observed.md): which capabilities clients declare in real traffic, by protocol revision.
- [Research notes](/research/index.md): 38 notes on behaviour a matrix cannot express.

## Data and schemas

- [`/data/clients.json`](/data/clients.json): the registry. One entry per client is at `/data/clients/<id>.json`, listed in [`/data/clients/index.json`](/data/clients/index.json).
- [`/data/spec-versions.json`](/data/spec-versions.json): the lifecycle of each capability across protocol revisions.
- `/data/verified/<client>.json`: the probe's records per client.
- [`/data/observed/hf-mcp-clients.json`](/data/observed/hf-mcp-clients.json): the telemetry feed.
- [`/schemas/client-registry.json`](/schemas/client-registry.json), [`research-note.json`](/schemas/research-note.json), [`verified-evidence.json`](/schemas/verified-evidence.json), [`observed-evidence.json`](/schemas/observed-evidence.json): JSON Schemas, served at their `$id`.

The source is at <https://github.com/olaservo/canimcp>. [About](/about.md) covers where the data comes from and how to report a correction.
