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. Six tools, read only, no account and no key.

TL;DR

Paste this into your AI agent, and it installs the index and checks that it works.

Install the AI Constitutions Index as an MCP server. It is a remote server over
streamable HTTP at /api/mcp, read only, with no key and no sign in.
Add it to your MCP configuration under the name ai-constitutions-index, then call
its about tool to check that it answers, and tell me which publication it serves.
If you cannot add it yourself, give me the exact steps for this app.

Check that it works. Your agent may not be able to add the index by itself. It will then give you the exact steps for your agent or your app. Once they are done, the index is there in every new session or chat.

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 publication the site is serving, 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-constitutions-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-constitutions-index --url /api/mcp

codex mcp list shows what is configured.

Gemini CLI

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

A client that takes a configuration file

{
  "mcpServers": {
    "ai-constitutions-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 assistant will name the behaviours it used, from those the current publication carries, and quote from the documents it read.

Tools

Six, and all of them read. Five words recur below. A constitution is a document an AI company publishes saying how its models should behave. A behaviour is one thing a constitution 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 analysed document for every behaviour and marked the passages. A depth is the score those judges give a constitution for a behaviour, from 0, where it says nothing about it, to the top of the scale, where it sets rules and shows them applied. It says how much the document gives an evaluation to work with, and nothing about how much the company behind it cares. Every depth comes back with the scale it was given on.

about. What the index is, what it does not report, and what the other five 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 constitution 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 constitution text, which runs to hundreds of kilobytes; the source URL is in the answer. Each constitution 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. The tool keeps its old name so that clients already connected go on working.

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 constitution, 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 constitution 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 constitution by default. Where a behaviour and constitution pair carries a depth, it comes back as the mean the index’s panel gave it, with the scale that mean is on. 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 doc 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 constitution 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 depth a declared substitute gave on its own, because the seat’s model replied off the scale, is marked on that judge’s entry of the depth, with the model and the reason.

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

index. The index as the front page shows it: ten companies, each graded with a letter from A to G on figures out of 10. Content is about the document, the clarity of the constitution and how far it goes on each behaviour. Process is about the company, what it publishes about its constitution and what it states about holding its models to it; those figures were given by hand from public documents rather than judged by the panel. Adherence, how far a company’s model follows its own constitution, is included only where the publication carries it. The overall grade averages the two final scores, with adherence weighted by how robust its evaluations are where it is present. Without an argument the answer is the grid for every company, with the methodology, the takeaways and a short written summary of each company. One argument, company, optional: with it, the answer adds every figure behind that company’s scores, each with the wording it was scored against, the passages quoted and the sources cited. The board is the one the publication froze.

compare_documents. Everything one run found between two constitutions on one behaviour: the passages each of them carries, every pair of passages the judges linked with what each judge said, the verdict where two judges disagreed and an arbiter settled it, the passages one document has nothing facing, and a paragraph written from all of it. It takes one behaviour and exactly two model_spec_ids. The answer is long, hundreds of thousands of characters where both documents cover the behaviour fully, so pass detail as counts first: that answers with the size of the full answer and the tally of what is in it.