python-mcp-as400
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@python-mcp-as400list the first 5 tables in library MYLIB"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AS/400 MCP Server
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 |
| Ejecuta consultas SQL de solo lectura |
|
| Ejecuta comandos CL permitidos (whitelist) |
|
| Lee el codigo fuente de un miembro |
|
| Compila un programa (RPG, CL, COBOL, C) |
|
| Lee spoolfiles (resultados de compilacion) | Sin parametros lista los 10 mas recientes |
Related MCP server: IBM i MCP Server
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,WITHyVALUESSe bloquean
;(statement stacking),SELECT INTO,CALLSe 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 |
|
Verificacion |
|
Compilacion |
|
Sesion |
|
Overrides |
|
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-server2. 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 i4. Probar que funciona
python server.pyEl 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 documentacionVariables de entorno
Variable | Descripcion | Requerida |
| Hostname o IP del sistema IBM i | Si |
| Usuario de IBM i | Si |
| 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.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/LorenteFacundo/python-mcp-as400'
If you have feedback or need assistance with the MCP directory API, please join our Discord server