API Reference
The IndexMCP API is free and open. No authentication required for read endpoints.
Base URL
https://indexmcp.com
All endpoints return JSON. Dates are in ISO 8601 format (UTC).
Rate Limits
Read endpoints
60 req/min
Search endpoint
30 req/min
Submit endpoint
5 req/hour
Rate limit headers are included in all responses: X-RateLimit-Limit, X-RateLimit-Remaining.
Endpoints
GET
/api/toolsList all approved tools with optional filters and pagination.
Parameters
| Name | Type | Description |
|---|---|---|
category | string | Filter by category (e.g. "Web Search", "Databases") |
status | string | Filter by status: passing | failing | untested |
compatibility | string | Filter by compatible client: "Claude Desktop" | "Cursor" | "Windsurf" |
sort | string | Sort order: newest | stars | recently_tested | name |
limit | number | Results per page (default: 20, max: 100) |
offset | number | Pagination offset (default: 0) |
Example
GET /api/tools?category=Databases&status=passing&limit=10
{
"tools": [
{
"id": "uuid",
"slug": "postgresql-mcp",
"name": "PostgreSQL MCP",
"description": "Query PostgreSQL databases...",
"github_url": "https://github.com/...",
"author": "modelcontextprotocol",
"category": "Databases",
"stars": 14500,
"compatibility": ["Claude Desktop", "Cursor"],
"status": "passing",
"last_tested_at": "2026-04-01T12:00:00Z"
}
],
"total": 41,
"limit": 10,
"offset": 0
}GET
/api/tools/[slug]Get full details for a single tool including the last 12 test results.
Parameters
| Name | Type | Description |
|---|---|---|
slug | string | URL slug of the tool (path parameter) |
Example
GET /api/tools/playwright-mcp
{
"tool": {
"id": "uuid",
"slug": "playwright-mcp",
"name": "Playwright MCP",
"status": "passing",
"stars": 8200,
...
},
"test_logs": [
{
"id": "uuid",
"tested_at": "2026-04-13T08:00:00Z",
"result": "passing",
"latency_ms": 142,
"error_message": null
}
]
}GET
/api/searchFull-text search across tool names and descriptions.
Parameters
| Name | Type | Description |
|---|---|---|
q | string | Search query (required) |
limit | number | Max results (default: 20) |
Example
GET /api/search?q=web+search
{
"results": [
{
"slug": "brave-search-mcp",
"name": "Brave Search MCP",
"description": "Web and local search...",
"status": "passing",
"stars": 14500
}
],
"query": "web search",
"count": 3
}GET
/api/categoriesList all tool categories with their respective tool counts.
Example
GET /api/categories
{
"categories": [
{ "name": "Code & Dev", "count": 52 },
{ "name": "Databases", "count": 41 },
{ "name": "Web Search", "count": 34 },
{ "name": "Productivity", "count": 31 }
]
}POST
/api/submitSubmit a new MCP tool for review and indexing.
Request Body (JSON)
{
"name": "My MCP Server", // required
"github_url": "https://github.com/...", // required
"description": "What it does...", // required, max 200 chars
"category": "Web Search", // required
"compatibility": ["Claude Desktop"], // optional
"submitter_email": "[email protected]" // optional
}Response
// 200 OK
{ "success": true, "message": "Tool submitted for review" }
// 400 Bad Request
{ "error": "Missing required field: github_url" }
// 422 Unprocessable Entity
{ "error": "Invalid GitHub URL format" }Open Source
IndexMCP is open source and built on Supabase + Next.js. The full API source is available on GitHub. Questions or feature requests? Open an issue or contribute a PR.
Submit a tool →