Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NEUROGRAPH_DATABASE__PASSWORDYesThe real password of your Postgres database (the same one you put in .env), passed as an explicit environment variable so the MCP server does not depend on whether .env is loaded.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_regionA

Busca regiones reales cargadas en NeuroGraph. atlas_id filtra a un atlas concreto (p. ej. "atlas.human.hcp.mmp1_0"); sin él, se devuelven las regiones de todos los atlas cargados. Cada región lleva su coordenada real, el espacio de referencia en el que está expresada, y su red funcional si ya se calculó una (si no, "unclassified" -- nunca una red inventada). network_source elige la clasificación de red (decisión 73): p. ej. "cole-anticevic" (la de siempre en HCP-MMP1.0), "yeo2011-7", "yeo2011-17" o "power2011"; sin él, la original de cada atlas.

get_connectivityA

Conectividad real entre un conjunto de regiones dadas: qué conexiones existen entre ellas y qué tractos con nombre las tocan (con su cita real). Con menos de dos region_ids no hay conectividad "entre regiones" que calcular, y se devuelve vacío en vez de reinterpretar la petición.

search_tractA

Busca tractos reales por nombre/abreviatura (subcadena) y/o por una región que deban tocar. Cada tracto devuelto lleva TODAS las regiones reales que toca (no solo region_id, si se dio uno) y su cita real. Un tracto sin ninguna conexión real registrada no aparece: no hay nada verificado que reportar sobre él.

calculate_laplacianA

Espectro del Laplaciano del grafo real de un atlas (autovalores, ascendente): el segundo autovalor, en un grafo conexo, es su "conectividad algebraica" -- cuánto le cuesta desconectarse. connection_type nunca mezcla structural/functional/effective (sección 8); min_weight es un umbral explícito que decide quien llama, no uno aplicado de antemano al cargar los datos.

calculate_spectrumB

Embedding espectral 2D del grafo real de un atlas (Laplacian eigenmaps): una posición por región derivada de la estructura del grafo, útil para ver agrupamientos sin depender de la posición anatómica. None por región cuando el grafo tiene menos de 4 nodos (nunca un embedding inventado para un grafo demasiado pequeño).

find_pathA

Camino más corto real entre dos regiones del mismo atlas, sobre el grafo de conectividad de connection_type (un peso mayor es una conexión más fuerte, no un coste mayor -- el camino real más corto tiende hacia las conexiones fuertes). path y distance quedan en None cuando source_id/target_id no pertenecen a este atlas, o cuando no existe ningún camino real entre ambos (p. ej. componentes desconectadas) -- nunca se aproxima ni se inventa un camino.

find_homologuesA

Busca homologías reales entre especies ya cargadas (54 en este proyecto, todas de Cheng et al. 2021, con status="candidate_homology" y confidence=None porque el propio estudio no da ningún número utilizable con solo 3 especies -- nunca se inventa una confianza). region_id filtra a las que tocan esa región concreta (en cualquiera de los dos extremos); species_id, a las que tocan esa especie. Cada homología lleva la región y la especie real de sus dos extremos, y su cita real si el dataset de origen tiene un estudio enlazado (nunca una cita inventada).

compare_speciesA

Compara dos especies reales combinando un resumen cuantitativo y la lista completa de homologías compartidas (decisión de la usuaria, 31/08/2026: "ambos combinados"). El resumen cuenta cuántas regiones reales tiene cargada cada especie y cuántas de ellas participan en alguna homología real con la otra especie de esta comparación -- nunca compara "topología" entre especies, porque solo el humano tiene conectividad estructural real cargada (Brainnetome/HCP-MMP1.0); chimpancé y macaco solo tienen regiones y homologías. Lanza un error si alguna de las dos especies no existe -- nunca compara contra una especie inventada.

render_networkB

Imagen PNG real: connectograma circular de un atlas, con los nodos coloreados por red funcional real (leyenda incluida) y una cuerda gris por cada conexión real por encima de min_weight. Nunca un descriptor de escena -- una imagen real, igual que pidió la usuaria (31/08/2026). Lanza un error si el atlas no tiene ninguna región real cargada.

render_brainB

Imagen PNG real: proyección 2D (vista axial, coordenada real X/Y de cada región, eje Z descartado) de un atlas, coloreada por red funcional real (leyenda incluida), con las conexiones reales por encima de min_weight como líneas finas. Lanza un error si el atlas no tiene ninguna región real cargada.

compare_species_imagesA

Tres imágenes PNG reales que comparan dos especies (decisión de la usuaria, 31/08/2026): (1) un connectograma circular con las regiones reales de las dos especies (todos sus atlas), coloreadas en tres categorías -- exclusiva de la especie A, exclusiva de la especie B, y homóloga/compartida (participa en al menos una homología real con la otra especie de esta comparación) -- con una cuerda real por cada homología y leyenda de las tres categorías; (2) y (3), un esquema interhemisférico real por especie (solo sus regiones homólogas con la otra), coloreado por hemisferio real. Nunca superpone las dos especies en un único cerebro 3D: cada una tiene su propia anatomía y su propio espacio de referencia (decisión 29), así que no tendría sentido dibujarlas juntas en una escena espacial. Lanza un error si alguna de las dos especies no existe, o si existen pero no comparten ninguna homología real.

structured_output=False (bug real encontrado al conectar esta herramienta, 31/08/2026, decisión 37): el SDK de MCP intenta generar un esquema pydantic de salida a partir del tipo de retorno anotado, y Image está especialcasada para un retorno suelto pero NO dentro de un list[...] -- sin este parámetro, registrar la herramienta lanzaba PydanticSchemaGenerationError en cuanto se importaba este módulo, antes incluso de poder llamarla.

propose_dataset_ingestionA

Propone el SQL de alta de un dataset real ya organizado con su dataset.yaml y su mapa files (decisión 46, cierra el ciclo que la decisión 44 dejó preparado: manifiesto real -> lector real -> SQL). dataset_dir es una ruta LOCAL en la máquina donde corre este servidor MCP (la misma que ya aloja la biblioteca de datos, sección 23) -- nunca una ruta remota ni relativa a este proceso.

Solo funciona si el format del manifiesto ya es una de las cuatro etiquetas de backend/ingestion/datasets/formats.py::SUPPORTED_FORMATS (nunca unsupported_pending_adapter, que necesita su propio adaptador nuevo primero, ver docs/protocolo-ingesta-ia.md) y si su mapa files cubre todos los roles que ese formato necesita.

NUNCA toca la base de datos real ni la conexión con ella: solo genera y devuelve el SQL de alta (idempotente, ON CONFLICT DO UPDATE, mismo estilo que todos los scripts/register_*.py) para que una persona lo revise antes de aplicarlo -- ninguna automatización de este protocolo sustituye esa revisión humana (decisión 17). study_id/study_name son opcionales pero, si se da uno, hace falta el otro: sin ellos, el atlas se da de alta sin enlazar ningún estudio (nunca uno inventado).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 12 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but a few close pairs exist: render_brain vs render_network both visualize atlas connectivity, and calculate_laplacian vs calculate_spectrum both operate on graph spectra. The descriptions clarify the different output modalities well enough to avoid serious misselection.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern: search_region, get_connectivity, render_network, find_homologues, propose_dataset_ingestion. There are no mixed conventions or vague generic verbs.

Tool Count5/5

Twelve tools is well within the ideal range and each tool covers a distinct aspect of the domain: exploration, connectivity, spectral analysis, visualization, species comparison, and dataset ingestion. The count feels appropriately scoped for a specialized neuroimaging server.

Completeness4/5

The toolset covers the core workflows well: searching regions and tracts, computing connectivity and paths, spectral analysis, rendering visualizations, comparing species, and proposing dataset ingestion. Minor gaps exist, such as no direct list_atlases or list_species tool, but these can be worked around via search_region and find_homologues.

Maintenance

ActivityMaintained
ResponsivenessNo issues