Mirrors

com.runmirrorsPublished by runmirrors.comOfficial publisherv1.0.0Updated Oct 24, 2026

AI agent testing: replay real sessions against a rebuilt staging environment to catch regressions.

VerifiedStreamable HTTPWeb executableDeveloper ToolsAI & ML

Overview

AI-generated overview

Mirrors is a remote MCP endpoint for AI agent testing: replaying real sessions against a rebuilt staging environment to catch regressions.

What you can do
  • The registry entry describes AI agent testing: replaying real sessions against a rebuilt staging environment to catch regressions.
  • No tools are listed in the manifest, so the concrete actions an assistant can take are not documented.
  • The bundled README is for an older Go trace collector, not the hosted service; it only shows how traces are shipped to a backend.
When to use it
Consider it if you want an assistant to help test AI agents by replaying recorded sessions against a staging environment and spotting regressions. Check the current product documentation first, since the supplied material does not describe the hosted endpoint's tools.
Requirements
A remote streamable HTTP endpoint; no packages, environment variables or headers are declared. The manifest declares no authentication, though the older collector README shows an API key being sent as a bearer token.
Before you install
The README states the collector is no longer maintained and that its default backend no longer exists, so the supplied material may not match the live service. The older collector sends trace data, including conversation and tool-call content, to a third-party backend using an API key; treat such data as sensitive.

Installation

In SourceWeft

  1. Open Mirrors in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.runmirrors%2Fmirrors/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "mirrors": {
      "type": "http",
      "url": "https://api.runmirrors.com/mcp"
    }
  }
}

README

No longer maintained. This collector was built for an earlier Mirrors product, and its default backend, api.runmirrors.com, no longer exists. For the current SDK, see the Mirrors quickstart.

mirrorkit (Go)

A lightweight, drop-in production trace collector for LLM agents — the Go sibling of the Python mirrorkit and TypeScript mirrorkit (npm) packages.

It does exactly one thing: take traces you hand it and send them to your Mirrors backend — batched in the background, non-blocking, and safe (it never panics into your app after Init). It does not instrument SDKs and does not run agents; you build the trace, it ships it.

Install

bash
go get github.com/ai-singhal/mirrorkit-go

Requires Go ≥ 1.21. Zero dependencies (standard library only).

Usage

go
package main
import (	"time"
	mirrorkit "github.com/ai-singhal/mirrorkit-go")
func main() {	mirrorkit.Init(mirrorkit.Options{APIKey: "mk_live_...", Project: "my-agent"})	defer mirrorkit.Shutdown(5 * time.Second)
	mirrorkit.LogTrace([]mirrorkit.Message{		mirrorkit.SystemMessage("You are a helpful assistant."),		mirrorkit.UserMessage("What's the weather in Paris?"),		mirrorkit.AssistantMessage("It's 18C and sunny."),	}, mirrorkit.WithModel("claude-opus-4-8"))}

Each trace is enqueued and flushed to {endpoint}/api/collect by a background goroutine (Authorization: Bearer <apiKey>, body {project, traces}).

Tool calls

Build tool-call and tool-result messages with the helpers:

go
mirrorkit.LogTrace([]mirrorkit.Message{	mirrorkit.UserMessage("Cancel booking BK-4471."),	mirrorkit.AssistantToolCalls(		mirrorkit.NewToolCall("call_1", "cancel_booking", map[string]any{"id": "BK-4471"}),	),	mirrorkit.ToolResult("call_1", `{"status":"cancelled"}`),	mirrorkit.AssistantMessage("Done — BK-4471 is cancelled."),})

Options

go
mirrorkit.Init(mirrorkit.Options{	APIKey:        "mk_live_...",           // required	Project:       "my-agent",              // default "default"	Endpoint:      "https://api.mirror.dev", // else MIRRORKIT_ENDPOINT / MIRROR_ENDPOINT / prod	FlushInterval: 2 * time.Second,         // ms between background flushes	MaxBatch:      50,                      // max traces per POST	MaxQueue:      10_000,                  // in-memory cap; oldest dropped past this	Debug:         false,                   // internal debug logs (or MIRRORKIT_DEBUG=1)})

Endpoint resolution: Options.Endpoint → MIRRORKIT_ENDPOINT → MIRROR_ENDPOINT → the production default.

Lifecycle

go
mirrorkit.Flush(5 * time.Second)     // block until the queue drainsmirrorkit.Shutdown(5 * time.Second)  // stop the background goroutine (flushes first)

Prefer one collector per process via the package-level Init / LogTrace / Flush / Shutdown. For multiple independent collectors, use NewClient and call LogTrace / Flush / Shutdown on the returned *Client.

Testing

bash
cd mirrorkit-go && go vet ./... && go test ./...

Source: README.md at commit f613fea

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declaredRequired10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts