Atlarium Habitat Database MCP

Dados estruturados de aquário, marinho, terrário e paludário para agentes de IA.

Documentação

Atlarium Habitat Database MCP social preview

Atlarium Habitat Database MCP

Servidor MCP público somente leitura para dados de habitat Atlarium, diagnósticos, produtos, calculadoras e planejamento de consultoria.

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 · Documentação humana · Cartão do servidor · Documentação técnica · Exemplos de cliente

O Atlarium Habitat Database MCP dá a agentes de IA acesso estruturado a dados públicos da Atlarium e funções de consultoria para aquários, tanques marinhos, sistemas de água fria, terrários, paludários e vivários. Ele expõe 39 ferramentas públicas somente leitura para espécies, plantas, produtos, guias, algas, doenças, problemas de plantas, medicamentos, compatibilidade, fertilização, calculadoras e planejamento completo de habitat, sem expor contas Atlarium, espaços de trabalho privados, APIs administrativas ou operações de escrita.

Resumo

SuperfícieValor
Endpoint MCPhttps://mcp.atlarium.bio/mcp
Versão MCP2.0.3
TransporteStreamable HTTP
Autenticaçãonenhuma
Superfície de ferramentas39 ferramentas públicas somente leitura
Prompts9 prompts públicos guiados
Widget de appsui://widget/habitat-explorer.v4.html
Cartão do servidorhttps://mcp.atlarium.bio/.well-known/mcp/server-card.json
Documentação humanahttps://atlarium.bio/mcp
Registro Oficial MCPbio.atlarium/habitat-database

https://atlarium.bio/mcp é documentação. O endpoint canônico Streamable HTTP MCP é https://mcp.atlarium.bio/mcp.

O Que Você Pode Construir

Caso de usoFerramentas públicas
Pesquisa de espéciesPesquise peixes, animais aquáticos e plantas e recupere perfis estruturados localizados.
Compatibilidade de tanqueCompare espécies com restrições de tamanho do tanque, pH, dureza e temperatura.
Triagem de diagnósticoPesquise algas, doenças aquáticas, problemas de plantas e referências de tratamento em perfis públicos.
Seleção de produtosExplore categorias de produtos, marcas, equipamentos e fertilizantes.
Suporte à fertilizaçãoPesquise regimes de dosagem, calcule doses de produtos, lacunas de nutrientes e totais semanais.
Calculadoras de aquárioEstime volume do tanque, peso, trocas de água, química da água, conversões de unidades e necessidades de equipamento.
Planejamento de habitatGere um plano completo de tanque consultivo com espécies, plantas, produtos, avisos, motivações e guias relacionados.
Recuperação de guiasPesquise e recupere conteúdo educacional público da Atlarium.

Todas as saídas são consultivas. Verificações de compatibilidade, diagnósticos, planos de fertilização, estimativas de equipamento, calculadoras de aquário e sugestões de tanque devem ser validadas contra animais reais, equipamentos, química da água, regulamentações locais e restrições de manejo.

Início Rápido

Use qualquer cliente MCP que suporte servidores remotos Streamable HTTP:

{
  "mcpServers": {
    "atlarium": {
      "type": "streamable-http",
      "url": "https://mcp.atlarium.bio/mcp"
    }
  }
}

Exemplo remoto HTTP do Claude Code:

claude mcp add --transport http atlarium https://mcp.atlarium.bio/mcp

Verificação rápida do endpoint ativo:

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

Configuração do Cliente

Cliente ou hostConfiguração
OpenAI Agents SDKConsulte examples/openai-agents-python para um agente Python que se conecta ao endpoint remoto Streamable HTTP.
Claude CodeExecute claude mcp add --transport http atlarium https://mcp.atlarium.bio/mcp e peça ao Claude para usar o Atlarium.
CursorUse o link profundo Adicionar ao Cursor ou o mcp.json raiz.
ClineAdicione o endpoint hospedado como servidor remoto Streamable HTTP; llms-install.md contém instruções determinísticas de configuração do agente.
WindsurfCopie examples/windsurf/mcp_config.json nas configurações MCP do Windsurf e atualize os servidores MCP do Cascade.
VS CodeCopie examples/vscode/mcp.json; o VS Code usa type: "http" para servidores MCP remotos.
AntigravityUse examples/antigravity/mcp.json apenas em builds que suportam servidores MCP remotos.
Streamable HTTP genéricoUse os exemplos JSON-RPC em examples/generic-streamable-http.
ChatGPT AppsA versão de app existente 1.0.0 está aprovada no painel da OpenAI. O pacote corrigido 2.0.3 foi reenviado em 2026-08-29 com testes estáveis de taxonomia e a Plataforma OpenAI agora mostra Review. Use examples/chatgpt-apps e docs/chatgpt-review-remediation.md para notas de revisão e prompts de teste.

Estas são notas de compatibilidade, não endossos de fornecedores. Não faça afirmações de suporte de fornecedores ou diretórios para ChatGPT, Claude, Cursor, Windsurf, VS Code, Antigravity ou qualquer diretório, a menos que o fornecedor tenha aceitado a listagem.

App ChatGPT E Widget

O servidor anuncia um recurso de widget MCP Apps / ChatGPT Apps somente leitura para hosts compatíveis com Apps:

CampoValor
URI do recursoui://widget/habitat-explorer.v4.html
Tipo MIMEtext/html;profile=mcp-app
WidgetAtlarium Habitat Explorer
Domínio do widgethttps://mcp.atlarium.bio
Modo de saídaTexto JSON simples mais structuredContent

O widget renderiza resultados públicos de habitat, perfis, resumos de diagnóstico, resultados de produtos, saída de calculadoras, resumos de compatibilidade, planos de fertilização e sugestões de habitat. Ele não adiciona acesso de escrita e não expõe dados de espaço de trabalho, autenticação, administração, diário, agenda ou medições.

Capturas de tela de desenvolvimento somente do widget e uma gravação curta de demonstração estão incluídas em docs/assets/chatgpt-screenshots/ e docs/assets/chatgpt-app-demo.mp4. Capturas reais em nível de host e responsivas 390x844 estão armazenadas em docs/assets/chatgpt-screenshots/real-host/; gravação nativa iOS/Android ainda é necessária para o pacote final de revisão. O candidato v4 / 2.0.3 está ativo no endpoint MCP, mas ainda não foi aprovado como a nova versão do app ChatGPT; não descreva esse envio de app como aprovado até que a OpenAI o aceite. A versão de app existente no painel 1.0.0 está aprovada.

Superfície de Ferramentas

ÁreaFerramentas
Peixes e animais aquáticossearch_fish, get_fish_profile
Plantas aquáticassearch_plants, get_plant_profile
Produtos e guiassearch_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 produtoslist_product_categories, list_product_brands, search_equipment, get_equipment_profile, search_fertilizers, get_fertilizer_profile
Compatibilidade e águacheck_species_compatibility, get_water_parameters, suggest_species_for_tank
Fertilizaçãosearch_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
Planejador de habitatsuggest_habitat_for_tank

Toda ferramenta é registrada com anotações somente leitura: readOnlyHint: true, openWorldHint: false, destructiveHint: false, idempotentHint: true.

Prompts Guiados

O servidor anuncia prompts guiados para pesquisa de espécies, compatibilidade, planejamento de habitat, algas, doenças, problemas de plantas, seleção de produtos, fertilização e cálculos de tanque. Os prompts orientam os clientes para a mesma superfície de ferramentas públicas somente leitura; eles não adicionam novos recursos ou acesso de escrita.

Exemplos de Chamadas de Ferramentas

Cada exemplo mostra o nome da ferramenta MCP e uma entrada JSON válida mínima. Clientes MCP genéricos recebem texto JSON simples; hosts compatíveis com Apps também podem usar structuredContent.

Catálogo, plantas e guias

search_fish

Objetivo: pesquisar perfis de peixes e animais aquáticos.

Prompt: "Encontre peixes pequenos adequados para iniciantes em um tanque plantado de 90 L."

{
  "query": "tetra",
  "language": "en",
  "min_tank_liters": 40,
  "max_tank_liters": 120,
  "limit": 5
}

Saída: perfis públicos de animais correspondentes com slugs, nomes localizados, campos de resumo e URLs públicas quando disponíveis.

get_fish_profile

Objetivo: recuperar um perfil estruturado de peixe ou animal aquático.

Prompt: "Mostre-me o perfil Atlarium do Tetra Neon."

{
  "slug": "paracheirodon-innesi",
  "language": "en"
}

Saída: dados públicos do perfil, parâmetros de cuidado, taxonomia, relações e conteúdo localizado quando disponível.

search_plants

Objetivo: pesquisar perfis de plantas aquáticas.

Prompt: "Encontre plantas fáceis de primeiro ou segundo plano para tanques de baixa tecnologia."

{
  "query": "anubias",
  "language": "en",
  "difficulty": "easy",
  "limit": 5
}

Saída: perfis públicos de plantas correspondentes com posicionamento, dificuldade e URLs públicas quando disponíveis.

get_plant_profile

Objetivo: recuperar um perfil estruturado de planta aquática.

Prompt: "Abra o perfil da planta Anubias barteri."

{
  "slug": "anubias-barteri",
  "language": "en"
}

Saída: requisitos da planta, informações de crescimento, atributos estruturados e conteúdo localizado quando disponível.

search_products

Objetivo: pesquisar produtos públicos de habitat.

Prompt: "Encontre produtos de filtro para tanques de água doce."

{
  "query": "filter",
  "language": "en",
  "category": "filter",
  "limit": 5
}

Saída: resultados de produtos com informações de marca/categoria e URLs públicas de produtos quando disponíveis.

get_product_profile

Objetivo: recuperar um perfil público de produto.

Prompt: "Mostre o perfil do produto para este slug de catálogo."

{
  "slug": "seachem/prime",
  "language": "en"
}

Saída: dados públicos estruturados do produto, casos de uso, detalhes da marca e links quando disponíveis.

search_guides

Objetivo: pesquisar guias e conteúdo educacional da Atlarium.

Prompt: "Encontre guias públicos sobre ciclagem de aquário."

{
  "query": "cycling",
  "language": "en",
  "topic": "aquarium",
  "limit": 5
}

Saída: correspondências de guias com título, resumo, tópico e URLs públicas quando disponíveis.

get_guide

Objetivo: recuperar um guia público da Atlarium.

Prompt: "Abra o guia do ciclo do nitrogênio."

{
  "slug": "aquarium/nitrogen-cycle",
  "language": "en"
}

Saída: conteúdo público estruturado do guia e metadados relacionados.

Diagnósticos e referências de tratamento

search_algae

Objetivo: pesquisar perfis de diagnóstico de algas.

Prompt: "Encontre perfis de algas para poeira verde no vidro do aquário."

{
  "query": "green dust",
  "language": "en",
  "difficulty": 2,
  "limit": 5
}

Saída: correspondências de algas com sintomas, causas prováveis e orientação consultiva.

get_algae_profile

Objetivo: recuperar um perfil de alga.

Prompt: "Mostre o perfil da alga de pontos verdes."

{
  "slug": "green-spot-algae",
  "language": "en"
}

Saída: perfil público estruturado de alga com sintomas, causas, prevenção e resposta consultiva.

search_diseases

Objetivo: pesquisar perfis de doenças aquáticas.

Prompt: "Encontre perfis de doenças para pontos brancos em peixes."

{
  "query": "white spots",
  "language": "en",
  "water_type": "freshwater",
  "limit": 5
}

Saída: possíveis perfis de doenças e referências consultivas de tratamento.

get_disease_profile

Objetivo: recuperar um perfil de doença.

Prompt: "Abra o perfil da doença ictio."

{
  "slug": "ich",
  "language": "en"
}

Saída: sintomas, causas possíveis, referências de tratamento e avisos legais.

search_plant_problems

Objetivo: pesquisar perfis de deficiência, pragas e ambiente de plantas aquáticas.

Prompt: "Encontre causas para folhas amareladas em plantas de aquário."

{
  "query": "yellow leaves",
  "language": "en",
  "type": "deficiency",
  "limit": 5
}

Saída: correspondências de problemas de plantas com sintomas, causas e correções consultivas.

get_plant_problem_profile

Objetivo: recuperar um perfil de problema de planta.

Prompt: "Abra o perfil de deficiência de nitrogênio."

{
  "slug": "nitrogen-deficiency",
  "language": "en"
}

Saída: dados estruturados de deficiência/problema e orientação consultiva.

search_medicines

Objetivo: pesquisar perfis de medicamentos e produtos de tratamento para aquário.

Prompt: "Encontre referências públicas de medicamentos para tratamento de ictio."

{
  "query": "ich",
  "language": "en",
  "limit": 5
}

Saída: referências de medicamentos/tratamentos com dados públicos de perfil quando disponíveis.

get_medicine_profile

Objetivo: recuperar um perfil de medicamento.

Prompt: "Abra o perfil de um slug de medicamento."

{
  "slug": "malachite-green",
  "language": "en"
}

Saída: referência pública estruturada de medicamento, notas de uso e avisos legais.

match_diagnostic_profiles

Objetivo: corresponder texto de sintomas entre perfis de algas, doenças, problemas de plantas e medicamentos.

Prompt: "Corresponda crescimento branco difuso em tronco e sintomas de peixes estressados."

{
  "query": "white fuzzy growth and fish flashing",
  "language": "en",
  "limit": 8
}

Saída: prováveis perfis públicos de diagnóstico agrupados por relevância.

Produtos, equipamentos e fertilizantes

list_product_categories

Objetivo: listar categorias de produtos para equipamentos e fertilizantes. Prompt: "Quais categorias de equipamentos públicos estão disponíveis?"

{
  "language": "en",
  "type": "equipment"
}

Saída: nomes e identificadores de categorias públicas localizadas.

list_product_brands

Objetivo: listar marcas públicas de produtos.

Prompt: "Liste marcas que correspondam a Seachem."

{
  "language": "en",
  "query": "Seachem"
}

Saída: nomes de marcas públicas correspondentes e metadados.

search_equipment

Objetivo: pesquisar produtos de equipamentos para aquários e habitats.

Prompt: "Encontre aquecedores para um aquário de água doce."

{
  "query": "heater",
  "language": "en",
  "use_case": "freshwater",
  "limit": 5
}

Saída: correspondências de produtos de equipamentos com campos públicos estruturados do catálogo.

get_equipment_profile

Objetivo: recuperar um perfil de produto de equipamento.

Prompt: "Abra este perfil de equipamento."

{
  "slug": "eheim/thermocontrol",
  "language": "en"
}

Saída: detalhes públicos do equipamento, categoria, marca e campos de uso quando disponíveis.

search_fertilizers

Objetivo: pesquisar produtos de fertilizantes e perfis de nutrientes.

Prompt: "Encontre fertilizantes líquidos para aquários plantados."

{
  "query": "flourish",
  "language": "en",
  "category": "fertilizer",
  "limit": 5
}

Saída: correspondências de produtos de fertilizantes e metadados de nutrientes quando disponíveis.

get_fertilizer_profile

Objetivo: recuperar um perfil de fertilizante.

Prompt: "Abra este perfil de fertilizante."

{
  "slug": "seachem/flourish",
  "language": "en"
}

Saída: dados estruturados de fertilizantes, metadados de dosagem e detalhes públicos do catálogo quando disponíveis.

Sugestões de compatibilidade, água e habitat

check_species_compatibility

Objetivo: verificar compatibilidade básica entre espécies de habitat.

Prompt: "Neon Tetra e Corydoras paleatus podem conviver em um aquário plantado de 90 L?"

{
  "species": ["Paracheirodon innesi", "Corydoras paleatus"],
  "language": "en",
  "tank_liters": 90,
  "ph": 6.8,
  "temperature": 24
}

Saída: sinais consultivos de compatibilidade, avisos, justificativas e restrições.

get_water_parameters

Objetivo: recuperar parâmetros de água recomendados para um peixe ou planta.

Prompt: "Quais parâmetros de água o Neon Tetra prefere?"

{
  "slug": "paracheirodon-innesi",
  "type": "fish",
  "language": "en"
}

Saída: orientação pública sobre temperatura, pH, GH/KH e parâmetros relacionados quando disponível.

suggest_species_for_tank

Objetivo: sugerir espécies aquáticas com base no tanque e nos parâmetros de água.

Prompt: "Sugira espécies amigáveis para iniciantes em um aquário plantado de 120 L."

{
  "tank_liters": 120,
  "language": "en",
  "ph": 6.8,
  "temperature": 24,
  "beginner_friendly": true,
  "planted_tank": true,
  "limit": 8
}

Saída: sugestões públicas de espécies com avisos e justificativa básica.

suggest_habitat_for_tank

Objetivo: sugerir um plano público completo de habitat.

Prompt: "Planeje uma comunidade 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
}

Saída: peixes, invertebrados, plantas, produtos, avisos, motivações, guias relacionados e aviso consultivo.

Fertilização

search_fertilization_regimes

Objetivo: pesquisar regimes de fertilização e filosofias de dosagem.

Prompt: "Encontre regimes para aquários plantados de baixa tecnologia."

{
  "query": "low tech",
  "language": "en",
  "topic": "planted",
  "limit": 5
}

Saída: correspondências públicas de regimes com resumo, tópicos e URLs públicas quando disponíveis.

get_fertilization_regime

Objetivo: recuperar um regime de fertilização.

Prompt: "Abra o perfil do regime Estimative Index."

{
  "slug": "estimative-index",
  "language": "en"
}

Saída: detalhes públicos estruturados da filosofia/regime de dosagem.

calculate_fertilizer_dose

Objetivo: calcular uma dose consultiva de fertilizante para um produto do catálogo e volume do tanque.

Prompt: "Calcule a dose de Seachem Flourish para 120 L."

{
  "brand_name": "Seachem",
  "product_name": "Flourish",
  "volume_liters": 120
}

Saída: estimativa consultiva de dose e contexto de dosagem relacionado ao produto.

calculate_nutrient_gaps

Objetivo: comparar medições de nutrientes com metas.

Prompt: "Compare minhas leituras de nitrato e potássio com as metas de um aquário 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
  }
}

Saída: estimativas de lacunas de nutrientes sem salvar medições.

calculate_weekly_dose_totals

Objetivo: calcular totais semanais para um plano de dosagem não persistente.

Prompt: "Some meu plano 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]
    }
  ]
}

Saída: totais semanais de produtos e resumo do cronograma.

generate_fertilization_plan

Objetivo: gerar um plano consultivo não persistente de fertilização.

Prompt: "Gere um plano equilibrado de fertilização para um aquário 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
  }
}

Saída: plano consultivo, metas de nutrientes, sugestões de produtos e aviso legal.

Calculadoras

calculate_tank_volume

Objetivo: calcular estimativas de volume bruto e líquido do aquário.

Prompt: "Calcule o volume líquido de um 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
}

Saída: estimativas de volume bruto e líquido.

calculate_tank_weight

Objetivo: estimar o peso do aquário a partir de dimensões e materiais informados.

Prompt: "Estime o peso cheio de um aquário 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
}

Saída: estimativa consultiva de peso total e detalhamento dos componentes.

calculate_water_change

Objetivo: calcular volume de troca de água, totais semanais e estimativas de diluição.

Prompt: "Quanta água é uma troca de 30 por cento em 120 L duas vezes por semana?"

{
  "volume_liters": 120,
  "change_percent": 30,
  "changes_per_week": 2
}

Saída: volume por troca e estimativas totais semanais.

calculate_water_chemistry

Objetivo: calcular conversões de dureza, CO2, salinidade e mistura de água.

Prompt: "Estime o CO2 a partir de pH 6.8 e KH 4."

{
  "co2": {
    "ph": 6.8,
    "kh_dkh": 4
  },
  "general_hardness": {
    "unit": "dgh",
    "value": 8
  }
}

Saída: conversões públicas de química e estimativas consultivas.

convert_units

Objetivo: converter unidades relevantes para aquários.

Prompt: "Converta 120 litros e 24 C."

{
  "volume": {
    "unit": "l",
    "value": 120
  },
  "temperature": {
    "unit": "c",
    "value": 24
  }
}

Saída: valores convertidos para unidades suportadas.

calculate_equipment_requirements

Objetivo: calcular requisitos consultivos de aquecedor, iluminação e eletricidade.

Prompt: "Estime as necessidades de aquecedor e iluminação para um aquário 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
  }
}

Saída: estimativas consultivas de equipamentos e resumo de uso/custo de eletricidade.

Status de Descoberta e Diretório

DiretórioStatus
Registro Oficial MCPPublicado como bio.atlarium/habitat-database; a versão 2.0.3 está ativa e é a mais recente.
GitHubRepositório público canônico de código-fonte.
GlamaPropriedade verificada; listagem saudável com 39 ferramentas e descrição canônica V2.
SmitheryListagem publicada; a produção expõe a versão 2.0.3, 39 ferramentas e 9 prompts, enquanto a atualização do diretório permanece pendente.
MCP.soListado publicamente; a atualização 2.0.2 aguarda processamento do diretório.
PulseMCPListado publicamente; verifique a política de selos antes de adicionar um selo.
mcpservers.orgListado publicamente em techgardeners/atlarium-mcp; nenhum selo adicionado ainda.
MCPRepositoryListagem publicada, verificada pela sua página pública.
MCP MarketListado publicamente com repositório canônico e metadados de ferramentas somente leitura.
MCP ScoreboardListagem pública existe e permanece sem pontuação; nenhum selo de pontuação é reivindicado.
MCP QueenPágina pública de evidência verificada com sondagem de protocolo ao vivo.

O rastreamento de publicações e o texto reutilizável de envio estão em config/distribution-registry.json, docs/publication-checklist.md, docs/directory-submission-payloads.md e docs/mcp-submission-cockpit.md. Alvos pendentes, bloqueados e rejeitados permanecem no registro operacional e não são apresentados como listagens públicas aceitas.

Desenvolvimento Local

pnpm install
cp .env.example .env
pnpm dev

Por padrão, o servidor escuta em http://localhost:43118.

Desenvolvimento local com o aplicativo Atlarium:

ATLARIUM_API_BASE_URL=http://localhost:43117/api/public/mcp/v1 pnpm dev

Configuração

  • MCP_PUBLIC_BASE_URL: URL pública base, padrão de produção https://mcp.atlarium.bio.
  • ATLARIUM_API_BASE_URL: URL base pública somente leitura da API Atlarium.
  • MCP_ALLOWED_HOSTS: lista de permissões de hosts separada por vírgulas usada para proteção contra rebinding de DNS.
  • MCP_TRUST_PROXY: configuração de confiança do proxy Express; o padrão 1 assume um proxy reverso confiável em produção.
  • ATLARIUM_API_TIMEOUT_MS: tempo limite da API pública upstream em milissegundos.
  • ATLARIUM_API_RESPONSE_MAX_BYTES: tamanho máximo da resposta JSON upstream.
  • OPENAI_APPS_CHALLENGE_TOKEN: token público de verificação de domínio OpenAI Apps servido de /.well-known/openai-apps-challenge.

Implantações de produção devem ser executadas atrás de um proxy reverso com terminação TLS ou Ingress que sobrescreva X-Forwarded-For, X-Forwarded-Host e X-Forwarded-Proto antes que o tráfego chegue a este servidor.

Portão de Qualidade

pnpm lint
pnpm typecheck
pnpm test
pnpm build
pnpm audit:prod
docker build -t atlarium-mcp:local .

Com um servidor local em execução:

pnpm mcp:conformance

Com DNS de produção e TLS ativos:

pnpm mcp:monitor:public
pnpm directories:submit -- --check
pnpm mcp:validate:public
pnpm mcp:conformance:public

Contribuindo

Veja CONTRIBUTING.md. Alterações públicas de ferramentas devem atualizar a implementação do servidor, testes, metadados do server-card, server.json, README.md, docs/mcp.md, documentação, exemplos e notas de publicação de diretório na mesma versão.

Segurança

Veja SECURITY.md. Não relate problemas sensíveis de segurança em issues públicas do GitHub.

Licença

MIT. Veja LICENSE.