MCP RAG
Provides HTML documentation hosted on GitHub Pages with complete setup guides, configuration instructions, and API reference for the MCP RAG server
Uses Hugging Face's sentence transformers API to generate embeddings for semantic search in the RAG system, specifically leveraging the sentence-transformers/all-MiniLM-L6-v2 model for document and memory vectorization
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., "@MCP RAGsearch for information about vector databases in my uploaded documents"
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.
MCP RAG
Um servidor MCP (Model Context Protocol) completo para RAG (Retrieval-Augmented Generation) com gerenciamento de arquivos e memória vetorial para agentes.
🚀 Características
📄 Gerenciamento de Arquivos: Adicione, remova e pesquise documentos em diversos formatos (PDF, DOCX, TXT, MD, CSV, JSON)
🧠 Memória Vetorial: Sistema separado para que agentes armazenem informações importantes para uso futuro
🔍 Busca Semântica: Utiliza embeddings do Hugging Face para busca semântica avançada
💾 Banco Vetorial Local: ChromaDB local para armazenamento eficiente de vetores e metadados
🛠️ Script de Manutenção: CLI completo para gerenciamento e manutenção do sistema
📚 Documentação Completa: HTML para GitHub Pages com guias de configuração
Related MCP server: ragi
📋 Pré-requisitos
Node.js 18+
npm ou yarn
Chave da API do Hugging Face
🛠️ Instalação
Clone o repositório
git clone https://github.com/seu-usuario/mcp-rag.git cd mcp-ragInstale as dependências
npm installConfigure as variáveis de ambiente
cp .env.example .envEdite o arquivo
.enve configure sua chave da API do Hugging Face:HUGGINGFACE_API_KEY=sua_chave_aquiCompile o projeto
npm run build
🔧 Configuração
Cursor
Adicione a seguinte configuração no arquivo de configurações do MCP:
{
"mcpServers": {
"mcp-rag": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/caminho/para/mcp-rag"
}
}
}Claude Desktop
Adicione a configuração no arquivo claude_desktop_config.json:
{
"mcpServers": {
"mcp-rag": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/caminho/para/mcp-rag"
}
}
}VS Code
Configure no settings.json:
{
"mcp.servers": {
"mcp-rag": {
"command": "node",
"args": ["dist/index.js"],
"cwd": "/caminho/para/mcp-rag"
}
}
}🛠️ Script de Manutenção
O projeto inclui um CLI completo para manutenção:
# Adicionar arquivo
npm run maintenance add-file /caminho/para/arquivo.pdf
# Adicionar diretório
npm run maintenance add-dir /caminho/para/diretorio
# Buscar arquivos
npm run maintenance search-files "sua consulta"
# Listar arquivos
npm run maintenance list-files
# Gerenciar memória
npm run maintenance add-memory "conteúdo" "agent-id" "session-id"
npm run maintenance search-memory "sua consulta"
# Ver estatísticas
npm run maintenance stats
# Limpar dados
npm run maintenance clear all🔍 Ferramentas MCP Disponíveis
Gerenciamento de Arquivos
add_file: Adiciona um arquivo ao sistema RAGsearch_files: Busca documentos relevantesremove_file: Remove um arquivo do sistemalist_files: Lista todos os arquivos no sistema
Gerenciamento de Memória
add_memory: Adiciona informação à memória do agentesearch_memory: Busca na memória do agenteremove_memory: Remove uma entrada da memóriaget_memory_by_agent: Obtém toda a memória de um agente
Utilitários
get_stats: Obtém estatísticas do sistemaclear_data: Limpa dados do sistematest_connection: Testa a conexão com o serviço de embeddings
📊 Formatos Suportados
PDF: Documentos PDF com texto extraível
DOCX: Documentos do Microsoft Word
TXT: Arquivos de texto simples
MD: Arquivos Markdown
CSV: Arquivos de dados separados por vírgula
JSON: Arquivos de dados JSON
⚙️ Configurações
Variáveis de Ambiente
# MCP Configuration
MCP_SERVER_NAME=mcp-rag
MCP_SERVER_VERSION=1.0.0
# Hugging Face Configuration
HUGGINGFACE_API_KEY=your_huggingface_api_key_here
HUGGINGFACE_MODEL=sentence-transformers/all-MiniLM-L6-v2
# ChromaDB Configuration
CHROMA_PERSIST_DIRECTORY=./data/chroma
CHROMA_COLLECTION_FILES=rag_files
CHROMA_COLLECTION_MEMORY=agent_memory
# File Processing Configuration
MAX_FILE_SIZE_MB=50
SUPPORTED_EXTENSIONS=.pdf,.docx,.txt,.md,.csv,.json
# Vector Configuration
CHUNK_SIZE=1000
CHUNK_OVERLAP=200
EMBEDDING_DIMENSION=384
# Logging
LOG_LEVEL=info🚀 Uso
Iniciando o Servidor
npm startDesenvolvimento
npm run devTestes
npm test📚 Documentação
A documentação completa está disponível em HTML para GitHub Pages em docs/index.html. Ela inclui:
Guias de instalação e configuração
Instruções para Cursor, Claude Desktop e VS Code
Exemplos de uso
Solução de problemas
Referência completa das ferramentas
🤝 Contribuição
Fork o projeto
Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature)Commit suas mudanças (
git commit -m 'Add some AmazingFeature')Push para a branch (
git push origin feature/AmazingFeature)Abra um Pull Request
📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
🙏 Agradecimentos
Model Context Protocol - Protocolo base
Hugging Face - Serviço de embeddings
ChromaDB - Banco de dados vetorial
Anthropic - Claude e MCP
📞 Suporte
Se você encontrar problemas ou tiver dúvidas:
Verifique a documentação HTML
Abra uma issue
Consulte a seção de solução de problemas na documentação
Desenvolvido com ❤️ para a comunidade de IA
Available Tools
11 toolsadd_fileC
Add a file to the RAG system for document retrieval
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Path to the file to add to the RAG system |
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 of behavioral disclosure. It mentions adding a file for retrieval, but lacks details on permissions needed, whether the operation is idempotent, error handling, or effects on existing data. For a mutation tool with zero annotation coverage, this is a significant gap.
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, clear sentence with no wasted words, making it efficient and front-loaded. It directly communicates the tool's purpose without unnecessary elaboration.
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 complexity of a mutation tool with no annotations and no output schema, the description is incomplete. It fails to address behavioral aspects like side effects, return values, or error conditions, leaving gaps for an AI agent to understand how to use it effectively.
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 schema description coverage is 100%, with the parameter 'filePath' well-documented in the schema. The description does not add any additional meaning beyond what the schema provides, such as file format requirements or path examples. Baseline 3 is appropriate when the schema does the heavy lifting.
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 a file') and the target system ('to the RAG system for document retrieval'), which is specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_files' or 'remove_file' in terms of purpose, though the verb 'Add' implies creation versus listing/removal.
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 this tool versus alternatives, such as 'add_memory' or 'search_files', nor does it mention prerequisites like file format compatibility or system readiness. It only states what the tool does, not when or why to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_memoryC
Add information to the agent memory system
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | ID of the agent storing the memory | |
| category | No | Category for the memory entry (default: general) | general |
| content | Yes | Content to store in memory | |
| importance | No | Importance level 1-10 (default: 1) | |
| sessionId | Yes | ID of the current session | |
| tags | No | Tags for the memory entry |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is an 'Add' operation, implying a write/mutation, but doesn't clarify permissions needed, whether this is idempotent, how memory is structured, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps.
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, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a tool with good schema documentation and gets straight to the point with zero waste.
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 mutation tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'adding information' means operationally, how memory entries are organized, what the response looks like, or potential side effects. The agent lacks crucial context to use this tool effectively despite the comprehensive schema.
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 all parameters are documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema. This meets the baseline score of 3 when the schema does the heavy lifting, but the description doesn't compensate with any extra context about parameter relationships or usage patterns.
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 states the tool 'Add information to the agent memory system', which provides a clear verb ('Add') and resource ('agent memory system'). However, it doesn't distinguish this from sibling tools like 'add_file' or 'remove_memory', leaving ambiguity about what specifically makes this tool different from other memory-related 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?
The description provides no guidance on when to use this tool versus alternatives like 'add_file' or 'search_memory'. It doesn't mention prerequisites, context for memory addition, or any exclusions. The agent must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_dataC
Clear data from the RAG system
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Type of data to clear |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'clear' but fails to specify if this is destructive (e.g., permanent deletion), reversible, or has side effects like affecting system performance. This omission is significant for a tool that likely modifies data.
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, efficient sentence that directly states the tool's action. It's front-loaded with the key verb 'Clear', making it easy to parse quickly without unnecessary 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?
Given the complexity of a data-clearing operation with no annotations or output schema, the description is incomplete. It doesn't explain what 'clear' entails, potential impacts, or return values, leaving gaps in understanding for safe and effective 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?
The input schema has 100% description coverage, clearly documenting the 'type' parameter with an enum. The description doesn't add extra details about parameters, but since schema coverage is high and there's only one parameter, the baseline is elevated. No compensation is needed, but no additional value is provided either.
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 states the action ('Clear') and target ('data from the RAG system'), which provides a basic understanding of purpose. However, it's vague about what 'clear' entails (e.g., deletion, reset, or archival) and doesn't distinguish it from sibling tools like 'remove_file' or 'remove_memory', which suggests overlapping functionality without clarification.
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 'remove_file' or 'remove_memory'. The description lacks context about prerequisites, exclusions, or typical scenarios for clearing data, leaving the agent without direction on appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_memory_by_agentC
Get all memory entries for a specific agent
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | ID of the agent to get memory for |
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 states the action 'Get all memory entries', implying a read operation, but does not disclose behavioral traits like whether it requires authentication, has rate limits, returns paginated results, or what format the entries are in. This leaves significant gaps for a tool with no annotation coverage.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand at a glance with zero waste.
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 lack of annotations and output schema, the description is incomplete. It does not explain what 'memory entries' entail, their structure, or how results are returned (e.g., list format, error handling). For a tool with no structured data support, this leaves the agent with insufficient information to use it effectively.
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 description adds minimal meaning beyond the input schema, which has 100% coverage and clearly describes the 'agentId' parameter. The description implies the parameter is for specifying the agent, but does not provide additional context such as valid ID formats or examples. With high schema coverage, the baseline of 3 is appropriate as the schema does the heavy lifting.
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 'Get' and the resource 'memory entries for a specific agent', making the purpose unambiguous. However, it does not differentiate from sibling tools like 'search_memory' or 'get_stats', which might also retrieve memory-related data, so it lacks sibling distinction.
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 this tool versus alternatives such as 'search_memory' or 'get_stats'. It implies usage for retrieving all entries for a specific agent, but offers no exclusions, prerequisites, or explicit context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statsC
Get statistics about the RAG system
| 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 carries the full burden. It states it 'gets' statistics, implying a read-only operation, but doesn't disclose behavioral traits such as what statistics are included, if it requires authentication, rate limits, or how data is formatted. This leaves significant gaps in understanding the tool's behavior.
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, efficient sentence: 'Get statistics about the RAG system.' It is front-loaded and wastes no words, making it appropriately concise. However, it could be slightly more informative 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?
Given the complexity of a statistics tool with no annotations and no output schema, the description is incomplete. It doesn't explain what statistics are returned, their format, or any prerequisites. For a tool that likely provides detailed data, this leaves the agent without enough context to use it effectively.
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 tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter semantics, but with no parameters, this is acceptable. Baseline is 4 as per rules for 0 parameters, indicating the description adequately handles the lack of inputs.
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 'Get statistics about the RAG system' clearly states the action (get) and target (statistics about RAG system), which is adequate. However, it doesn't differentiate from sibling tools like 'test_connection' or 'get_memory_by_agent' that might also provide system information, making it vague about what specific statistics are retrieved.
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. For example, it doesn't specify if this is for monitoring, debugging, or if other tools like 'test_connection' or 'search_memory' should be used for related purposes. The lack of context leaves the agent without clear usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesB
List all files in the RAG system
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic operation. It doesn't disclose behavioral traits like whether this is a read-only operation, how results are returned (format, pagination), performance characteristics, or any limitations. The description is minimal and lacks important context.
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, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a simple tool and front-loads the essential information.
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 no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'all files' means (scope, format, limitations), how results are structured, or any behavioral context. Given the lack of structured metadata, the description should provide more operational detail.
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 tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't mention parameters since none exist, earning a baseline score of 4 for this zero-parameter case.
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 ('List') and resource ('all files in the RAG system'), providing a specific purpose. However, it doesn't distinguish this from sibling tools like 'search_files' or explain how it differs from other file-related 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 guidance is provided about when to use this tool versus alternatives like 'search_files' or 'get_stats'. The description simply states what it does without indicating appropriate contexts, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_fileC
Remove a file from the RAG system
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Path to the file to remove from the RAG system |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the tool removes a file but doesn't disclose whether this is permanent, requires specific permissions, has side effects (e.g., affecting related memories), or provides confirmation. For a destructive operation, this lack of detail is a significant gap.
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, direct sentence with zero wasted words. It's front-loaded with the core action and resource, making it highly efficient and easy to parse at a glance.
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 destructive tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens on success/failure, return values, or error conditions. Given the complexity of file removal in a RAG system, more context about behavior and outcomes 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?
The description adds no parameter-specific information beyond what the schema already provides (100% coverage). The schema fully documents 'filePath' as the required path to remove. Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't need to compensate but also adds no extra value.
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 ('Remove') and resource ('a file from the RAG system'), making the tool's purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'clear_data' (which might remove all files) or 'remove_memory' (which removes a different resource type), so it doesn't reach the highest clarity level.
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 this tool versus alternatives. It doesn't mention prerequisites (e.g., file must exist), when not to use it (e.g., for bulk removal), or refer to related tools like 'clear_data' for removing all files or 'list_files' to check what's available first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_memoryC
Remove a memory entry from the agent memory system
| Name | Required | Description | Default |
|---|---|---|---|
| memoryId | Yes | ID of the memory entry to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool removes a memory entry but doesn't clarify if this is permanent, reversible, requires specific permissions, or has side effects (e.g., affecting related data). This is a significant gap for a mutation tool with zero annotation coverage.
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, clear sentence that efficiently conveys the core action without unnecessary words. It's front-loaded with the essential information, making it easy to parse quickly, which is ideal for 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?
Given the tool's complexity as a mutation operation with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like permanence, error handling, or what happens on success/failure, leaving gaps that could hinder an AI agent's ability to use it correctly.
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 description doesn't add any parameter-specific information beyond what's already in the input schema, which has 100% coverage for the single parameter 'memoryId'. The schema's description adequately explains this parameter, so the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.
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 ('remove') and resource ('memory entry from the agent memory system'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'remove_file' or 'clear_data' beyond mentioning the specific resource type, which prevents a perfect score.
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 this tool versus alternatives like 'clear_data' (which might remove multiple entries) or 'remove_file' (for different resource types). It lacks context about prerequisites, such as needing a valid memory ID from prior operations like 'search_memory' or 'get_memory_by_agent'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filesC
Search for relevant documents in the RAG system
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default: 10) | |
| query | Yes | Search query to find relevant documents | |
| threshold | No | Minimum similarity threshold (0-1, default: 0.7) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action ('Search for relevant documents') without detailing what 'relevant' means, how results are ranked, whether there are rate limits, authentication needs, or what happens on failure. This is inadequate for a search tool with potential complexity.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized for a basic search function, though it could be more informative without sacrificing brevity.
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 lack of annotations and output schema, the description is incomplete. It doesn't explain what the search returns (e.g., document metadata, snippets, scores), how results are formatted, or any error conditions. For a search tool with three parameters and no structured output info, this leaves significant gaps for an agent.
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 description adds no parameter semantics beyond what the input schema provides. Since schema description coverage is 100%, the baseline score is 3. The description doesn't explain how 'query' relates to document content, what 'threshold' implies for relevance, or how 'limit' affects performance, offering no additional value over 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 states the tool's purpose as 'Search for relevant documents in the RAG system', which is clear but vague. It specifies the verb ('Search') and resource ('documents in the RAG system'), but doesn't distinguish it from sibling tools like 'search_memory' or 'list_files', leaving ambiguity about what makes this search unique.
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 this tool versus alternatives. It doesn't mention when to choose 'search_files' over 'search_memory' or 'list_files', nor does it specify any prerequisites or exclusions, leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_memoryC
Search for relevant information in agent memory
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | No | Filter by specific agent ID (optional) | |
| limit | No | Maximum number of results to return (default: 10) | |
| query | Yes | Search query to find relevant memory entries | |
| threshold | No | Minimum similarity threshold (0-1, default: 0.7) |
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 of behavioral disclosure. It states the tool searches memory but doesn't describe what 'agent memory' entails (e.g., stored conversations, data), how results are returned (e.g., format, ordering), or any limitations (e.g., performance, access controls). For a search tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action ('Search for relevant information'), making it easy to parse. Every part of the sentence earns its place by conveying essential information.
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 complexity of a search operation with 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the nature of 'agent memory', how search results are structured, or any behavioral traits like pagination or error handling. For a tool that likely returns multiple results, more context is needed to guide effective 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?
The schema description coverage is 100%, so all parameters are documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain how 'query' is processed or what 'threshold' implies semantically). With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
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 tool's purpose as 'Search for relevant information in agent memory', which specifies the verb (search) and resource (agent memory). It distinguishes from siblings like 'search_files' (which searches files) and 'get_memory_by_agent' (which retrieves memory by agent without searching). However, it doesn't explicitly mention the similarity-based nature of the search, which is implied by the 'threshold' parameter but could be more specific.
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 this tool versus alternatives. It doesn't mention when to choose 'search_memory' over 'get_memory_by_agent' (which retrieves memory by agent ID) or 'search_files' (which searches files), nor does it specify prerequisites or exclusions. The agent must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_connectionB
Test the connection to the embedding service
| 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 carries full burden. It states the tool tests a connection but doesn't disclose behavioral traits like what 'test' entails (e.g., ping, auth check, latency measurement), potential side effects, error handling, or output format. This is a significant gap for a tool with zero annotation coverage.
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, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, earning its place by stating the core purpose without 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?
Given the tool's simplicity (0 params, no output schema) and lack of annotations, the description is incomplete. It doesn't explain what the test involves, what results to expect, or how it fits with siblings, leaving the agent under-informed about behavioral context.
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 tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add param info, but that's appropriate here. Baseline is 4 for 0 params, as it avoids unnecessary details.
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 ('Test') and target resource ('connection to the embedding service'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from its siblings (like get_stats or other diagnostic tools), which would require a 5.
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 this tool versus alternatives. It doesn't mention prerequisites, timing (e.g., after setup or when errors occur), or comparisons to sibling tools like get_stats, leaving the agent with minimal context for selection.
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.
11 tool updates
v1.0.0- First observed
add_file - First observed
add_memory - First observed
clear_data - First observed
get_memory_by_agent - First observed
get_stats - First observed
list_files - First observed
remove_file - First observed
remove_memory - First observed
search_files - First observed
search_memory - First observed
test_connection
TDQS
Most tools have distinct purposes, but there is some overlap between 'add_file' and 'add_memory' as both involve adding data, though to different systems (RAG vs. memory). Similarly, 'search_files' and 'search_memory' are distinct but conceptually similar operations. The descriptions help clarify the boundaries, but an agent might occasionally confuse these pairs.
All tool names follow a consistent verb_noun pattern with snake_case, such as 'add_file', 'clear_data', 'get_stats', and 'search_memory'. This uniformity makes the set predictable and easy to understand, with no deviations in style or convention.
With 11 tools, the count is well-scoped for a RAG and memory management system. It covers core operations like adding, removing, listing, and searching for both files and memory, along with utility functions like clearing data and testing connections, without being excessive or sparse.
The tool set provides comprehensive coverage for RAG and memory operations, including CRUD-like actions for files and memory entries, search capabilities, and system management. A minor gap is the lack of tools for updating existing files or memory entries, which might require workarounds, but core workflows are well-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
DocBase MCP server for AI agents
MCP server for agentverse documentation, generated by doc2mcp.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server implementation that provides tools for retrieving and processing documentation through vector search, enabling AI assistants to augment their responses with relevant documentation context. Uses Ollama or OpenAI to generate embeddings. Docker files included3030MIT
- AlicenseAqualityDmaintenanceLocal-first RAG indexing and semantic search MCP server. Enables document retrieval and context-aware queries using local embedding models.316MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that indexes documents and serves relevant context to LLMs via Retrieval Augmented Generation (RAG).4837MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that provides powerful RAG (Retrieval-Augmented Generation) capabilities for PDF documents. This server uses ChromaDB for vector storage, sentence-transformers for embeddings, and semantic chunking for intelligent text segmentation.MIT
Appeared in Searches
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/santis84/mcp-rag'
If you have feedback or need assistance with the MCP directory API, please join our Discord server