OTRS MCP Server
OTRS MCP 서버
OTRS(Open Ticket Request System) API 통합을 위한 Model Context Protocol(MCP) 서버입니다.
표준화된 MCP 인터페이스를 통해 OTRS 티켓 관리에 접근할 수 있도록 제공하며, AI 어시스턴트가 티켓을 생성, 검색, 관리할 수 있게 해줍니다.
기능
티켓 생성, 조회, 수정, 검색
티켓 이력 및 상세 정보 접근
티켓 기본값 설정 가능
Docker 컨테이너화 지원
인증서 검증 옵션을 포함한 SSL/TLS 지원
AI 어시스턴트를 위한 대화형 도구 제공
도구 목록은 구성 가능하므로 MCP 클라이언트에 제공할 도구를 선택할 수 있습니다.
Related MCP server: tickiti-mcp
사전 요구 사항
OTRS 서버 구성
이 MCP 서버를 사용하기 전에 OTRS 인스턴스를 구성해야 합니다:
1단계: OTRS 관리자 패널 접속
URL:
https://your-otrs-server/otrs/index.pl?Action=Admin관리자 자격 증명으로 로그인
2단계: 웹 서비스 구성
시스템 관리 → 웹 서비스로 이동
다음 작업이 포함된 웹 서비스(예: "TestInterface")를 생성하거나 확인:
✅ SessionCreate
✅ TicketCreate
✅ TicketGet
✅ TicketSearch
✅ TicketUpdate
✅ TicketHistoryGet
3단계: 웹 서비스 URL 확인
웹 서비스 URL은 다음과 같은 형식이어야 합니다:
https://your-otrs-server/otrs/nph-genericinterface.pl/Webservice/YourWebserviceName
4단계: 사용자 권한 확인
OTRS 사용자에게 다음에 대한 적절한 권한이 있는지 확인하세요:
티켓 생성 및 수정
구성 항목 접근
Generic Interface 사용
사용 방법
Docker (권장)
otrs-mcp를 Claude Desktop과 함께 실행하는 가장 쉬운 방법은 Docker를 사용하는 것입니다. Docker가 설치되어 있지 않다면 Docker 공식 웹사이트에서 설치할 수 있습니다.
사전 빌드된 이미지 사용
GitHub Container Registry의 사전 빌드된 Docker 이미지를 사용할 수 있습니다:
{
"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"
]
}
}
}로컬에서 빌드
이미지를 로컬에서 빌드하려면:
# 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-serverUV로 실행
또는 UV를 사용하여 서버를 직접 실행할 수 있습니다. 먼저 환경 변수를 설정하세요:
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"그런 다음 Claude Desktop 구성 파일을 편집하고 서버 구성을 추가하세요:
{
"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"
}
}
}
}참고: Claude Desktop에서
Error: spawn uv ENOENT오류가 표시되면uv의 전체 경로를 지정하거나 구성에서 환경 변수NO_UV=1을 설정해야 할 수 있습니다.
환경 변수
변수 | 필수 | 기본값 | 설명 |
| ✅ | - | OTRS 웹 서비스 기본 URL |
| ✅ | - | OTRS 사용자 이름 |
| ✅ | - | OTRS 비밀번호 |
| ❌ |
| SSL 인증서 검증 활성화 |
| ❌ |
| 새 티켓의 기본 큐 |
| ❌ |
| 새 티켓의 기본 상태 |
| ❌ |
| 새 티켓의 기본 우선순위 |
| ❌ |
| 새 티켓의 기본 유형 |
개발
기여는 언제나 환영합니다! 제안이나 개선 사항이 있으면 이슈를 열거나 풀 리퀘스트를 제출해 주세요.
이 프로젝트는 Python 3.12를 대상으로 하며(pyproject.toml의 requires-python 참조), 해당 버전에서 프로덕션 사용이 검증되었습니다.
이 프로젝트는 uv를 사용하여 의존성을 관리합니다. 플랫폼에 맞는 지침에 따라 uv를 설치하세요:
curl -LsSf https://astral.sh/uv/install.sh | shPython 3.12를 설치하고(아직 없는 경우) 고정된 의존성으로 가상 환경을 생성하세요:
# 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 dev또는 기존 워크플로우를 사용할 수도 있습니다:
uv venv --python 3.12
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
uv pip install -e .테스트
OTRS 연결 및 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.py프로젝트에는 OTRS 구성과 API 연결을 확인하는 데 도움이 되는 테스트 스크립트가 포함되어 있습니다.
pytest로 테스트를 실행하세요:
# Install development dependencies
uv pip install -e ".[dev]"
# Run the tests
pytest
# Run with coverage report
pytest --cov=src --cov-report=term-missingDocker 이미지 게시
공개 사용을 위해 Docker 이미지를 GitHub Container Registry에 게시하려면:
사전 요구 사항
이 프로젝트를 위한 GitHub 계정 및 저장소
write:packages권한이 있는 GitHub Personal Access Token로컬에 설치된 Docker
단계별 게시 방법
GitHub Personal Access Token 생성:
GitHub 설정 → 개발자 설정 → Personal access tokens → Tokens (classic)로 이동
write:packages및read:packages권한으로 새 토큰 생성토큰을 안전하게 보관
GitHub Container Registry에 로그인:
echo $GITHUB_TOKEN | docker login ghcr.io -u yourusername --password-stdin이미지 빌드 및 태그 지정:
# 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.0레지스트리에 푸시:
# 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.0패키지 공개 설정 (선택 사항):
GitHub 저장소로 이동
Packages 섹션으로 이동
패키지 클릭
Package settings로 이동
공개 범위를 Public으로 변경
GitHub Actions를 통한 자동 게시
.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 }}대안: Docker Hub
대신 Docker Hub에 게시하려면:
# 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.0그런 다음 Claude Desktop 구성을 다음과 같이 업데이트하세요:
"ghcr.io/yourusername/otrs-mcp-server:latest"또는
"yourusername/otrs-mcp-server:latest"사용 가능한 도구
🎫 티켓 관리
create_ticket- OTRS에 새 티켓 생성get_ticket- 특정 티켓에 대한 상세 정보 조회search_tickets- 다양한 기준으로 티켓 검색update_ticket- 기존 티켓의 속성 수정get_ticket_history- 티켓의 전체 이력 조회
📊 리소스
otrs://ticket/{ticket_id}- 티켓 데이터 직접 접근otrs://ticket/{ticket_id}/history- 티켓 이력 접근otrs://search/tickets- 최근 티켓 개요
문제 해결
일반적인 문제
SSL 인증서 오류: 자체 서명 인증서의 경우
OTRS_VERIFY_SSL=false로 설정HTTP 301 리디렉션: OTRS 서버가 HTTP를 HTTPS로 리디렉션하는 경우 HTTPS URL을 사용하고 있는지 확인
인증 실패: 사용자 이름, 비밀번호, 웹 서비스 구성을 확인
누락된 작업: OTRS 웹 서비스에 필요한 모든 작업이 포함되어 있는지 확인
디버그 모드
연결 문제를 진단하려면 디버그 스크립트를 실행하세요:
uv run python tests/debug_test.py이 스크립트는 HTTP와 HTTPS 연결을 모두 테스트하고 자세한 오류 정보를 제공합니다.
작동 구성 예시
참고용으로 작동하는 구성 예시는 다음과 같습니다:
# 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"OTRS 웹 서비스 작업
OTRS 웹 서비스에는 다음 작업이 포함되어야 합니다:
작업 이름 | 컨트롤러 | 설명 |
TicketCreate | Ticket::TicketCreate | 새 티켓 생성 |
TicketGet | Ticket::TicketGet | 티켓 세부 정보 조회 |
TicketSearch | Ticket::TicketSearch | 티켓 검색 |
TicketUpdate | Ticket::TicketUpdate | 기존 티켓 수정 |
TicketHistoryGet | Ticket::TicketHistoryGet | 티켓 이력 조회 |
라이선스
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