Skip to main content
Glama

MCP Server — Delphi 7 (delphi7)

Servidor MCP (Model Context Protocol) que expõe o índice completo da RTL + VCL do Delphi 7 como ferramentas para agentes de IA. O objetivo é tornar o agente mais certeiro ao propor código Delphi 7 legado, evitando "modernizar" APIs que não existem nessa versão (ex.: TList<T>, UnicodeString) e reduzindo tentativas erradas (e gasto de tokens).

O que ele faz

O servidor lê artefatos gerados offline a partir do source .pas do IDE (RTL + VCL) e responde consultas precisas e rápidas:

Consulta

Ferramenta

Exemplo de uso

Assinatura exata de um símbolo

lookup_symbol

StrToInt, TCustomGrid

Busca por nome incerto (substring)

search_symbols

StrToIntDef, Copy

Membros de uma classe, com herança opcional

get_members

TCustomGrid (inherited=True)

Interface pública compacta de uma unit

unit_interface

Grids, SysUtils

Trecho do source original ao redor de um símbolo

source_context

StrToInt

Lista de units indexadas, com prefixo

list_units

SySysUtils

Lookups são case-insensitive (como o próprio Delphi). Respostas são truncadas com aviso para não estourar o contexto do agente.

Related MCP server: Satori

Como funciona

[Source RTL/VCL .pas]  →  build_index.py (offline, 1×)  →  delphi7_index/
                                                              ├─ symbols.json   (símbolo → unit + assinatura + linha)
                                                              ├─ classes.json   (hierarquia de herança)
                                                              └─ api_index/     (interface pública por unit)

[agente/opencode]  ⇄  server.py (MCP)  ⇄  delphi7_index/
  • build_index.py parseia os .pas uma vez e gera os JSONs que o servidor carrega em memória (lookup O(1) via dict, sem dependências externas).

  • d7_intrinsics.py traz a tabela curada dos intrínsecos do compilador (Length, Copy, Inc, WriteLn...) que não têm declaração em .pas.

  • server.py é o processo MCP (FastMCP), expondo as 6 ferramentas.

Estrutura do projeto

mcp_delphi7/
├── server.py            # servidor MCP (FastMCP), ponto de entrada
├── build_index.py       # gera o índice a partir do source .pas
├── d7_intrinsics.py     # tabela de intrínsecos do compilador
├── verifica.py          # suite de verificação (28+ checks)
├── ref/delphi7/         # fonte de referência (RTL: Rtl/, Vcl/)
├── delphi7_source/      # source original do IDE (entrada do build)
├── delphi7_index/       # índice gerado: symbols.json, classes.json, api_index/
├── delphi7_help/        # help do Delphi 7 (texto), consulta manual
└── PLANO_DELPHI7_MCP.md # planejamento/estado do projeto

Requisitos

  • Linux (testado) ou Windows com Python 3.x (3.14 usado no desenvolvimento)

  • Python 3.10+ e pip

Instalação

cd /mnt/t/projetos/mcp_servers/mcp_delphi7

# 1. ambiente virtual
python3 -m venv .venv

# 2. dependências (SDK oficial mcp + FastMCP)
.venv/bin/pip install "mcp>=1.0" fastmcp

Construção do índice (offline, re-rodável)

O índice já vem gerado em delphi7_index/. Para reconstruí-lo (após alterar o parser ou atualizar o source):

# usa SRC_ROOT e OUT_DIR padrão (delphi7_source → delphi7_index)
.venv/bin/python build_index.py

# ou explicitamente:
.venv/bin/python build_index.py delphi7_source delphi7_index

Isso produz symbols.json (~36k símbolos), classes.json (~1k classes) e a pasta api_index/ (um arquivo .txt por unit).

Configuração

O servidor é configurado por variáveis de ambiente:

Variável

Padrão

Descrição

DELPHI7_TRANSPORT

stdio

stdio ou http

DELPHI7_HOST

0.0.0.0

host do transporte HTTP

DELPHI7_PORT

8747

porta do transporte HTTP

DELPHI7_INDEX

<projeto>/delphi7_index

caminho do índice (opcional)

Os paths no índice são resolvidos relativos à raiz do projeto, então o servidor funciona com qualquer cwd.

Executando

stdio (padrão — usado por clientes MCP locais)

.venv/bin/python server.py

HTTP

DELPHI7_TRANSPORT=http .venv/bin/python server.py
# escuta em http://0.0.0.0:8747/mcp

Como serviço systemd (modo HTTP)

Exemplo de unit em ~/.config/systemd/user/delphi7-mcp.service:

[Unit]
Description=Delphi 7 MCP server

[Service]
Environment=DELPHI7_TRANSPORT=http
WorkingDirectory=/mnt/t/projetos/mcp_servers/mcp_delphi7
ExecStart=/mnt/t/projetos/mcp_servers/mcp_delphi7/.venv/bin/python server.py
Restart=on-failure

[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable --now delphi7-mcp
systemctl --user status delphi7-mcp

Verificação

verifica.py roda o servidor em stdio e asserta as respostas esperadas para uma série de símbolos/classes conhecidas (incl. regressões do parser). Sai com código diferente de zero se algo falhar:

.venv/bin/python verifica.py

Uso num agente (ex.: opencode)

Registre o servidor como MCP local na configuração do agente apontando para o executável do projeto, e combine com um AGENTS.md que instrua a consultar as ferramentas do delphi7 antes de propor qualquer símbolo/API. Convenção sugerida:

Antes de propor código/API Delphi 7, consulte as tools do servidor delphi7 (lookup_symbol, get_members, unit_interface...). Não invente assinaturas; Delphi 7 é antigo e não tem generics, UnicodeString, etc.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that indexes local Python projects into a SQLite database to enable efficient symbol searching and dependency tracking. It allows users to find function or class definitions, trace module imports, and read file contents through natural language interfaces.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Agent-safe code retrieval MCP server that indexes repositories and provides semantic search, file navigation, call graph analysis, and bounded file reading tools for coding agents.
    2,731,155 npm
    3
    AGPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    MCP server that indexes your codebase's public API at startup and serves it via compact tool responses, saving tokens vs reading source files.
    5
    21
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that exposes the Symbols/DOMQL v3 AI assistant capabilities to any MCP-compatible platform. Enables generating components, pages, projects, and more from natural language, as well as searching documentation and reviewing code.
    MIT