delphi7
MCP server that exposes the complete Delphi 7 RTL/VCL index as tools for AI agents, enabling precise lookups for symbols, class members, unit interfaces, and source contexts to generate accurate legacy Delphi 7 code.
README
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 |
Sy → SysUtils |
Lookups são case-insensitive (como o próprio Delphi). Respostas são truncadas com aviso para não estourar o contexto do agente.
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.pyparseia os.pasuma vez e gera os JSONs que o servidor carrega em memória (lookup O(1) via dict, sem dependências externas).d7_intrinsics.pytraz 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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.