# ctx.cat MCP

`ctxcat-mcp` is a local stdio MCP server with a public-only reader and renderer.
It accepts bare public share IDs for `fetch_ctx` and `verify_ctx`.

## Tools

- `fetch_ctx`: accept `{ "id": "<public-id>" }` and return bounded public content
  with its verification result.
- `share_ctx`: retained for compatibility, but intentionally fails before file
  or network I/O because share creation returns lifecycle capabilities. For a
  Codex session, run `ctxcat share <full-codex-session-id>` in a
  user-controlled terminal. Lower-level file sharing uses
  `ctxcat file share ... --capability-output PATH`.
- `verify_ctx`: accept `{ "id": "<public-id>" }` and return verification without
  content.
- `render_trace`: accept exactly one of bounded inline content or a bare public
  share ID, with an optional display name.

Backend URLs, reader keys, full URLs, and local paths are not accepted as MCP
selector or configuration fields. `render_trace.content` and optional
`render_trace.name` are already model-visible before MCP processing and may
contain ordinary bounded trace or display text. Callers must not put reader or
lifecycle capabilities in those values and must not rely on MCP to sanitize
them. MCP treats the values as render input, not as share selectors or backend
configuration. Private and unlisted shares stay outside model-visible MCP; use
the CLI or TypeScript client for capability-bearing operations. An unlisted ID
is itself a reader capability; MCP cannot undo disclosure once it is given to a
model. Native session resume is CLI-only.

## Install

Install the public MIT-licensed package bytes with
`bun add --global @synthlabs/ctx-cat-client@0.3.1`; the source repository
remains private. The [CLI guide](/docs/cli) verifies both `ctxcat` and
`ctxcat-mcp`. Direct Git dependency installation is not supported.

Use `CTX_CAT_BASE_URL` for local or staging backends.
