innernet
One memory for every AI tool, kept current by netti: projects, personal memory and tasks over MCP. Remote server, OAuth 2.1, free to start.
Hosted MCP Server
npx add-mcp 'https://innernet.live/api/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
innernet speaks MCP (Model Context Protocol). Anything MCP-aware can read and write your projects with one config line.
one paste, any ai
The shortest way: paste these three lines into the ai you want to connect (Claude, ChatGPT, Cursor, Claude Code, Codex, anything).
text copy
connect innernet, my memory, to this ai.
read https://innernet.live/connect/ai and follow it: set it up yourself if you can, or walk me through it one step at a time.
the link is https://innernet.live/api/mcp
/connect/ai is written for the ai. A coding agent finds itself there and wires itself in with one command or one config entry; a chat app, which cannot add its own connectors, walks you through its settings one step at a time. Then it calls innernet once to prove it, and your connections page names it the moment it does. The same facts, as a schema: /connect/ai.json.
With the innernet browser extension, Claude and ChatGPT can be set up on their own page: in connections, open one and press set it up for me. A card in the corner points at each step and fills the link in; you press the buttons.
the one command
bash copy
npx innernet
Signs you in once and writes the config for every AI tool it finds on this machine — everything on this page, in one go. The per-client instructions below are for wiring something by hand, on a machine you'd rather not run a command on, or for a client innernet doesn't detect yet. Tools that can only spawn a command (Claude Desktop, Codex, Zed) get innernet mcp, a thin bridge to the same URL.
[!note] Note You only ever paste a URL. Every client below is configured with just the endpoint —
https://innernet.live/api/mcp. On first use the client opens a browser sign-in (OAuth 2.1); you approve at innernet.live and the client holds a scoped token from then on. You never copy a key by hand, and you should never paste an API key into an AI chat — keys are for the CLI and scripts only.
Claude Codeone command Claude Desktopone click in connections CursorSettings → MCP ChatGPTDeep Research connector ZedURL-only config innernet CLIAPI key
Claude Code
One command:
bash copy
claude mcp add --transport http innernet https://innernet.live/api/mcp
The browser sign-in runs on first tool call. From then on, every claude session can load and save your context maps.
Claude Desktop
Open your dashboard's connections panel, press connect on Claude Desktop, sign in, approve. Manual install: add to ~/Library/Application Support/Claude/claude_desktop_config.json:
json copy
{
"mcpServers": {
"innernet": {
"url": "https://innernet.live/api/mcp",
"transport": "http"
}
}
}
Cursor
Settings → MCP → Add Server. Paste the URL, let the OAuth sign-in run. Same flow for Cline, Continue, Zed, and any custom MCP client — URL-only config, no key.
ChatGPT
ChatGPT connects to MCP servers through plugins now. Settings → Security and login → turn on Developer mode. Then open chatgpt.com/plugins, press +, name it innernet, choose Public endpoint, paste the URL, and Create — ChatGPT reads the tools, identifies itself to innernet, and opens the sign-in. Nothing to copy: no key, no client id, no secret. In a chat, @innernet (or + → innernet) and allow access once. Reading never asks; a tool that writes asks the first time. ChatGPT's research mode drives innernet through the search and fetch tools, which run real full-text search over your maps; every other tool is there too.
Developer mode is a paid-plan feature and can be switched off by a workspace. If it is, use ChatGPT's memory export in bring what you already have and connect from another tool for now.
Codex
Two lines:
bash copy
codex mcp add innernet --url https://innernet.live/api/mcp
codex mcp login innernet
The second opens the browser sign-in; Codex keeps the token from then on (Codex identifies itself with a client-ID metadata document and picks a loopback port at sign-in — innernet accepts both). The same block by hand, in ~/.codex/config.toml:
toml copy
[mcp_servers.innernet]
url = "https://innernet.live/api/mcp"
Codex also reads innernet as a plugin — the same server plus two skills, $innernet (load · context · save) and $innernet-handoff (where you left off). The innernet repo is a marketplace: codex plugin marketplace add <path-to-the-repo> then codex plugin add innernet@innernet, and /plugins to see it. Once it is in the plugin directory, install it from there instead.
protocol notes
- Transport: streamable HTTP (single POST endpoint). Protocol revisions
2026-07-28,2025-11-25,2025-06-18,2025-03-26, and2024-11-05are all accepted and negotiated oninitialize(orserver/discover). - Resources: every project map is exposed as
innernet://project/{slug}/map(JSON), and dimensions asinnernet://project/{slug}/dimension/{name}(markdown). - JSON-RPC batches are accepted.
- Rate limit: 240 calls/min per account — far above any real session.
API keys — CLI & scripts only
For non-interactive access (the innernet CLI, cron, CI) mint a key in your dashboard under connections → api and send it as Authorization: Bearer innernet_.... If an AI ever asks you to paste a key into chat to "connect innernet", that's wrong — give it the URL and let OAuth run.
trouble?
bash copy
curl https://innernet.live/api/mcp
You should get JSON with the tool list. HTML back means the URL is wrong; a 401 means the token is missing or expired (re-run the sign-in). Still stuck? The status endpoint and error shapes apply to MCP too.