Atlarium Habitat Database MCP
Datos estructurados de acuarios, marinos, terrarios y paludarios para agentes de IA.
Documentación
Atlarium Habitat Database MCP
Servidor MCP público de solo lectura para datos de hábitat de Atlarium, diagnósticos, productos, calculadoras y planificación de asesoramiento.
Endpoint MCP · Documentación humana · Tarjeta de servidor · Documentación técnica · Ejemplos de cliente
Atlarium Habitat Database MCP brinda a los agentes de IA acceso estructurado a datos públicos de Atlarium y funciones de asesoramiento para acuarios, tanques marinos, sistemas de agua fría, terrarios, paludarios y vivarios. Expone 39 herramientas públicas de solo lectura para especies, plantas, productos, guías, algas, enfermedades, problemas de plantas, medicamentos, compatibilidad, fertilización, calculadoras y planificación completa de hábitat sin exponer cuentas de Atlarium, espacios de trabajo privados, API de administración ni operaciones de escritura.
De un Vistazo
| Superficie | Valor |
|---|---|
| Endpoint MCP | https://mcp.atlarium.bio/mcp |
| Versión MCP | 2.0.3 |
| Transporte | Streamable HTTP |
| Autenticación | ninguna |
| Superficie de herramientas | 39 herramientas públicas de solo lectura |
| Prompts | 9 prompts públicos guiados |
| Widget de apps | ui://widget/habitat-explorer.v4.html |
| Tarjeta de servidor | https://mcp.atlarium.bio/.well-known/mcp/server-card.json |
| Documentación humana | https://atlarium.bio/mcp |
| Registro oficial de MCP | bio.atlarium/habitat-database |
https://atlarium.bio/mcp es documentación. El endpoint canónico de Streamable HTTP MCP
es https://mcp.atlarium.bio/mcp.
Qué Puedes Construir
| Caso de uso | Herramientas públicas |
|---|---|
| Investigación de especies | Busca peces, animales acuáticos y plantas, luego recupera perfiles estructurados localizados. |
| Compatibilidad de tanque | Compara especies con restricciones de tamaño de tanque, pH, dureza y temperatura. |
| Triage de diagnóstico | Busca algas, enfermedades acuáticas, problemas de plantas y referencias de tratamiento desde perfiles públicos. |
| Selección de productos | Explora categorías de productos, marcas, equipos y fertilizantes. |
| Soporte de fertilización | Busca regímenes de dosificación, calcula dosis de productos, brechas de nutrientes y totales semanales. |
| Calculadoras de acuario | Estima volumen de tanque, peso, cambios de agua, química del agua, conversiones de unidades y necesidades de equipo. |
| Planificación de hábitat | Genera un plan de tanque de asesoramiento completo con especies, plantas, productos, advertencias, motivaciones y guías relacionadas. |
| Recuperación de guías | Busca y recupera contenido educativo público de Atlarium. |
Todas las salidas son de asesoramiento. Las verificaciones de compatibilidad, diagnósticos, planes de fertilización, estimaciones de equipo, calculadoras de acuario y sugerencias de tanque deben verificarse contra el ganado real, el equipo, la química del agua, las regulaciones locales y las restricciones de cuidado.
Inicio Rápido
Usa cualquier cliente MCP que admita servidores remotos Streamable HTTP:
{
"mcpServers": {
"atlarium": {
"type": "streamable-http",
"url": "https://mcp.atlarium.bio/mcp"
}
}
}
Ejemplo remoto HTTP de Claude Code:
claude mcp add --transport http atlarium https://mcp.atlarium.bio/mcp
Verificación rápida del endpoint en vivo:
curl --fail --silent --show-error https://mcp.atlarium.bio/health
curl --fail --silent --show-error https://mcp.atlarium.bio/.well-known/mcp/server-card.json
pnpm mcp:monitor:public
Configuración del Cliente
| Cliente o host | Configuración |
|---|---|
| OpenAI Agents SDK | Consulta examples/openai-agents-python para un agente de Python que se conecta al endpoint remoto Streamable HTTP. |
| Claude Code | Ejecuta claude mcp add --transport http atlarium https://mcp.atlarium.bio/mcp, luego pide a Claude que use Atlarium. |
| Cursor | Usa el enlace profundo Add to Cursor o la raíz mcp.json. |
| Cline | Agrega el endpoint alojado como servidor remoto Streamable HTTP; llms-install.md contiene instrucciones deterministas de configuración de agentes. |
| Windsurf | Copia examples/windsurf/mcp_config.json en la configuración MCP de Windsurf y actualiza los servidores MCP de Cascade. |
| VS Code | Copia examples/vscode/mcp.json; VS Code usa type: "http" para servidores MCP remotos. |
| Antigravity | Usa examples/antigravity/mcp.json solo en compilaciones que admitan servidores MCP remotos. |
| Streamable HTTP genérico | Usa los ejemplos JSON-RPC en examples/generic-streamable-http. |
| ChatGPT Apps | La versión de app existente 1.0.0 está aprobada en el panel de OpenAI. El paquete corregido 2.0.3 se reenvió el 2026-08-29 con pruebas estables de taxonomía y la Plataforma OpenAI ahora muestra Review. Usa examples/chatgpt-apps y docs/chatgpt-review-remediation.md para notas de revisión y prompts de prueba. |
Estas son notas de compatibilidad, no respaldos de proveedores. No hagas afirmaciones de soporte de proveedores o directorios para ChatGPT, Claude, Cursor, Windsurf, VS Code, Antigravity o cualquier directorio a menos que ese proveedor haya aceptado el listado.
App de ChatGPT y Widget
El servidor anuncia un recurso de widget de MCP Apps / ChatGPT Apps de solo lectura para hosts compatibles con Apps:
| Campo | Valor |
|---|---|
| URI del recurso | ui://widget/habitat-explorer.v4.html |
| Tipo MIME | text/html;profile=mcp-app |
| Widget | Atlarium Habitat Explorer |
| Dominio del widget | https://mcp.atlarium.bio |
| Modo de salida | Texto JSON plano más structuredContent |
El widget renderiza resultados públicos de hábitat, perfiles, resúmenes de diagnóstico, resultados de productos, salida de calculadoras, resúmenes de compatibilidad, planes de fertilización y sugerencias de hábitat. No agrega acceso de escritura ni expone datos de espacio de trabajo, autenticación, administración, diario, horario o medición.
Capturas de pantalla de desarrollo solo de widget y una grabación de demostración corta están
verificadas en docs/assets/chatgpt-screenshots/ y docs/assets/chatgpt-app-demo.mp4.
Capturas web reales a nivel de host y responsivas de 390x844 se almacenan en
docs/assets/chatgpt-screenshots/real-host/; la grabación nativa de iOS/Android aún
es necesaria para el paquete de revisión final. El candidato v4 / 2.0.3 está en vivo
en el endpoint MCP pero aún no está aprobado como la nueva versión de la app de ChatGPT; no
describas esa presentación de app como aprobada hasta que OpenAI la acepte. La
versión de app existente en el panel 1.0.0 está aprobada.
Superficie de Herramientas
| Área | Herramientas |
|---|---|
| Peces y animales acuáticos | search_fish, get_fish_profile |
| Plantas acuáticas | search_plants, get_plant_profile |
| Productos y guías | search_products, get_product_profile, search_guides, get_guide |
| Diagnósticos | search_algae, get_algae_profile, search_diseases, get_disease_profile, search_plant_problems, get_plant_problem_profile, search_medicines, get_medicine_profile, match_diagnostic_profiles |
| Catálogo de productos | list_product_categories, list_product_brands, search_equipment, get_equipment_profile, search_fertilizers, get_fertilizer_profile |
| Compatibilidad y agua | check_species_compatibility, get_water_parameters, suggest_species_for_tank |
| Fertilización | search_fertilization_regimes, get_fertilization_regime, calculate_fertilizer_dose, calculate_nutrient_gaps, calculate_weekly_dose_totals, generate_fertilization_plan |
| Calculadoras | calculate_tank_volume, calculate_tank_weight, calculate_water_change, calculate_water_chemistry, convert_units, calculate_equipment_requirements |
| Planificador de hábitat | suggest_habitat_for_tank |
Cada herramienta está registrada con anotaciones de solo lectura:
readOnlyHint: true, openWorldHint: false, destructiveHint: false,
idempotentHint: true.
Prompts Guiados
El servidor anuncia prompts guiados para búsqueda de especies, compatibilidad, planificación de hábitat, algas, enfermedades, problemas de plantas, selección de productos, fertilización y cálculos de tanque. Los prompts guían a los clientes hacia la misma superficie de herramientas públicas de solo lectura; no agregan nuevas capacidades ni acceso de escritura.
Ejemplos de Llamadas a Herramientas
Cada ejemplo muestra el nombre de la herramienta MCP y una entrada JSON válida mínima. Los clientes
MCP genéricos reciben texto JSON plano; los hosts compatibles con Apps también pueden usar
structuredContent.
Catálogo, plantas y guías
search_fish
Propósito: buscar perfiles de peces y animales acuáticos.
Prompt: "Encuentra peces pequeños aptos para principiantes para un tanque plantado de 90 L."
{
"query": "tetra",
"language": "en",
"min_tank_liters": 40,
"max_tank_liters": 120,
"limit": 5
}
Salida: perfiles públicos de animales coincidentes con slugs, nombres localizados, campos de resumen y URLs públicas cuando estén disponibles.
get_fish_profile
Propósito: recuperar un perfil estructurado de pez o animal acuático.
Prompt: "Muéstrame el perfil de Atlarium para el Tetra Neón."
{
"slug": "paracheirodon-innesi",
"language": "en"
}
Salida: datos públicos del perfil, parámetros de cuidado, taxonomía, relaciones y contenido localizado donde esté disponible.
search_plants
Propósito: buscar perfiles de plantas acuáticas.
Prompt: "Encuentra plantas fáciles de primer plano o medio plano para tanques de baja tecnología."
{
"query": "anubias",
"language": "en",
"difficulty": "easy",
"limit": 5
}
Salida: perfiles públicos de plantas coincidentes con ubicación, dificultad y URLs públicas cuando estén disponibles.
get_plant_profile
Propósito: recuperar un perfil estructurado de planta acuática.
Prompt: "Abre el perfil de planta para Anubias barteri."
{
"slug": "anubias-barteri",
"language": "en"
}
Salida: requisitos de la planta, información de crecimiento, atributos estructurados y contenido localizado donde esté disponible.
search_products
Propósito: buscar productos públicos de hábitat.
Prompt: "Encuentra productos de filtro para tanques de agua dulce."
{
"query": "filter",
"language": "en",
"category": "filter",
"limit": 5
}
Salida: resultados de productos con información de marca/categoría y URLs públicas de productos cuando estén disponibles.
get_product_profile
Propósito: recuperar un perfil público de producto.
Prompt: "Muestra el perfil de producto para este slug de catálogo."
{
"slug": "seachem/prime",
"language": "en"
}
Salida: datos públicos estructurados del producto, casos de uso, detalles de marca y enlaces cuando estén disponibles.
search_guides
Propósito: buscar guías de Atlarium y contenido educativo.
Prompt: "Encuentra guías públicas sobre el ciclado de un acuario."
{
"query": "cycling",
"language": "en",
"topic": "aquarium",
"limit": 5
}
Salida: coincidencias de guías con título, resumen, tema y URLs públicas cuando estén disponibles.
get_guide
Propósito: recuperar una guía pública de Atlarium.
Prompt: "Abre la guía del ciclo del nitrógeno."
{
"slug": "aquarium/nitrogen-cycle",
"language": "en"
}
Salida: contenido público estructurado de la guía y metadatos relacionados.
Diagnósticos y referencias de tratamiento
search_algae
Propósito: buscar perfiles de diagnóstico de algas.
Prompt: "Encuentra perfiles de algas para polvo verde en el vidrio del acuario."
{
"query": "green dust",
"language": "en",
"difficulty": 2,
"limit": 5
}
Salida: coincidencias de algas con síntomas, causas probables y orientación de asesoramiento.
get_algae_profile
Propósito: recuperar un perfil de algas.
Prompt: "Muestra el perfil de las algas de puntos verdes."
{
"slug": "green-spot-algae",
"language": "en"
}
Salida: perfil público estructurado de algas con síntomas, causas, prevención y respuesta de asesoramiento.
search_diseases
Propósito: buscar perfiles de enfermedades acuáticas.
Prompt: "Encuentra perfiles de enfermedades para puntos blancos en peces."
{
"query": "white spots",
"language": "en",
"water_type": "freshwater",
"limit": 5
}
Salida: posibles perfiles de enfermedades y referencias de tratamiento de asesoramiento.
get_disease_profile
Propósito: recuperar un perfil de enfermedad.
Prompt: "Abre el perfil de la enfermedad del ich."
{
"slug": "ich",
"language": "en"
}
Salida: síntomas, causas posibles, referencias de tratamiento y descargos de responsabilidad.
search_plant_problems
Propósito: buscar perfiles de deficiencia de plantas acuáticas, plagas y entorno.
Prompt: "Encuentra causas para hojas amarillentas en plantas de acuario."
{
"query": "yellow leaves",
"language": "en",
"type": "deficiency",
"limit": 5
}
Salida: coincidencias de problemas de plantas con síntomas, causas y correcciones de asesoramiento.
get_plant_problem_profile
Propósito: recuperar un perfil de problema de planta.
Prompt: "Abre el perfil de deficiencia de nitrógeno."
{
"slug": "nitrogen-deficiency",
"language": "en"
}
Salida: datos estructurados de deficiencia/problema y orientación de asesoramiento.
search_medicines
Propósito: buscar perfiles de productos de medicina y tratamiento para acuarios.
Prompt: "Encuentra referencias públicas de medicamentos para el tratamiento del ich."
{
"query": "ich",
"language": "en",
"limit": 5
}
Salida: referencias de medicamentos/tratamientos con datos públicos de perfil donde estén disponibles.
get_medicine_profile
Propósito: recuperar un perfil de medicamento.
Prompt: "Abre el perfil de un slug de medicamento."
{
"slug": "malachite-green",
"language": "en"
}
Salida: referencia pública estructurada de medicamento, notas de uso y descargos de responsabilidad.
match_diagnostic_profiles
Propósito: comparar texto de síntomas en perfiles de algas, enfermedades, problemas de plantas y medicamentos.
Prompt: "Compara crecimiento blanco difuso en madera a la deriva y síntomas de peces estresados."
{
"query": "white fuzzy growth and fish flashing",
"language": "en",
"limit": 8
}
Salida: perfiles públicos de diagnóstico probables agrupados por relevancia.
Productos, equipos y fertilizantes
list_product_categories
Propósito: listar categorías de productos para equipos y fertilizantes. Prompt: "¿Qué categorías de equipos públicos están disponibles?"
{
"language": "en",
"type": "equipment"
}
Salida: nombres e identificadores de categorías públicas localizadas.
list_product_brands
Propósito: listar marcas públicas de productos.
Prompt: "Lista marcas que coincidan con Seachem."
{
"language": "en",
"query": "Seachem"
}
Salida: nombres de marcas públicas coincidentes y metadatos.
search_equipment
Propósito: buscar productos de equipos para acuarios y hábitats.
Prompt: "Encuentra calentadores para una configuración de agua dulce."
{
"query": "heater",
"language": "en",
"use_case": "freshwater",
"limit": 5
}
Salida: coincidencias de productos de equipos con campos estructurados del catálogo público.
get_equipment_profile
Propósito: recuperar un perfil de producto de equipo.
Prompt: "Abre este perfil de equipo."
{
"slug": "eheim/thermocontrol",
"language": "en"
}
Salida: detalles públicos del equipo, categoría, marca y campos de uso cuando estén disponibles.
search_fertilizers
Propósito: buscar productos de fertilizantes y perfiles de nutrientes.
Prompt: "Encuentra fertilizantes líquidos para acuarios plantados."
{
"query": "flourish",
"language": "en",
"category": "fertilizer",
"limit": 5
}
Salida: coincidencias de productos de fertilizantes y metadatos de nutrientes cuando estén disponibles.
get_fertilizer_profile
Propósito: recuperar un perfil de fertilizante.
Prompt: "Abre este perfil de fertilizante."
{
"slug": "seachem/flourish",
"language": "en"
}
Salida: datos estructurados del fertilizante, metadatos de dosificación y detalles del catálogo público cuando estén disponibles.
Sugerencias de compatibilidad, agua y hábitat
check_species_compatibility
Propósito: verificar compatibilidad básica entre especies del hábitat.
Prompt: "¿Pueden el Tetra Neón y el Corydoras paleatus convivir en un tanque plantado de 90 L?"
{
"species": ["Paracheirodon innesi", "Corydoras paleatus"],
"language": "en",
"tank_liters": 90,
"ph": 6.8,
"temperature": 24
}
Salida: señales de compatibilidad orientativas, advertencias, justificación y restricciones.
get_water_parameters
Propósito: recuperar parámetros de agua recomendados para un pez o planta.
Prompt: "¿Qué parámetros de agua prefiere el Tetra Neón?"
{
"slug": "paracheirodon-innesi",
"type": "fish",
"language": "en"
}
Salida: orientación pública sobre temperatura, pH, GH/KH y parámetros relacionados cuando esté disponible.
suggest_species_for_tank
Propósito: sugerir especies acuáticas según el tanque y los parámetros del agua.
Prompt: "Sugiere especies aptas para principiantes en un tanque plantado de 120 L."
{
"tank_liters": 120,
"language": "en",
"ph": 6.8,
"temperature": 24,
"beginner_friendly": true,
"planted_tank": true,
"limit": 8
}
Salida: sugerencias públicas de especies con advertencias y justificación básica.
suggest_habitat_for_tank
Propósito: sugerir un plan público completo de hábitat.
Prompt: "Planifica una comunidad plantada equilibrada para 120 L."
{
"tank_liters": 120,
"language": "en",
"ph": 6.8,
"temperature": 24,
"beginner_friendly": true,
"planted_tank": true,
"co2": "low",
"light_level": "medium",
"setup_intent": "community",
"target_difficulty": "balanced",
"water_type": "FRESHWATER",
"limit": 8
}
Salida: peces, invertebrados, plantas, productos, advertencias, motivaciones, guías relacionadas y aviso de carácter orientativo.
Fertilización
search_fertilization_regimes
Propósito: buscar regímenes de fertilización y filosofías de dosificación.
Prompt: "Encuentra regímenes para tanques plantados de baja tecnología."
{
"query": "low tech",
"language": "en",
"topic": "planted",
"limit": 5
}
Salida: coincidencias públicas de regímenes con resumen, temas y URLs públicas cuando estén disponibles.
get_fertilization_regime
Propósito: recuperar un régimen de fertilización.
Prompt: "Abre el perfil del régimen de Índice Estimativo."
{
"slug": "estimative-index",
"language": "en"
}
Salida: detalles estructurados públicos de la filosofía/régimen de dosificación.
calculate_fertilizer_dose
Propósito: calcular una dosis orientativa de fertilizante para un producto del catálogo y un volumen de tanque.
Prompt: "Calcula la dosis de Seachem Flourish para 120 L."
{
"brand_name": "Seachem",
"product_name": "Flourish",
"volume_liters": 120
}
Salida: estimación orientativa de dosis y contexto de dosificación relacionado con el producto.
calculate_nutrient_gaps
Propósito: comparar mediciones de nutrientes con los objetivos.
Prompt: "Compara mis lecturas de nitrato y potasio con los objetivos de un tanque plantado."
{
"language": "en",
"volume_liters": 120,
"measurements": [
{
"kind": "nitrogen_mg_l",
"value": 5
},
{
"kind": "potassium_mg_l",
"value": 8
}
],
"targets": {
"nitrogen_mg_l": 10,
"potassium_mg_l": 15
}
}
Salida: estimaciones de brechas de nutrientes sin guardar mediciones.
calculate_weekly_dose_totals
Propósito: calcular totales semanales para un plan de dosificación no persistente.
Prompt: "Suma mi plan semanal de fertilizante líquido."
{
"language": "en",
"volume_liters": 120,
"items": [
{
"brand_name": "Seachem",
"product_name": "Flourish",
"method": "LIQUID",
"dose_value": 5,
"dose_unit": "ml",
"days_of_week": [1, 3, 5]
}
]
}
Salida: totales semanales de productos y resumen del cronograma.
generate_fertilization_plan
Propósito: generar un plan de fertilización orientativo no persistente.
Prompt: "Genera un plan equilibrado de fertilización para un tanque plantado de 120 L."
{
"language": "en",
"volume_liters": 120,
"regime": "balanced",
"targets": {
"nitrogen_mg_l": 10,
"phosphorus_mg_l": 1,
"potassium_mg_l": 15,
"iron_mg_l": 0.1
}
}
Salida: plan orientativo, objetivos de nutrientes, sugerencias de productos y aviso legal.
Calculadoras
calculate_tank_volume
Propósito: calcular estimaciones de volumen bruto y neto del acuario.
Prompt: "Calcula el volumen neto de un tanque de 60 x 30 x 36 cm."
{
"shape": "rect",
"length_cm": 60,
"width_cm": 30,
"height_cm": 36,
"substrate_depth_cm": 5,
"hardscape_displacement_liters": 4
}
Salida: estimaciones de volumen bruto y neto.
calculate_tank_weight
Propósito: estimar el peso del acuario a partir de dimensiones y materiales de entrada.
Prompt: "Estima el peso lleno de un acuario de 120 L."
{
"shape": "rect",
"length_cm": 80,
"width_cm": 35,
"height_cm": 45,
"glass_thickness_mm": 8,
"substrate_depth_cm": 6,
"hardscape_weight_kg": 12,
"equipment_weight_kg": 5
}
Salida: estimación orientativa del peso total y desglose de componentes.
calculate_water_change
Propósito: calcular volumen de cambio de agua, totales semanales y estimaciones de dilución.
Prompt: "¿Cuánta agua es un cambio del 30 por ciento en 120 L dos veces por semana?"
{
"volume_liters": 120,
"change_percent": 30,
"changes_per_week": 2
}
Salida: volumen por cambio y estimaciones totales semanales.
calculate_water_chemistry
Propósito: calcular conversiones de dureza, CO2, salinidad y mezcla de agua.
Prompt: "Estima el CO2 a partir de pH 6.8 y KH 4."
{
"co2": {
"ph": 6.8,
"kh_dkh": 4
},
"general_hardness": {
"unit": "dgh",
"value": 8
}
}
Salida: conversiones públicas de química y estimaciones orientativas.
convert_units
Propósito: convertir unidades relevantes para acuarios.
Prompt: "Convierte 120 litros y 24 C."
{
"volume": {
"unit": "l",
"value": 120
},
"temperature": {
"unit": "c",
"value": 24
}
}
Salida: valores convertidos para las unidades compatibles.
calculate_equipment_requirements
Propósito: calcular requisitos orientativos de calentador, iluminación y electricidad.
Prompt: "Estima las necesidades de calentador e iluminación para un acuario de 120 L."
{
"heater": {
"volume_liters": 120,
"ambient_c": 20,
"target_c": 25,
"insulation": "normal"
},
"lighting": {
"volume_liters": 120,
"lumens": 3600
},
"electricity": {
"wattage": 100,
"hours_per_day": 8,
"cost_per_kwh": 0.25
}
}
Salida: estimaciones orientativas de equipos y resumen de uso/costo eléctrico.
Estado de Descubrimiento y Directorios
| Directorio | Estado |
|---|---|
| Registro Oficial MCP | Publicado como bio.atlarium/habitat-database; la versión 2.0.3 está activa y es la más reciente. |
| GitHub | Repositorio público canónico de código fuente. |
| Glama | Propiedad verificada; listado saludable con 39 herramientas y descripción canónica V2. |
| Smithery | Listado publicado; la producción expone la versión 2.0.3, 39 herramientas y 9 prompts, mientras la actualización del directorio sigue pendiente. |
| MCP.so | Listado público; la actualización 2.0.2 está a la espera del procesamiento del directorio. |
| PulseMCP | Listado público; verifica la política de insignias antes de añadir una. |
| mcpservers.org | Listado público en techgardeners/atlarium-mcp; aún no se ha añadido insignia. |
| MCPRepository | Listado publicado, verificado por su página pública. |
| MCP Market | Listado público con repositorio canónico y metadatos de herramientas de solo lectura. |
| MCP Scoreboard | Existe un listado público sin puntuación; no se reclama ninguna insignia de puntuación. |
| MCP Queen | Página pública de evidencia verificada con sondeo de protocolo en vivo. |
El seguimiento de publicaciones y el texto de envío reutilizable se encuentran en
config/distribution-registry.json, docs/publication-checklist.md,
docs/directory-submission-payloads.md y docs/mcp-submission-cockpit.md.
Los objetivos pendientes, bloqueados y rechazados permanecen en el registro operativo y
no se presentan como listados públicos aceptados.
Desarrollo Local
pnpm install
cp .env.example .env
pnpm dev
Por defecto, el servidor escucha en http://localhost:43118.
Desarrollo local contra la aplicación Atlarium:
ATLARIUM_API_BASE_URL=http://localhost:43117/api/public/mcp/v1 pnpm dev
Configuración
MCP_PUBLIC_BASE_URL: URL base pública, valor predeterminado de producciónhttps://mcp.atlarium.bio.ATLARIUM_API_BASE_URL: URL base pública de solo lectura de la API de Atlarium.MCP_ALLOWED_HOSTS: lista de permitidos de hosts separada por comas para protección contra rebinding de DNS.MCP_TRUST_PROXY: configuración de confianza del proxy Express; el valor predeterminado1asume un proxy inverso de confianza en producción.ATLARIUM_API_TIMEOUT_MS: tiempo de espera en milisegundos para la API pública ascendente (predeterminado15000).MCP_PUBLIC_PROBE_ATTEMPTS: intentos para monitores públicos de solo lectura (predeterminado3).MCP_PUBLIC_PROBE_RETRY_DELAY_MS: retraso inicial de reintento para monitores públicos, duplicado tras cada fallo (predeterminado1000).ATLARIUM_API_RESPONSE_MAX_BYTES: tamaño máximo de respuesta JSON ascendente.OPENAI_APPS_CHALLENGE_TOKEN: token público de verificación de dominio de OpenAI Apps servido desde/.well-known/openai-apps-challenge.
Los despliegues de producción deben ejecutarse detrás de un proxy inverso o
Ingress que termine TLS y sobrescriba X-Forwarded-For, X-Forwarded-Host y
X-Forwarded-Proto antes de que el tráfico llegue a este servidor.
Puerta de Calidad
pnpm lint
pnpm typecheck
pnpm test
pnpm build
pnpm audit:prod
docker build -t atlarium-mcp:local .
Con un servidor local en ejecución:
pnpm mcp:conformance
Con DNS de producción y TLS activos:
pnpm mcp:monitor:public
pnpm directories:submit -- --check
pnpm mcp:validate:public
pnpm mcp:conformance:public
Contribuciones
Consulta CONTRIBUTING.md. Los cambios públicos en herramientas deben actualizar la implementación
del servidor, las pruebas, los metadatos de la tarjeta del servidor, server.json, README.md,
docs/mcp.md, la documentación, los ejemplos y las notas de publicación del directorio en la misma
versión.
Seguridad
Consulta SECURITY.md. No reportes problemas de seguridad sensibles en issues públicos de GitHub.
Licencia
MIT. Consulta LICENSE.