Skip to main content
Glama
IRIS ObjectScript MCP Server

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

Related MCP server: MCP Developer Server

📁 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.

Available Tools

4 tools
open_by_keyC

Open a documentation page by its official KEY

Inputs: key (required).

open_classC

Abre Documatic por nombre de clase (ej. %Library.String).

Inputs: class (required).

search_objectscriptC

Search for ObjectScript documentation and examples (solo en caché local)

Inputs: q (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 4 tools

    Disambiguation3/5

    The tools have overlapping purposes that could cause confusion, particularly between search_objectscript and smart_search, which both search documentation but differ in scope (local vs. local+download). open_by_key and open_class are more distinct but still both open documentation pages. Descriptions help clarify differences, but an agent might misselect between the search tools.

    Naming Consistency2/5

    Naming is inconsistent with mixed conventions: open_by_key and search_objectscript use snake_case, while open_class and smart_search use snake_case but with Spanish names in descriptions. Verb styles vary (open vs. search vs. smart_search), and there's no predictable pattern across the set, making it harder for an agent to infer tool purposes from names alone.

    Tool Count4/5

    With 4 tools, the count is reasonable for a documentation server focused on ObjectScript. It covers key actions like opening and searching, though it might feel slightly thin if more advanced documentation interactions are needed. The scope is well-defined, and each tool appears to earn its place without obvious bloat.

    Completeness3/5

    For a documentation server, the tools cover opening by key/class and searching locally or with downloads, which addresses core needs. However, there are notable gaps: no tools for browsing documentation structure, listing available classes/keys, or managing the cache. This could lead to dead ends where an agent cannot navigate documentation beyond basic searches and opens.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables users to search and access AppCan mobile development platform documentation with intelligent fuzzy search, caching, and content retrieval. Provides comprehensive access to AppCan's API documentation, development guides, and tutorials through natural language queries.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides instant access to 700+ programming documentation sources and creates isolated Docker containers for safe code testing and experimentation. Combines comprehensive documentation lookup with containerized development environments for enhanced development workflows.
      AGPL 3.0
    • F
      license
      A
      quality
      D
      maintenance
      Provides AI models with direct access to documentation for over 600 technologies from DevDocs.io, including popular languages, frameworks, and tools. It enables comprehensive searching, content retrieval, and offline access via an intelligent local caching system.
      12
      2
      -