astra-knowledge-base-mcp
Provides a persistent, searchable knowledge base using PostgreSQL with tsvector full-text search and optional pgvector for embeddings.
Provides a persistent, searchable knowledge base using SQLite with FTS5 for full-text search and automatic content chunking.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@astra-knowledge-base-mcpsearch my knowledge bases for 'API authentication'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
astra-knowledge-base-mcp
MCP (Model Context Protocol) server for managing and searching multi-tenant knowledge bases.
Part of Astra AI Agent Infrastructure
Overview
Astra Knowledge Base MCP provides AI agents with persistent, searchable knowledge bases backed by PostgreSQL 16+ with pgvector — hybrid full-text and vector search, plus SAG (SQL-Retrieval Augmented Generation) for relational reasoning across chunks.
Each knowledge base is an isolated namespace. Content is auto-chunked on ingestion (recursive, heading-anchor, or semantic splitting), embedded via any OpenAI-compatible endpoint, and indexed for three complimentary retrieval paths.
Related MCP server: server-memory
Prerequisites
Python 3.11+
uv — Python package manager (
pip install uv)PostgreSQL 16+ with pgvector — installation guide: pgvector.org
Setup
1. Configure PostgreSQL
Create the database and enable pgvector:
CREATE DATABASE astra_kb;
\c astra_kb
CREATE EXTENSION IF NOT EXISTS vector;2. Install dependencies
uv sync3. Configure environment
# Embedding endpoint (any OpenAI-compatible API)
export ASTRA_EMBED_BASE_URL=https://api.siliconflow.cn/v1
export ASTRA_EMBED_API_KEY=sk-...
export ASTRA_EMBED_MODEL=Qwen/Qwen3-VL-Embedding-8B
export ASTRA_EMBED_DIM=1024
# Optional: LLM endpoint for SAG extraction
export ASTRA_LLM_BASE_URL=https://api.siliconflow.cn/v1
export ASTRA_LLM_API_KEY=sk-...
export ASTRA_LLM_MODEL=THUDM/GLM-Z1-9B-0414
# PostgreSQL connection
export ASTRA_KB_PG_DSN=dbname=astra_kb user=postgres host=/run/postgresql4. Start
uv run server.pyConfiguration
Variable | Default | Description |
|
| Backend — PostgreSQL only |
|
| PostgreSQL connection string |
| — (required) | OpenAI-compatible embedding endpoint |
| — | Embedding API key (optional for local models) |
|
| Embedding model (supports VL for text+image) |
|
| Embedding vector dimension |
| — (required for SAG) | LLM endpoint for event/entity extraction |
| — | LLM API key |
|
| LLM model for extraction |
No hardcoded provider defaults.
ASTRA_EMBED_BASE_URLandASTRA_LLM_BASE_URLmust be set explicitly. The oldSILICONFLOW_API_KEYfallback has been removed — useASTRA_EMBED_API_KEYorASTRA_LLM_API_KEYinstead.
Usage
MCP Tools
Tool | Description |
| List all knowledge bases with enable/disable status |
| Create a new empty knowledge base |
| Permanently delete a knowledge base and all its content |
| Toggle KB visibility in search |
| Add text content (auto-chunked + embedded) |
| Update a chunk (replace or append mode) |
| Delete a single chunk by ID |
| List chunks in a knowledge base (paginated) |
| Search across KBs — modes: |
| Extract events and entities from unprocessed chunks (SAG indexing) |
| Import a file (PDF, DOCX, PPTX, TXT, MD) via MarkItDown |
| Import chunks from a JSONL file |
| Export all chunks to JSONL |
| Knowledge base statistics and overview |
| Track chunk changes over time |
| List mgmt schema tables (services, health_log, api_keys) |
| Query operational data from mgmt tables |
Registering in Hermes Agent
Add to your Hermes config.yaml:
mcp_servers:
astra-knowledge-base:
command: /path/to/astra-knowledge-base-mcp/scripts/run.sh
enabled: trueThen restart Hermes Agent. The tools become available automatically.
Architecture
AI Agent (Hermes)
│ MCP stdio protocol
▼
astra-knowledge-base-mcp (Python, uv run)
│
├── PostgreSQL (psycopg2 + pgvector) → astra_kb
│ ├── kb_registry ← KB metadata & status
│ ├── kb_*.chunks ← Per-KB schema (tsvector FTS + vector(1024))
│ ├── kb_*.events ← SAG event index (vector(1024))
│ ├── kb_*.entities ← SAG entity index (vector(1024))
│ └── mgmt ← Operational data (services, health_log, api_keys)
│
└── Embedding cache (PostgreSQL) → embed_cache tableThree complimentary retrieval paths:
FTS — keyword search via PostgreSQL
tsvector/ts_rankVector — semantic search via cosine similarity on
pgvectorindexesSAG — SQL-Retrieval Augmented Generation: event-entity extraction + query-time hyperedge expansion for multi-hop reasoning across chunks
Agent Guide
See AGENTS.md for AI-agent-oriented documentation (entry points, workflows, Hermes integration).
Related
astra-aiagent-infra — ecosystem portal
Hermes Agent — AI agent framework
MCP — Model Context Protocol
Dependencies
PostgreSQL 16+ with pgvector — primary data store
psycopg2-binary — PostgreSQL driver
MarkItDown — file import (PDF, DOCX, PPTX)
Retrieval Strategy
We implement SAG (SQL-Retrieval Augmented Generation) — an original retrieval architecture that replaces both traditional RAG and GraphRAG. SAG uses event-entity indexing and query-time dynamic hyperedges to deliver both semantic retrieval and relational reasoning in a single pipeline.
Reference:
SAG paper: arxiv 2606.15971 — Yuchao Wu et al., Zleap AI (MIT)
Reference implementation: github.com/Zleap-AI/SAG — MIT License
Our implementation follows the SAG algorithm directly on our PostgreSQL/pgvector infrastructure, without wrapping the reference package.
License
MIT — see LICENSE.
中文版
概述
Astra Knowledge Base MCP 为 AI Agent 提供基于 PostgreSQL 16+ + pgvector 的持久化、可搜索知识库——支持混合全文/向量检索和 SAG(SQL 检索增强生成)关联推理。
每个知识库是隔离的命名空间,内容引入时自动分块(递归、heading-anchor 或语义切分),通过任意 OpenAI 兼容的端点进行向量化,并建立三种互补的检索路径。
Minimal setup:
export ASTRA_EMBED_BASE_URL=https://api.siliconflow.cn/v1
export ASTRA_EMBED_API_KEY=sk-...
uv run server.pyAvailable Tools
13 toolskb_addC
Add text content to a knowledge base (auto-chunked)
| Name | Required | Description | Default |
|---|---|---|---|
| kb | Yes | Target knowledge base name | |
| tags | No | Optional tags | |
| title | No | Optional title for the content | |
| source | No | Optional source URL or path | |
| content | Yes | Text content to add |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only mentions 'auto-chunked', but fails to explain whether additions are append-only, if chunks are stored separately, or what happens on duplicate content or missing knowledge base.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, conveying the core action and a key behavioral trait (auto-chunked). Every word earns its place; no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations, output schema, and the presence of 5 parameters, the description lacks essential context such as return value (e.g., success confirmation or chunk identifiers), error handling, and prerequisites (e.g., the knowledge base must exist and be enabled).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all 5 parameters, achieving 100% coverage. The brief description does not add any additional parameter-level insight beyond the schema, which is the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Add) and resource (text content to a knowledge base), and includes 'auto-chunked' as additional behavioral context. It does not explicitly differentiate from sibling tools like kb_create or kb_update, but the verb 'add' and resource 'content' distinguish it adequately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use kb_add versus alternatives, nor any prerequisites or constraints. There is no mention of required existing knowledge base or restrictions (e.g., file size).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kb_createC
Create a new empty knowledge base
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Knowledge base name (lowercase, underscores) | |
| description | No | Optional description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden, but it only states the action without disclosing important behaviors like error handling (e.g., duplicate name), required permissions, or whether the creation is idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded. It could be slightly more structured, but it is free of fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and no output schema, the description is adequate but minimal. It does not explain what happens after creation (e.g., return value, confirmation) or any side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it does not elaborate on constraints like the name format (lowercase, underscores) or the optionality of the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'knowledge base', with the qualifier 'empty' adding specificity. However, it does not differentiate from sibling tools like kb_add or kb_enable, which is a minor gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as kb_list or kb_update. The description lacks any context about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kb_deleteA
Permanently delete a knowledge base and all its content
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Knowledge base name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that deletion is permanent and affects all content, which is critical for a destructive action. However, it does not mention any prerequisites or consequences beyond deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the essential information efficiently. There is no superfluous text, and the key action and scope are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, no output schema, no nested objects), the description adequately covers the action and its consequences. It does not mention return values or confirmation, but that is acceptable for a deletion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a description for the 'name' parameter ('Knowledge base name'). The tool description does not add additional semantic information beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (permanently delete) and resource (a knowledge base and all its content). It distinguishes the tool from siblings like kb_list, kb_create, etc., which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies caution by noting 'permanently delete', but it does not explicitly provide guidance on when to use this tool versus alternatives or when not to use it. No alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kb_delete_chunkB
Delete a single chunk by ID
| Name | Required | Description | Default |
|---|---|---|---|
| kb | Yes | Knowledge base name | |
| chunk_id | Yes | Chunk ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the action. It fails to disclose important behavioral traits such as irreversibility, permission requirements, side effects, or return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence. Every word is necessary and front-loaded with the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete operation with no output schema, the description lacks crucial context such as error handling, success/failure indicators, or whether deletion is permanent. More detail is needed for safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The description only reinforces 'by ID' for chunk_id, adding minimal meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete), resource (a single chunk), and method (by ID). It distinguishes from sibling tools like 'kb_delete' which likely targets entire knowledge bases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives. The description does not contrast with 'kb_delete' or other chunk-related tools, leaving the agent to infer usage from naming alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kb_disableA
Disable a knowledge base so it is excluded from search
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Knowledge base name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the effect 'excluded from search' but does not disclose reversibility, side effects, permissions, or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler, directly states the purpose and effect. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter toggle tool with no annotations or output schema, the description adequately conveys the core action and effect. Minor gaps like idempotency or return value do not significantly hinder understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'name' has 100% schema coverage with a description 'Knowledge base name'. The tool description does not add any extra meaning beyond the schema, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Disable', resource 'knowledge base', and effect 'excluded from search', differentiating it from siblings like kb_enable and kb_delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given. The purpose implies use when wanting to exclude from search, but no alternatives or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kb_enableB
Enable a knowledge base so it appears in search results
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Knowledge base name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like idempotency, reversibility, permissions, or side effects. The burden falls on the description, which is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded and efficient, conveying the core purpose without extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the basic purpose but omits behavioral details such as what happens if the KB is already enabled, error conditions, or relationship to sibling tools like kb_disable. Adequate for a simple tool but has gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter is already described. The description adds no additional meaning about the name format, validation, or constraints beyond 'Knowledge base name'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (enable) and the resource (knowledge base) with a specific outcome (appears in search results). It distinguishes from siblings like kb_disable, kb_list, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, such as prerequisites or conditions. The agent must infer from context that it's used for currently disabled KBs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kb_extractC
Extract events and entities from unprocessed chunks (SAG indexing). Reference: arXiv 2606.15971
| Name | Required | Description | Default |
|---|---|---|---|
| kb | Yes | Knowledge base name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description mentions 'from unprocessed chunks' implying a state assumption but fails to disclose side effects (e.g., whether chunks become processed), required permissions, or output behavior. For a tool that likely mutates state, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with action. The reference is tertiary but not harmful. No waste, though slightly more context could improve without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks essential context: no output schema, no explanation of what the extracted data looks like, whether the tool modifies state, or prerequisites (e.g., chunks must be unprocessed). Given the complexity of extraction, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (kb) with a schema description. The tool description adds no extra meaning beyond 'Knowledge base name' in the schema. With 100% schema coverage, baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it extracts events and entities from unprocessed chunks, with a reference. This distinguishes it from search, list, and other kb tools, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like kb_search or mgmt_query. The description assumes the agent knows the context, providing no when-to-use or when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kb_listA
List all knowledge bases with their enable/disable status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It does not mention potential large result sizes, pagination, authentication requirements, or any side effects. The only behavioral clue is that it returns enable/disable status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and object, no redundant words. Every part of the sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is mostly complete. However, it could benefit from noting that it returns all knowledge bases without filtering, and perhaps what fields are in the output. Still, it is adequate for a simple list-all tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema coverage is 100% trivially. The description adds the meaning of the output (enable/disable status), which is not in the schema. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (list) and the resource (knowledge bases) and includes additional detail about the status field. This distinguishes it from siblings like kb_search or kb_list_chunks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like kb_search or kb_list_chunks. The description does not mention any conditions or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kb_list_chunksB
List chunks in a knowledge base (paginated)
| Name | Required | Description | Default |
|---|---|---|---|
| kb | Yes | Knowledge base name | |
| limit | No | Max results (default 50) | |
| offset | No | Offset for pagination (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only adds 'paginated'. No mention of ordering, performance, side effects, or response details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key info, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks output schema and description of return format. For a listing tool, could mention chunk fields returned. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions (100% coverage). Description adds no extra meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List' and resource 'chunks in a knowledge base', with pagination hint. It distinguishes from sibling tools like kb_list (lists KBs) and kb_search (searches).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs alternatives like kb_search or kb_extract. Description is minimal and offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kb_searchA
Search across enabled (or specified) knowledge bases. Default: hybrid (FTS + vector)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10) | |
| query | Yes | Search query | |
| kb_names | No | Optional: restrict search to specific KBs | |
| search_mode | No | Search mode: hybrid (default), fts, vector, sag_fast (event vectors), sag_precise (entity-guided) | hybrid |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses default search mode and available modes (hybrid, fts, vector, sag_fast, sag_precise) but lacks details on pagination, result format, rate limits, or behavior with empty results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the purpose and key default. It could be improved by adding structure like bullet points for modes, but it is efficient and not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain return values (e.g., list of chunks, metadata). It also does not describe the difference between search modes (e.g., when to use sag_fast vs vector). This is adequate but leaves gaps for an agent to understand full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds the default hybrid mode and mentions 'enabled (or specified) KBs' which adds minimal value over the schema's parameter descriptions (which already document defaults and options).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search across enabled (or specified) knowledge bases' with a specific verb and resource. It distinguishes from sibling tools like kb_list (list KBs) and mgmt_query (query arbitrary tables) by focusing on search across knowledge bases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching KBs but does not explicitly state when to use this vs alternatives like mgmt_query or when not to use it. There is no mention of exclusions or when to choose different search modes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kb_updateA
Update a chunk. Unset fields keep current value. mode='append' appends to content.
| Name | Required | Description | Default |
|---|---|---|---|
| kb | Yes | Knowledge base name | |
| mode | No | 'replace' (default) or 'append' | replace |
| tags | No | Optional new tags | |
| title | No | Optional new title | |
| source | No | Optional new source | |
| content | No | Optional new content | |
| chunk_id | Yes | Chunk ID to update | |
| media_url | No | Optional media URL | |
| media_type | No | Optional media MIME type |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It discloses that unset fields keep current value and that mode='append' appends content, which are critical behavioral traits. However, it does not mention side effects, permissions, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences, front-loading the core purpose. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters and no output schema, the description covers the essential behavioral aspects. It omits error conditions and validation details but is generally complete for its simplicity. Sibling tools make the context clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value beyond the schema by explaining 'Unset fields keep current value' and clarifying that mode='append' appends to content, which is not fully captured in the schema enum description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a chunk' with a specific verb and resource. It distinguishes itself from sibling tools like kb_create, kb_delete, and kb_search, and adds behavioral details about unset fields and mode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for modifying an existing chunk, but does not explicitly state when to use it versus alternatives like kb_create or kb_delete_chunk. No when-not or prerequisite guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mgmt_list_tablesA
List available operational tables (services, health_log, api_keys, ...)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states basic behavior (list tables) without disclosing any additional traits such as permissions, performance, or scope limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient, front-loaded with verb and resource. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is adequate for a simple, parameterless tool. However, it does not specify the output format or whether results are limited, which would help an agent fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Description does not need to add parameter semantics beyond what is already clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List' and resource 'available operational tables', with explicit examples. Distinguishes from sibling tools that handle knowledge base operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings. Usage is implied by its simple listing function, but lacks any when/why context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mgmt_queryC
Query operational data from mgmt schema tables
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 20) | |
| table | Yes | Table to query | |
| filter_col | No | Optional column to filter by (e.g. 'name', 'type', 'provider') | |
| filter_val | No | Optional value to filter on |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'Query', implying a read operation, but does not confirm read-only behavior, potential side effects, or whether authentication is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no unnecessary words. It is concise and front-loaded, though it could be slightly more descriptive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should clarify what is returned (e.g., rows from the queried table). It lacks return format, pagination details, or error conditions, making it incomplete for a query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions, so baseline is 3. The description adds no additional meaning beyond the schema; it does not explain how filter_col and filter_val interact or provide usage examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Query' and the resource 'operational data from mgmt schema tables'. It distinguishes from sibling tools like kb_* (knowledge base operations) and mgmt_list_tables (listing tables) by specifying the action on mgmt tables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as mgmt_list_tables for listing tables or other query methods. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
13 tool updates
v1.2.0- First observed
kb_add - First observed
kb_create - First observed
kb_delete - First observed
kb_delete_chunk - First observed
kb_disable - First observed
kb_enable - First observed
kb_extract - First observed
kb_list - First observed
kb_list_chunks - First observed
kb_search - First observed
kb_update - First observed
mgmt_list_tables - First observed
mgmt_query
TDQS
All tools have distinct purposes: KB management (list, create, delete, enable, disable), content operations (add, search, extract, list_chunks, update, delete_chunk), and admin queries (mgmt_list_tables, mgmt_query). No overlapping functionality.
All tool names follow a consistent 'prefix_verb_noun' pattern using snake_case. Prefixes 'kb_' and 'mgmt_' clearly separate knowledge base and management operations. Verbs are descriptive and uniformly styled.
13 tools is well-scoped for a knowledge base MCP server. It provides comprehensive operations without being excessive, covering CRUD for KBs and chunks, search, extraction, and administrative functions.
The tool surface covers most essential operations: KB lifecycle (create, delete, list, enable/disable), chunk management (add, list, update, delete), search, and extraction. Minor gaps include lack of a single-KB retrieval tool and no update for KB metadata, but core workflows are supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Personal knowledge base MCP server with semantic search, auto-categorization, metadata extraction
DocBase MCP server for AI agents
Knowledge base MCP for AI agents on iknow.dev. Search, read, and maintain via OAuth.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server providing persistent memory management for AI agents using SQLite and FTS5, enabling storage, full-text search, and recall of memories with namespace isolation.1MIT
- AlicenseAqualityBmaintenanceA local-first MCP server for durable agent memory using SQLite and FTS5, enabling knowledge graph storage, search, and recall for AI agents.201MIT
- AlicenseNot gradedqualityDmaintenanceA SQLite-backed MCP memory server providing persistent memory storage with full-text search and knowledge graph capabilities for AI assistants.60MIT
- AlicenseAqualityCmaintenanceMCP server for local knowledge management with Markdown and PDF indexing using SQLite FTS5.5122MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alrcatraz/astra-knowledge-base-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server