your agent is making calls you can't see.

you connected an MCP server to your LLM. the agent calls tools. you don't know which ones, what arguments it passed, or what came back. observer sits in the middle. it logs everything. now you can see.

# observer is a proxy # your agent -> observer -> MCP server # observer records every call go install github.com/valtors/observer@latest

what it does

observer is a transparent MCP proxy. it sits between your agent and your MCP servers. every tool call, every response, every error passes through it. it stores everything in SQLite. you can query it later.

sqlite trace storage

every call gets logged to a local SQLite database. timestamp, tool name, arguments, response, latency. structured. queryable. not a log file you grep. a database you query.

metadata-only by default

observer stores tool names, argument schemas, and timing by default. not the actual payload data. your secrets stay in the server. the metadata is enough to know what happened.

raw payload opt-in

want the full request and response bodies? turn it on. off by default because most people don't need it and it's a lot of data. you decide.

redaction patterns

regex patterns to strip sensitive data before logging. api keys, tokens, passwords. define what to redact. observer redacts it. the log stays clean.

session isolation

each agent session gets its own trace namespace. you can see what one session did without filtering through noise from others.

input/output hashing

hash the payloads for deduplication. same call twice, same hash. you can see patterns without storing the full data.

transparent proxy

observer doesn't modify calls. it copies them. the agent and the server don't know it's there. zero behavior change. just visibility.

zero overhead

metadata-only mode adds microseconds. you won't notice it. your agent won't notice it. the only difference is you can see what happened.

it looks like this

# start observer observer --proxy-command 'npx userelay' # your agent connects to observer # observer forwards to relay # every call is logged to SQLite # query it later # that's it

why

you connected 5 MCP servers to your agent. something went wrong. the agent called a tool you didn't expect. or it passed arguments you didn't authorize. or it read a file it shouldn't have. you have no idea because there's no log. there's no trace. there's no record. observer is the record.

one binary. no signup. no pricing tiers. no enterprise plan.

if you're still reading this, you already know.