grand-lyon-mcp

Servidor MCP local somente leitura que agrega dados abertos da Métropole de Lyon (TCL, Vélo'v, estacionamento, trânsito, equipamentos, resíduos) por meio de 10 ferramentas de negócio. Fixtures offline sem credenciais; modo ao vivo com conta DataGrandLyon. Projeto independente, não afiliado à Métropole.

Documentação

grand-lyon-mcp

CI License: MIT Python

Um servidor MCP local para dados abertos da Métropole de Lyon. Dez ferramentas somente leitura fornecem partidas TCL, estacionamento, acessibilidade, instalações, resíduos, opções de viagem e briefings pessoais. Opções de viagem e briefings também usam dados Vélo'v.

Ten MCP tools use application services, local SQLite data, and either fixture or live providers. GTFS fallback stays theoretical.

O servidor usa stdio. Os logs do aplicativo vão para stderr. Os resumos das ferramentas estão em francês. Ele executa com fixtures locais quando o modo offline está ativado ou quando as credenciais DataGrandLyon estão ausentes.

Instalar a partir da fonte

Requisitos: Python 3.12 ou posterior e uv. CI verifica Python 3.12 e 3.13. Uma conta DataGrandLyon é opcional.

git clone https://github.com/ThomasCrouzet/mcp-grand-lyon.git
cd mcp-grand-lyon
uv sync --locked --all-extras --dev
uv run grand-lyon-mcp setup --yes --offline --skip-install

A configuração copia modelos de configuração empacotados e migra o banco de dados SQLite local. Para configuração interativa ao vivo, execute uv run grand-lyon-mcp setup. A configuração ao vivo armazena credenciais em um arquivo de configuração do usuário com modo 0600.

Importe as paradas e o horário de demonstração empacotados:

uv run grand-lyon-mcp sync gtfs --from-file src/grand_lyon_mcp/_data/fixtures/gtfs/mini_gtfs.zip
uv run grand-lyon-mcp doctor
uv run grand-lyon-mcp smoke

As datas dos fixtures são fixas. São dados de demonstração, não partidas atuais. O comando smoke é um diagnóstico; ele pode relatar resultados de ferramentas indisponíveis. Para verificações de sucesso rigorosas, use o procedimento de verificação.

Conectar um cliente MCP

Para um checkout da fonte, gere um bloco de configuração com caminhos absolutos:

uv run grand-lyon-mcp client-config

Exemplo:

{
  "mcpServers": {
    "grand-lyon": {
      "command": "/absolute/path/mcp-grand-lyon/scripts/run_mcp.sh",
      "args": ["serve", "--transport", "stdio"]
    }
  }
}

O wrapper carrega credenciais locais e inicia o servidor. Um servidor stdio aguarda um cliente em stdin; ele não mostra um prompt interativo. Consulte clientes MCP para instalações via wheel e caminhos de credenciais.

Ferramentas

FerramentaFinalidade
lyon_resolve_placeResolver um endereço, parada ou local pessoal
lyon_next_departuresPartidas TCL em tempo real com fallback teórico GTFS
lyon_mobility_statusAlertas de trânsito, incidentes de acessibilidade e eventos rodoviários
lyon_trip_optionsComparar modos de viagem
lyon_parking_optionsEstacionamento público e opções de estacionamento dissuasivo
lyon_accessibility_checkEvidências de acessibilidade disponíveis
lyon_nearby_facilitiesInstalações próximas
lyon_environment_briefIndicadores ambientais, onde suportados
lyon_waste_dropoffClassificar resíduos e encontrar instalações de coleta
lyon_personal_briefingCriar um briefing a partir de um perfil local

Consulte a referência de ferramentas para argumentos, limites e status de resultados. Resultados GTFS são sempre teóricos. A capacidade de estacionamento nunca se torna uma contagem inventada de vagas disponíveis. Dados de acessibilidade ausentes significam unknown.

Configuração e dados

Modelos de configuração e fixtures são instalados com o pacote em grand_lyon_mcp/_data/. Arquivos do usuário usam os caminhos de platformdirs.

  • Configuração Linux: ~/.config/grand-lyon-mcp/
  • Configuração macOS: ~/Library/Application Support/grand-lyon-mcp/
  • Encontre o caminho atual: grand-lyon-mcp env --config-dir
  • Substitua caminhos com GRAND_LYON_MCP_CONFIG_DIR, GRAND_LYON_MCP_DATA_DIR e GRAND_LYON_MCP_DB_PATH.
  • Ative o modo offline com GRAND_LYON_MCP_OFFLINE=true.

A CLI não carrega o .env do checkout automaticamente. O wrapper e os alvos de runtime do Makefile carregam. Consulte Operações para sincronização GTFS, manutenção SQLite, descoberta de fontes, limites de cache e solução de problemas.

Desenvolvimento e verificação

uv sync --locked --all-extras --dev
make quality

O portão de qualidade verifica formatação, lint, tipos estritos e testes offline com um mínimo de 85% de cobertura. Verificações separadas de wheel instalado iniciam processos CLI e MCP fora do checkout. Elas exigem resultados de fixtures não vazios e retêm transcrições de protocolo. CI envia evidências de qualidade e protocolo. Consulte Testes e Contribuição.

Limites e privacidade

  • O transporte MCP é somente stdio.
  • O roteamento Transitous é opcional e desativado por padrão. Sem um roteador, a duração da viagem TCL pode ficar indisponível.
  • Indicadores ambientais ao vivo não são configurados. Eles retornam um aviso explícito de indicador não suportado.
  • Fixtures e simulações HTTP verificam o comportamento local, não a disponibilidade upstream.
  • Perfis, briefings e histórico Vélo'v permanecem no armazenamento SQLite local. Não há telemetria. Geocodificação e roteamento ao vivo enviam os locais ou coordenadas necessários aos seus provedores.

Documentação

Licença

Código: MIT. Dados têm licenças específicas da fonte; consulte Atribuições. Este projeto é independente da Métropole de Lyon, SYTRAL Mobilités, Keolis-TCL e JCDecaux. Seus nomes e marcas identificam serviços.