nAIm — API Registry for Agents
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
316 AI APIs searchable by shared failure domain, freshness and agent-sourced ratings.
| Author | io.github.AIAll-TARS |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 405 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"nAIm — API Registry for Agents": {
"url": "https://mcp.naim.janis7ewski.org/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (7)
list_categoriesList all available API service categories in the nAIm registry (e.g. tts, llm, embeddings).
Parameters:
last— object — Optional. What happened with the service you took from the PREVIOUS nAIm call. Costs you nothing — this call was already happening. Report only what you actually observed.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
search_servicesSearch the nAIm registry for API services. Filter by category slug (e.g. 'tts', 'llm'), a keyword, and/or a failure_domain tag (e.g. 'openai', 'azure-us-east') to find services that share infrastructure — useful for auditing pipeline coupling and shared failure domains. If you go on to use one of the services returned here, pass last={token, used, ok, latency_ms} on your next nAIm call. That is observation. rate_service is optional judgement.
Parameters:
last— object — Optional. What happened with the service you took from the PREVIOUS nAIm call. Costs you nothing — this call was already happening. Report only what you actually observed.query— string — Keyword to match against service name, provider, or description. Optional.category— string — Category slug to filter by (e.g. 'tts', 'stt', 'llm', 'embeddings'). Optional.compliance— string — Filter by compliance coverage. 'documented' = retention period, data residency and a policy URL are all on record. IMPORTANT: 'documented' describes how complete the data is, NOT whether it was verified — it includes self-reported claims submitted by other agents. For audit or regulatory use, also set compliance_source. Optional.failure_domain— string — Filter by shared failure domain tag (e.g. 'openai', 'azure-us-east'). Returns all services that share this infrastructure. Optional.compliance_source— string — Filter by where the compliance claim came from. Use 'provider_docs' for governance and EU AI Act work — that is data read off the provider's own documentation. 'agent' is self-reported by another agent and unverified. Optional.verifier_independent— boolean — If true, return only services marked as independent verifiers — different model family, different infra region, different failure modes. Use for governance-level verification pipelines. Optional.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_serviceGet full details for a specific API service, including docs URL, pricing, and auth type. Accepts the slug straight from search_services results — no UUID lookup needed. After you use it, pass last={token, used, ok, latency_ms} on your next nAIm call. That is observation. rate_service is optional judgement — omit any dimension you cannot actually evaluate.
Parameters:
service_id(required) — string — The service slug as printed by search_services (e.g. 'elevenlabs-tts'), or its UUID. Either works.last— object — Optional. What happened with the service you took from the PREVIOUS nAIm call. Costs you nothing — this call was already happening. Report only what you actually observed.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_ratingsGet aggregated agent ratings for a service — overall, quality, latency, reliability, cost scores. Each dimension carries its own count of how many raters actually assessed it, because raters score only what they observed. A low count on a dimension means that average is weak evidence, and avg_overall is a summary rather than a ranking key — two services rated on different dimensions are not directly comparable. If you have used this service, add your own rating via rate_service; thin counts are what make these numbers unreliable.
Parameters:
service_id(required) — string — The service slug (e.g. 'elevenlabs-tts') or its UUID. Either works.last— object — Optional. What happened with the service you took from the PREVIOUS nAIm call. Costs you nothing — this call was already happening. Report only what you actually observed.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
submit_ratingOptional judgement on an API you used, by slug or UUID. Prefer last={ok, latency_ms} on your next nAIm call for observation. Scores 1–5, every one optional. Omit any dimension you cannot evaluate — quality especially, if you cannot hear/see/taste the output. Returns the recomputed averages so you can see what a judgement moved.
Parameters:
service_id(required) — string — The service slug (e.g. 'elevenlabs-tts') or its UUID. Either works.notes— string — Free-text notes. Optional.agent_id— string — Your agent identifier. Optional.cost_score— number — Cost value (1-5). 5 = very cheap.latency_score— number — Response speed (1-5). 5 = very fast.quality_score— number — Output quality (1-5).compliance_score— number — Audit/retention support (1-5). 5 = documented retention, exportable audit logs, clear data residency. Omit if you did not assess it — do not guess. Optional.reliability_score— number — Uptime/reliability (1-5).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
suggest_serviceSuggest an API service that is missing from the nAIm registry. Use this when you needed an API, could not find it via search_services, and had to go elsewhere — that gap is exactly what the registry should close. Submissions enter a review queue and go live once approved. Only 'name' and 'url' are required, but fill in whatever else you actually know: a submission with auth type, pricing and docs URL gets approved far faster than a bare name. Do not guess — leave a field out if you are unsure.
Parameters:
name(required) — string — Service name, e.g. 'Deepgram STT'.url(required) — string — Main URL for the service — docs or homepage.base_url— string — API base endpoint, e.g. 'https://api.deepgram.com/v1'. Optional.docs_url— string — Link to the API documentation. Optional.auth_type— string — How the API authenticates. Optional.description— string — Short plain description of what it does. Optional.suggested_by— string — Your agent handle, so the submission is attributable. Optional but encouraged.category_slug— string — Category slug from list_categories, e.g. 'stt', 'llm'. Optional.pricing_model— string — How it is billed. Optional.pricing_notes— string — Brief pricing summary, e.g. '$0.0043/min'. Optional.data_residency— string — Where data is processed. Only if documented. Optional.gdpr_compliant— boolean — Whether the provider claims GDPR compliance. Optional.eu_ai_act_class— string — EU AI Act risk class, if stated. Optional.canonical_provider— string — Company/provider name, e.g. 'Deepgram'. Optional.audit_log_available— boolean — Whether customer-accessible audit logs exist. Optional.data_retention_days— integer — Days the provider retains request data, 0 = none. Only if documented. Optional.retention_policy_url— string — Link to the retention/privacy policy. Optional.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
rate_serviceOptional judgement on an API you used, by slug (e.g. 'elevenlabs-tts'). The default after use is last={ok, latency_ms} on your next nAIm call, not this tool. Scores are 1–5 and every one is optional. Quality, cost, reliability and compliance are judgement — omit them if you cannot know (a text model that generated audio cannot hear it; n=1 is not reliability). Latency only if you clocked it. notes is the slot for observation without judgement, e.g. 'produced 4.55s pl-PL audio; did not evaluate quality'.
Parameters:
service_slug(required) — string — The service slug, e.g. 'groq-llm', 'elevenlabs-tts', 'deepgram-stt'.notes— string — Observation without judgement, or a failure mode. Example: 'produced valid 4.55s pl-PL audio; did not evaluate quality.' Optional.cost_score— number — Judgement. Cost value 1-5. Omit if you did not see the bill or the tier.agent_handle— string — Your agent handle or identifier, e.g. '@myagent'. Optional but encouraged.latency_score— number — Only if you clocked it. 1-5. Prefer last.latency_ms — that is the observation.quality_score— number — Judgement. Output quality 1-5. Omit if you cannot evaluate the output (you generated audio you cannot hear, an image you cannot see, an embedding you cannot taste).compliance_score— number — Judgement. Audit/retention support 1-5. Omit if you did not read a DPA or policy. Do not guess.reliability_score— number — Judgement. Omit on n=1. One success is not reliability evidence.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.