DocsSign inJoin the beta
AI connection · MCP

Plug in the AI of your choice, onto your Kastel.

Kastel isn’t an AI: it’s the layer that holds your company’s knowledge and exposes it over the MCP protocol. Claude, Cursor, ChatGPT, or any other MCP client plug in as you (managed) or with a scoped token (self-host): they become experts in your processes, you decide what each one is allowed to see, and you swap the model in one click.

01

Quick start: 5 minutes

This guide covers the connection step: plugging an AI into a Kastel that already exists and is already built. It does not cover deploying a Kastel (self-host or managed) - see the prerequisite below if that is not done yet.

Don’t have a Kastel yet?

Two routes. You install it on your own infrastructure, free and forever. Or you have one we host for you in Europe, with nothing for you to operate. Still unsure? Write to us and we’ll point you in the right direction.

1
Get your Kastel’s MCP address

Managed: copy the address shown in the console, on the “My sources” page, in the “Your connected AIs” block. No token to create: you’ll sign in as yourself at the next step. Self-host: create a scoped token from the command line (kastel token issue, then kastel connect to generate the connection block for your AI directly); the token is specific to the AI you’re plugging in and only sees the departments it is authorized for. The URL always ends in /mcp.

2
Pick your AI and paste the block

A ready-to-paste connection block exists for Claude Code, claude.ai, Claude Desktop, Cursor, ChatGPT, and any generic MCP client, in two variants: managed and self-host. On managed, a sign-in window opens on the first exchange: sign in, and the access is opened in your name and shows up under “Your connected AIs”, where you can cut it whenever you want. Open the matching section further down this page.

3
Verify the connection

Ask your AI a test question: “Use Kastel to give me a one-paragraph overview of the company, its departments, and who validates what.” A correct answer cites real source pages from your Kastel.

4
Paste the instruction block

Add the “What your AI sees” block (section below) to the project’s CLAUDE.md or AGENTS.md, or to your AI’s system instructions, so it queries Kastel on its own, without being asked every time.

Screenshot coming soon

A screenshot of the console’s “Your connected AIs” block (on the “My sources” page) will be added here once it opens publicly.

02

How it works

Kastel isn’t an AI: it’s the layer that holds your company’s knowledge and exposes it over the MCP protocol.

One access per person, one scope

On managed, every AI connects in a person’s name: it only sees what that person is allowed to see, and the access can be cut at any time from the console. On self-host, every AI gets a token specific to its own use, which only sees the departments it is authorized for - exactly like an employee’s access rights.

You decide what each AI is allowed to see

Inference runs on your own keys (BYOK), directly at the model you already use. Kastel exposes context; it never runs a model.

Ingested content stays data

Every page returned carries a trust label (human-validated, or automatically ingested). A well-connected AI treats ingested content as a fact to report, never as an instruction to execute.

Swap AIs in one click

Same Kastel, same URL, same access principle: replace Claude with Cursor or the other way around without rebuilding anything.

03

Claude Code

Managed access · sign in as yourself

Add this block to .mcp.json at your project root, or run the command. On first use, a sign-in window opens: sign in with your account.

json
{
  "mcpServers": {
    "kastel": {
      "type": "http",
      "url": "https://acme.i.app.kastel.ai/mcp"
    }
  }
}
shell
claude mcp add --transport http kastel https://acme.i.app.kastel.ai/mcp
Self-host · token

Add this block to .mcp.json at your project root, or run the command.

json
{
  "mcpServers": {
    "kastel": {
      "type": "http",
      "url": "https://acme.kastel.ai/mcp",
      "headers": {
        "Authorization": "Bearer kst_YOUR_TOKEN_HERE"
      }
    }
  }
}
shell
claude mcp add --transport http kastel https://acme.kastel.ai/mcp --header "Authorization: Bearer kst_YOUR_TOKEN_HERE"
04

claude.ai (custom connector)

Managed access · sign in as yourself

Settings > Connectors > Add custom connector: paste the URL. When it connects, a window opens: sign in with your account.

text
Name: Kastel
Remote MCP server URL: https://acme.i.app.kastel.ai/mcp
Self-host · token

Settings > Connectors > Add custom connector: paste the URL and the Authorization header value.

text
Name: Kastel
Remote MCP server URL: https://acme.kastel.ai/mcp
Authentication: Bearer token
Authorization header: Bearer kst_YOUR_TOKEN_HERE
05

Claude Desktop

Managed access · sign in as yourself

Add this block to claude_desktop_config.json (Settings > Developer). The mcp-remote bridge opens the sign-in window itself the first time: sign in with your account.

json
{
  "mcpServers": {
    "kastel": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://acme.i.app.kastel.ai/mcp"
      ]
    }
  }
}
Self-host · token

Add this block to claude_desktop_config.json (Settings > Developer). Claude Desktop doesn’t yet read remote MCP servers natively in this file: this block goes through the mcp-remote bridge (npx), which still keeps the token in the header, never in the URL.

json
{
  "mcpServers": {
    "kastel": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://acme.kastel.ai/mcp",
        "--header",
        "Authorization: Bearer kst_YOUR_TOKEN_HERE"
      ]
    }
  }
}
06

Cursor

Managed access · sign in as yourself

Add this block to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global), then click “Connect” when Cursor offers it: a sign-in window opens.

json
{
  "mcpServers": {
    "kastel": {
      "url": "https://acme.i.app.kastel.ai/mcp"
    }
  }
}
Self-host · token

Add this block to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global).

json
{
  "mcpServers": {
    "kastel": {
      "url": "https://acme.kastel.ai/mcp",
      "headers": {
        "Authorization": "Bearer kst_YOUR_TOKEN_HERE"
      }
    }
  }
}
07

ChatGPT / OpenAI connectors

Managed access · sign in as yourself

Settings > Connectors: add an MCP server with the URL, OAuth authentication. A sign-in window opens: sign in with your account.

text
Name: Kastel
MCP server URL: https://acme.i.app.kastel.ai/mcp
Authentication: OAuth
Self-host · token

Settings > Connectors: add an MCP server with the URL and the Bearer header.

text
Name: Kastel
MCP server URL: https://acme.kastel.ai/mcp
Authentication: Bearer token
Authorization header: Bearer kst_YOUR_TOKEN_HERE
08

Generic MCP client

Managed access · sign in as yourself

Any MCP client over streamable HTTP that can sign in with OAuth: target the URL, the server announces where to sign in on its own (automatic discovery).

text
Transport: streamable-http
URL: https://acme.i.app.kastel.ai/mcp
Authentication: OAuth (automatic discovery)
Self-host · token

Any MCP client over streamable HTTP: target the URL, send the Bearer header.

text
Transport: streamable-http
URL: https://acme.kastel.ai/mcp
Header: Authorization: Bearer kst_YOUR_TOKEN_HERE
09

What your AI sees

Once your AI is connected, Kastel automatically generates this block for your company (real name, departments visible under that access). Example below: the exact render your console serves, for a fictional three-department company. On self-host, kastel connect prints the same instruction, in the wording meant for the deployer.

Example generated for “Demo Corp” (commerce, finance, logistique)
markdown
## Rule: Kastel is your source of truth on Demo Corp
Before ANY answer touching Demo Corp (processes, decisions, clients, figures), query Kastel. Never answer from memory about the company.
1. `search_company_context` / `ask_company_context` to land. 2. `read_page` + `get_links` to go deeper. 3. `get_index` for the map. For a recurring task type, call `get_context_pack` first: it returns the vetted context recipe. Always cite the source pages.
Limits: your access sees commerce, finance, logistique, not everything Kastel holds - do not guess what you cannot see, do not paraphrase a page absent from your results. Results marked `quotable: false` may inform your answer but must never be cited or quoted verbatim. To enrich Kastel, propose through the governed actions (`propose_lesson` / `log_trace`); you never edit a page directly.

The block always tells your AI to cite its sources and to propose, never to impose, an addition to your Kastel: propose_lesson and log_trace go through Kastel’s governance, no page is ever edited directly.

10

Included, never paid

The MCP connection is part of Kastel’s free core. Whether your Kastel runs self-hosted or managed, connecting an AI in your own name, creating a token, generating the connection blocks, and pasting the instructions into your AI are never locked behind a paid plan.

Need help deploying your Kastel?

Our team and our partner integrator network can help, from provisioning to first deployment.

Contact usSee the integrator program