MCP
Connect an agent over MCP.
CreatorNotes speaks MCP two ways. A remote endpoint at https://creatornotes.app/api/mcp is what Claude Desktop, claude.ai, Cowork, Claude Code and ChatGPT connect to, secured with OAuth and with nothing to install. A local server runs on your machine and is what Codex and Cursor launch, and what you pick when you want the skills, file uploads and scripted workflows. Same tools, different transport.
Remote · OAuth · zero install
Claude Desktop, claude.ai and Cowork
No terminal needed. In Claude, open Settings, then Connectors, then Add custom connector. Name it cnotes, paste this URL, and click Connect. Claude sends you to creatornotes.app to sign in and pick one workspace; that choice holds for every call after.
The connection lives in your Claude account rather than on a machine, so it follows you to every surface that runs Claude. That matters for Cowork: its shell is a sandbox that forgets anything installed into it, so a CLI install there is lost when the session ends, while a connector is not. Custom connectors are a feature of Claude's paid plans.
You get reading, searching and writing of notes and canvases. For the skills, file uploads and scripted workflows, install the CLI on a machine you keep.
Remote · OAuth
Claude Code
Nothing to install. One command registers the remote server; the first tool call opens your browser to sign in and pick a workspace.
The full CLI adds what MCP alone does not carry: the skills, file uploads and scripted workflows. Install it when you want those.
Local · stdio
Claude Desktop, local server
The alternative to the connector above, for a Desktop that should run the full local server. cnotes init offers to write this config for you. To do it by hand, print it with the workspace and token already filled in:
Paste the output into the Claude Desktop config file, then restart Claude Desktop.
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%\Claude\claude_desktop_config.json
- Linux: ~/.config/Claude/claude_desktop_config.json
The shape of it, for an npm install:
{
"mcpServers": {
"cnotes": {
"command": "node",
"args": ["<path to @creator-notes/cnotes>/dist/mcp-server.js"],
"env": {
"CNOTES_SERVER": "https://creatornotes.app",
"CNOTES_TOKEN": "<your token>",
"CNOTES_WORKSPACE": "<your workspace id>"
}
}
}
}With the standalone binary there is no Node to spawn, so command is the path to cnotes itself and args is ["mcp", "serve"]. The setup command prints whichever applies.
Local · stdio
Codex
Add the printed block to ~/.codex/config.toml and start a new Codex session:
[mcp_servers.cnotes]
command = "node"
args = ["<path to @creator-notes/cnotes>/dist/mcp-server.js"]
[mcp_servers.cnotes.env]
CNOTES_SERVER = "https://creatornotes.app"
CNOTES_TOKEN = "<your token>"
CNOTES_WORKSPACE = "<your workspace id>"Local · stdio
Cursor
Cursor reads the same JSON shape as Claude Desktop. Print it and put it in ~/.cursor/mcp.json for every project, or .cursor/mcp.json inside one project:
The bundled skills install into Cursor too: cnotes skills install <name> --agent cursor. See the skills page.
Remote · OAuth
ChatGPT
ChatGPT on the web connects to the remote endpoint as a custom connector. In Settings, turn on developer mode, add a connector with this server URL and authentication set to OAuth, and approve one workspace on the consent screen.
The illustrated walkthrough, including what to do when ChatGPT stops seeing new tools, lives with the product:
Connect ChatGPT, step by stepNo browser
Headless and CI
Any agent that can run a shell command can drive the CLI directly, with no MCP server in between. Three environment variables replace the interactive sign-in:
- CNOTES_SERVER
- The API origin. Defaults to https://creatornotes.app, which is also the only value the CLI treats as official.
- CNOTES_TOKEN
- The API key the CLI stored at sign-in, from ~/.cnotes/config.json on a machine that has run init.
- CNOTES_WORKSPACE
- The workspace id, from cnotes workspace list.
cnotes schema --json describes the workspace types, the exit codes and these variables in one document, built for agents to read before their first call.