# Documentation MCP

> Install the Ghosty Studio documentation as an MCP server in Claude Code, Cursor or Codex; your agent searches and reads it without leaving the editor.

URL: https://www.ghosty.studio/en/docs/protocols/docs-mcp

This documentation also exists as an **MCP server**: your coding agent queries it with tools instead of you copying and pasting. Public, no key.

## Install

:::tabs
```bash tab=Claude Code
claude mcp add --transport http ghosty-docs https://www.ghosty.studio/mcp/docs
```
```json tab=Cursor
{
  "mcpServers": {
    "ghosty-docs": { "type": "http", "url": "https://www.ghosty.studio/mcp/docs" }
  }
}
```
```toml tab=Codex
[mcp_servers.ghosty-docs]
url = "https://www.ghosty.studio/mcp/docs"
```
:::

In Cursor it goes in `.cursor/mcp.json` (project) or the global one; in Codex, in `~/.codex/config.toml`. Any MCP client with **Streamable HTTP** transport works.

## Tools

| Tool | Does |
|---|---|
| `search_docs { query, locale? }` | Searches title, headings and text (lexical, not semantic). Up to 8 results with slug and URL. |
| `read_doc { slug, locale? }` | The full page as markdown. |
| `list_docs { locale? }` | Every page by section. |
| `openapi {}` | The OpenAPI 3.1 spec of the API. |

`locale` is `es` (default) or `en`.

## Without MCP too

Every page exists as plain markdown at its URL plus `.md` — for example [`/en/docs/api/authentication.md`](/en/docs/api/authentication.md) — and all together at [`/en/llms-full.txt`](/en/llms-full.txt). The **Copy markdown** and **Open in Claude / ChatGPT** buttons on each page use exactly that.

## How it is built

A JSON-RPC 2.0 endpoint without sessions or SSE: each call is one response. Search uses the same index as the site's search box. No MCP SDK dependency; four methods (`initialize`, `ping`, `tools/list`, `tools/call`).
