Trace AI agent execution: every tool call, every error, every dollar. Open source, local-first.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Agent Observability.
obs_record_tool_call{ "id": "call-uuid", "recorded": true }
obs_record_token_usage{ "totalTokens": 1850, "estimatedCost": "$0.023" }
obs_record_decision{ "id": "decision-uuid", "recorded": true }
obs_record_grade{ "grade": "B", "recorded": true }
obs_get_session_reportFull session JSON with all calls, tokens, decisions, grade
obs_list_sessionsArray of `{ id, description, grade, createdAt, tokenTotal, estimatedCost }
Open source agent observability β see what your agents did, why they failed, and what it cost. Runs locally. No cloud required.
One command. No manual config. No copy-paste.
This auto-detects your AI agent (opencode, Claude Code, Cursor) and configures everything:
Then restart your agent. Every action will now self-report.
After running a task in your agent, the dashboard shows:
setup can't detect your agent)opencode: Add to opencode.json:
Claude Code: Create .mcp.json:
Cursor: Add to Cursor Settings > MCP:
See Agent-Specific Setup below for detailed per-platform instructions including self-reporting directives.
Note: All data is written to a local SQLite database in
~/.agent-observability/. No data leaves your machine.
For agents that can't self-report, wrap any MCP server and every tool invocation gets traced automatically:
Proxy mode captures only MCP tool calls (~30% of typical agent actions). Prefer the setup / MCP server approach above.
.mcp.json in your project root:.claude/instructions.md (or reference the existing SKILL.md under .claude/skills/agent-obs/SKILL.md):agent-obs dashboard, open http://localhost:9400, and look for your session after the agent completes a task.~/.cursor/mcp.json, or Settings β MCP β Add new global MCP server):.cursorrules (or .cursor/rules/agent-obs.md):agent-obs dashboard, open http://localhost:9400, and look for your session after the agent completes a task.| Method | Path | Description |
|---|---|---|
GET | /api/sessions | List all sessions. Query params: ?limit=20&offset=0&grade=B |
GET | /api/sessions/:id | Get full session detail with all tool calls, tokens, decisions, and grades |
GET | /api/sessions/:id/tool-calls | List tool calls for a session. Query params: ?status=error&server=filesystem |
GET | /api/sessions/:id/tokens | Get token usage history for a session |
GET | /api/sessions/:id/decisions | Get decision points for a session |
GET | /api/search | Full-text search across tool call inputs/outputs. Query param: ?q=read_file |
GET | /api/stats | Aggregate statistics: total sessions, avg grade, total tokens, total cost |
POST | /api/export | Export session data as JSON. Body: { "sessionIds": ["abc123"], "format": "json" } |
GET | /api/health | Health check. Returns { "status": "ok", "dbSize": "2.4MB", "sessionCount": 47 } |
| Tool | Parameters | Returns |
|---|---|---|
obs_record_tool_call | sessionId, toolName, serverName, duration (ms), status (success/error), input, output | { "id": "call-uuid", "recorded": true } |
obs_record_token_usage | sessionId, inputTokens, outputTokens, model | { "totalTokens": 1850, "estimatedCost": "$0.023" } |
obs_record_decision | sessionId, context, options, chosen, reasoning | { "id": "decision-uuid", "recorded": true } |
obs_record_grade | sessionId, grade (A/B/C/D/F), reasoning | { "grade": "B", "recorded": true } |
obs_get_session_report | sessionId | Full session JSON with all calls, tokens, decisions, grade |
obs_list_sessions | limit, offset | Array of { id, description, grade, createdAt, tokenTotal, estimatedCost } |
read_file, execute_command, search_codesuccess or errorCosts are estimated based on published API pricing:
| Model | Input (per 1M tokens) | Output (per 1M tokens) |
|---|---|---|
| Claude 3.5 Sonnet | $3.00 | $15.00 |
| Claude 3 Opus | $15.00 | $75.00 |
| GPT-4o | $2.50 | $10.00 |
| GPT-4 Turbo | $10.00 | $30.00 |
Costs are tracked per session and displayed in the dashboard. You can add custom model pricing via ~/.agent-observability/models.json.
Every session receives a letter grade based on efficiency and correctness:
| Grade | Label | Criteria |
|---|---|---|
| A | Clean | Zero errors, minimal token waste, no unnecessary tool calls |
| B | Minor issues | Some inefficiencies, but no failures |
| C | Inefficient | Excessive token usage, redundant tool calls, recoverable errors |
| D | Risky | Significant problems β failed tool calls, high cost, wrong tools chosen |
| F | Failed | Errors prevented task completion, or agent abandoned the session |
When the agent has multiple possible actions, it can record why it chose one over another. Example:
Decision points create an audit trail of agent reasoning, making it possible to understand not just what happened, but why.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/agent-observability)<a href="https://allmcps.com/mcp/agent-observability"><img src="https://allmcps.com/api/badge/agent-observability?style=directory" alt="Agent Observability on AllMCPs" /></a>