Project Knowledge Base (per-project documents)v1.23.1#
Store, version, and query your own documents inside a project. Items are isolated per project: composite key (item_id, project_id). Ingest via text, URL fetch, or file upload (PDF, TXT, MD, 5 MB max). Query with natural language via gc_kb_query or pull structured diffs with gc_kb_diff.
Item visibility & per-key access control
Items with visibility='private' are readable only by the gc_ key that created them — other keys in the same project cannot read, edit, or delete them. This enforces cross-key isolation within a project without creating separate projects.
A project-bound key can also be scoped to a kb_item_allowlist (configured in the dashboard under Keys). When set, the key can only query, get, edit, or delete the specific item IDs on that list — all other items in the project are invisible to it. This is the recommended pattern for multi-agent setups where each agent should only see its own slice of the knowledge base.
MCP tools
gc_kb_ingest(item_id, content, mode) // mode: "text" | "url" | "file"
gc_kb_query(query, project_id?) // semantic search across items
gc_kb_list(project_id?) // list all items in a project
gc_kb_get(item_id, project_id?) // fetch one item
gc_kb_edit(item_id, content, project_id?)
gc_kb_diff(item_id, project_id?) // structured diff against previous version
gc_kb_delete(item_id, project_id?)gc_kb_query response shape
Each result in the results array contains:
raw_text— the actual content of the matched chunk. Read this field.text— a compressed skeleton with[HIDDEN]and anchor markers, for navigation only. Do not treat this as the source text.item_id— the KB item the chunk belongs to (use withgc_kb_getto fetch the full item).score— cosine similarity score (higher = more relevant).
File upload
From the dashboard at /dashboard/knowledge: drag-drop or click to select a file (PDF, TXT, MD, max 5 MB). Upload progress is tracked in-page; ingestion status polls every 2 seconds with a 5-minute timeout. Files larger than 5 MB must be split before upload. Supported ingest modes: text (paste), url (fetch by URL), and file (binary upload).