Skip to Content
Tares

How does an outside agent record a finding in a project, and where does it show up?

Tares lets an outside agent record a finding with record_finding(entity, finding, verdict), using a project key. The finding appears under What the agents found on the project Overview, under the key’s name. It also shows as its own thread in Activity and on the entity’s timeline in Explore. The full walkthrough is in Connect an outside agent to a project.

How it works

An outside agent, such as Claude Code, Codex, Cursor or your own MCP client, connects to the Tares MCP endpoint with a project key. The key reads one project and records findings in it, so the project is implied and the tools need no project argument. Any other call answers 403.

The agent works through the project tools in this order:

  1. list_skills, then get_skill for a skill whose description matches the task.
  2. stats to see which values moved, and read for the entity’s timeline across the project’s sources.
  3. list_findings and project_timeline to see what the Tares agents already concluded, so it builds on that instead of repeating it.
  4. record_finding(entity, finding, verdict) when it reaches a conclusion.

The three arguments mean this:

  • entity is what the finding is about, for example api-server.
  • finding is the conclusion, written as markdown.
  • verdict is one lowercase word, such as rca.

The key’s name is stamped on every finding it records. Name the key after the agent that holds it, such as claude-code, and you can tell at a glance who concluded what. The same flow is part of the AI SRE setup, where Tares agents and outside agents share one project.

Set it up

  1. Run a Tares instance with a project that has sources and a trigger, for example the AI SRE demo. Start it with auth (tares up --auth, or TARES_AUTH_TOKEN set) 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.
  2. Start the MCP endpoint. It serves http://127.0.0.1:8788/mcp.
tares mcp
  1. Open the project, go to Settings → Keys, and choose New key. Name it after the agent, such as claude-code. Copy the secret now, because it is shown once.
  2. Connect your agent to the MCP endpoint over HTTP and send the project key as a Bearer Authorization header. Over stdio, start tares-mcp with TARES_AUTH_TOKEN set to the project key instead. Any MCP client works. Only the connect command differs.
  3. Check the connection from a Claude Code session:

Use tares: which project can you work in?

It calls list_projects and names the one project the key belongs to. 6. Ask for something the project is about:

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

The agent loads skills, reads the timeline, checks existing findings and then calls record_finding. 7. Open the project and look for the finding in the three places listed below.

What you get

Each recorded finding is visible in three places in the project:

  • Overview: a card under What the agents found, labeled with the key’s name.
  • Activity: in Advanced setup, a thread of its own, marked as recorded from outside Tares.
  • Explore: an entry on the entity’s timeline.

Because the finding sits on the entity’s timeline, the next Tares agent that reads api-server starts from it. Your outside agent and the Tares agents build on each other’s conclusions instead of working in parallel.

To cut an agent off, revoke its key under Settings → Keys. That also removes the key’s subscriptions.

When something else fits

  • If the agent should run on its own, for example a service with a webhook, have it join the project with join_project(url). Tares then sends every firing of every trigger in the project to that URL, and the agent shows under Agents marked external.
  • If you only want to read the project and not record anything, you do not need record_finding. The read tools (list_skills, get_skill, stats, read, list_findings and project_timeline) cover that.

Still stuck? Get help

Last updated on