mcp-anythingllm
Provides an MCP bridge that connects AnythingLLM's indexed document search to Google Antigravity, enabling semantic multi-workspace queries with reranking and verifiable citations (book and page) for medical textbooks.
Click on "Deploy 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-anythingllm¿Qué dice Katzung sobre los inhibidores de SGLT2?"
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 AnythingLLM
Puente MCP entre tus libros indexados en AnythingLLM y Google Antigravity, con reranking multilingüe y citas verificables.
Un experimento personal que funciona. No es un producto, no promete nada. Simplemente resolvió un problema que yo tenía, y quizás a ti también te sirva.
Sobre este proyecto
Este es un proyecto personal, hecho por un estudiante de medicina (no por un programador) como solución a un problema concreto: estudiar con libros de texto completos era lento, y usar un LLM para consultarlos consumía cuota masivamente.
Sobre el soporte: intentaré ayudar en la medida de lo posible, pero no puedo prometer tiempos de respuesta ni garantizar que funcione en todos los sistemas. Si algo no funciona en tu máquina, abre un issue describiendo el problema con el mayor contexto posible — si tengo tiempo, te ayudo. Si no, puede que otro usuario de la comunidad lo haga.
Sobre la licencia: el código es libre bajo AGPL-3.0-or-later. Puedes usarlo, modificarlo, y redistribuirlo libremente. La única condición es que si haces cambios y los distribuyes (incluyendo ofrecerlo como servicio web), debes compartir tus cambios bajo la misma licencia. Esto protege al proyecto de que alguien lo cierre y lo convierta en un producto privado, pero te deja a ti toda la libertad para adaptarlo a tu caso.
Related MCP server: corpus-rag
El problema que resuelve
Estudiar medicina con libros de texto completos (Katzung, Robbins, Constanzo, Argente) es lento: encontrar un dato específico en un capítulo de 60 páginas toma minutos. Los LLMs modernos pueden ayudarte, pero leer libros enteros en un asistente como Gemini, Claude u OpenAI consume cuota masivamente — el demo oficial del OS de Google usó 2.6B tokens y costó ~$917 en una sola tarea.
La solución: un RAG local que indexe tus PDFs en tu propia pc (privacidad total y sobre todo, 0 coste de indexación) y exponga búsqueda semántica a Antigravity vía MCP. Solo los fragmentos relevantes se envían al modelo, con citas de libro y página exactas.
Este proyecto es el puente que faltaba entre AnythingLLM (que indexa y busca) y Antigravity (que razona y genera respuestas).
Qué hace
Búsqueda multi-workspace — expone varios dominios médicos como herramientas MCP independientes (ciencias básicas, fisiología, patología, propedéutica, farmacología o cualquiera que desees añadir)
Reranking multilingüe — consulta en español sobre libros en inglés gracias a
BAAI/bge-reranker-v2-m3Citas verificables — cada fragmento incluye libro, página y score de relevancia del reranker
100% local para indexación — tus PDFs nunca salen de tu máquina
Coste mínimo de tokens — cada consulta envía ~6-8 fragmentos en lugar de libros completos, ahorrándote una cantidad considerable de tokens
Compatible con cualquier cliente MCP — Antigravity, Claude Code, Cursor, etc.
Arquitectura
flowchart TD
PDFs["Tus PDFs de medicina<br/>(Katzung, Robbins, Constanzo, Argente)"]
Ollama["Ollama<br/>(bge-m3)"]
AnythingLLM["AnythingLLM<br/>(LanceDB)"]
Wrapper["Wrapper MCP<br/>(bge-reranker-v2-m3)"]
Antigravity["Antigravity<br/>(Gemini)"]
Response["Respuesta con citas<br/>(libro + página)"]
PDFs -->|indexación, una vez| AnythingLLM
Ollama -->|embeddings| AnythingLLM
AnythingLLM -->|API REST /vector-search| Wrapper
Wrapper -->|MCP stdio| Antigravity
Antigravity --> ResponseAclaración: Ollama solo se usa para generar embeddings durante la indexación. En las consultas no actúa. El único que genera texto es Gemini (o el modelo que elijas) dentro de Antigravity
Requisitos
Componente | Mínimo | Recomendado |
RAM | 16 GB | 24 GB |
Disco | 10 GB libres | 20 GB |
GPU | No necesaria | NVIDIA (para embeddings más rápidos) |
Sistema operativo:
Fedora 42+ / Ubuntu 22.04+ / Arch
macOS 12+ (Apple Silicon)
Software:
Ollama — runtime de modelos locales
AnythingLLM — indexador y motor RAG
Google Antigravity — cliente agente
uv — gestor de paquetes Python
Instalación rápida
Instalación
Opción A — Instalador automatizado (recomendado)
git clone https://github.com/ivanpaguay13/mcp-anythingllm.git
cd mcp-anythingllm
./install.shEl instalador funciona en dos fases:
Fase 1 (
./install.sh): instala Ollama, uv, las dependencias Python y descarga los modelos (bge-m3+bge-reranker-v2-m3).Fase 2 (
./install.sh --configure): configura Antigravity con tu API key. Se ejecuta cuando ya tienes AnythingLLM instalado y funcionando.
Al terminar la Fase 1, el script muestra los pasos manuales que faltan (instalar AnythingLLM, crear workspaces, subir PDFs, obtener la API key).
Opción B — Instalación manual
Si prefieres hacerlo todo a mano paso por paso, ver docs/INSTALL.md.
Notas sobre el instalador
Se ejecuta con bash, no con el shell del usuario. Aunque tú uses zsh (macOS) o fish, el script siempre corre con bash. Funciona en bash 3.2+, que es la versión que trae macOS por defecto.
No instala AnythingLLM. Esa aplicación requiere interacción gráfica (AppImage,
.dmgo instalador oficial) y no se puede automatizar sin comprometer la seguridad. El instalador te indica cuándo instalarlo.No sube tus PDFs. La indexación es una operación de UI en AnythingLLM y requiere tus decisiones (qué libros, en qué workspace, etc.).
Idempotente: se puede ejecutar varias veces sin romper nada. Detecta lo que ya está instalado y no lo reinstala.
Solo pide
sudopara lo necesario: instalar paquetes del sistema (dnf/apt/pacman) y configurar Ollama como servicio systemd. Todo lo demás corre con tu usuario normal.
Uso
Una vez configurado, Antigravity usará automáticamente las herramientas cuando preguntes sobre medicina.
Ejemplo 1 — Consulta simple
¿Qué dice Katzung sobre los inhibidores de SGLT2?
Antigravity llama a buscar_farmacologia, obtiene fragmentos del Katzung
con citas exactas, y responde con la información y las páginas.
Ejemplo 2 — Consulta multi-workspace
Explícame la insuficiencia cardíaca: fisiología, patología, clínica y tratamiento farmacológico.
Antigravity llama a buscar_fisiologia, buscar_patologia,
buscar_propedeutica y buscar_farmacologia, y sintetiza una respuesta
integrada con citas de los cuatro dominios.
Ejemplo 3 — Consulta dirigida
Solo del Robbins, ¿qué dice sobre la patogenia de la aterosclerosis?
Antigravity llama a buscar_patologia y filtra los fragmentos que no son
del Robbins antes de responder.
Documentación
docs/INSTALL.md — guía completa de instalación
docs/TROUBLESHOOTING.md — errores comunes y sus soluciones
docs/AGENTS.md.example — ejemplo de reglas para que Antigravity use las herramientas correctamente
Estado del proyecto
Funciona y es usable, pero es joven. Lo que significa:
Probado en Fedora 44 con Ryzen 7 y 24 GB de RAM
Probado en Ubuntu 26.04 LTS (VM limpia)
Instalador automatizado probado en Fedora 44 y Ubuntu 26.04 LTS (VM limpia)
Teóricamente compatible con Arch y MacOS (bash 3.2+), sin probar
Sin tests automatizados todavía
Sin instalador gráfico (por ahora, es un CLI)
Roadmap
Reranking con
bge-reranker-v2-m3Soporte para múltiples workspaces
Consultas multi-workspace en una sola conversación
Script de instalación automatizado
Soporte para Anki vía MCP
Filtro por libro específico en las consultas
Verificación en macOS con Apple Silicon
Traducción al inglés del README
Cómo contribuir
Este proyecto nació como una solución personal y sigue siendo pequeño. Si te sirve y quieres mejorarlo, las áreas donde más ayuda hace falta son:
Reportar errores — abre un issue con tu distro, versión de Ollama, y el mensaje de error completo
Port a macOS — necesitamos testers con Apple Silicon
Traducción al inglés del README y docs
Nuevos MCP servers — Anki, Zotero, lo que necesites
Abre un issue antes de trabajar en algo grande, para evitar duplicación.
Licencia
El código está licenciado bajo AGPL-3.0-or-later. Ver LICENSE.
La documentación (README.md, docs/*.md) está licenciada bajo
CC BY-SA 4.0.
En términos simples: puedes usar, modificar y redistribuir libremente, pero si haces cambios debes compartirlos bajo la misma licencia. Esto incluye casos donde ofrezcas el software como servicio web.
Agradecimientos
Este proyecto se apoya en el trabajo de:
BAAI / FlagEmbedding — modelos
bge-m3ybge-reranker-v2-m3AnythingLLM — motor RAG con interfaz gráfica
Ollama — runtime local de modelos
Anthropic — protocolo MCP
Google Antigravity — cliente agente
Y a las comunidades de Fedora, Python y MCP por la documentación dispersa que hizo posible armar esto.
Available Tools
5 toolsbuscar_basicasB
Busca en libros de ciencias básicas (bioquímica, histología, anatomía, biología celular).
Args: query: Consulta en lenguaje natural. top_k: Número de fragmentos más relevantes a devolver tras el reranking (por defecto 8).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 only states that the tool 'busca' (searches) and mentions 'top_k' implies returning fragments. It does not disclose whether the operation is read-only, any authentication requirements, rate limits, or side effects. For a search tool, the read-only nature is intuitive, but the description does not explicitly confirm it, and no other behavioral traits are mentioned.
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 concise, with the purpose front-loaded and the parameter explanations kept brief. There is no filler or redundancy. The structure is clear and easy to parse, though it could be slightly more structured by separating the purpose from parameter details, but it is efficient overall.
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 two-parameter search tool with an output schema, the description is fairly complete. It explains the parameters and implies the return of fragments. However, it lacks explicit usage guidance and behavioral transparency (e.g., confirming it is a read operation). These gaps prevent it from being fully comprehensive, though the output schema mitigates the need to describe the return format.
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?
With schema description coverage at 0%, the description compensates well by explaining both parameters: 'query' as a natural language query and 'top_k' as the number of most relevant fragments to return after reranking, with a default of 8. This adds meaning beyond the schema's minimal type definitions, giving the agent the necessary context for correct invocation.
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 searches in basic science books and lists the specific subjects (biochemistry, histology, anatomy, cell biology), which distinguishes it from sibling tools that cover other domains. It uses a specific verb ('Busca') and a concrete resource, making the purpose clear, though it does not explicitly name an alternative tool as some descriptions do.
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 usage context is implied by the subject list – if the query is about basic sciences, use this tool. However, there is no explicit guidance on when not to use it or how it compares to the sibling search tools (e.g., for physiology or pathology). The description relies on the user to infer the appropriate choice from the listed subjects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buscar_farmacologiaA
Busca en libros de farmacología (Katzung, Goodman, Mendoza). Úsalo para mecanismos de acción farmacológica, dosis, interacciones y efectos adversos.
Args: query: Consulta en lenguaje natural sobre farmacología. top_k: Número de fragmentos más relevantes a devolver tras el reranking (por defecto 8).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 does reveal a genuine behavioral trait - the reranking step ('tras el reranking') and that it returns the most relevant fragments - which adds value beyond the schema. However, it doesn't disclose other operational details such as rate limits, auth requirements, or error/empty-result behavior. Moderate disclosure for an unannotated search tool.
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 compact and efficient - two lead sentences establishing purpose and use cases, followed by a clean Args list. Purpose and usage are front-loaded. There is no wasted wording, and it is appropriately sized for a two-parameter search tool.
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?
The tool has an output schema (covering return values), both parameters are documented, and purpose and use cases are explicit. For a low-complexity search tool with two parameters, this is fairly complete. Minor gaps exist around error handling and result truncation, but these are not critical given the output schema and simple parameter set.
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 0%, but the Args section fully documents both parameters with meaningful semantics: query is described as a natural language query about pharmacology, and top_k as the number of most relevant fragments to return with its default of 8. This adequately compensates for the schema gap, though the descriptions are fairly basic and don't specify value ranges or formats beyond the default.
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?
States a specific action ('Busca') against a specific resource (pharmacology books, naming Katzung, Goodman, Mendoza). It is clearly distinguished from sibling tools which target different subjects (fisiologia, patologia, propedeutica, basicas) - the domain separation is obvious from the title and description. The verb and resource are precise and unambiguous.
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?
'Úsalo para mecanismos de acción farmacológica, dosis, interacciones y efectos adversos' explicitly lists the use cases (mechanisms of action, doses, interactions, adverse effects). It provides clear context on when to invoke this tool, and the differentiation from siblings is implicit via subject domain. However, it doesn't explicitly state when NOT to use it or name an alternative tool by name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buscar_fisiologiaA
Busca en libros de fisiología médica (Constanzo, Guyton, Boron). Úsalo para entender función normal, mecanismos fisiológicos, homeostasis y regulación.
Args: query: Consulta en lenguaje natural sobre fisiología. top_k: Número de fragmentos más relevantes a devolver tras el reranking (por defecto 8).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No hay anotaciones, por lo que la descripción debe asumir la carga. Menciona el paso de reranking y el valor por defecto de top_k, lo que da cierta transparencia sobre el proceso. No declara explícitamente que sea una operación de solo lectura, aunque el verbo 'buscar' lo sugiere. Falta información sobre límites o formato de respuesta.
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?
El texto es breve y directo, con la finalidad al inicio y la lista de parámetros al final. No hay redundancia ni información innecesaria; cada oración aporta contenido relevante.
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?
Para una herramienta de búsqueda con solo dos parámetros y un esquema de salida presente, la descripción cubre todos los aspectos necesarios: propósito, contexto de uso, y semántica de parámetros. No se echa en falta información sobre el formato de retorno porque el esquema de salida lo cubre.
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?
La cobertura del esquema es 0%, por lo que la descripción compensa completamente. Explica 'query' como consulta en lenguaje natural sobre fisiología, y 'top_k' como número de fragmentos tras el reranking con su default. Añade valor más allá del esquema, incluyendo contexto de uso.
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?
La descripción indica claramente el recurso ('libros de fisiología médica') y el propósito ('entender función normal, mecanismos fisiológicos, homeostasis y regulación'). Se distingue de los hermanos al especificar el dominio fisiológico, lo que permite seleccionarlo correctamente entre las otras búsquedas.
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?
La frase 'Úsalo para entender función normal...' establece un contexto de uso claro. Sin embargo, no menciona explícitamente cuándo no usarlo ni nombra las alternativas (buscar_patologia, etc.), por lo que la orientación es implícita más que directa.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buscar_patologiaA
Busca en libros de patología (Robbins, Kumar, Rubin). Úsalo para entender mecanismos de enfermedad, cambios morfológicos y fisiopatología.
Args: query: Consulta en lenguaje natural sobre patología. top_k: Número de fragmentos más relevantes a devolver tras el reranking (por defecto 8).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 that the tool searches pathology books and returns relevant fragments after reranking, which discloses key behavior. It does not mention side effects, but for a read-only search tool this is not 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 succinct, front-loaded with the core purpose, then organized into an Args section. Every sentence adds value and there is no redundant or filler text.
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 retrieval tool, the description covers the domain, use case, parameters, and output behavior. An output schema exists for the return value, so that does not need to be explained. It could be strengthened by explicitly saying when not to use it or naming sibling tools, but it is otherwise 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?
The schema provides no property descriptions, but the 'Args' section fully compensates: 'query' is described as a natural-language pathology question, and 'top_k' is explained as the number of relevant fragments to return after reranking, including its default. This adds substantial meaning beyond the raw 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 a specific verb ('Busca') and a resource (pathology books: Robbins, Kumar, Rubin), and clarifies that it is for understanding disease mechanisms, morphological changes, and pathophysiology. It does not explicitly differentiate itself from the sibling tools, but the domain-specific scope makes the distinction clear enough.
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?
It explicitly says when to use the tool: to understand disease mechanisms, morphological changes, and pathophysiology. It does not provide exclusions or mention sibling alternatives, but the usage context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
buscar_propedeuticaA
Busca en libros de propedéutica clínica (Argente-Álvarez, Surós, Bates). Úsalo para semiología, técnica de exploración física, signos, síntomas y maniobras.
Args: query: Consulta en lenguaje natural sobre propedéutica. top_k: Número de fragmentos más relevantes a devolver tras el reranking (por defecto 8).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| top_k | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 conveys that this is a retrieval/search tool and mentions reranking in the top_k parameter, which is useful. However, it does not describe limitations, result format expectations, or what happens when no relevant fragments are found, leaving some behavioral traits implicit.
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 compact and front-loaded: a clear statement of scope, a direct usage sentence, and concise parameter documentation. Every sentence earns its place, with no filler or repetition.
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 retrieval tool with an output schema, the description covers the essential context: source books, target topics, query semantics, and return-count behavior. It is slightly incomplete only in not guiding the agent to sibling tools for other medical subjects, but this is a minor gap given the topical clarity.
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 0%, so the description must compensate. It does: 'query' is explained as a natural-language question about propedéutica, and 'top_k' is clarified as the number of most relevant fragments returned after reranking, including its default value. Both parameters are meaningfully documented beyond the bare 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 uses a specific verb ('Busca') and names the exact resource: books of clinical propedéutica by Argente-Álvarez, Surós, and Bates. It also lists concrete topics (semiología, physical exam technique, signs, symptoms, maneuvers), which lets an agent distinguish it from the sibling subject-specific search tools.
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 explicitly says 'Úsalo para' followed by a clear set of use cases, giving the agent practical guidance on when to invoke it. However, it does not state when not to use it or explicitly name alternative sibling tools, so it falls short of full routing guidance.
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.
5 tool updates
v0.1.0- First observed
buscar_basicas - First observed
buscar_farmacologia - First observed
buscar_fisiologia - First observed
buscar_patologia - First observed
buscar_propedeutica
TDQS
Scored across 5 tools
Cada herramienta busca en un corpus médico específico y no se solapan: ciencias básicas, fisiología, patología, propedéutica y farmacología. Es improbable que un agente confunda su propósito con las descripciones actuales.
Todas las herramientas siguen el patrón consistente 'buscar_' + materia en minúsculas y sin espacios. La convención es uniforme y predecible.
Cinco herramientas es una cantidad adecuada y bien delimitada para un servidor de búsqueda en libros de medicina. No hay herramientas redundantes ni faltan categorías que hagan el set demasiado grande o pequeño.
La superficie cubre las principales áreas de conocimiento médico que un agente necesitaría consultar. Podría faltar una búsqueda general que combine todos los corpus o cubra temas como microbiología/inmunología, pero los agentes pueden invocar varias herramientas para compensarlo.
Maintenance
Related MCP Connectors
- docs2mcpOAuthcom.docs2mcp
Query your own PDFs and documents from any MCP client. Every answer cites the page it came from.
Medical RAG: semantic search for clinical guidelines, drug interactions, diagnoses & EHR data.
Medical RAG: semantic search for clinical guidelines, drug interactions, diagnoses & EHR data.
Cloud or self-hosted knowledge for AI agents: hybrid search, reranking, GraphRAG, scoped MCP tools.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables any MCP-compatible application to perform advanced multi-modal document processing and retrieval using RAG-Anything.MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for local RAG over personal notes, PDFs, and documents, enabling plain-English querying and hybrid search with multi-hop context expansion.MIT
- FlicenseNot gradedqualityCmaintenanceEnables local document question-answering and retrieval via MCP, supporting multi-turn conversation, intent recognition, and tools for document search, Q&A, and summarization.5-
- AlicenseNot gradedqualityBmaintenanceEnables querying PDF documents using natural language with grounded answers and source citations via a local RAG pipeline.MIT