# Docs MCP Server

> Let an AI assistant search and read this documentation through the Model Context Protocol.

Source: https://docs.centinelanalytica.com/api/docs-mcp

## Overview

The docs MCP server lets a coding assistant, such as Claude Code or Cursor, search this documentation and read its pages as Markdown. The assistant then answers from the current docs, not from its training data.

The endpoint is `POST https://docs.centinelanalytica.com/mcp`. It speaks the Streamable HTTP transport of protocol revision `2025-06-18`.

The server is public and read-only. It needs no API key. It keeps no state between requests, and each request receives one answer.

> **Note:** This server reads the documentation only. To give an assistant your event data, use the [MCP Server](https://docs.centinelanalytica.com/api/mcp.md) at `api.centinelanalytica.com` with an API key.

## Connect a client

Add the server to Claude Code with one command:

```bash
claude mcp add --transport http centinel-docs https://docs.centinelanalytica.com/mcp
```

For a client that reads a JSON configuration file, add this block:

```json
{
  "mcpServers": {
    "centinel-docs": {
      "type": "http",
      "url": "https://docs.centinelanalytica.com/mcp"
    }
  }
}
```

## Tools

| Tool          | Arguments                                     | Returns                                                               |
| ------------- | --------------------------------------------- | --------------------------------------------------------------------- |
| `search_docs` | `query`, and `limit` from 1 to 20 (default 8) | The matching pages and sections, each with its path and Markdown URL. |
| `get_page`    | `path`                                        | One page as Markdown.                                                 |

The `get_page` tool accepts a path such as `/api/analytics`, the same path with `.md`, or a full `https://docs.centinelanalytica.com` URL. It also reads a crawler profile, for example `/crawlers/googlebot`.

Call `search_docs` without a client:

```bash
curl -X POST https://docs.centinelanalytica.com/mcp \
  -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_docs","arguments":{"query":"akamai timeout"}}}'
```

## Errors

A tool error has status `200` and `isError` set to `true`. The text says what to change, for example an empty `query` or a path with no page. The assistant can correct the call and send it again.

| Code     | Meaning                                                                                        |
| -------- | ---------------------------------------------------------------------------------------------- |
| `-32700` | The request body is not valid JSON.                                                            |
| `-32600` | The body is valid JSON, but it is not a JSON-RPC 2.0 request.                                  |
| `-32601` | The method is unknown. The server serves `initialize`, `ping`, `tools/list`, and `tools/call`. |
| `-32602` | The tool name is unknown.                                                                      |

The server returns `202` and an empty body for a notification. It returns `405` for a `GET`, and `413` for a request body above 16 KiB.

## Other formats

An agent that does not use MCP can read the same content directly:

* [`/llms.txt`](https://docs.centinelanalytica.com/llms.txt) lists every page with its Markdown URL.
* [`/llms-full.txt`](https://docs.centinelanalytica.com/llms-full.txt) holds every page in one file.
* Any page URL returns Markdown when you append `.md`, or when the request sends `Accept: text/markdown`.
* [`/openapi.json`](https://docs.centinelanalytica.com/openapi.json) describes the validation, health, and analytics query endpoints.

## See also

* [MCP Server](https://docs.centinelanalytica.com/api/mcp.md) to query your event data from an assistant
* [Analytics Query API](https://docs.centinelanalytica.com/api/analytics.md) for the event schema
