Skip to main content

Prerequisites

  • Claude Code, Cursor, or Windsurf installed
  • Node.js 18 or newer
  • A ChatGrid API key with read and write scopes

Step 1: Get a ChatGrid API key

Go to the ChatGrid dashboard, open your profile, and create an API key from the API Keys section. The key starts with cgk_live_ and is shown only once.

Step 2: Add ChatGrid to your IDE

Claude Code, Cursor, and Windsurf all use an mcpServers JSON object, but they do not all use the same config file or the same environment-variable syntax.

Claude Code

Use this when you run ChatGrid from Claude Code in a project.

Option A: Project .mcp.json

Create or edit .mcp.json in your project root. This project-scoped file is the format Claude Code expects:
.mcp.json
Add .mcp.json to .gitignore if it contains the raw API key. For a shared project config, use the environment variable version below.

Shared Claude Code config

Claude Code expands environment variables in .mcp.json, so teams can commit the config without committing the key:
.mcp.json
Then start Claude Code from a shell where the key is set:
If CHATGRID_API_KEY is not set, Claude Code will fail to parse the config.

Option B: Claude Code CLI

You can also let Claude Code write the config:

Verify Claude Code

Close and reopen Claude Code from the project directory. Because .mcp.json is project-scoped, Claude Code may ask you to approve the chatgrid server before it can run. Verify the connection:
Inside Claude Code, run:
The /mcp panel shows server status and tool count. It is a status/auth panel, not a config reload command.

Cursor

Use this when you want ChatGrid tools in Cursor.

Option A: Project .cursor/mcp.json

Create .cursor/mcp.json in your project:
.cursor/mcp.json

Option B: Cursor config without committing secrets

Cursor uses ${env:VAR_NAME} for environment-variable interpolation:
.cursor/mcp.json
Use ~/.cursor/mcp.json instead if you want ChatGrid available across all Cursor projects.

Verify Cursor

Open Cursor MCP settings and confirm chatgrid is enabled. If you use Cursor CLI, run:

Windsurf

Use this when you want ChatGrid tools inside Cascade.

Option A: Windsurf settings

Open Windsurf SettingsCascadeMCP Servers and add a custom server. If you prefer raw JSON, edit:
Add this config:
mcp_config.json

Option B: Windsurf config without committing secrets

Windsurf uses ${env:VAR_NAME} for environment-variable interpolation:
mcp_config.json
You can also read the key from a local file:
mcp_config.json

Verify Windsurf

Open the MCPs menu in Cascade or Windsurf SettingsCascadeMCP Servers. Confirm chatgrid is listed, then enable the tools you want Cascade to use.
Windsurf has a 100-tool limit across enabled MCP servers. ChatGrid exposes 8 tools.

Step 3: Try it

Talk to your IDE naturally. It can use ChatGrid tools when a prompt needs board context or board changes.

Create a board

Add a YouTube video

The video appears on the canvas as a source node. To make transcript content searchable, add the transcript text as a text resource or send it to /documents/vectorize.

Add a website

The page appears on the canvas as a website source node. To make page content searchable, add extracted page text as a text resource or send it to /documents/vectorize.

Upload a PDF

The file is uploaded to storage and a PDF node appears on the canvas. Uploads are limited to 50 MB. To make file text searchable, extract the text and send it to /documents/vectorize.

Upload an image

The image is uploaded to storage and displayed on the canvas. Image contents are not searchable unless you add a text description or extracted OCR text.

Add a text note

Notes appear as sticky notes on the canvas and are vectorized for search.

Search your knowledge

Search returns vectorized notes and text resources. URL, YouTube, PDF, image, and document nodes are visible on the board but are not searchable until their extracted text is vectorized.

Ask questions

The MCP tool searches the board first. When matching board content exists, the answer is grounded in those sources; when nothing matches, the response will say that no board content matched.

All MCP tools

Supported content types

Supported upload extensions include pdf, png, jpg, jpeg, gif, webp, svg, doc, docx, txt, md, and csv. Other extensions upload as generic document nodes.

Troubleshooting

Run claude mcp list from the project directory and confirm chatgrid appears. If you use .mcp.json, restart Claude Code and approve the project-scoped server when prompted.
Open Windsurf SettingsCascadeMCP Servers and confirm the server exists in ~/.codeium/windsurf/mcp_config.json. If it appears but tools are disabled, enable the ChatGrid tools from the MCPs menu in Cascade.
Confirm the server exists in .cursor/mcp.json for the current project or ~/.cursor/mcp.json globally. In Cursor CLI, run cursor-agent mcp list to confirm Cursor sees the server.
For Claude Code, ${CHATGRID_API_KEY} requires the environment variable to be set before launching claude. Cursor and Windsurf use ${env:CHATGRID_API_KEY}. If a GUI app cannot see that variable, paste the key directly; Windsurf can also use ${file:~/.secrets/chatgrid_api_key}.
Install Node.js 18 or newer, then run node --version and npx --version. The server is launched with npx -y chatgrid-mcp.
Search only covers vectorized text. Add notes, add text resources, or vectorize extracted transcript/page/PDF text before expecting results from source nodes or uploads.
Use an absolute file path that your IDE can read. Files must be under 50 MB. Permission errors and missing files are reported by the MCP tool.
401 means the key is missing, invalid, revoked, or expired. 403 means the key does not have the required scope. 429 means the key hit its rate limit.

Tips

Keep boards focused. A “Payments” board, a “Frontend” board, an “Infrastructure” board. Don’t dump everything in one board.
Found a useful Stack Overflow answer? Add it as a note or text resource. Read a useful blog post or watched a tutorial? Add the source node, then vectorize the extracted text you want AI to search.
The MCP server can read files from your local disk. Give it an absolute path such as “Upload /path/to/file.pdf to the board”. No hosting step is required.
Prefer individual API keys for each developer, or a managed team key that can be rotated. The board itself is shared, so one developer’s source nodes and vectorized notes help everyone with access.