> ## Documentation Index
> Fetch the complete documentation index at: https://docs.get-exo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrations

> Connect a coding agent or a chat client to your Exo knowledge graph, or bring data in from files, coding sessions and GitHub.

Exo speaks [MCP](https://modelcontextprotocol.io) over Streamable HTTP at `https://api.get-exo.com/mcp/`. Every client on this page talks to that one endpoint. What changes between them is how they authenticate and how much of the toolset they are allowed to see.

## Pick your client

Two things decide your path: whether your client accepts a pasted API key, and whether it speaks OAuth.

| Client                     | Auth                | Toolset            | Guide                                    |
| -------------------------- | ------------------- | ------------------ | ---------------------------------------- |
| Claude Code                | Static `exo_` key   | Full               | [Claude Code](/integrations/claude-code) |
| Claude app, Claude Desktop | OAuth 2.1 with PKCE | Full               | [Claude app](/integrations/claude-app)   |
| Codex CLI, Codex IDE       | Static `exo_` key   | Full               | [Codex](/integrations/codex)             |
| ChatGPT                    | OAuth 2.1 only      | Depends on surface | [ChatGPT](/integrations/chatgpt)         |

<Note>
  Static keys work in Claude Code and Codex. They do not work in ChatGPT, which accepts OAuth or no auth for connectors and nothing else. The claude.ai app also uses OAuth rather than a pasted key.
</Note>

## Two ways in

Connecting a client gives an agent read and write access to your graph while you work. That is the live path. It is not how the graph gets its history.

<Columns cols={2}>
  <Card title="Connect a client" icon="plug" href="/integrations/claude-code">
    Your agent reads your context during a session and writes back what it learns.
  </Card>

  <Card title="Bring data in" icon="upload" href="/integrations/imports">
    Load exports, documents, past coding sessions and repositories so there is something to read.
  </Card>
</Columns>

A brand new organization returns empty collections from every recall surface until content lands and the background cognition cycle runs. If you connect a client first and it finds nothing, that is the reason. See [How a memory is made](/concepts/memory-lifecycle).

## Bringing data in

<Columns cols={3}>
  <Card title="Files and transcripts" icon="file-text" href="/integrations/imports">
    ChatGPT and Claude exports, PDF, DOCX, Markdown, meeting transcripts.
  </Card>

  <Card title="Coding sessions" icon="terminal" href="/integrations/sessions">
    Backfill local Claude Code and Codex transcripts, then tail new ones.
  </Card>

  <Card title="GitHub" icon="github" href="/integrations/github">
    Install the app, sync repositories, keep them current.
  </Card>
</Columns>

## Reference

<Columns cols={2}>
  <Card title="MCP tool reference" icon="wrench" href="/integrations/mcp-tools">
    What each tool does and the REST route behind it.
  </Card>

  <Card title="Read these docs from an agent" icon="book-open" href="/integrations/docs-mcp">
    Add this site as an MCP server so your agent can look things up itself.
  </Card>
</Columns>
