00Home01Console04Graph07Install08Agents10Buy99Privacy
For agents · MCP · REST · prompt

Your agents get the same access you do.

Every GNKG install ships a local bridge that speaks three dialects. Whatever your agent is — Claude Code, Claude Desktop, Cursor, Windsurf, Codex, a claude.ai or ChatGPT connector, an OpenAI-style function-calling loop, LangChain, n8n, OmniLad — it can read, extend and query your notebooks as knowledge graphs. The extension keeps the session; the bridge only ever runs on your machine.

MCP · stdio

Desktop agent hosts

npx -y @metaphyllc/gnkg-bridge — ready configs for Claude Desktop, Claude Code, Cursor, Windsurf and Codex are in the harness.

MCP · HTTP

Cloud connectors & remote agents

http://127.0.0.1:7802/mcp (Streamable HTTP, JSON-RPC). Tunnel it with a token for claude.ai / ChatGPT connectors or agents on other machines.

REST · OpenAPI

Any tool-calling model

/openapi.json turns all 23 tools into function specs; /llms.txt tells the model how to use them. Python and JS clients included.

The ask lane · gn_ask

A long answer is a job, not a held breath.

Long grounded answers take minutes, and Chrome can recycle an extension worker whenever it likes. gn_ask queues the question and returns a jobId at once; your agent polls gn_job until the job is done, failed or lost.

Jobs

No duplicates

A job is keyed on caller, notebook, question and sources. Asking again while it is queued or running returns the same job. One ask runs per notebook at a time; different notebooks run together.

Restarts

Recovered, or asked once more

If the worker restarts mid-answer, the lane reads the answer back from the notebook’s stored turns, or re-asks once. result.source says which: stream, recovery-stable, recovery-deadline or reask.

Failures

Empty is never done

A blank answer is E_EMPTY_ANSWER, not success. Each recovery phase has an 8-minute window, and a re-ask starts a new one.

Fine print: a re-asked answer is a second answer to the same question from the same sources, not a replay of the first attempt, and a recovery-deadline answer can be incomplete. The RPC ids GNKG relies on are undocumented and can change; a read-only drift canary checks three core calls, and gn_dom_read is the page-reading fallback.

Access

Installers and harness ship with a GNKG seat.

The one-line installers, Copy commands, harness zip, agent card, Claude skill, OpenAPI dump and llms.txt download are not on this public page. They come with access.

The tool surface

Twenty-two tools, one dispatcher.

ToolWhat it does
gn_healthExtension/auth/transport health. Call first.
gn_list_notebooksList Gemini Notebook notebooks (most-recently-viewed first) with ids and source counts.
gn_create_notebookCreate a notebook (a new mini knowledge graph).
gn_delete_notebookDelete a notebook permanently (irreversible). Only for notebooks the user asked to delete.
gn_get_notebookGet a notebook with its sources (id, title, kind, wordCount, status).
gn_add_text_sourceAdd a text source (≤500k words). Use for bins, notes, transcripts.
gn_add_url_sourceAdd a web page or YouTube URL as a source.
gn_delete_sourceDelete a source.
gn_refresh_sourceRe-sync a web/Drive source (the legacy B.I.F.R.O.S.T. feed trigger).
gn_get_sourceRead a source's indexed full text. Returns text, summary of that text, and the Google guide. When ocr and describe are omitted on a thin visual source (image, pdf, or gdoc, under 40 indexed words), OCR runs, and image description runs if the text is still under 20 words. That description asks the notebook and adds a chat turn. ocr=false skips OCR and the default description. describe=false skips the chat turn. describe=true asks the notebook and adds a chat turn when the extracted text is still under 20 words. An image or PDF with an empty index can return empty text or a Drive viewer payload, so check wordCount and extractKind.
gn_askQueue a grounded ask. Returns jobId and conversationId immediately. Poll gn_job. The same caller, notebook, question, and source set reuses the job only while it is queued or running. caller defaults to legacy when omitted.
gn_list_artifactsList Studio artifacts (audio/video/report/slides/infographic/data table/mind map/quiz/flashcards) with status + media URLs.
gn_create_artifactGenerate a Studio artifact remotely. kind: audio|video|report|slide_deck|infographic|data_table|mind_map|flashcards|quiz. wait=true polls until done (up to 15 min).
gn_wait_artifactPoll an artifact until completed/failed.
gn_download_artifactDownload a completed artifact's media via Chrome downloads (TIWY handoff if enabled).
gn_download_sourceDownload a source's original PDF/PNG via Chrome downloads (Drive viewer URL from GET_SOURCE).
gn_graphKnowledge-graph view of a notebook (gnkg-graph-v1 JSON + Mermaid).
bifrost_plan_binsPlan B.I.F.R.O.S.T. bins locally: weighted FFD packing at 450k words, pre-chunk >400k, Bin 0 master index preview. files=[{name,text}].
bifrost_push_binsPack files and push Bin 0 + bins into a notebook as text sources (waits for each to index). Returns jobId; poll with gn_job.
gn_jobGet a background job (ask or pushBins) with progress/steps/result.
gn_eventsRecent extension events (jobs, logs, downloads).
gn_dom_readFallback: read the open Gemini Notebook tab's DOM (sources, artifacts, chat) when RPC drifts.
gn_open_notebookOpen a notebook in a new Chrome tab.
Security

Local by default

The bridge binds to 127.0.0.1. Set GNKG_TOKEN to require a bearer token; --lan refuses to start without one. Nothing of Google's is ever shared; revoke by stopping the bridge.

Cloud agents

Tunnel with a token

Cloudflare Tunnel, ngrok or Tailscale expose only the bridge. Point the connector at https://<tunnel>/mcp with Authorization: Bearer. Guide in the harness.

Multiple people

One bridge per person

GNKG never centralises notebooks. Each person runs their own extension and bridge; their agents connect to theirs. A team shares notebooks the normal way, inside Gemini Notebook.

“The bridge was never the server. The bridge was the session.”

B.I.F.R.O.S.T. v2 · GNKG · Metaphy LLC