> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mcprank.app/llms.txt
> Use this file to discover all available pages before exploring further.

# List Tools

> List tools available on an MCP server

# List Tools

List all tools available on an MCP server. This is a convenience wrapper around the generic `/mcp/call` endpoint.

## Request

```bash theme={null}
curl -X POST https://api.mcprank.com/v1/mcp/tools/list \
  -H "X-API-Key: sk_mcp_rank_..." \
  -H "Content-Type: application/json" \
  -d '{"server_id": "ai.exa/exa"}'
```

### Headers

<ParamField header="X-API-Key" type="string" required>
  Your MCP Rank API key
</ParamField>

### Body Parameters

<ParamField body="server_id" type="string" required>
  The MCP Rank server ID
</ParamField>

## Response

<ResponseField name="tools" type="array">
  List of available tools
</ResponseField>

Each tool in the array contains:

| Field         | Type   | Description                    |
| ------------- | ------ | ------------------------------ |
| `name`        | string | Tool identifier                |
| `description` | string | What the tool does             |
| `inputSchema` | object | JSON Schema for tool arguments |

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.mcprank.com/v1/mcp/tools/list \
    -H "X-API-Key: sk_mcp_rank_..." \
    -H "Content-Type: application/json" \
    -d '{"server_id": "ai.exa/exa"}'
  ```

  ```python Python theme={null}
  import httpx

  async with httpx.AsyncClient() as client:
      response = await client.post(
          "https://api.mcprank.com/v1/mcp/tools/list",
          headers={"X-API-Key": "sk_mcp_rank_..."},
          json={"server_id": "ai.exa/exa"}
      )
      tools = response.json()["tools"]
      
      for tool in tools:
          print(f"{tool['name']}: {tool['description']}")
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "tools": [
      {
        "name": "web_search",
        "description": "Search the web using Exa's neural search engine",
        "inputSchema": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "description": "The search query"
            },
            "numResults": {
              "type": "integer",
              "description": "Number of results to return",
              "default": 10
            }
          },
          "required": ["query"]
        }
      },
      {
        "name": "find_similar",
        "description": "Find pages similar to a given URL",
        "inputSchema": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "description": "URL to find similar pages for"
            }
          },
          "required": ["url"]
        }
      }
    ]
  }
  ```
</ResponseExample>

## Error Responses

| Status Code | Description                |
| ----------- | -------------------------- |
| 401         | Missing or invalid API key |
| 404         | Server not found           |
| 410         | Server is no longer active |
| 429         | Rate limit exceeded        |
| 502         | MCP server error           |
