chiark-mcp
Chiark MCP Server
MCP server for AI agent discovery and quality scoring. Find reliable agents across A2A and MCP ecosystems with quality constraints.
Powered by chiark.ai — the cross-protocol quality index for AI agent services, tracking 2,000+ agents from 9 registries with three-tier operational scoring.
Quick Start
Use the hosted endpoint (recommended)
Add to your MCP client config (Claude Code, Cursor, etc.):
{
"mcpServers": {
"chiark": {
"url": "https://chiark.ai/mcp/"
}
}
}Install locally
pip install chiark-mcpAdd to your MCP client config:
{
"mcpServers": {
"chiark": {
"command": "chiark-mcp"
}
}
}Or run directly:
python -m chiark_mcpRelated MCP server: preflight-mcp
Tools
find_agent
Search for AI agents by task description with quality constraints.
find_agent(
task_description="web scraping",
min_uptime=0.95,
max_latency_ms=500,
protocol="mcp",
max_results=5
)Returns ranked agents with scores, uptime, latency, endpoint URLs.
check_agent_status
Check if an agent is alive right now.
check_agent_status(agent_id="uuid-from-find-results")Returns: is_alive, HTTP status, response time, TLS validity, last probe timestamp.
get_agent_score
Get full quality score breakdown.
get_agent_score(agent_id="uuid")Returns: availability (0-30), conformance (0-30), performance (0-40), uptime, latency, trend, rank.
report_outcome
Report whether a routed agent succeeded or failed. Improves future recommendations.
report_outcome(agent_id="uuid", success=true, task_category="translation")get_ecosystem_stats
Get ecosystem overview: total agents, online count, average scores, top categories.
get_ecosystem_stats()How It Works
Chiark crawls 9 public agent registries every 24 hours and probes every discovered agent every 30 minutes across three tiers:
Availability — Is it alive? HTTP status, response time, TLS
Conformance — Does it follow its declared protocol correctly?
Performance — How fast does it respond? Task completion rate
Agents are scored 0-100 (or 0-45 for auth-gated agents that can't be fully tested).
Constraint Filters
Parameter | Description | Example |
| Minimum operational score (0-100) |
|
| Minimum 30-day uptime (0-1) |
|
| Maximum P95 latency |
|
| Filter by auth requirement |
|
| Filter by x402 payment |
|
|
|
|
| Skill category |
|
Links
Site: https://chiark.ai
API docs: https://chiark.ai/docs
Hosted MCP endpoint: https://chiark.ai/mcp/
llms.txt: https://chiark.ai/llms.txt
Agent Card: https://chiark.ai/.well-known/agent.json
License
MIT
Available Tools
5 toolscheck_agent_statusA
Check real-time status of an agent. Returns latest probe result: alive/dead, HTTP status, response time, TLS validity.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Agent UUID from find_agent results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context by specifying what data is returned (alive/dead, HTTP status, response time, TLS validity), which helps the agent understand the tool's output behavior. However, it doesn't cover other aspects like error handling, rate limits, or authentication needs, leaving some gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the tool's purpose and return values without any wasted words. It is front-loaded with the core action and resource, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema, no annotations), the description is complete enough for basic use. It clearly explains what the tool does and what it returns, which compensates for the lack of output schema. However, it could be more comprehensive by addressing potential errors or usage constraints, slightly limiting completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents the single parameter (agent_id) with its type and description. The description doesn't add any parameter-specific information beyond what the schema provides, but with only one parameter and high coverage, this is acceptable. The baseline is 3, but the simplicity and completeness of the schema justify a slightly higher score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Check real-time status') and resource ('of an agent'), and distinguishes it from siblings by specifying it returns probe results rather than finding agents, scoring agents, getting ecosystem stats, or reporting outcomes. It uses precise verbs and defines the exact scope of what it provides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning it returns probe results, suggesting it's for monitoring agent health, but it doesn't explicitly state when to use this tool versus alternatives like find_agent or get_agent_score. No exclusions or prerequisites are provided, leaving the agent to infer context from the tool's purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_agentA
Find the best AI agents for a given task. Searches 2,000+ agents across A2A and MCP ecosystems. Supports quality constraints: min uptime, max latency, min score, auth requirement, payment support.
| Name | Required | Description | Default |
|---|---|---|---|
| task_description | Yes | What you need the agent for (e.g., 'web scraping', 'translation') | |
| max_results | No | Max results (default 5) | |
| min_score | No | Min operational score 0-100 | |
| min_uptime | No | Min 30-day uptime fraction (e.g., 0.99 = 99%) | |
| max_latency_ms | No | Max P95 latency in ms | |
| auth_required | No | false = only open/unauthenticated agents | |
| payment_enabled | No | Filter by x402 payment support | |
| protocol | No | Filter by protocol: 'a2a' or 'mcp' | |
| category | No | Filter by category (e.g., 'Developer Tools') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions search scope and quality constraints but doesn't disclose behavioral traits like rate limits, authentication requirements for using the tool itself, pagination behavior, or what 'best' means algorithmically. The description provides basic operational context but lacks deeper behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences that efficiently convey purpose and key capabilities. It's front-loaded with the core function and follows with constraint details. While very efficient, it could potentially benefit from slightly more structure for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 9 parameters and no output schema, the description provides adequate context about what the tool does but lacks information about return format, result structure, or error conditions. With no annotations and no output schema, the description should ideally provide more complete operational context for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description adds minimal value beyond the schema by listing some filter types in the description text, but doesn't provide additional semantic context or usage examples beyond what's in the parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('find') and resource ('AI agents'), specifies the scope ('2,000+ agents across A2A and MCP ecosystems'), and lists key quality constraints. It distinguishes itself from siblings like check_agent_status or get_agent_score by focusing on discovery rather than status checking or scoring.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('for a given task') and lists available filters, but doesn't explicitly state when to use this tool versus alternatives like get_ecosystem_stats or report_outcome. It provides clear filtering capabilities but lacks explicit sibling differentiation beyond the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_scoreC
Get full quality score breakdown: availability (0-30), conformance (0-30), performance (0-40), uptime, latency, trend, rank.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Agent UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this is a 'Get' operation which implies read-only behavior, but doesn't disclose any behavioral traits like authentication requirements, rate limits, error conditions, or what happens when an invalid agent_id is provided. The description is minimal and lacks important operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that packs substantial information about what the tool returns. It's appropriately sized for a simple retrieval tool, though it could be slightly more structured by separating the core purpose from the detailed breakdown.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter retrieval tool with no annotations and no output schema, the description provides the core purpose and return value components. However, it lacks important context about behavioral aspects, error handling, and differentiation from sibling tools. The description is adequate but has clear gaps in operational guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'agent_id' documented as 'Agent UUID' in the schema. The description adds no additional parameter information beyond what the schema provides. With high schema coverage and only one parameter, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get full quality score breakdown' with specific components listed (availability, conformance, performance, uptime, latency, trend, rank). It uses a specific verb ('Get') and identifies the resource ('quality score breakdown'), but doesn't explicitly differentiate from sibling tools like 'check_agent_status' or 'find_agent'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites, appropriate contexts, or exclusions. With sibling tools like 'check_agent_status' and 'find_agent' available, the agent receives no help in choosing between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ecosystem_statsB
Ecosystem overview: total agents, online count, average scores, top categories, average latency.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions metrics but doesn't disclose behavioral traits like whether this is a read-only operation, if it requires authentication, rate limits, data freshness, or how the metrics are calculated (e.g., time window for averages). This leaves significant gaps for a tool that likely aggregates data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that lists all key metrics without unnecessary words. It's front-loaded with the purpose ('Ecosystem overview') followed by specific data points, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (aggregating multiple metrics) and lack of annotations or output schema, the description is minimally adequate. It specifies what metrics are returned but doesn't explain their format, units, or interpretation, leaving the agent to infer details. This is a baseline level of completeness for a no-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter details in the description. The baseline for 0 parameters is 4, as the description appropriately focuses on output semantics without redundant parameter explanations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: provide an ecosystem overview with specific metrics (total agents, online count, average scores, top categories, average latency). It uses a specific verb ('overview') and resource ('ecosystem'), though it doesn't explicitly distinguish from sibling tools like 'check_agent_status' or 'get_agent_score'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lists metrics but doesn't indicate whether this is for monitoring dashboards, health checks, or comparison with individual agent tools like 'get_agent_score'. There's no mention of prerequisites, frequency, or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_outcomeB
Report routing outcome after using an agent. Helps improve future recommendations. Call after routing to an agent.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | Agent UUID | |
| success | Yes | Whether the agent completed the task | |
| error_message | No | Error details if failed | |
| task_category | No | Category (e.g., 'translation', 'crypto') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool helps 'improve future recommendations,' suggesting a feedback or logging function, but doesn't detail behavioral traits such as whether it's idempotent, has side effects, requires specific permissions, or how it interacts with the system. This leaves gaps in understanding its operational impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: two sentences that directly state the tool's purpose and usage timing without unnecessary details. Every sentence earns its place by providing essential information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations and no output schema, the description is incomplete. It lacks details on behavioral aspects (e.g., whether it's a write operation, error handling), and doesn't explain return values or system impact. For a tool that likely involves data submission (reporting outcomes), more context on its effects and response format is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters (agent_id, success, error_message, task_category) with descriptions. The description doesn't add any additional meaning or context beyond what the schema provides, such as explaining parameter relationships or usage examples. Baseline score of 3 is appropriate as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Report routing outcome after using an agent' and 'Helps improve future recommendations.' It specifies the action (report) and resource (routing outcome), but doesn't explicitly differentiate it from sibling tools like 'get_agent_score' or 'check_agent_status', which might also relate to agent performance tracking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context: 'Call after routing to an agent,' which implies timing. However, it doesn't specify when to use this tool versus alternatives like 'get_agent_score' (which might retrieve scores) or 'check_agent_status' (which might check current status). No explicit exclusions or detailed prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap: status checking, agent discovery, score retrieval, ecosystem statistics, and outcome reporting. The descriptions make it easy to differentiate between monitoring, search, analytics, and feedback functions.
All tools follow a consistent verb_noun pattern (check_agent_status, find_agent, get_agent_score, get_ecosystem_stats, report_outcome) with clear, descriptive names. The naming convention is uniform throughout the set.
With 5 tools, this server is well-scoped for agent discovery and monitoring. Each tool earns its place by covering distinct aspects of the domain: discovery, evaluation, monitoring, ecosystem overview, and feedback.
The toolset provides strong coverage for agent discovery and quality assessment, including search, scoring, status checks, and ecosystem stats. A minor gap exists in direct agent interaction or management tools (e.g., invoking agents or configuring them), but the core workflow is well-supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Market intelligence for the AI agent economy: rankings, trust signals, liveness. 13 tools.
AI agent registry — search, discover, register, and connect agents via MCP.
Search engine for AI agents to find MCP servers, A2A agents, and skills on their own.
Search, vet & assemble MCP servers from your agent: verified tools, risk labels, and trust scores.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceGoogle PageRank for AI agents — live search across 25,000+ scored MCP servers and tools. AgentRank gives your AI a live, ranked index of 25,000+ MCP servers and agent tools, scored daily from real GitHub signals (stars, freshness, issue health, contributors, dependents). Your AI's training data is months old — it can't tell you if a tool was abandoned last week or that something better shipped y52MIT
- AlicenseAqualityNot gradedmaintenanceTrustPilot for APIs, built for AI agents. Independent reliability ratings for APIs and MCP servers — look up trust scores, compare providers side by side, and leave reviews from real agent traffic.31
- AlicenseNot gradedqualityFmaintenanceTool search engine for AI agents. One API call to discover the best MCP server for any task. 900+ services indexed with 4-dimensional value ranking.MIT
- AlicenseNot gradedqualityCmaintenanceIntelligent routing layer for AI agents — recommends the best MCP server and LLM for any task, scored on 132+ real benchmark executions.21MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chiark-ai-dev/chiark-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server