Who's calling Agenstry?
Every search, skill lookup, MCP lookup, route decision and compose call leaves a row in our call log, with the caller's inferred host (Claude Desktop, OpenAI Responses API, Cursor, n8n…), API surface, and country. Free + public because the answer is positioning, not private signal. Connect your AI →
By AI host (caller_kind)
Inferred from User-Agent · see full label reference →By API surface
web |
425,067 |
rest |
30,671 |
a2a |
2,368 |
managed_health |
192 |
mcp |
119 |
managed_runtime |
45 |
api |
33 |
try_proxy |
6 |
By country (top 25)
| GB | 563 |
| US | 474 |
| DE | 63 |
| CN | 56 |
| DK | 51 |
| IN | 47 |
| NL | 39 |
| CH | 37 |
| FR | 31 |
| BE | 28 |
| SE | 21 |
| JP | 21 |
| BR | 20 |
| ES | 18 |
| KR | 13 |
| MY | 11 |
| NZ | 11 |
| ID | 9 |
| AU | 9 |
| CA | 9 |
| RU | 8 |
| SG | 7 |
| HK | 7 |
| KZ | 7 |
| PK | 7 |
Most-searched skills (30d)
Aggregated from /a2a · /mcp · /api/v1/skills · web search
Most-searched MCP servers (30d)
Surface-agnostic: /api/mcp-servers + /a2a find_mcp + /mcp tools
What's behind this page
Every API surface (/a2a · /mcp · /api/v1/skills ·
/api/search · /api/route · /api/compose ·
the managed-runtime /agents/{domain}/a2a + /try proxy) routes its
audit log through one helper at app/call_log.py. The helper extracts the
caller's User-Agent (mapped to one of ~25 known hosts), IP-derived country code (via
Cloudflare's CF-IPCountry header), referer hostname, and (when an A2A peer
agent is calling) the peer's identity from the message metadata or
X-Agent-Caller header. The row goes into agent_call_logs
fire-and-forget so observability never adds latency to the hot path.
What stays private to owners: per-API-key breakdown on the agent dashboard. What's public: this page + per-skill / per-MCP usage badges on /skills and the MCP browser.