Reference
Install GNO as a local MCP server for Claude Desktop, Claude Code, Cursor, Codex, Zed, Windsurf, Amp, and more.
MCP lets AI assistants call local tools. GNO’s MCP server gives Claude, Cursor, Codex, and other clients grounded access to your own documents without uploading the corpus to a hosted search service. GNO retrieves; the client model synthesizes.
gno:// URIs for precise follow-up reads.gno mcp install --target claude-desktop
gno mcp install --target claude-code
gno mcp install --target cursor
gno mcp install --target codex
gno mcp install --target zed
gno mcp install --target windsurf
gno mcp install --target opencode
gno mcp install --target amp
gno mcp statusDefault scope is user-level when the client supports it. Use --scope project for project-local configuration in clients such as Claude Code, Cursor, Codex, OpenCode, and LibreChat. Restart the client after install.
gno mcp or gno mcp serve — run the stdio MCP server directly.gno mcp install — write the selected client config.gno mcp uninstall — remove GNO from a client config.gno mcp status — inspect configured targets.--enable-write or GNO_MCP_ENABLE_WRITE=1 — allow mutating tools.gno_query — default for most questions. Hybrid retrieval returns URIs, snippets, scores, and line anchors.gno_search — exact phrases, titles, identifiers, and error strings.gno_vsearch — conceptual matches where wording may differ.gno_get and gno_multi_get — retrieve exact context after search. Prefer bounded line ranges when available.gno_links, gno_backlinks, gno_similar, gno_graph, gno_graph_neighbors, gno_graph_path — navigate relationship context.gno_status, gno_list_tags, gno_collections_list — diagnose what exists before searching.gno_capture, gno_sync, gno_embed, gno_index, gno_add_collection, gno_remove_collection — write-enabled operations.gno_query for broad questions.gno_get around returned line anchors instead of loading whole documents by default.gno_multi_get with a byte cap when several sources are needed.Write tools (capture, sync, embed, index, collection changes) are disabled by default so your AI client cannot accidentally modify the corpus. Enable them explicitly per client:
gno mcp install --target cursor --enable-write
GNO_MCP_ENABLE_WRITE=1 gno mcpCollection creation rejects dangerous roots such as /, ~, system folders, and hidden config directories. Still review client approval prompts before write calls.
gno_capture is registered only when write tools are enabled. It writes structured source: frontmatter, syncs the file for FTS, accepts the same typed presetId values as CLI/REST/SDK capture, and returns the same provenance receipt shape as CLI, REST, and SDK capture, plus legacy MCP fields such as docid, absPath, overwritten, and serverInstanceId.
{
"collection": "notes",
"content": "thought to remember",
"source": {
"kind": "web",
"url": "https://example.com/source",
"title": "Source page"
},
"collisionPolicy": "open_existing",
"presetId": "source-summary",
"tags": ["inbox", "research"]
}Collision checks include indexed documents and disk-only files. Use open_existing to return an existing receipt without rewriting, create_with_suffix to create the next available path, or legacy overwrite: true to replace the target path. Content must be text, and non-overwrite captures fail instead of replacing a late-arriving file. MCP capture does not auto-embed; run gno_embed or gno_index afterward when vector search should include the note.
GNO exposes every document as an MCP resource, so clients can fetch a file by URI without going through a tool call.
gno://documents/<id>
gno://collections/<name>