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
| Parameter | Type | Required | Description |
|---|---|---|---|
kb_id | string | ✓ | |
query | string | ✓ | The search query. |
top_k | integer | ||
similarity_threshold | number |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
kb_id | string | ✓ | |
document_id | string | ✓ |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
kb_id | string | ✓ |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | ✓ | |
description | string | ||
settings | object | Optional 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
| Parameter | Type | Required | Description |
|---|---|---|---|
kb_id | string | ✓ | |
document_id | string | ✓ | |
content | string | ||
title | string | ||
metadata | object |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
kb_id | string | ✓ | |
name | string | ||
description | string |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
kb_id | string | ✓ | |
settings | object | ✓ | Settings 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
| Parameter | Type | Required | Description |
|---|---|---|---|
kb_id | string | ✓ | |
document_id | string | ✓ | |
hard | boolean | Permanently 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
| Parameter | Type | Required | Description |
|---|---|---|---|
kb_id | string | ✓ |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
kb_id | string | ✓ | |
search | string | ||
limit | integer | ||
offset | integer |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
include_entity_kbs | boolean | Include auto-synced CRM entity KBs (Contacts/Deals/…). | |
include_system | boolean | Also list read-only system/shared KBs. | |
include_inactive | boolean |
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
| Parameter | Type | Required | Description |
|---|---|---|---|
kb_id | string | ✓ | |
content | string | Raw text/markdown content (omit if using file_base64). | |
file_base64 | string | Base64-encoded file bytes (alternative to content). | |
filename | string | Original filename incl. extension, e.g. report.pdf (required with file_base64). | |
title | string | ||
metadata | object | Optional 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
| Parameter | Type | Required | Description |
|---|---|---|---|
kb_id | string | ✓ | |
question | string | ✓ | |
model | string | Optional LLM model override. | |
top_k | integer |
Example
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ask_knowledge_base",
"arguments": {
"kb_id": "\u2026",
"question": "acme"
}
}
}