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: Web サービスの設定

  1. システム管理 → Web サービス に移動します

  2. 以下の操作を含む Web サービス(例:「TestInterface」)を作成または確認します:

    • ✅ SessionCreate

    • ✅ TicketCreate

    • ✅ TicketGet

    • ✅ TicketSearch

    • ✅ TicketUpdate

    • ✅ TicketHistoryGet

ステップ 3: Web サービスの URL をメモ

Web サービスの URL は次のようになります:

https://your-otrs-server/otrs/nph-genericinterface.pl/Webservice/YourWebserviceName

ステップ 4: ユーザー権限を確認

OTRS ユーザーに以下の適切な権限があることを確認してください:

  • チケットの作成と更新

  • 設定項目へのアクセス

  • 汎用インターフェースの使用

使用方法

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 DesktopError: spawn uv ENOENT が表示される場合は、uv のフルパスを指定するか、設定で環境変数 NO_UV=1 を設定する必要がある場合があります。

環境変数

変数

必須

デフォルト

説明

OTRS_BASE_URL

-

OTRS Web サービスのベース 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

新規チケットのデフォルトタイプ

開発

コントリビューションは歓迎します!提案や改善があれば、issue を開くかプルリクエストを送信してください。

このプロジェクトは 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 パーソナルアクセストークン

  3. ローカルにインストールされた Docker

公開手順

  1. GitHub パーソナルアクセストークンを作成

    • GitHub 設定 → 開発者設定 → パーソナルアクセストークン → トークン(クラシック)に移動

    • 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 リポジトリに移動

    • パッケージセクションに移動

    • パッケージをクリック

    • パッケージ設定に移動

    • 可視性を「パブリック」に変更

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. 認証エラー: ユーザー名、パスワード、Web サービスの設定を確認します

  4. 操作の欠落: OTRS Web サービスに必要なすべての操作が含まれていることを確認します

デバッグモード

接続の問題を診断するには、デバッグスクリプトを実行します:

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 Web サービスの操作

OTRS Web サービスには、次の操作を含める必要があります:

操作名

コントローラー

説明

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