OTRS MCP Server
Servidor MCP de OTRS
Un servidor Model Context Protocol (MCP) para la integración con la API de OTRS (Open Ticket Request System).
Esto proporciona acceso a la gestión de tickets de OTRS a través de interfaces MCP estandarizadas, lo que permite a los asistentes de IA crear, buscar y gestionar tickets.
Características
Crear, leer, actualizar y buscar tickets
Acceder al historial y a la información detallada de los tickets
Valores predeterminados configurables para los tickets
Soporte para contenedores Docker
Soporte SSL/TLS con opciones de verificación de certificados
Proporcionar herramientas interactivas para asistentes de IA
La lista de herramientas es configurable, por lo que puedes elegir qué herramientas quieres poner a disposición del cliente MCP.
Related MCP server: tickiti-mcp
Requisitos previos
Configuración del servidor OTRS
Antes de usar este servidor MCP, necesitas configurar tu instancia de OTRS.
Paso 1: Accede al panel de administración de OTRS
URL:
https://your-otrs-server/otrs/index.pl?Action=AdminInicia sesión con tus credenciales de administrador
Paso 2: Configura los Web Services
Ve a: Administración del sistema → Web Services
Crea o verifica que tienes un servicio web (por ejemplo,
TestInterface) con estas operaciones:✅ SessionCreate
✅ TicketCreate
✅ TicketGet
✅ TicketSearch
✅ TicketUpdate
✅ TicketHistoryGet
Paso 3: Anota la URL de tu servicio web
La URL de tu servicio web debería tener un formato similar a:
https://your-otrs-server/otrs/nph-genericinterface.pl/Webservice/YourWebserviceName
Paso 4: Asegura los permisos del usuario
Asegúrate de que tu usuario de OTRS tiene los permisos adecuados para:
Crear y actualizar tickets
Acceder a los elementos de configuración
Usar la interfaz genérica
Uso
Docker (recomendado)
La forma más fácil de ejecutar otrs-mcp con Claude Desktop es usando Docker. Si no tienes Docker instalado, puedes obtenerlo en el sitio web oficial de Docker.
Usar la imagen precompilada
Puedes usar la imagen Docker precompilada de GitHub Container Registry:
{
"mcpServers": {
"otrs": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"OTRS_BASE_URL=https://your-otrs-server/otrs/nph-genericinterface.pl/Webservice/TestInterface",
"-e",
"OTRS_USERNAME=your-username",
"-e",
"OTRS_PASSWORD=your-password",
"-e",
"OTRS_VERIFY_SSL=false",
"-e",
"OTRS_DEFAULT_QUEUE=Raw",
"-e",
"OTRS_DEFAULT_STATE=new",
"-e",
"OTRS_DEFAULT_PRIORITY=3 normal",
"ghcr.io/eduardoantoniojunior/otrs-mcp-server:latest"
]
}
}
}Compilar localmente
Si prefieres compilar la imagen localmente:
# Clone the repository
git clone https://github.com/eduardoantoniojunior/otrs-mcp-server.git
cd otrs-mcp-server
# Build the Docker image
docker build -t otrs-mcp-server .
# Run the container
docker run --rm -i \
-e OTRS_BASE_URL="https://your-otrs-server/otrs/nph-genericinterface.pl/Webservice/TestInterface" \
-e OTRS_USERNAME="your-username" \
-e OTRS_PASSWORD="your-password" \
-e OTRS_VERIFY_SSL="false" \
otrs-mcp-serverEjecutar con UV
Alternativamente, puedes ejecutar el servidor directamente con UV. Primero, configura tus variables de entorno:
export OTRS_BASE_URL="https://your-otrs-server/otrs/nph-genericinterface.pl/Webservice/TestInterface"
export OTRS_USERNAME="your-username"
export OTRS_PASSWORD="your-password"
export OTRS_VERIFY_SSL="false"
export OTRS_DEFAULT_QUEUE="Raw"
export OTRS_DEFAULT_STATE="new"
export OTRS_DEFAULT_PRIORITY="3 normal"
export OTRS_DEFAULT_TYPE="Unclassified"Después, edita el archivo de configuración de Claude Desktop y añade la configuración del servidor:
{
"mcpServers": {
"otrs": {
"command": "uv",
"args": [
"--directory",
"<full path to otrs-mcp-server directory>",
"run",
"src/otrs_mcp/main.py"
],
"env": {
"OTRS_BASE_URL": "https://your-otrs-server/otrs/nph-genericinterface.pl/Webservice/TestInterface",
"OTRS_USERNAME": "your-username",
"OTRS_PASSWORD": "your-password",
"OTRS_VERIFY_SSL": "false"
}
}
}
}Nota: si ves
Error: spawn uv ENOENTen Claude Desktop, puede que necesites especificar la ruta completa deuvo establecer la variable de entornoNO_UV=1en la configuración.
Variables de entorno
Variable | Obligatorio | Por defecto | Descripción |
| ✅ | - | URL base del servicio web de OTRS |
| ✅ | - | Nombre de usuario de OTRS |
| ✅ | - | Contraseña de OTRS |
| ❌ |
| Verificación del certificado SSL |
| ❌ |
| Cola por defecto para los tickets nuevos |
| ❌ |
| Estado por defecto para los tickets nuevos |
| ❌ |
| Prioridad por defecto para los tickets nuevos |
| ❌ |
| Tipo por defecto para los tickets nuevos |
Desarrollo
Las contribuciones son bienvenidas. Si tienes sugerencias o mejoras, abre un issue o crea una pull request.
Este proyecto tiene como objetivo Python 3.12 (ver requires-python en pyproject.toml) y está validado para su uso en producción en esa versión.
Este proyecto usa uv para gestionar las dependencias. Instala uv siguiendo las instrucciones de tu plataforma:
curl -LsSf https://astral.sh/uv/install.sh | shInstala Python 3.12 (si no lo tienes) y crea el entorno virtual con las dependencias fijadas:
# Install the interpreter (managed by uv)
uv python install 3.12
# Create the environment and install dependencies from uv.lock
uv sync --python 3.12 --extra devTambién puedes usar el flujo de trabajo clásico:
uv venv --python 3.12
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
uv pip install -e .Pruebas
Prueba tu conexión con OTRS y la funcionalidad de la API:
# Set environment variables
export OTRS_BASE_URL="https://your-otrs-server/otrs/nph-genericinterface.pl/Webservice/TestInterface"
export OTRS_USERNAME="your-username"
export OTRS_PASSWORD="your-password"
export OTRS_VERIFY_SSL="false"
# Run connectivity test
uv run python tests/connectivity_test.py
# Run API functionality test
uv run python tests/test_working_api.py
# Run debug diagnostics
uv run python tests/debug_test.pyEl proyecto incluye scripts de prueba que ayudan a verificar tu configuración y la conectividad con la API de OTRS.
Ejecuta las pruebas con pytest:
# Install development dependencies
uv pip install -e ".[dev]"
# Run the tests
pytest
# Run with coverage report
pytest --cov=src --cov-report=term-missingPublicar la imagen Docker
Para publicar la imagen Docker en GitHub Container Registry para de uso público:
Requisitos previos
Cuenta de GitHub con un repositorio para este proyecto
GitHub Personal Access Token con permiso
write:packagesDocker instalado localmente
Publicación paso a paso
Genera un GitHub Personal Access Token:
Ve a GitHub Settings → Developer settings → Personal access tokens → Tokens (classic)
Genera un nuevo token con permisos
write:packagesyread:packagesGuarda el token de forma segura
Inicia sesión en GitHub Container Registry:
echo $GITHUB_TOKEN | docker login ghcr.io -u yourusername --password-stdinCompila y etiqueta la imagen:
# Build the image docker build -t otrs-mcp-server . # Tag for GitHub Container Registry docker tag otrs-mcp-server ghcr.io/yourusername/otrs-mcp-server:latest docker tag otrs-mcp-server ghcr.io/yourusername/otrs-mcp-server:v0.1.0Sube la imagen al registro:
# Push latest tag docker push ghcr.io/yourusername/otrs-mcp-server:latest # Push version tag docker push ghcr.io/yourusername/otrs-mcp-server:v0.1.0Haz público el paquete (opcional):
Ve a tu repositorio de GitHub
Navega a la sección Packages
Haz clic en tu paquete
Ve a Package settings
Cambia la visibilidad a Public
Publicación automatizada con GitHub Actions
Crea .github/workflows/docker-publish.yml:
name: Build and Push Docker Image
on:
push:
branches: [main]
tags: ["v*"]
pull_request:
branches: [main]
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}
jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}Alternativa: Docker Hub
Para publicar en Docker Hub en su lugar:
# Login to Docker Hub
docker login
# Tag for Docker Hub
docker tag otrs-mcp-server yourusername/otrs-mcp-server:latest
docker tag otrs-mcp-server yourusername/otrs-mcp-server:v0.1.0
# Push to Docker Hub
docker push yourusername/otrs-mcp-server:latest
docker push yourusername/otrs-mcp-server:v0.1.0Luego actualiza la configuración de Claude Desktop para usar:
"ghcr.io/yourusername/otrs-mcp-server:latest"o
"yourusername/otrs-mcp-server:latest"Herramientas disponibles
🎫 Gestión de tickets
create_ticket- Crea un nuevo ticket en OTRSget_ticket- Obtén información detallada de un ticket específicosearch_tickets- Busca tickets según diferentes criteriosupdate_ticket- Actualiza las propiedades de un ticket existenteget_ticket_history- Obtén el historial completo de un ticket
📊 Recursos
otrs://ticket/{ticket_id}- Acceso directo a los datos del ticketotrs://ticket/{ticket_id}/history- Acceso al historial del ticketotrs://search/tickets- Visión general de los tickets recientes
Solución de problemas
Problemas comunes
Errores de certificado SSL: Configura
OTRS_VERIFY_SSL=falsepara certificados autofirmados.Redirecciones HTTP 301: Asegúrate de usar URLs HTTPS si tu servidor OTRS redirige HTTP a HTTPS.
Fallos de autenticación: Verifica tu usuario, tu contraseña y la configuración del servicio web.
Operaciones que faltan: Comprueba que tu servicio web de OTRS incluye todas las operaciones requeridas.
Modo de depuración
Ejecuta el script de depuración para diagnosticar problemas de conexión:
uv run python tests/debug_test.pyEsto probará las conexiones HTTP y HTTPS y proporcionará información detallada sobre los errores.
Ejemplo de configuración que funciona
Para tu referencia, aquí tienes una configuración válida de ejemplo:
# Environment variables
export OTRS_BASE_URL="https://your-otrs-server/otrs/nph-genericinterface.pl/Webservice/TestInterface"
export OTRS_USERNAME="your-username"
export OTRS_PASSWORD="your-password"
export OTRS_VERIFY_SSL="false"
export OTRS_DEFAULT_QUEUE="Raw"
export OTRS_DEFAULT_STATE="new"
export OTRS_DEFAULT_PRIORITY="3 normal"
export OTRS_DEFAULT_TYPE="Unclassified"Operaciones del servicio web de OTRS
Tu servicio web de OTRS debe incluir estas operaciones:
Nombre de la operación | Controller | Descripción |
TicketCreate | Ticket::TicketCreate | Crear tickets nuevos |
TicketGet | Ticket::TicketGet | Obtener detalles del ticket |
TicketSearch | Ticket::TicketSearch | Buscar tickets |
TicketUpdate | Ticket::TicketUpdate | Actualizar tickets existentes |
TicketHistoryGet | Ticket::TicketHistoryGet | Obtener el historial del ticket |
Licencia
Apache-2.0
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.
Related MCP Servers
- AlicenseCqualityCmaintenanceAn MCP server that enables AI assistants to interact with JIRA, allowing for querying issue details, creating and updating work items, and managing attachments through a standardized interface.124MIT

tickiti-mcpofficial
AlicenseBqualityBmaintenanceAn MCP server that exposes the Tickiti helpdesk API to AI assistants, enabling ticket management and helpdesk operations via natural language.11MIT- AlicenseAqualityDmaintenanceMCP server for Otobo ITSM enabling AI assistants to search, create, update, and manage tickets via the Generic Interface REST API.10111MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that connects AI assistants to Zammad, providing tools for managing tickets, users, organizations, and attachments.38AGPL 3.0
Related MCP Connectors
MCP server for AI access to Swagger by SmartBear.
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
An MCP server that integrates with Discord to provide AI-powered features.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/eduardoantoniojunior/otrs-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server