Python As400
БесплатноНе проверенEnables AI assistants to securely interact with IBM i (AS/400) systems via ODBC, supporting SQL queries, CL commands, source code reading, compilation, and spoo
Описание
Enables AI assistants to securely interact with IBM i (AS/400) systems via ODBC, supporting SQL queries, CL commands, source code reading, compilation, and spoolfile analysis.
README
Python 3.10+ License: MIT MCP Compatible
Servidor MCP (Model Context Protocol) que conecta asistentes de IA con sistemas AS/400 (IBM i) de forma segura via ODBC.
Permite que un asistente de IA consulte bases de datos, lea codigo fuente, compile programas y analice spoolfiles en un IBM i — todo con controles de seguridad estrictos que impiden operaciones destructivas.
Herramientas disponibles
| Herramienta | Descripcion | Ejemplo |
|---|---|---|
execute_sql |
Ejecuta consultas SQL de solo lectura | SELECT * FROM QSYS2.SYSTABLES FETCH FIRST 5 ROWS ONLY |
execute_cl_command |
Ejecuta comandos CL permitidos (whitelist) | DSPFD FILE(MYLIB/MYFILE) OUTPUT(*OUTFILE) OUTFILE(QTEMP/FDA) |
read_source_member |
Lee el codigo fuente de un miembro | biblioteca='MYLIB', archivo_fuente='QRPGLESRC', miembro='MYPGM' |
compile_program |
Compila un programa (RPG, CL, COBOL, C) | library='MYLIB', member='MYPGM', command='CRTBNDRPG' |
read_spoolfile |
Lee spoolfiles (resultados de compilacion) | Sin parametros lista los 10 mas recientes |
Seguridad
Este servidor esta disenado para que la IA ayude sin riesgo. La filosofia es: analisis y compilacion si, destruccion nunca.
SQL — Solo lectura
- Solo se permiten
SELECT,WITHyVALUES - Se bloquean
;(statement stacking),SELECT INTO,CALL - Se eliminan comentarios SQL antes de evaluar
- Si no se especifica limite, se agrega
FETCH FIRST 1000 ROWS ONLYautomaticamente
Comandos CL — Whitelist estricta
Solo se permiten comandos especificos. Todo lo demas es rechazado.
Permitidos:
| Categoria | Comandos |
|---|---|
| Visualizacion | DSP* (DSPFD, DSPFFD, DSPPGMREF, DSPJOBLOG, DSPOBJD, DSPDBR, etc.) |
| Verificacion | CHKOBJ |
| Compilacion | CRTBNDRPG, CRTRPGMOD, CRTBNDCL, CRTSQLRPGI, CRTPGM, CRTSRVPGM, CRTBNDCBL, CRTSQLCBLI, CRTCMOD, CRTBNDC |
| Sesion | ADDLIBLE, RMVLIBLE, CHGCURLIB |
| Overrides | OVRDBF, DLTOVR |
Bloqueados (ejemplos):
DLTOBJ, DLTF, DLTLIB, CLRPFM, CHGOBJ, GRTOBJAUT, RVKOBJAUT, CALL, SBMJOB, CPYF, MOVOBJ, RNMOBJ, RUNSQLSTM y cualquier otro comando no listado arriba.
Identificadores validados
Todos los nombres de biblioteca, archivo y miembro se validan contra el patron AS/400: 1-10 caracteres, alfanumerico + #, @, $. Esto previene inyeccion SQL en sentencias DDL.
Errores sanitizados
Los mensajes de error nunca exponen credenciales, connection strings ni rutas internas del sistema.
Prerequisitos
- Python 3.10 o superior
- IBM i Access ODBC Driver instalado (descargar de IBM)
- Acceso a un sistema IBM i (AS/400) con usuario y contrasena
Instalacion
1. Clonar el repositorio
git clone https://github.com/tu-usuario/as400-mcp-server.git
cd as400-mcp-server
2. Crear entorno virtual e instalar dependencias
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
pip install -e .
3. Configurar credenciales
cp .env.example .env
# Editar .env con tus credenciales de IBM i
4. Probar que funciona
python server.py
El servidor arranca via stdio esperando mensajes MCP (JSON-RPC).
Configuracion con Claude Desktop
Agrega lo siguiente a tu archivo de configuracion de Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"as400": {
"command": "python",
"args": ["C:/ruta/a/tu/as400-mcp-server/server.py"],
"env": {
"DB_HOST": "tu-host-ibmi.com",
"DB_USER": "TU_USUARIO",
"DB_PASS": "TU_PASSWORD"
}
}
}
}
Nota: Tambien podes definir las variables en
.enven vez de en el JSON.
Ejemplos de uso
Consultar tablas del sistema
"Mostrame las primeras 10 tablas de la biblioteca MYLIB"
→ execute_sql("SELECT TABLE_NAME, TABLE_TYPE FROM QSYS2.SYSTABLES WHERE TABLE_SCHEMA = 'MYLIB' FETCH FIRST 10 ROWS ONLY")
Ver estructura de un archivo
"Que campos tiene el archivo CUSTOMERS en MYLIB?"
→ execute_cl_command("DSPFFD FILE(MYLIB/CUSTOMERS) OUTPUT(*OUTFILE) OUTFILE(QTEMP/FLD)")
→ execute_sql("SELECT * FROM QTEMP.FLD")
Leer codigo fuente
"Mostrame el codigo del programa CALCPRICE"
→ read_source_member(biblioteca='MYLIB', archivo_fuente='QRPGLESRC', miembro='CALCPRICE')
Compilar y ver errores
"Compila el programa CALCPRICE y decime si hay errores"
→ compile_program(library='MYLIB', source_file='QRPGLESRC', member='CALCPRICE')
→ read_spoolfile()
Estructura del proyecto
as400-mcp-server/
├── server.py # Servidor MCP principal
├── .env.example # Template de configuracion
├── .gitignore # Archivos excluidos de git
├── pyproject.toml # Metadata del proyecto Python
├── LICENSE # Licencia MIT
└── README.md # Esta documentacion
Variables de entorno
| Variable | Descripcion | Requerida |
|---|---|---|
DB_HOST |
Hostname o IP del sistema IBM i | Si |
DB_USER |
Usuario de IBM i | Si |
DB_PASS |
Contrasena de IBM i | Si |
Contribuir
Las contribuciones son bienvenidas. Si queres agregar un comando CL a la whitelist o una nueva herramienta:
- Fork del repositorio
- Crea una branch (
git checkout -b feature/mi-feature) - Commit de tus cambios (
git commit -m 'Agregar mi feature') - Push a la branch (
git push origin feature/mi-feature) - Abri un Pull Request
Licencia
Este proyecto esta bajo la Licencia MIT.
Установить Python As400 в Claude Desktop, Claude Code, Cursor
unyly install python-mcp-as400Ставит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add python-mcp-as400 -- uvx --from git+https://github.com/LorenteFacundo/python-mcp-as400 as400-mcp-serverFAQ
Python As400 MCP бесплатный?
Да, Python As400 MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Python As400?
Нет, Python As400 работает без API-ключей и переменных окружения.
Python As400 — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Python As400 в Claude Desktop, Claude Code или Cursor?
Открой Python As400 на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
wenb1n-dev/SmartDB_MCP
A universal database MCP server supporting simultaneous connections to multiple databases. It provides tools for database operations, health analysis, SQL optim
автор: wenb1n-devPostgres Server
This server enables interaction with PostgreSQL databases through the Model Context Protocol, optimized for the AWS Bedrock AgentCore Runtime. It provides tools
автор: madhurprashPostgres
Query your database in natural language
автор: AnthropicPostgreSQL
Read-only database access with schema inspection.
автор: modelcontextprotocolCompare Python As400 with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории data
