MCP

Plug the index into an AI assistant, and it answers your questions about these documents by quoting them, rather than from memory. This page has the whole setup, from a settings menu or from a command line. Four tools, read only, no account and no key.

What this does

MCP, the Model Context Protocol, is a standard way to let an assistant look something up in another service while it answers you. Connect the index and your assistant stops answering about these documents from memory: it quotes the passages a document actually gives on a subject, and says where in the document each one sits, so you can check the answer rather than trust it.

The index speaks it at one address:

/api/mcp

There is nothing to sign in to and no key to obtain. The index only reads: it can be asked what the documents say, and it cannot be asked to change anything. Everything it serves is the published index, the same data the doc reader is built from, so a call reads what the site shows and nothing else.

Connect from a settings menu

No terminal. Both routes below were checked against the publisher’s own documentation as of September 2026, and these menus do change.

Claude

Custom connectors are available on the Free, Pro, Max, Team and Enterprise plans, and a free account is limited to one of them.

  1. Open Claude’s settings, on claude.ai or in the desktop app, and choose Connectors.
  2. Choose Add custom connector.
  3. Paste the address above and choose Add. The index needs no sign-in, so leave any authentication fields empty.
  4. In a conversation, open the + button beside the message box, choose Connectors, and switch the index on.

On a Team or Enterprise plan an owner adds it once under Organization settings, then Connectors, and everyone else then chooses Connect beside it.

ChatGPT

Custom MCP servers sit behind developer mode, which OpenAI lists for Plus, Pro, Business, Enterprise and Education accounts on the web. It is not on the free plan.

  1. Open Settings, then Security and login, and turn on Developer mode.
  2. Go to Plugins, choose the plus button, and create a developer-mode app for the address above.

Developer mode gives an assistant full use of a server’s tools, including tools that write. The index has none of those: it only reads.

Connect from the command line

One command, in the client you already use. Each was checked against its publisher’s own documentation as of September 2026.

Claude Code

claude mcp add --transport http ai-character-index /api/mcp

Add --scope user to have it in every project rather than only this one. Type /mcp inside Claude Code to see that it connected.

Codex CLI

codex mcp add ai-character-index --url /api/mcp

codex mcp list shows what is configured.

Gemini CLI

gemini mcp add --transport http ai-character-index /api/mcp

A client that takes a configuration file

{
  "mcpServers": {
    "ai-character-index": {
      "type": "http",
      "url": "/api/mcp"
    }
  }
}

Clients spell this differently, so prefer the client’s own command where there is one: it writes the shape that client expects.

What to ask it

Once it is connected, ask in ordinary words. For instance:

  • What does OpenAI’s Model Spec say about sycophancy? Quote the passages.
  • Where do Claude’s Constitution and the Alibaba Model Spec differ on user autonomy?
  • What changed between the two versions of the OpenAI Model Spec on human oversight?

The index carries thirteen behaviours as of September 2026, and the assistant will name the ones it used and quote from the documents it read.

Tools

Four, and all of them read. Four words recur below. A behaviour is one thing a document might commit a model to, such as deferring to a user’s own decisions. A locator is the address of a quote inside a document, naming the document, its version, the section and the sentences, as in openai--model-spec@2026-08-18 > #scope_of_autonomy > ¶14. The panel is the three frontier models that read every document for every behaviour and marked the passages. A depth is the score those judges give a document for a behaviour, from 0, absent, to 4, rules with worked examples: it says how much the document gives an evaluation to work with, not how much the company behind it cares.

about. What the index is, what it does not report, and what the other three tools return, in one answer meant to be read before anything else is asked. No arguments. It names the documents, the behaviours and the sections they sit in, the panel that judged and the publication being served, each read from that publication when you ask rather than written into this page, so it is current whenever it is called. Most assistants never show a server’s own instructions to the model, so this is the same text where the model will see it.

list_model_specs. Every specification the current publication carries: id, laboratory, title, version, source URL, how many behaviours were judged against it and how many passages it holds. No arguments. It does not return the specification text, which runs to hundreds of kilobytes; the source URL is in the answer. Each specification is one version, and its id reads <company>--<document>@<version>, such as openai--model-spec@2026-08-18, which is also the head of every locator into it.

list_behaviours. Every behaviour the publication shows, with the section it is grouped in, the brief the judge panel was given, the boundary of the construct and where the definition came from. Each one also carries, per specification, how many passages it has, the strongest band any of them reaches and the panel’s mean depth. No arguments. The slugs it returns are what the next tool takes.

retrieve_passages. The passages of a specification that bear on a behaviour, quoted verbatim and located. Each one comes back with its locator, its quote, the band it sits in and the verdict every judge gave it.

  • behaviours. Required, at least one slug. It is what bounds the size of the answer.
  • model_spec_ids. Optional, every specification by default. Where a behaviour and specification pair carries a depth, it comes back as the mean the index’s panel gave it, on a scale from 0, absent, to 4, rules with worked examples. A pair with no depth comes back with null.
  • strength. Optional. defining is the document’s fullest statement of the behaviour, core establishes it there, related bears on it without establishing it. Each means that band and stronger. related by default, so every band comes back, which is what the spec reader shows before you touch a toggle. Every passage carries its strength, so pass core or defining to narrow the answer. A judge’s own verdict of adjacent is the band named related here.
  • limit. Optional, 40 by default, 200 at most. It is a page budget in passages: an answer holds whole behaviour and specification pairs, never split, strongest passage first.
  • cursor. Optional, the next_cursor of the previous page. It names the publication it was issued against, so a walk that spans a new publication stops rather than drifting across two indexes.

Where a judge could not answer a pair at all and a model declared for its seat judged in its place, the pair carries substitutions, naming the seat, the substitute and the reason, in both list_behaviours and retrieve_passages. That seat’s verdicts and depth are then the substitute’s.

A pair with no passages says so rather than disappearing. Absence of coverage is a result of the index, not a hole in it.