API Reference
No authentication required. All endpoints return JSON. Rate limited to 60 requests/minute.
Base URL: https://agentnativeregistry.com
OpenAPI spec: /openapi.json
GET /api/tools
Search and filter all tools in the registry. Returns tools sorted by Agent Native Score descending.
Parameters
| Name | Type | Description |
|---|---|---|
q | string | Search by name, description, category, or review notes |
category | string | Filter by category (e.g. "payments", "database", "ai") |
min_score | number | Minimum Agent Native Score (0-100) |
has_mcp | "true" | Only return tools with an MCP server |
limit | number | Max results (default: 100, max: 100) |
Examples
curl
JavaScript
Python
# List all tools curl https://agentnativeregistry.com/api/tools # Search for payment tools with MCP servers curl "https://agentnativeregistry.com/api/tools?category=payments&has_mcp=true" # Search by keyword curl "https://agentnativeregistry.com/api/tools?q=email&limit=5"
// List all payment tools with MCP servers
const res = await fetch(
"https://agentnativeregistry.com/api/tools?category=payments&has_mcp=true"
);
const { tools } = await res.json();
console.log(tools.map(t => `${t.name}: ${t.agent_native_score}/100`));
import requests
# List all payment tools with MCP servers
r = requests.get("https://agentnativeregistry.com/api/tools", params={
"category": "payments",
"has_mcp": "true"
})
for tool in r.json()["tools"]:
print(f"{tool['name']}: {tool['agent_native_score']}/100")
Response
{
"count": 3,
"total": 126,
"tools": [
{
"id": "stripe",
"name": "Stripe",
"agent_native_score": 58,
"scores": { "discovery": 100, "auth": 100, "pricing": 100, "tooling": null, "reliability": null },
"checklist": { "has_openapi_spec": true, "has_mcp_server": true, ... },
...
}
]
}
POST /api/score
Score a tool against the checklist. Returns an existing score if the tool is in the registry, otherwise scores it on-demand using public checks only.
Request Body
| Name | Type | Description |
|---|---|---|
toolName | string (required) | Name of the tool to score |
toolUrl | string | URL of the tool (improves accuracy) |
Examples
curl
JavaScript
Python
curl -X POST https://agentnativeregistry.com/api/score \
-H "Content-Type: application/json" \
-d '{"toolName": "Stripe", "toolUrl": "https://stripe.com"}'
const res = await fetch("https://agentnativeregistry.com/api/score", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ toolName: "Stripe", toolUrl: "https://stripe.com" })
});
const { source, tool } = await res.json();
console.log(`${tool.name}: ${tool.agent_native_score}/100 (${source})`);
import requests
r = requests.post("https://agentnativeregistry.com/api/score", json={
"toolName": "Stripe",
"toolUrl": "https://stripe.com"
})
data = r.json()
print(f"{data['tool']['name']}: {data['tool']['agent_native_score']}/100")
Response
{
"source": "registry", // or "scored" for on-demand
"tool": {
"id": "stripe",
"name": "Stripe",
"agent_native_score": 58,
"checklist": { ... },
...
}
}
MCP Server
JSON-RPC endpoint for Model Context Protocol clients. Supports search_tools, get_score, compare_tools, and list_categories.
Install
claude mcp add --transport http agent-native-registry https://agentnativeregistry.com/api/mcp
Direct JSON-RPC call
curl
JavaScript
Python
curl -X POST https://agentnativeregistry.com/api/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_score",
"arguments": { "name": "Stripe" }
}
}'
const res = await fetch("https://agentnativeregistry.com/api/mcp", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
jsonrpc: "2.0",
id: 1,
method: "tools/call",
params: { name: "get_score", arguments: { name: "Stripe" } }
})
});
const { result } = await res.json();
console.log(result.content[0].text);
import requests
r = requests.post("https://agentnativeregistry.com/api/mcp", json={
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_score",
"arguments": {"name": "Stripe"}
}
})
print(r.json()["result"]["content"][0]["text"])
Response Headers
All API responses include:
| Header | Description |
|---|---|
X-Request-Id | Unique UUID for this request (for debugging) |
X-API-Version | Current API version (1.0) |
X-RateLimit-Limit | Requests allowed per window (60) |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Seconds until rate limit resets |
If rate limited, the response includes a Retry-After header with seconds to wait.