Skip to main content
Glama
sorodriguezz

IRIS ObjectScript MCP Server

by sorodriguezz

IRIS ObjectScript MCP Server

Model Context Protocol (MCP) server para documentación de IRIS ObjectScript. Proporciona acceso a documentación, ejemplos y herramientas de búsqueda para el desarrollo con InterSystems IRIS.

🚀 Inicio Rápido

Desarrollo Local

# Instalar dependencias
npm install

# Compilar TypeScript
npm run build

# Ejecutar en modo desarrollo
npm run dev

# Ejecutar con inspector MCP
npm run dev:ins

Deployment con Docker

# Ir al directorio de deployment
cd deploy/

# Setup completo
./docker-manage.sh build
./docker-manage.sh start
./setup-volumes.sh

# Verificar funcionamiento
./docker-manage.sh status

📁 Estructura del Proyecto

iris-mcp/
├── src/                    # Código fuente TypeScript
│   ├── server.ts          # Servidor MCP principal
│   ├── tools/             # Herramientas MCP
│   ├── search/            # Funciones de búsqueda
│   ├── loaders/           # Cargadores de documentación
│   ├── resources/         # Recursos MCP
│   └── request/           # Manejadores de requests
├── data/                  # Datos y cache
│   └── cache/            # Cache de documentación descargada
├── deploy/               # 🐳 Archivos de Docker y deployment
│   ├── Dockerfile
│   ├── docker-compose.yml
│   ├── docker-manage.sh   # Script de gestión principal
│   ├── setup-volumes.sh   # Configuración de volúmenes
│   ├── iris-mcp-wrapper.sh # Wrapper para mcp.json
│   └── DOCKER.md         # Documentación completa de Docker
├── package.json
├── tsconfig.json
└── README.md            # Este archivo

🛠️ Herramientas MCP Disponibles

  1. smart_search - Búsqueda inteligente con descarga automática

    • Busca primero en caché local

    • Descarga documentos relevantes si es necesario

    • Mapeo inteligente de términos a KEYs

  2. search_objectscript - Búsqueda rápida solo en caché local

    • Búsqueda instantánea en documentos descargados

    • Resultados con contexto y números de línea

  3. open_by_key - Abrir documentación por KEY oficial

    • Acceso directo a documentación específica

    • Descarga y cachea automáticamente

  4. open_class - Abrir documentación de clase

    • Documatic para clases (ej. %Library.String)

    • Navegación por jerarquía de clases

🐳 Docker Deployment

Para deployment en producción, usa Docker:

Scripts de Gestión (en deploy/)

  • docker-manage.sh - Script principal de gestión

  • setup-volumes.sh - Configuración de volúmenes bidireccionales

  • iris-mcp-wrapper.sh - Wrapper para usar en mcp.json

Comandos Principales

cd deploy/

# Construcción y arranque
./docker-manage.sh build    # Construir imagen
./docker-manage.sh start    # Iniciar contenedor
./setup-volumes.sh          # Configurar permisos

# Gestión diaria
./docker-manage.sh status   # Ver estado
./docker-manage.sh logs     # Ver logs
./docker-manage.sh restart  # Reiniciar

# Mantenimiento
./docker-manage.sh cleanup  # Limpiar todo

📋 Configuración en mcp.json

{
  "mcpServers": {
    "iris-objectscript-docs": {
      "command": "bash",
      "args": ["/ruta/completa/deploy/iris-mcp-wrapper.sh"],
      "env": {
        "NODE_ENV": "production"
      }
    }
  }
}

Ubicación del archivo:

  • macOS: ~/Library/Application Support/Claude/mcp.json

  • Windows: %APPDATA%\\Claude\\mcp.json

  • Linux: ~/.config/claude/mcp.json

🔧 Desarrollo

Scripts NPM

npm run build     # Compilar TypeScript
npm run start     # Ejecutar servidor compilado
npm run dev       # Desarrollo (compilar + ejecutar)
npm run dev:ins   # Con inspector MCP

Estructura de Código

  • server.ts - Punto de entrada del servidor MCP

  • tools/ - Definiciones de herramientas MCP

  • search/ - Lógica de búsqueda (local y inteligente)

  • loaders/ - Descarga y procesamiento de documentación

  • resources/ - Recursos y templates MCP

📊 Volúmenes y Persistencia

Configuración Bidireccional

  • data/ ↔ Contenedor - Sincronización completa

  • logs/ ↔ Contenedor - Logs compartidos

Casos de Uso

  • ✅ Modificas archivos localmente → Se reflejan en el contenedor

  • ✅ El MCP descarga docs → Aparecen en tu data/cache/

  • ✅ Backup/sync de data/ funciona normalmente

🚦 Estados y Flujos

Primera Instalación

  1. cd deploy/

  2. ./docker-manage.sh build

  3. ./docker-manage.sh start

  4. ./setup-volumes.sh

  5. Configurar mcp.json

Desarrollo Diario

  1. ./docker-manage.sh status (verificar)

  2. Trabajar normalmente en el código

  3. ./docker-manage.sh restart (si cambias código)

Actualización

  1. git pull

  2. cd deploy/

  3. ./docker-manage.sh stop

  4. ./docker-manage.sh build

  5. ./docker-manage.sh start

🔍 Ejemplo de Uso

# Buscar información sobre clases
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "smart_search", "arguments": {"q": "class methods"}}}' | ./deploy/iris-mcp-wrapper.sh

# Abrir documentación específica
echo '{"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "open_class", "arguments": {"class": "%Library.String"}}}' | ./deploy/iris-mcp-wrapper.sh

📖 Documentación Adicional

  • DOCKER.md - Documentación completa de Docker, scripts y troubleshooting

  • Logs: Revisar logs/ o ./docker-manage.sh logs

  • Cache: Explorar data/cache/ para ver documentos descargados

🛡️ Seguridad

  • Contenedor ejecuta con usuario no-root

  • Sin puertos expuestos (MCP usa stdio)

  • Volúmenes con permisos mínimos necesarios

  • Imágenes basadas en Alpine Linux

🔧 Troubleshooting

# Ver estado del contenedor
cd deploy/ && ./docker-manage.sh status

# Ver logs detallados
cd deploy/ && ./docker-manage.sh logs

# Reset completo
cd deploy/ && ./docker-manage.sh cleanup
cd deploy/ && ./docker-manage.sh build && ./docker-manage.sh start

# Verificar MCP manualmente
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test", "version": "1.0.0"}}}' | ./deploy/iris-mcp-wrapper.sh

Para documentación detallada de Docker y deployment, consulta deploy/DOCKER.md.

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

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/sorodriguezz/iris-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server