Docs
Pointing an agent here
/skill.md is a public Anthropic-format skill that teaches any agent how to connect and read a brain. Copy + paste into your favourite agent:
https://curtex.ai/skill.md Adding Curtex as an MCP server
For AI clients - Claude, ChatGPT, Cursor, Codex and the rest. The address is the whole setup: the client discovers the rest for itself, sends you here to sign in, and then reads exactly what you can read, as you.
https://curtex.ai/mcp The /mcp matters. A client pointed at https://curtex.ai on its own will sign you in and then fail every
call, because there is nothing at the root to answer it.
Claude
- Settings → Connectors → Add Connector
- Set the URL to
https://curtex.ai/mcp - Add, then allow the brain on the Curtex consent screen
On Team and Enterprise plans an Owner has to add it first, under Organization settings → Connectors.
ChatGPT
- In the desktop app: Settings → Plugins → Developer mode, on
- Still in Settings → Plugins: Add → Create plugin, then set the URL to
https://curtex.ai/mcp
Desktop app only - not the web, and not the Plugins page in the main window. Needs a paid plan, and on Business or Enterprise an admin has to allow custom connectors first, under Workspace settings → Permissions & roles.
Cursor
- Settings → Customise → MCP → Add
- Set the URL to
https://curtex.ai/mcp
Codex
- codex mcp add curtex --url
https://curtex.ai/mcp - codex mcp login curtex
The second command opens the sign-in in your browser.
Claude Code
- claude mcp add --transport http curtex
https://curtex.ai/mcp
Then /mcp in a session to sign in.
REST API
- Base URL
- https://curtex.ai/v1
- Auth
Authorization: Bearer ctx_…- one key per account, created by an owner or admin in Account settings → Integrations. Shown once. The key reads as whoever minted it, and stops working if they leave the account.- Switches
- The account must allow incoming connections and API connections; any workspace can still keep its own brain out. Closed doors answer 403, not silence.
- Workspaces
- Stateless: pass
workspaceper call. There is nothing to switch and no session to hold it.
Endpoints
- GET
/v1= MCP initializeThis list, as JSON.
Discovery. Costs nothing and needs only a valid key.
- GET
/v1/workspaces= MCP list_brainsEvery workspace this key can read, with a document count each.
Start here. A workspace missing from this list is either not billed by your account, not visible to the person who minted the key, or has switched off outside access in its own settings.
- GET
/v1/documents= MCP list_documentsOne workspace’s brain: path, title and one-line summary per document.
Bodies are not included. Read the few documents that bear on the task.
workspace(when the key reaches more than one) - A name from /v1/workspaces. Omit it only when there is exactly one - with several you get a 400 naming them, because silently picking one is how a job reads the wrong team’s brain. - GET
/v1/documents/{path}= MCP read_documentOne document’s full markdown.
Returns raw text/markdown, not JSON - the body IS the payload. Readable is the key’s whole reach, not just the workspace you last listed, so a path from any listing opens. Anything outside that reach is a 404: this door does not confirm what it is not serving.
path(yes) - A path from the listing, e.g. acme/brain/pricing.md.
Example
export CURTEX_KEY=ctx_…
# what can this key see?
curl -H "Authorization: Bearer $CURTEX_KEY" https://curtex.ai/v1/workspaces
# the acme brain's manifest
curl -H "Authorization: Bearer $CURTEX_KEY" \
"https://curtex.ai/v1/documents?workspace=acme"
# one document, as markdown
curl -H "Authorization: Bearer $CURTEX_KEY" \
https://curtex.ai/v1/documents/acme/brain/pricing.md Errors
- 401 - no key, or a dead one.
- 403 - the account has API connections switched off.
- 404 - no such workspace or document, or it is outside this key's reach. The two are not distinguished on purpose.
- 400 - a listing needs
workspaceand did not get one.