ADT MCP Server
Um servidor MCP para ABAP Development Tools (ADT) que expõe várias ferramentas de leitura de repositório ABAP por meio de uma interface padronizada.
Documentação
Servidor ADT MCP
Este repositório fornece um servidor Model Context Protocol (MCP) para ABAP Development Tools (ADT), expondo diversas ferramentas de leitura do repositório ABAP (programa, classe, função, include, interface, estrutura, tabela, where-used, etc.) por meio de uma interface MCP padronizada.
🆕 Agora inclui suporte a SAP BTP (Business Technology Platform) com autenticação JWT e utilitários de service key!
📚 Início Rápido: Consulte QUICK_START.md para instruções imediatas de configuração.
🔌 Conexões de Cliente: Consulte MCP_CLIENT_CONNECTIONS.md para conectar-se ao Cline, Claude Desktop e outros clientes MCP.
📖 Documentação: A documentação completa está disponível na pasta doc/.
Pré-requisitos
- Python 3.9+
- pip (o instalador de pacotes Python)
- Um sistema SAP ABAP em execução com serviços ADT habilitados
- Um arquivo
.envna raiz do projeto com suas configurações de conexão SAP (veja abaixo)
Configuração
-
Clone o repositório
git clone https://github.com/<your-org>/<your-repo>.git cd <your-repo>Observação: O servidor MCP agora pode ser executado a partir de qualquer diretório, não apenas do diretório do projeto. Consulte REMOTE_CONNECTION_GUIDE.md para detalhes.
Opções de Transporte: O servidor suporta múltiplos protocolos de transporte: STDIO (padrão), SSE e Streamable HTTP.
-
Crie e ative um ambiente virtual
python -m venv .venv source .venv/bin/activate # Linux/macOS .\.venv\Scripts\activate # Windows -
Instale as dependências
pip install mcp "mcp[cli]"Em seguida, instale:
pip install -r requirements.txt -
Configure as variáveis de ambiente
Copie o exemplo
.env.examplepara.enve preencha com suas credenciais SAP:Para Sistemas On-Premise (Autenticação Básica)
SAP_AUTH_TYPE=basic SAP_URL=https://my.sap.system:443 SAP_CLIENT=100 SAP_USER=YOUR_USER SAP_PASS=YOUR_PASS SAP_VERIFY_SSL=true # Optional timeout configuration (in seconds) SAP_TIMEOUT_DEFAULT=45 # Default timeout (45 seconds) SAP_TIMEOUT_CSRF=15 # CSRF token timeout (15 seconds) SAP_TIMEOUT_LONG=60 # Long operations timeout (60 seconds)Para Sistemas BTP (Autenticação JWT)
SAP_AUTH_TYPE=jwt SAP_URL=https://your-system.abap.region.hana.ondemand.com SAP_JWT_TOKEN=eyJhbGciOiJSUzI1NiIsImp... SAP_VERIFY_SSL=true # Optional timeout configuration (in seconds) SAP_TIMEOUT_DEFAULT=45 # Default timeout (45 seconds) SAP_TIMEOUT_CSRF=15 # CSRF token timeout (15 seconds) SAP_TIMEOUT_LONG=60 # Long operations timeout (60 seconds)💡 Dica: Use os utilitários BTP incluídos para gerar arquivos .env automaticamente a partir de service keys!
🚀 Integração BTP
Este servidor agora inclui suporte abrangente a SAP BTP com:
- Autenticação por Token JWT para sistemas ABAP BTP
- Análise e parsing de Service Keys
- Geração automática de .env a partir de service keys BTP
- Utilitário CLI para gerenciamento fácil de configuração
Configuração Rápida do BTP
- Baixe sua service key no cockpit BTP
- Gere o arquivo .env usando o utilitário CLI:
python btp_env_generator.py --service-key service-key.json --username your-user@company.com --prompt-password - Use o arquivo .env gerado em seu projeto
Para detalhes completos da integração BTP, consulte BTP_INTEGRATION_GUIDE.md.
Ferramentas Disponíveis
Ferramentas do Repositório ABAP
get_program_source_mcp– Recupera o código-fonte do programa ABAPget_class_source_mcp– Recupera o código-fonte da classe ABAPget_function_group_source_mcp– Recupera o código-fonte do grupo de funçõesget_function_source_mcp– Recupera o código-fonte do módulo de funçãoget_include_source_mcp– Recupera o código-fonte do includeget_interface_source_mcp– Recupera o código-fonte da interfaceget_structure_source_mcp– Recupera a definição da estruturaget_table_source_mcp– Recupera a definição da tabelaget_table_contents_mcp– Busca dados da tabela (máximo de linhas padrão: 100)get_package_structure_mcp– Recupera metadados do pacoteget_type_info_mcp– Recupera informações de tipoget_transaction_properties_mcp– Recupera propriedades da transaçãoget_search_objects_mcp– Busca rápida por objetos do repositórioget_usage_references_mcp– Recupera referências where-used para qualquer objetoget_cds_source_mcp– Recupera o código-fonte da visão CDSget_metadata_extension_source_mcp– Recupera o código-fonte da extensão de metadadosget_sql_query_mcp– Executa consultas SQL freestyleget_enhancements_mcp– Descobre implementações de enhancement
🆕 Ferramentas BTP
generate_env_from_service_key_file_mcp– Gera .env a partir do arquivo de service keygenerate_env_from_service_key_json_mcp– Gera .env a partir do JSON da service keyparse_btp_service_key_mcp– Analisa e faz parsing de service keysget_btp_connection_status_mcp– Verifica a configuração BTP atual
Solução de Problemas
Erro "MCP error -32000: Connection closed"
Se você receber este erro ao conectar a partir de outro diretório:
-
Certifique-se de usar o caminho completo para o servidor:
python /full/path/to/mcp-adt/mcp_server.py -
Verifique a configuração do cliente MCP:
{ "mcpServers": { "adt-server": { "command": "python", "args": ["/full/path/to/mcp-adt/mcp_server.py"] } } } -
Execute o teste de conexão:
python /path/to/mcp-adt/test_remote_connection.py -
Verifique os logs:
- O arquivo de log é criado no diretório do projeto:
mcp_server.log - Verifique se há erros de importação ou configuração
- O arquivo de log é criado no diretório do projeto:
Outros Problemas Comuns
- ModuleNotFoundError: Certifique-se de que todas as dependências estejam instaladas:
pip install -r requirements.txt - Problemas com o arquivo .env: O arquivo é pesquisado automaticamente no diretório do projeto
- Problemas de permissão: No Linux/macOS, você pode precisar de
chmod +x mcp_server.py
Para informações detalhadas, consulte REMOTE_CONNECTION_GUIDE.md