Skip to main content

Knowledge Base tools

Manage knowledge bases + documents, and search / ask (RAG) over them.

13 tools. Each is callable over MCP with a Bearer agx_ key that holds the required scope. The catalog is public (tools/list isn't scope-filtered); the scope below is enforced when the tool is called (tools/call) — a key without it is refused (default-deny).

search_knowledge_base

Semantic/hybrid search over a KB's documents. Returns the most relevant chunks with similarity scores (re-rank/MMR/hybrid applied from the KB's settings). Use this to look something up in a knowledge base. Requires knowledge:read.

Required scope: knowledge:read

Input

ParameterTypeRequiredDescription
kb_idstring
querystringThe search query.
top_kinteger
similarity_thresholdnumber

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_knowledge_base",
"arguments": {
"kb_id": "\u2026",
"query": "acme"
}
}
}

get_kb_document

Get one document with its full content. Requires knowledge:read.

Required scope: knowledge:read

Input

ParameterTypeRequiredDescription
kb_idstring
document_idstring

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_kb_document",
"arguments": {
"kb_id": "\u2026",
"document_id": "\u2026"
}
}
}

get_knowledge_base

Get one knowledge base's stats + RAG settings by id. Requires knowledge:read.

Required scope: knowledge:read

Input

ParameterTypeRequiredDescription
kb_idstring

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_knowledge_base",
"arguments": {
"kb_id": "\u2026"
}
}
}

create_knowledge_base

Create a knowledge base. Optional settings (RAG config: chunking_strategy, search_defaults, document_summaries, …). Returns the new KB. Requires knowledge:write.

Required scope: knowledge:write

Input

ParameterTypeRequiredDescription
namestring
descriptionstring
settingsobjectOptional RAG settings (see the KB settings schema).

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_knowledge_base",
"arguments": {
"name": "\u2026"
}
}
}

update_kb_document

Update a document. Changing content re-chunks + re-embeds it. metadata is merged. Requires knowledge:write.

Required scope: knowledge:write

Input

ParameterTypeRequiredDescription
kb_idstring
document_idstring
contentstring
titlestring
metadataobject

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_kb_document",
"arguments": {
"kb_id": "\u2026",
"document_id": "\u2026"
}
}
}

update_knowledge_base

Update a knowledge base's name and/or description. Requires knowledge:write.

Required scope: knowledge:write

Input

ParameterTypeRequiredDescription
kb_idstring
namestring
descriptionstring

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_knowledge_base",
"arguments": {
"kb_id": "\u2026"
}
}
}

update_knowledge_base_settings

Merge RAG settings into a knowledge base (deep-merge; only keys you pass change). e.g. enable parent_child chunking, query expansion, document summaries. Requires knowledge:write.

Required scope: knowledge:write

Input

ParameterTypeRequiredDescription
kb_idstring
settingsobjectSettings to merge (chunking_strategy, search_defaults, …).

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_knowledge_base_settings",
"arguments": {
"kb_id": "\u2026",
"settings": {}
}
}
}

delete_kb_document

Delete a document (soft-delete by default; pass hard=true to purge it + its chunks). Requires knowledge:write.

Required scope: knowledge:write

Input

ParameterTypeRequiredDescription
kb_idstring
document_idstring
hardbooleanPermanently purge instead of soft-delete.

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_kb_document",
"arguments": {
"kb_id": "\u2026",
"document_id": "\u2026"
}
}
}

delete_knowledge_base

Delete a knowledge base and all its documents/chunks. Requires knowledge:write.

Required scope: knowledge:write

Input

ParameterTypeRequiredDescription
kb_idstring

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_knowledge_base",
"arguments": {
"kb_id": "\u2026"
}
}
}

list_kb_documents

List documents in a knowledge base (paginated). Optional search filters by title/content. Requires knowledge:read.

Required scope: knowledge:read

Input

ParameterTypeRequiredDescription
kb_idstring
searchstring
limitinteger
offsetinteger

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_kb_documents",
"arguments": {
"kb_id": "\u2026"
}
}
}

list_knowledge_bases

List the org's knowledge bases (id, name, document_count, settings). Auto-synced CRM entity KBs are hidden unless include_entity_kbs=true; pass include_system=true to also see read-only shared KBs. Requires knowledge:read.

Required scope: knowledge:read

Input

ParameterTypeRequiredDescription
include_entity_kbsbooleanInclude auto-synced CRM entity KBs (Contacts/Deals/…).
include_systembooleanAlso list read-only system/shared KBs.
include_inactiveboolean

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_knowledge_bases",
"arguments": {}
}
}

add_kb_document

Add a document to a KB. It is chunked + embedded on the spot and is searchable on return. Provide EITHER content (raw text/markdown) OR file_base64 + filename (a base64-encoded file — pdf/docx/pptx/xlsx/csv/json/txt, extracted server-side; extension required). Optional title/metadata. Requires knowledge:write.

Required scope: knowledge:write

Input

ParameterTypeRequiredDescription
kb_idstring
contentstringRaw text/markdown content (omit if using file_base64).
file_base64stringBase64-encoded file bytes (alternative to content).
filenamestringOriginal filename incl. extension, e.g. report.pdf (required with file_base64).
titlestring
metadataobjectOptional metadata (source, tags, …).

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "add_kb_document",
"arguments": {
"kb_id": "\u2026"
}
}
}

ask_knowledge_base

Ask a question against a KB (RAG): searches, then an LLM answers from the retrieved context. Returns {answer, sources}. Incurs LLM credits. Requires knowledge:read.

Required scope: knowledge:read

Input

ParameterTypeRequiredDescription
kb_idstring
questionstring
modelstringOptional LLM model override.
top_kinteger

Example

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ask_knowledge_base",
"arguments": {
"kb_id": "\u2026",
"question": "acme"
}
}
}