Skip to main content
Glama

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-m3

  • Citas 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 --> Response

Aclaració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:


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.sh

El 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, .dmg o 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 sudo para 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


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-m3

  • Soporte 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:

Y a las comunidades de Fedora, Python y MCP por la documentación dispersa que hizo posible armar esto.

Available Tools

5 tools
buscar_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).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
top_kNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
top_kNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
top_kNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
top_kNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
top_kNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 5 tool updatesv0.1.0
    • First observedbuscar_basicas
    • First observedbuscar_farmacologia
    • First observedbuscar_fisiologia
    • First observedbuscar_patologia
    • First observedbuscar_propedeutica

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation5/5

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.

Naming Consistency5/5

Todas las herramientas siguen el patrón consistente 'buscar_' + materia en minúsculas y sin espacios. La convención es uniforme y predecible.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers