Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Tamper-evident, SHA-256 hash-chained audit trail and observability for AI agents.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"agentlens": {
"command": "npx",
"args": [
"-y",
"@agentkitai/agentlens-mcp"
]
}
}
}Run this in your terminal
claude mcp add agentlens -- npx -y @agentkitai/agentlens-mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"agentlens": {
"command": "npx",
"args": [
"-y",
"@agentkitai/agentlens-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"agentlens": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@agentkitai/agentlens-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account agentkitai, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.13.7) reached the registry 4 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Whisper
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
One routable IPv6 per AI agent, verifiable from the DNS root. Keyless tools need no signup.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
🔍 AgentLens
Open-source observability for AI agents — with a tamper-evident audit trail
Every event SHA-256 hash-chained & cryptographically verifiable — built for EU AI Act Article 12 record-keeping
📖 Documentation · Quick Start · Dashboard · ☁️ Cloud
AgentLens is a flight recorder for AI agents. It captures every LLM call, tool invocation, approval decision, and error — then presents it through a queryable API and real-time web dashboard.
What sets AgentLens apart from other observability tools: every event is SHA-256 hash-chained to the one before it, the same way git commits and blockchains are linked. The audit log is append-only and cryptographically verifiable — alter, delete, or reorder a single record after the fact and verification fails, pointing at the exact event that broke. Purpose-built for the record-keeping obligations of EU AI Act Article 12 and the emerging IETF Agent Audit Trail work.
See it for yourself in 30 seconds (needs Docker):
git clone https://github.com/agentkitai/agentlens && cd agentlens
./demo/aha.sh
1/5 Starting AgentLens (SQLite, zero-config)… ✓ up at http://localhost:3400
2/5 Ingesting a 5-event agent trace… ✓ 5 events ingested 3/5 Verifying the hash chain… ✓ CHAIN VALID — no tampering detected 4/5 Tampering with one event in the database… ✓ altered llm_call (changed the logged model) 5/5 Re-verifying the hash chain… ✗ CHAIN BROKEN — tampering detected ✅
The demo ingests a real trace, verifies the chain (passes), edits one record directly in the database behind the audit log's back, then re-verifies (fails). Auditors get a signed, verifiable JSON snapshot from GET /api/audit/verify/export.
Five ways to integrate — pick what fits your stack:
| Integration | Language | Effort | Capture |
|---|---|---|---|
| 🔭 [OpenTelemetry](#-opentelemetry-any-genai-agent--no-sdk) | Any | Point your OTLP exporter | Any gen_ai.*-instrumented agent — no AgentLens SDK |
| 🤖 [OpenClaw Plugin](#-openclaw-plugin) | OpenClaw | Copy & enable | Every Anthropic call — prompts, tokens, cost, tools — zero code |
| 🐍 [Python Auto-Instrumentation](#-python-auto-instrumentation) | Python | 1 line | Every OpenAI / Anthropic / LangChain call — deterministic |
| 🔌 [MCP Server](#-mcp-integration) | Any (MCP) | Config block | Tool calls, sessions, events from Claude Desktop / Cursor |
| 📦 [SDK](#-programmatic-sdk) | Python, TypeScript | Code | Full control — log events, query analytics, build integrations |
One command — server + dashboard on SQLite, zero config:
docker run -p 3400:3400 -e AUTH_DISABLED=true -e JWT_SECRET=dev-secret ghcr.io/agentkitai/agentlens
Or without Docker:
npx @agentkitai/agentlens-server
AUTH_DISABLED=trueis for a quick local trial (JWT_SECRETis still required by the hardened image). For anything shared, dropAUTH_DISABLED, set a realJWT_SECRET, and create an API key (below).
Full stack (Postgres + Redis, auth, TLS) — runs from source:
git clone https://github.com/agentkitai/agentlens && cd agentlens
cp .env.example .env docker compose up
docker compose -f docker-compose.yml -f docker-compose.prod.yml up
curl -X POST http://localhost:3400/api/keys \
-H "Content-Type: application/json" \ -d '{"name": "my-agent"}'
Save the als_... key from the response — it's shown only once. Then head to the Integration Guides to instrument your agent.
📖 Full setup guide →
graph TB
subgraph Agents["Your AI Agents"] PY["Python App (OpenAI, Anthropic, LangChain)"] MCP_C["MCP Client (Claude Desktop, Cursor)"] TS["TypeScript App"] OC["OpenClaw Plugin"] end
PY -->|"agentlensai.init() auto-instrumentation"| SERVER MCP_C -->|MCP Protocol| MCP_S["@agentkitai/agentlens-mcp"] MCP_S -->|HTTP| SERVER TS -->|"@agentkitai/agentlens-sdk"| SERVER OC -->|HTTP| SERVER
subgraph Server["@agentkitai/agentlens-server"] direction TB INGEST[Ingest Engine] QUERY[Query Engine] ALERT[Alert Engine] LLM_A[LLM Analytics] HEALTH[Health Scoring] COST[Cost Optimizer] REPLAY[Session Replay] BENCH[Benchmark Engine] GUARD[Guardrails] end
SERVER --> DB[(SQLite / Postgres)] SERVER --> DASH["Dashboard (React SPA)"]
EXT["AgentGate / FormBridge"] -->|Webhook| SERVER
If your agent is already instrumented with the [OpenTelemetry GenAI semantic conventions](https://opentelemetry.io/docs/specs/semconv/gen-ai/) — via OpenLLMetry, OpenInference, or the official OTel instrumentations — just point its OTLP exporter at AgentLens. No AgentLens SDK required.
# Send standard OTLP/HTTP to AgentLens (JSON or protobuf, /v1/traces)
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:3400 export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:3400/v1/traces
AgentLens maps gen_ai.* spans into its model and into the tamper-evident audit log:
OTel GenAI span (gen_ai.operation.name) | Becomes |
|---|---|
chat / text_completion / generate_content | a paired llm_call + llm_response (model, provider, messages, usage.input_tokens/output_tokens, finish reason, latency, cost) |
execute_tool | tool_call (gen_ai.tool.name, gen_ai.tool.call.id, arguments) |
embeddings | embedding event with token usage |
invoke_agent / create_agent | agent-invocation event |
Each OTel trace maps to a session (or gen_ai.conversation.id if present), and every event is hash-chained like any other — so traces from any GenAI framework get the same verifiable audit trail. Set OTLP_AUTH_TOKEN to require a bearer token on the OTLP endpoints in production.
Cost with no SDK: OTel GenAI instrumentation reports tokens but rarely cost. AgentLens reconstructs
costUsdfrom the model's per-1M-token pricing (fuzzy-matched on the model id), so OTel-only agents get the same cost analytics as SDK-instrumented ones — no per-call cost attribute required.
If you're running OpenClaw, the AgentLens plugin captures every Anthropic API call automatically — prompts, completions, token usage, costs, latency, and tool calls.
cp -r packages/relay-plugin /usr/lib/node_modules/openclaw/extensions/agentlens-relay
openclaw config patch '{"plugins":{"entries":{"agentlens-relay":{"enabled":true}}}}' openclaw gateway restart
Set AGENTLENS_URL if your AgentLens instance isn't on localhost:3400. See the plugin README for details.
One line — every LLM call captured automatically across 9 providers (OpenAI, Anthropic, LiteLLM, AWS Bedrock, Google Vertex AI, Google Gemini, Mistral AI, Cohere, Ollama):
pip install agentlensai[all-providers]
import agentlensai
agentlensai.init( url="http://localhost:3400", api_key="als_your_key", agent_id="my-agent", )
Key guarantees: ✅ Deterministic · ✅ Fail-safe · ✅ Non-blocking · ✅ Privacy (init(redact=True))
📖 Python SDK full docs →
For Claude Desktop, Cursor, or any MCP client — add to your config:
{
"mcpServers": { "agentlens": { "command": "npx", "args": ["@agentkitai/agentlens-mcp"], "env": { "AGENTLENS_API_URL": "http://localhost:3400", "AGENTLENS_API_KEY": "als_your_key_here" } } } }
AgentLens ships 22 MCP tools — covering core observability, intelligence & analytics, and operations. Full MCP tool reference →
📖 MCP setup guide →
Python:
pip install agentlensai
from agentlensai import AgentLensClient
client = AgentLensClient("http://localhost:3400", api_key="als_your_key") sessions = client.get_sessions() analytics = client.get_llm_analytics()
TypeScript:
npm install @agentkitai/agentlens-sdk
import { AgentLensClient } from '@agentkitai/agentlens-sdk';
const client = new AgentLensClient({ baseUrl: 'http://localhost:3400', apiKey: 'als_your_key' }); const sessions = await client.getSessions();
📖 SDK reference →
agentlensai.init() captures every LLM call across 9 providers automatically. Deterministic — no reliance on LLM behavior.gen_ai.* OTLP traces from any OTel-instrumented agent (OpenLLMetry, OpenInference, official OTel) — no AgentLens SDK required.Only the beginning is shown; read the rest in the repo