agent-store
Minimal agent telemetry store with OTLP/HTTP ingestion to Postgres and MCP streamable-http tools for querying logs, traces, and metrics.
README
agent-store
Minimal agent telemetry store. One process, two paths:
- OTLP/HTTP (JSON encoding) → ingest spans/logs/metrics → Postgres
- MCP streamable-http → query Postgres → agent introspection tools
Quick start
# Local dev
PGHOST=localhost PGPORT=5432 PGUSER=postgres PGPASSWORD=secret PGDATABASE=agentstore \
bun run src/server.ts
Testing
# Unit tests only (no DB)
bun test test/otlp-parse.test.ts
# Full integration tests (spins up docker postgres)
bash scripts/test-db.sh
# Or if PG is already running:
PGHOST=localhost PGPORT=5432 PGUSER=postgres PGPASSWORD=secret PGDATABASE=agentstore_test \
bun test
Env vars
| Var | Default | Description |
|---|---|---|
PORT |
4318 |
HTTP listen port |
MCP_PATH |
/mcp |
MCP endpoint path |
DATABASE_URL |
— | Full postgres URL (overrides PGHOST etc.) |
PGHOST |
localhost |
Postgres host |
PGPORT |
5432 |
Postgres port |
PGUSER |
postgres |
Postgres user |
PGPASSWORD |
postgres |
Postgres password |
PGDATABASE |
agentstore |
Postgres database |
AUDIT_DIR |
./data |
Directory for ingest audit JSONL files |
Routes
| Method | Path | Description |
|---|---|---|
POST |
/v1/traces |
OTLP/JSON trace ingest |
POST |
/v1/logs |
OTLP/JSON log ingest |
POST |
/v1/metrics |
OTLP/JSON metric ingest |
GET |
/healthz |
Health check (includes PG ping) |
ALL |
/mcp |
MCP streamable-http |
Schema (telemetry schema, auto-migrated on startup)
telemetry.spans— OTLP trace spans with resource/scope/attributes as JSONBtelemetry.logs— OTLP log recordstelemetry.metrics— OTLP metric datapoints (gauge/sum/histogram decomposed)
MCP tools
| Tool | Description |
|---|---|
query_logs |
Filter logs by service, body, severity, time range |
query_traces |
Trace summaries (root span, count, duration, error flag) |
get_trace |
All spans for a trace_id, parent-child reconstructable |
summarize_activity |
Pre-aggregated per-service stats: spans, errors, top names, daily |
list_services |
All services with span/log counts and last_seen |
service_schema |
Distinct span names + attribute keys for a service |
since param accepts relative ("7d", "24h", "30m") or ISO datetime.
Docker
docker build -t agent-store .
docker run -e PGHOST=... -e PGPASSWORD=... -p 4318:4318 agent-store
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.