Atlarium Habitat Database MCP

Datos estructurados de acuarios, marinos, terrarios y paludarios para agentes de IA.

Documentación

Atlarium Habitat Database MCP social preview

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.

Public MCP Monitor MCP Directory Audit MIT License Official MCP Registry Version 2.0.3 Transport: Streamable HTTP Read-only MCP tools Prompts enabled Auth none

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

SuperficieValor
Endpoint MCPhttps://mcp.atlarium.bio/mcp
Versión MCP2.0.3
TransporteStreamable HTTP
Autenticaciónninguna
Superficie de herramientas39 herramientas públicas de solo lectura
Prompts9 prompts públicos guiados
Widget de appsui://widget/habitat-explorer.v4.html
Tarjeta de servidorhttps://mcp.atlarium.bio/.well-known/mcp/server-card.json
Documentación humanahttps://atlarium.bio/mcp
Registro oficial de MCPbio.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 usoHerramientas públicas
Investigación de especiesBusca peces, animales acuáticos y plantas, luego recupera perfiles estructurados localizados.
Compatibilidad de tanqueCompara especies con restricciones de tamaño de tanque, pH, dureza y temperatura.
Triage de diagnósticoBusca algas, enfermedades acuáticas, problemas de plantas y referencias de tratamiento desde perfiles públicos.
Selección de productosExplora categorías de productos, marcas, equipos y fertilizantes.
Soporte de fertilizaciónBusca regímenes de dosificación, calcula dosis de productos, brechas de nutrientes y totales semanales.
Calculadoras de acuarioEstima volumen de tanque, peso, cambios de agua, química del agua, conversiones de unidades y necesidades de equipo.
Planificación de hábitatGenera un plan de tanque de asesoramiento completo con especies, plantas, productos, advertencias, motivaciones y guías relacionadas.
Recuperación de guíasBusca 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 hostConfiguración
OpenAI Agents SDKConsulta examples/openai-agents-python para un agente de Python que se conecta al endpoint remoto Streamable HTTP.
Claude CodeEjecuta claude mcp add --transport http atlarium https://mcp.atlarium.bio/mcp, luego pide a Claude que use Atlarium.
CursorUsa el enlace profundo Add to Cursor o la raíz mcp.json.
ClineAgrega el endpoint alojado como servidor remoto Streamable HTTP; llms-install.md contiene instrucciones deterministas de configuración de agentes.
WindsurfCopia examples/windsurf/mcp_config.json en la configuración MCP de Windsurf y actualiza los servidores MCP de Cascade.
VS CodeCopia examples/vscode/mcp.json; VS Code usa type: "http" para servidores MCP remotos.
AntigravityUsa examples/antigravity/mcp.json solo en compilaciones que admitan servidores MCP remotos.
Streamable HTTP genéricoUsa los ejemplos JSON-RPC en examples/generic-streamable-http.
ChatGPT AppsLa 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:

CampoValor
URI del recursoui://widget/habitat-explorer.v4.html
Tipo MIMEtext/html;profile=mcp-app
WidgetAtlarium Habitat Explorer
Dominio del widgethttps://mcp.atlarium.bio
Modo de salidaTexto 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

ÁreaHerramientas
Peces y animales acuáticossearch_fish, get_fish_profile
Plantas acuáticassearch_plants, get_plant_profile
Productos y guíassearch_products, get_product_profile, search_guides, get_guide
Diagnósticossearch_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 productoslist_product_categories, list_product_brands, search_equipment, get_equipment_profile, search_fertilizers, get_fertilizer_profile
Compatibilidad y aguacheck_species_compatibility, get_water_parameters, suggest_species_for_tank
Fertilizaciónsearch_fertilization_regimes, get_fertilization_regime, calculate_fertilizer_dose, calculate_nutrient_gaps, calculate_weekly_dose_totals, generate_fertilization_plan
Calculadorascalculate_tank_volume, calculate_tank_weight, calculate_water_change, calculate_water_chemistry, convert_units, calculate_equipment_requirements
Planificador de hábitatsuggest_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

DirectorioEstado
Registro Oficial MCPPublicado como bio.atlarium/habitat-database; la versión 2.0.3 está activa y es la más reciente.
GitHubRepositorio público canónico de código fuente.
GlamaPropiedad verificada; listado saludable con 39 herramientas y descripción canónica V2.
SmitheryListado 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.soListado público; la actualización 2.0.2 está a la espera del procesamiento del directorio.
PulseMCPListado público; verifica la política de insignias antes de añadir una.
mcpservers.orgListado público en techgardeners/atlarium-mcp; aún no se ha añadido insignia.
MCPRepositoryListado publicado, verificado por su página pública.
MCP MarketListado público con repositorio canónico y metadatos de herramientas de solo lectura.
MCP ScoreboardExiste un listado público sin puntuación; no se reclama ninguna insignia de puntuación.
MCP QueenPá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ón https://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 predeterminado 1 asume un proxy inverso de confianza en producción.
  • ATLARIUM_API_TIMEOUT_MS: tiempo de espera en milisegundos para la API pública ascendente (predeterminado 15000).
  • MCP_PUBLIC_PROBE_ATTEMPTS: intentos para monitores públicos de solo lectura (predeterminado 3).
  • MCP_PUBLIC_PROBE_RETRY_DELAY_MS: retraso inicial de reintento para monitores públicos, duplicado tras cada fallo (predeterminado 1000).
  • 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.