Skip to Content
Tares

How do I let Claude Code write its conclusion back to Tares?

In Tares, you give Claude Code a project key and it calls the record_finding tool when it concludes. The finding lands on the entity’s timeline under the key’s name, so the next agent that reads that entity starts from it. The key reads one project and records findings in it, and nothing else.

How it works

  • A project key is made in a Tares project under Settings → Keys. It reads that project and records findings in it. Any other call answers 403.
  • You name the key after the agent that holds it, such as claude-code. Every finding it records carries that name.
  • Claude Code connects to the Tares MCP endpoint with the key as a bearer credential. With a project key the project is implied, so the tools need no project argument.
  • When Claude Code concludes, it calls record_finding(entity, finding, verdict). The entity is what the finding is about, such as api-server. The finding is markdown. The verdict is one lowercase word such as rca. The tool also takes an optional headline and next_step.
  • The finding is stored on the entity’s timeline, next to the logs, metrics, alerts and findings that Tares agents recorded. The next Tares agent that reads that entity starts from your conclusion instead of repeating the work.

Before it records anything, Claude Code can use the other project tools: list_skills and get_skill for the project’s instructions, stats and read for what moved, and list_findings and project_timeline for what the Tares agents already concluded.

Set it up

You need a running Tares instance with a project that has sources and a trigger, for example the AI SRE demo. Start the instance with auth (tares up --auth, or set TARES_AUTH_TOKEN) so keys are checked. On an open instance there are no keys, so skip the key step and name the project in your prompts instead.

  1. Run the MCP server with tares mcp. It serves http://127.0.0.1:8788/mcp.
  2. Open the project, go to Settings → Keys and choose New key. Name it claude-code. Copy the secret now, because it is shown once.
  3. Connect Claude Code with the key:
claude mcp add --transport http tares http://localhost:8788/mcp \ --header "Authorization: Bearer <project key>"

Over stdio, start tares-mcp with TARES_AUTH_TOKEN set to the project key in its environment instead. 4. Check the connection in a Claude Code session:

Use tares: which project can you work in?

Claude Code calls list_projects and names the one project the key belongs to. 5. Ask for work and tell it to write back:

Use tares: what happened to api-server in the last 30 minutes? Check the project's skills first, and record what you conclude.

Claude Code reads the project, then calls record_finding with the entity, the markdown finding and a one-word verdict.

The same steps work for Codex, Cursor and your own MCP clients. Only the connect command differs, see Connecting agents. The full walkthrough is in Connect an outside agent to a project.

What you get

  • A finding card. The conclusion shows under What the agents found on the project’s Overview, under the key’s name.
  • A thread of its own. In Advanced setup’s Activity, the finding appears as a thread marked as recorded from outside Tares.
  • A shared timeline. The finding is on the entity’s timeline in Explore, so the next Tares agent that reads api-server starts from it.
  • Scoped access. The key reads one project and records findings in it, so a leaked key cannot touch other projects.
  • A clear off switch. Revoke the key under Settings → Keys and Claude Code is cut off. Revoking also removes the key’s subscriptions.

When something else fits

  • Wake the agent on its own. Claude Code runs when you ask it. If an agent should run when a trigger fires, such as a service with a webhook, have it call join_project(url). Tares then sends every firing of every trigger in the project to that URL, including triggers added later.
  • Free-form notes. If you only want an agent to leave an observation that is not a conclusion about an entity, the remember tool writes to the agent-memory source. It needs a key scope that allows writing.
  • Cross-project work. A project key stays inside one project. For an agent that works across projects, use a scoped API key and pass project in each call. See Connecting agents for the scopes and tools.
  • Open local instance. On a plain tares up instance there are no keys. Name the project in your prompts and the same tools work.

Still stuck? Get help

Last updated on