Skip to main content
Glama
eduardoantoniojunior

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단계: 웹 서비스 구성

  1. 시스템 관리 → 웹 서비스로 이동

  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-server

UV로 실행

또는 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_BASE_URL

-

OTRS 웹 서비스 기본 URL

OTRS_USERNAME

-

OTRS 사용자 이름

OTRS_PASSWORD

-

OTRS 비밀번호

OTRS_VERIFY_SSL

false

SSL 인증서 검증 활성화

OTRS_DEFAULT_QUEUE

Raw

새 티켓의 기본 큐

OTRS_DEFAULT_STATE

new

새 티켓의 기본 상태

OTRS_DEFAULT_PRIORITY

3 normal

새 티켓의 기본 우선순위

OTRS_DEFAULT_TYPE

Unclassified

새 티켓의 기본 유형

개발

기여는 언제나 환영합니다! 제안이나 개선 사항이 있으면 이슈를 열거나 풀 리퀘스트를 제출해 주세요.

이 프로젝트는 Python 3.12를 대상으로 하며(pyproject.tomlrequires-python 참조), 해당 버전에서 프로덕션 사용이 검증되었습니다.

이 프로젝트는 uv를 사용하여 의존성을 관리합니다. 플랫폼에 맞는 지침에 따라 uv를 설치하세요:

curl -LsSf https://astral.sh/uv/install.sh | sh

Python 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-missing

Docker 이미지 게시

공개 사용을 위해 Docker 이미지를 GitHub Container Registry에 게시하려면:

사전 요구 사항

  1. 이 프로젝트를 위한 GitHub 계정 및 저장소

  2. write:packages 권한이 있는 GitHub Personal Access Token

  3. 로컬에 설치된 Docker

단계별 게시 방법

  1. GitHub Personal Access Token 생성:

    • GitHub 설정 → 개발자 설정 → Personal access tokens → Tokens (classic)로 이동

    • write:packagesread:packages 권한으로 새 토큰 생성

    • 토큰을 안전하게 보관

  2. GitHub Container Registry에 로그인:

    echo $GITHUB_TOKEN | docker login ghcr.io -u yourusername --password-stdin
  3. 이미지 빌드 및 태그 지정:

    # 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
  4. 레지스트리에 푸시:

    # 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
  5. 패키지 공개 설정 (선택 사항):

    • 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 - 최근 티켓 개요

문제 해결

일반적인 문제

  1. SSL 인증서 오류: 자체 서명 인증서의 경우 OTRS_VERIFY_SSL=false로 설정

  2. HTTP 301 리디렉션: OTRS 서버가 HTTP를 HTTPS로 리디렉션하는 경우 HTTPS URL을 사용하고 있는지 확인

  3. 인증 실패: 사용자 이름, 비밀번호, 웹 서비스 구성을 확인

  4. 누락된 작업: 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


A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    C
    quality
    C
    maintenance
    An 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.
    12
    4
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    An MCP server that exposes the Tickiti helpdesk API to AI assistants, enabling ticket management and helpdesk operations via natural language.
    11
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that connects AI assistants to Zammad, providing tools for managing tickets, users, organizations, and attachments.
    38
    AGPL 3.0

View all related MCP servers

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.

View all MCP Connectors

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/eduardoantoniojunior/otrs-mcp-server'

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