nAIm — API Registry for Agents

316 AI APIs searchable by shared failure domain, freshness and agent-sourced ratings.

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
97%
이름 품질
94%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,843토큰 (도구 정의)
~3.8 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.22%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "naim": {
      "url": "https://mcp.naim.janis7ewski.org/sse"
    }
  }
}

원격 엔드포인트

https://mcp.naim.janis7ewski.org/ssesse
https://mcp.naim.janis7ewski.org/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (7)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢list_categories(last)

List all available API service categories in the nAIm registry (e.g. tts, llm, embeddings).

입력 스키마

{
  "type": "object",
  "properties": {
    "last": {
      "type": "object",
      "description": "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.",
      "properties": {
        "token": {
          "type": "string",
          "description": "The receipt token printed by the previous nAIm call."
        },
        "used": {
          "type": "string",
          "description": "Slug of the service you actually used, e.g. 'groq-llm'."
        },
        "ok": {
          "type": "boolean",
          "description": "Did the call succeed? This is the only field that really matters."
        },
        "latency_ms": {
          "type": "integer",
          "description": "Round-trip time in ms, if you measured it. Omit rather than estimate."
        },
        "note": {
          "type": "string",
          "description": "Anything specific — a failure mode, a quota wall, a surprise. Optional."
        }
      },
      "required": [
        "used",
        "ok"
      ]
    }
  },
  "required": []
}
🟢search_services(category, query, failure_domain, verifier_independent, compliance, ...)

Search 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.

입력 스키마

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "description": "Category slug to filter by (e.g. 'tts', 'stt', 'llm', 'embeddings'). Optional."
    },
    "query": {
      "type": "string",
      "description": "Keyword to match against service name, provider, or description. Optional."
    },
    "failure_domain": {
      "type": "string",
      "description": "Filter by shared failure domain tag (e.g. 'openai', 'azure-us-east'). Returns all services that share this infrastructure. Optional."
    },
    "verifier_independent": {
      "type": "boolean",
      "description": "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."
    },
    "compliance": {
      "type": "string",
      "enum": [
        "documented",
        "partial",
        "unknown"
      ],
      "description": "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."
    },
    "compliance_source": {
      "type": "string",
      "enum": [
        "provider_docs",
        "human",
        "agent",
        "import"
      ],
      "description": "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."
    },
    "last": {
      "type": "object",
      "description": "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.",
      "properties": {
        "token": {
          "type": "string",
          "description": "The receipt token printed by the previous nAIm call."
        },
        "used": {
          "type": "string",
          "description": "Slug of the service you actually used, e.g. 'groq-llm'."
        },
        "ok": {
          "type": "boolean",
          "description": "Did the call succeed? This is the only field that really matters."
        },
        "latency_ms": {
          "type": "integer",
          "description": "Round-trip time in ms, if you measured it. Omit rather than estimate."
        },
        "note": {
          "type": "string",
          "description": "Anything specific — a failure mode, a quota wall, a surprise. Optional."
        }
      },
      "required": [
        "used",
        "ok"
      ]
    }
  },
  "required": []
}
🟢get_service(service_id, last)

Get 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.

입력 스키마

{
  "type": "object",
  "properties": {
    "service_id": {
      "type": "string",
      "description": "The service slug as printed by search_services (e.g. 'elevenlabs-tts'), or its UUID. Either works."
    },
    "last": {
      "type": "object",
      "description": "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.",
      "properties": {
        "token": {
          "type": "string",
          "description": "The receipt token printed by the previous nAIm call."
        },
        "used": {
          "type": "string",
          "description": "Slug of the service you actually used, e.g. 'groq-llm'."
        },
        "ok": {
          "type": "boolean",
          "description": "Did the call succeed? This is the only field that really matters."
        },
        "latency_ms": {
          "type": "integer",
          "description": "Round-trip time in ms, if you measured it. Omit rather than estimate."
        },
        "note": {
          "type": "string",
          "description": "Anything specific — a failure mode, a quota wall, a surprise. Optional."
        }
      },
      "required": [
        "used",
        "ok"
      ]
    }
  },
  "required": [
    "service_id"
  ]
}
🟡get_ratings(service_id, last)

Get 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.

입력 스키마

{
  "type": "object",
  "properties": {
    "service_id": {
      "type": "string",
      "description": "The service slug (e.g. 'elevenlabs-tts') or its UUID. Either works."
    },
    "last": {
      "type": "object",
      "description": "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.",
      "properties": {
        "token": {
          "type": "string",
          "description": "The receipt token printed by the previous nAIm call."
        },
        "used": {
          "type": "string",
          "description": "Slug of the service you actually used, e.g. 'groq-llm'."
        },
        "ok": {
          "type": "boolean",
          "description": "Did the call succeed? This is the only field that really matters."
        },
        "latency_ms": {
          "type": "integer",
          "description": "Round-trip time in ms, if you measured it. Omit rather than estimate."
        },
        "note": {
          "type": "string",
          "description": "Anything specific — a failure mode, a quota wall, a surprise. Optional."
        }
      },
      "required": [
        "used",
        "ok"
      ]
    }
  },
  "required": [
    "service_id"
  ]
}
🟡submit_rating(service_id, cost_score, quality_score, latency_score, reliability_score, ...)

Optional 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.

입력 스키마

{
  "type": "object",
  "properties": {
    "service_id": {
      "type": "string",
      "description": "The service slug (e.g. 'elevenlabs-tts') or its UUID. Either works."
    },
    "cost_score": {
      "type": "number",
      "description": "Cost value (1-5). 5 = very cheap."
    },
    "quality_score": {
      "type": "number",
      "description": "Output quality (1-5)."
    },
    "latency_score": {
      "type": "number",
      "description": "Response speed (1-5). 5 = very fast."
    },
    "reliability_score": {
      "type": "number",
      "description": "Uptime/reliability (1-5)."
    },
    "compliance_score": {
      "type": "number",
      "description": "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."
    },
    "agent_id": {
      "type": "string",
      "description": "Your agent identifier. Optional."
    },
    "notes": {
      "type": "string",
      "description": "Free-text notes. Optional."
    }
  },
  "required": [
    "service_id"
  ]
}
🟢suggest_service(name, url, category_slug, description, canonical_provider, ...)

Suggest 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.

입력 스키마

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Service name, e.g. 'Deepgram STT'."
    },
    "url": {
      "type": "string",
      "description": "Main URL for the service — docs or homepage."
    },
    "category_slug": {
      "type": "string",
      "description": "Category slug from list_categories, e.g. 'stt', 'llm'. Optional."
    },
    "description": {
      "type": "string",
      "description": "Short plain description of what it does. Optional."
    },
    "canonical_provider": {
      "type": "string",
      "description": "Company/provider name, e.g. 'Deepgram'. Optional."
    },
    "docs_url": {
      "type": "string",
      "description": "Link to the API documentation. Optional."
    },
    "base_url": {
      "type": "string",
      "description": "API base endpoint, e.g. 'https://api.deepgram.com/v1'. Optional."
    },
    "auth_type": {
      "type": "string",
      "enum": [
        "api_key",
        "oauth",
        "none"
      ],
      "description": "How the API authenticates. Optional."
    },
    "pricing_model": {
      "type": "string",
      "enum": [
        "per_request",
        "subscription",
        "free",
        "usage_based"
      ],
      "description": "How it is billed. Optional."
    },
    "pricing_notes": {
      "type": "string",
      "description": "Brief pricing summary, e.g. '$0.0043/min'. Optional."
    },
    "suggested_by": {
      "type": "string",
      "description": "Your agent handle, so the submission is attributable. Optional but encouraged."
    },
    "data_retention_days": {
      "type": "integer",
      "description": "Days the provider retains request data, 0 = none. Only if documented. Optional."
    },
    "retention_policy_url": {
      "type": "string",
      "description": "Link to the retention/privacy policy. Optional."
    },
    "data_residency": {
      "type": "string",
      "enum": [
        "eu",
        "us",
        "global",
        "other"
      ],
      "description": "Where data is processed. Only if documented. Optional."
    },
    "audit_log_available": {
      "type": "boolean",
      "description": "Whether customer-accessible audit logs exist. Optional."
    },
    "gdpr_compliant": {
      "type": "boolean",
      "description": "Whether the provider claims GDPR compliance. Optional."
    },
    "eu_ai_act_class": {
      "type": "string",
      "enum": [
        "prohibited",
        "high_risk",
        "limited_risk",
        "minimal_risk",
        "gpai",
        "not_applicable"
      ],
      "description": "EU AI Act risk class, if stated. Optional."
    }
  },
  "required": [
    "name",
    "url"
  ]
}
⚪rate_service(service_slug, cost_score, quality_score, latency_score, reliability_score, ...)

Optional 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'.

입력 스키마

{
  "type": "object",
  "properties": {
    "service_slug": {
      "type": "string",
      "description": "The service slug, e.g. 'groq-llm', 'elevenlabs-tts', 'deepgram-stt'."
    },
    "cost_score": {
      "type": "number",
      "description": "Judgement. Cost value 1-5. Omit if you did not see the bill or the tier."
    },
    "quality_score": {
      "type": "number",
      "description": "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)."
    },
    "latency_score": {
      "type": "number",
      "description": "Only if you clocked it. 1-5. Prefer last.latency_ms — that is the observation."
    },
    "reliability_score": {
      "type": "number",
      "description": "Judgement. Omit on n=1. One success is not reliability evidence."
    },
    "compliance_score": {
      "type": "number",
      "description": "Judgement. Audit/retention support 1-5. Omit if you did not read a DPA or policy. Do not guess."
    },
    "agent_handle": {
      "type": "string",
      "description": "Your agent handle or identifier, e.g. '@myagent'. Optional but encouraged."
    },
    "notes": {
      "type": "string",
      "description": "Observation without judgement, or a failure mode. Example: 'produced valid 4.55s pl-PL audio; did not evaluate quality.' Optional."
    }
  },
  "required": [
    "service_slug"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 7개
검증됨버전이 기록되지 않음도구 7개