Skip to main content
Glama
ggampp
by ggampp
README.md
# SAP ADT DDIC MCP Server

Servidor MCP local para consultar e manipular objetos ABAP/DDIC via ADT REST.
As credenciais e parametros de conexao podem vir do ambiente ou de um `.env`.

## Ferramentas

- `sap_adt_search_objects`: pesquisa objetos no RIS/ADT.
- `sap_adt_get_object_metadata`: le metadados e links de um objeto ADT.
- `sap_adt_read_source`: le o source textual e retorna `etag`.
- `sap_adt_read_table_data`: retorna dados de uma tabela/view DDIC via ADT Data Preview.
- `sap_adt_update_source`: atualiza source textual com `etag` obrigatorio e protecao por prefixos configuraveis.
- `sap_adt_upsert_source`: le o `etag` atual, atualiza source textual e opcionalmente ativa.
- `sap_adt_activate_objects`: tenta ativar objetos por URI ADT.
- `sap_adt_create_table`: cria tabela DDIC transparente.
- `sap_adt_create_include`: cria include ABAP `PROG/I`, grava source e opcionalmente ativa.
- `sap_adt_create_ddls`: cria DDLS/CDS, grava source e opcionalmente ativa.
- `sap_gateway_call`: chama endpoints OData/Gateway com `sap-client` e CSRF automaticos.
- `sap_gateway_test_crud`: testa `POST`, `PUT` e `DELETE` em um entity set OData.
- `sap_adt_create_gateway_crud_includes`: gera includes `*_CREATE`, `*_UPDATE` e `*_DELETE` para CRUD simples em tabela.

Exemplo de chamada:

```json
{
  "table_name": "YPOC_STATUS",
  "max_rows": 100,
  "columns": []
}
```

## Execucao

```powershell
python server.py
```

O servidor usa transporte MCP stdio.

## Organizacao do codigo

- `server.py`: ponto de entrada MCP e compatibilidade para scripts antigos.
- `sap_adt/`: cliente ADT, configuracao, XML, source, ativacao, DDIC e Data Preview.
- `tools/`: registro das ferramentas expostas pelo MCP.

## Variaveis

Variaveis obrigatorias:

```env
SAP_ADT_BASE_URL=https://seu-sap.example.com:44300
SAP_ADT_CLIENT=100
SAP_USER=GUILHERME
SAP_PASSWORD=...
```

Variaveis opcionais:

```env
SAP_ADT_LANG=EN
SAP_ADT_VERIFY_SSL=true
SAP_ADT_TIMEOUT=30
SAP_ADT_USER_AGENT=sap-adt-ddic-mcp/0.1.0
SAP_ADT_ALLOWED_OBJECT_PREFIXES=Y,Z,/ABC/
SAP_ADT_ENV_FILE=C:\caminho\para\outro.env
```

Notas:

- Use `SAP_ADT_VERIFY_SSL=false` apenas para SAPs com certificado interno/autoassinado.
- `SAP_ADT_ALLOWED_OBJECT_PREFIXES` protege ferramentas de escrita. Use `*` somente se quiser permitir escrita em qualquer namespace.
- Tambem sao aceitas as variaveis `SAP_ADT_USER` e `SAP_ADT_PASSWORD`.