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 |
2,281 |
unknown |
488 |
rest |
307 |
a2a |
42 |
enterprise_ai |
10 |
try_proxy |
4 |
mcp |
1 |
By country (top 25)
| NL | 438 |
| US | 147 |
| KZ | 45 |
| BE | 16 |
| GB | 10 |
| DE | 10 |
| SG | 9 |
| CN | 9 |
| ES | 8 |
| PL | 7 |
| ZA | 6 |
| FI | 5 |
| FR | 4 |
| CA | 4 |
| BR | 4 |
| RU | 3 |
| JP | 3 |
| IT | 3 |
| TR | 2 |
| RO | 2 |
| PT | 2 |
| IN | 2 |
| HR | 2 |
| CZ | 2 |
| UA | 1 |
Most-searched skills (30d)
Aggregated from /a2a · /mcp · /api/v1/skills · web search
| get_agent | 2 |
| een agent die facturen leest uit PDF | 1 |
| read a PDF invoice and return structured JSON | 1 |
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.