Skip to main content
Glama
alihaider663

superoffice-mcp-server

by alihaider663

Servidor SuperOffice CRM Onsite — Protocolo de Contexto de Modelo (MCP)

Un servidor Model Context Protocol (MCP) listo para producción, construido en TypeScript para instalaciones SuperOffice CRM Onsite. Permite que asistentes LLM (como Claude Desktop, Antigravity IDE, Cursor y otros clientes MCP) consulten sin problemas contactos, personas, citas, tickets de soporte, tablas extra personalizadas (y_*) y registros de auditoría a través de los endpoints estándar de SuperOffice REST WebAPI.


🌟 Características

  • ⚡ Transporte nativo MCP stdio: Se integra directamente con clientes de IA de escritorio y terminal.

  • 🏢 Búsqueda de Empresas y Contactos: Obtén información detallada de la empresa (get_contact_by_id).

  • 👥 Búsqueda de Personas: Búsqueda difusa y basada en filtros entre nombres y correos electrónicos (search_persons).

  • 📅 Inteligencia de Calendario y Citas: Filtrado por rango de fechas con asignación de usuario (get_recent_appointments).

  • 🎫 Gestión de Tickets de Soporte: Obtén tickets recientes e inspecciona metadatos completos de tickets (get_latest_tickets, get_ticket_by_id).

  • 📊 Motor de Tablas Extra Personalizadas: Descubre y consulta dinámicamente todas las tablas y_* personalizadas (list_extra_tables, query_extra_table).

  • 🛡️ Explorador de Tablas de Auditoría y Registros: Inspecciona rastros de auditoría como y_logticket, y_logactivity y eventos del sistema (list_log_tables).

  • 🔒 Listo para Onsite: Autenticación básica robusta, protecciones de tiempo de espera y manejo configurable de certificados autofirmados.

  • 🛡️ Tolerancia a Fallos Elegante: Estrategias de consulta de respaldo en múltiples niveles (Proveedor de Archivo ➔ API de Entidad REST) para garantizar un comportamiento sin bloqueos.


Related MCP server: CiviCRM MCP Server

🏗️ Arquitectura

flowchart LR
    subgraph Client["Local Workstation / MCP Client"]
        Claude["Claude Desktop / Antigravity / Cursor"]
        MCP["SuperOffice MCP Server\n(Node.js / TypeScript)"]
        Claude <-->|stdio JSON-RPC| MCP
    end

    subgraph Server["SuperOffice Onsite Environment (VM)"]
        IIS["IIS Web Server / REST WebAPI\n/api/v1/"]
        SOApp["SuperOffice CRM Core"]
        SODb[("SuperOffice Database\n(Core + y_* Extra Tables)")]

        IIS --> SOApp --> SODb
    end

    MCP <-->|HTTP(S) Basic Auth\nREST / Archive / Entities| IIS

🛠️ Herramientas MCP Disponibles

Nombre de la Herramienta

Parámetros

Descripción

get_contact_by_id

contactId (número, obligatorio)

Obtiene el registro completo de empresa/contacto (departamento, número de organización, correos, teléfonos, categoría, negocio).

search_persons

query (cadena, obligatorio)limit (número, opcional, predeterminado: 25)

Busca personas por nombre completo, nombre o apellido, o dirección de correo electrónico con respaldo de múltiples estrategias.

get_recent_appointments

fromDate (fecha ISO, opcional)toDate (fecha ISO, opcional)associateId (número, opcional)limit (número, opcional, predeterminado: 50)

Recupera citas de calendario en un rango de fechas con tarea, ubicación, contacto y estado de finalización.

get_ticket_by_id

ticketId (número, obligatorio)

Recupera información detallada del ticket de soporte, incluyendo categoría, estado, creador, propietario y contacto.

get_latest_tickets

limit (número, opcional, predeterminado: 10)

Lista los tickets de soporte más recientes ordenados de forma descendente por ID de ticket.

list_extra_tables

Ninguno

Lista todas las tablas extra personalizadas (tablas y_*) definidas en la base de datos CRM.

list_log_tables

Ninguno

Lista tablas dedicadas de registro y auditoría (y_logticket, y_logactivity, y_msisdn_search_log, etc.).

query_extra_table

tableName (cadena, obligatorio)fields (cadena, opcional)limit (número, opcional, predeterminado: 25)

Consulta registros dinámicamente desde cualquier tabla extra personalizada a través del proveedor de archivo dinámico.


🚀 Inicio Rápido

1. Requisitos Previos

  • Node.js: v18.0.0 o superior

  • SuperOffice CRM Onsite: Instalado con REST WebAPI (/api/v1/) habilitado

  • Una cuenta de usuario de SuperOffice activa con permisos de API

2. Clonar y Compilar

# Clone the repository
git clone https://github.com/your-username/superoffice-mcp-server.git
cd superoffice-mcp-server

# Install dependencies
npm install

# Compile TypeScript to dist/
npm run build

⚙️ Configuración

Variables de Entorno

Variable

Requerida

Descripción

Ejemplo

SUPEROFFICE_API_URL

Sí

URL base de SuperOffice WebAPI (sin barra final)

https://osl-so-iis2.ls.local/SuperOffice

SUPEROFFICE_USERNAME

Sí

Nombre de usuario de SuperOffice

admin

SUPEROFFICE_PASSWORD

Sí

Contraseña del usuario de SuperOffice

YourPassword123

NODE_TLS_REJECT_UNAUTHORIZED

No

Establecer a 0 para certificados SSL autofirmados o de CA interna

0

SUPEROFFICE_TIMEOUT_MS

No

Tiempo de espera de solicitud HTTP en milisegundos

30000


🔌 Guías de Configuración del Cliente

1. Claude Desktop

Agrega esta entrada a tu claude_desktop_config.json:

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

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

{
  "mcpServers": {
    "superoffice": {
      "command": "node",
      "args": [
        "C:\\path\\to\\superoffice-mcp-server\\dist\\index.js"
      ],
      "env": {
        "NODE_TLS_REJECT_UNAUTHORIZED": "0",
        "SUPEROFFICE_API_URL": "https://your-crm-server/SuperOffice",
        "SUPEROFFICE_USERNAME": "admin",
        "SUPEROFFICE_PASSWORD": "your-password"
      }
    }
  }
}

2. Antigravity IDE / Configuración MCP Personalizada (mcp_config.json)

{
  "mcpServers": {
    "superoffice": {
      "command": "node",
      "args": [
        "C:\\Users\\aliha\\.gemini\\antigravity-ide\\scratch\\superoffice-mcp-server\\dist\\index.js"
      ],
      "env": {
        "NODE_TLS_REJECT_UNAUTHORIZED": "0",
        "SUPEROFFICE_API_URL": "https://osl-so-iis2.ls.local/SuperOffice",
        "SUPEROFFICE_USERNAME": "admin",
        "SUPEROFFICE_PASSWORD": "your-password"
      }
    }
  }
}

🧪 Pruebas y Verificación

Puedes probar la conectividad directamente en la terminal usando PowerShell o bash:

# Set test environment
$env:SUPEROFFICE_API_URL="https://osl-so-iis2.ls.local/SuperOffice"
$env:SUPEROFFICE_USERNAME="admin"
$env:SUPEROFFICE_PASSWORD="your-password"
$env:NODE_TLS_REJECT_UNAUTHORIZED="0"

# Run server (logs to stderr, listens on stdin)
node dist/index.js

Deberías ver:

[superoffice-mcp] Server v1.1.0 started — connected to https://osl-so-iis2.ls.local/SuperOffice

📂 Estructura del Proyecto

superoffice-mcp-server/
├── .github/
│   └── workflows/
│       └── ci.yml               # Automated multi-version build testing
├── src/
│   └── index.ts                 # Main MCP Server implementation (8 tools)
├── .env.example                 # Environment variables template
├── .gitignore                   # Git ignore specifications
├── LICENSE                      # MIT License
├── package.json                 # Project manifest and scripts
├── tsconfig.json                # TypeScript compiler configuration
└── README.md                    # Comprehensive documentation

🛡️ Solución de Problemas

Si tu servidor local utiliza una Autoridad de Certificación (CA) interna o un certificado autofirmado, la función fetch de Node.js se cancelará de forma predeterminada. Asegúrate de que:

"NODE_TLS_REJECT_UNAUTHORIZED": "0"

esté incluido en la sección env de tu configuración MCP.

Verifica:

  • La cuenta de usuario tiene permisos de REST WebAPI en SuperOffice Admin.

  • La Autenticación Básica está habilitada en IIS para el grupo de aplicaciones de SuperOffice WebAPI.

El servidor utiliza los ricos proveedores Archive/Dynamic y Archive/FindPerson de SuperOffice para consultas expresivas. Si un proveedor específico está restringido en el rol de usuario de tu instalación, el servidor degrada automáticamente a endpoints de entidad REST simples.


📜 Licencia

Este proyecto está licenciado bajo la Licencia MIT.

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    Not graded
    maintenance
    Enables AI assistants to securely access and interact with Simplicate business data including CRM, projects, timesheets, and invoices through natural language. Supports searching across resources and retrieving detailed information about organizations, contacts, and project data.
    59
    0
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to access and manage CiviCRM data, including contacts, activities, contributions, events, and memberships, with full custom field support.
    5
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to securely query, search, and modify Salesforce data through standard Salesforce APIs, including record CRUD, SOQL/SOSL search, Bulk API 2.0 operations, composite calls, object discovery, and custom Apex REST endpoints.
    15
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to securely triage SuperOffice CRM support cases by retrieving tickets, running database diagnostics, searching knowledge bases, and orchestrating cross-system incident investigations.
    MIT