mcpField
T
Taiga Mcp Server

Taiga Mcp Server

ローカル
github.com/greddy7574生産性740 週間前に更新

Taiga Mcp Server について

Taiga MCP Serverは、Taigaのプロジェクト管理をMCP経由で提供し、チームが自然言語でプロジェクト、スプリント、作業項目を管理できます。バッチ操作、高度な検索、コメント、添付ファイル、エピック、Wikiにも対応します。

主な機能

  1. 01プロジェクト、スプリント、作業項目の管理
  2. 02課題、ユーザーストーリー、タスクの一括作成
  3. 03SQL風構文による絞り込みと並べ替え
  4. 04コメントと添付ファイルの管理
  5. 05エピックとWikiページの管理

活用シーン

  1. 01スプリントの進捗と関連課題の確認
  2. 02ユーザーストーリーやタスクの一括登録
  3. 03条件を指定した高優先度課題の検索
  4. 04作業項目での協業とドキュメント管理

MCP 対応

MCPサーバーとして、Taigaのプロジェクト、スプリント、課題、ユーザーストーリー、タスク、コメント、添付ファイル、エピック、Wikiを操作するツールをMCPクライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"taigaMcpServer": {
"command": "npx",
"args": [
"-y",
"taiga-mcp-server"
],
"env": {
"TAIGA_API_URL": "<TAIGA_API_URL>",
"TAIGA_USERNAME": "<TAIGA_USERNAME>",
"TAIGA_PASSWORD": "<TAIGA_PASSWORD>"
}
}
}
}
起動コマンドnpx -y taiga-mcp-server
設定が必要な環境変数
TAIGA_API_URL
TAIGA_USERNAME
TAIGA_PASSWORDシークレット

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmtaiga-mcp-server

ツール

46

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
usernamestringいいえ
passwordstringいいえ

詳細

🚀 Taiga MCP サーバー

Taiga のプロジェクト管理システムと自然言語でやり取りできる、強力な**Model Context Protocol(MCP)**サーバーです。会話型 AI を通じて、プロジェクト、スプリント、ユーザーストーリー、タスク、イシューをシームレスに管理できます。

🤖 AI を活用した開発:このプロジェクトはClaude Code(claude.ai/code)と共同で開発され、AI 支援ソフトウェア開発の可能性を示しています。

npm version License: ISC GitHub

✨ 機能

📊 プロジェクト管理を網羅
  • プロジェクト:プロジェクトの一覧表示と詳細の確認
  • スプリント:詳細な統計情報を含め、スプリントの作成、一覧表示、進捗状況の追跡
  • ユーザーストーリー:プロジェクト内でユーザーストーリーを作成、管理
  • タスク:ユーザーストーリーに紐付くタスクを作成
  • イシュー:スプリントとの関連付けを含む、イシューのライフサイクル全体の管理
🔗 高度なスプリント・イシュートラッキング
  • 関連付けを完全に把握しながら、スプリントごとにイシューを確認
  • スプリントへの割り当てを含む、イシューの詳細情報を取得
  • 完了統計を使ってスプリントの進捗を追跡
  • リアルタイムのステータス更新と進捗状況の監視
🚀 一括操作
  • イシューの一括作成:1 回の操作で複数のイシューを作成(最大 20 件)
  • ユーザーストーリーの一括作成:ストーリーポイントを指定してユーザーストーリーを一括作成
  • タスクの一括作成:特定のユーザーストーリーに対するタスクをまとめて作成
  • スマートなエラー処理:個々の失敗がほかの項目に影響しません
  • 詳細なレポート:各項目の成功・失敗ステータスを表示
🔍 高度なクエリ構文
  • SQL 風のクエリ言語:field:operator:value 構文を使って、検索を細かく指定
  • 論理演算子:AND、OR、NOT を使って条件を組み合わせ
  • テキストマッチング:あいまい検索、ワイルドカード、部分文字列検索
  • 日付範囲:柔軟な期間指定クエリ(today、last_week、>7d)
  • 並べ替えと件数制限:ORDER BY 句と LIMIT 句で結果を制御
💬 チームコラボレーションシステム
  • コメント管理:あらゆる作業項目にコメントを追加、表示、編集、削除
  • ディスカッションスレッド:ユーザー情報を含むコメント履歴全体を確認
  • チームコミュニケーション:構造化されたディスカッションを通じて連携を強化
  • リアルタイム更新:チーム間でコメントを即座に同期
📎 ファイル添付の管理
  • 柔軟なファイルアップロード:ファイルパスと Base64 の両方のアップロード方法に対応
  • Claude クライアントとの連携:Claude Desktop でのファイル処理に最適化
  • マルチフォーマット対応:画像、ドキュメント、PDF をはじめとする主要なファイル形式に対応
  • スマートなパス解決:一般的な場所からファイルパスを自動検出
  • ダウンロード管理:パス管理による効率的なファイルダウンロード
  • ストレージの整理:説明付きのすっきりとした添付ファイル管理
🏛️ エピック管理(エンタープライズ)
  • 大規模な組織化:エピックレベルのプロジェクト構成要素を作成、管理
  • 階層構造:ユーザーストーリーをエピックに紐付け、プロジェクト全体を把握
  • 進捗追跡:エピックレベルの進捗統計と完了状況を追跡
  • エンタープライズ計画:ロードマップの計画と機能リリースに対応
📖 Wiki 管理(ナレッジベース)
  • ドキュメントハブ:ナレッジ共有のためのプロジェクト Wiki ページを作成、管理
  • Markdown 対応:リッチなコンテンツ書式を使った Markdown 編集に完全対応
  • 柔軟な識別方法:ID またはユーザーフレンドリーなスラッグ名でページにアクセス
  • コラボレーション機能:ページの変更通知を受け取るためのウォッチ設定と解除
  • バージョン管理:自動バージョン管理で編集の競合を防止
  • コンテンツの整理:プロジェクトごとのドキュメントを一元管理
💬 自然言語インターフェース
  • 「すべてのプロジェクトを一覧表示」
  • 「スプリント 5 の進捗統計を表示」
  • 「プロジェクト X に優先度の高いバグ課題を作成」
  • 「スプリント 3 に割り当てられている課題は?」
  • 「課題 #123 の詳細を取得」

🛠️ インストールとセットアップ

前提条件
オプション 1:NPX(推奨)

インストールは不要です。最新バージョンが自動的に実行されます。

# NPM Registry (official)
npx taiga-mcp-server

# GitHub Package Registry (alternative)
npx @greddy7574/taiga-mcp-server
オプション 2:グローバルインストール
# From NPM Registry
npm install -g taiga-mcp-server
taiga-mcp

# From GitHub Packages
npm install -g @greddy7574/taiga-mcp-server
オプション 3:Docker デプロイ
# Build the image
docker build -t taiga-mcp-server .

# Run with environment file
docker run --rm -i --env-file .env taiga-mcp-server

# Or with environment variables
docker run --rm -i \
  -e TAIGA_API_URL=https://api.taiga.io/api/v1 \
  -e TAIGA_USERNAME=your_username \
  -e TAIGA_PASSWORD=your_password \
  taiga-mcp-server

# Using docker-compose
docker-compose up --build

⚙️ 設定

Claude Desktop との連携
NPX 方式(推奨)

Claude Desktop の config.json に追加します。

{
  "mcpServers": {
    "taiga-mcp": {
      "command": "npx",
      "args": ["taiga-mcp-server"],
      "env": {
        "TAIGA_API_URL": "https://api.taiga.io/api/v1",
        "TAIGA_USERNAME": "your_username",
        "TAIGA_PASSWORD": "your_password"
      }
    }
  }
}
Docker 方式
{
  "mcpServers": {
    "taiga-mcp": {
      "command": "docker",
      "args": [
        "run", 
        "--rm", 
        "-i",
        "-e", "TAIGA_API_URL=https://api.taiga.io/api/v1",
        "-e", "TAIGA_USERNAME=your_username",
        "-e", "TAIGA_PASSWORD=your_password",
        "taiga-mcp-server:latest"
      ]
    }
  }
}
Docker Compose 方式
{
  "mcpServers": {
    "taiga-mcp": {
      "command": "docker-compose",
      "args": [
        "-f", "/path/to/project/docker-compose.yml",
        "run", "--rm", "taiga-mcp-server"
      ],
      "cwd": "/path/to/project"
    }
  }
}
カスタム Taiga インスタンス

セルフホストの Taiga インスタンスの場合:

{
  "env": {
    "TAIGA_API_URL": "https://your-taiga-domain.com/api/v1",
    "TAIGA_USERNAME": "your_username",
    "TAIGA_PASSWORD": "your_password"
  }
}

🎯 使用例

スプリント管理
🗣️ "Show me all sprints in project MyApp"
📊 Returns: List of sprints with status and dates

🗣️ "Get details for Sprint 5"
🔍 Returns: Complete sprint information including:
   - Basic info (ID, slug, status, order)
   - Timeline (start/end dates, created/modified dates)
   - Metrics (total/closed points, user story count)
   - Team (owner, watchers, available roles)
   - Description and user stories list
   - Full JSON data for programmatic access

🗣️ "Get detailed statistics for Sprint 5"
📈 Returns: Progress stats, completion rates, user stories count

🗣️ "Create a new sprint called 'Q1 Release' from 2024-01-01 to 2024-03-31"
✅ Returns: Created sprint details
課題追跡
🗣️ "List all issues in project MyApp"
📋 Returns: Issues with sprint assignments and status

🗣️ "Show me issue #123 details"
🔍 Returns: Complete issue info including sprint, assignee, timeline

🗣️ "Update issue 838 status to 'In Progress'"
🔄 Returns: Issue status updated with confirmation

🗣️ "Assign issue 838 to John Doe"
👤 Returns: Issue assigned to team member with details

🗣️ "Add issue 838 to Sprint 1.0.95"
🏃 Returns: Issue moved to sprint with confirmation

🗣️ "Remove issue 838 from sprint"
🏃 Returns: Issue removed from sprint assignment

🗣️ "What issues are in Sprint 3?"
📋 Returns: All issues assigned to that sprint
プロジェクト管理
🗣️ "Create a high-priority bug issue: 'Login page not working'"
🐛 Returns: Created issue with details

🗣️ "List all user stories in project MyApp"
📝 Returns: User stories with status and assignments

🗣️ "Show me user story #456 details"
🔍 Returns: Complete user story info including project, status, and points

🗣️ "Assign user story 456 to sprint 101"
🏃 Returns: User story assigned to sprint with confirmation

🗣️ "Unassign user story 456 from sprint"
🏃 Returns: User story removed from sprint assignment

🗣️ "Create these 5 issues in batch: Bug1, Bug2, Feature1, Task1, Task2"
🚀 Returns: Batch creation results with individual success/failure status
一括操作の例
🗣️ "Batch create these issues in MyApp:
- Bug: Login page broken (High priority)
- Feature: Add search functionality (Medium priority) 
- Task: Update documentation (Low priority)"
📊 Returns: Created 3/3 issues successfully with reference numbers

🗣️ "Batch create user stories:
- User registration flow (5 points)
- Password reset feature (3 points)
- Email notifications (2 points)"
📋 Returns: Created 3/3 user stories with story point assignments
高度なクエリの例
🗣️ "Find all high priority bugs assigned to john: status:open AND priority:high AND assignee:john AND type:bug"
📊 Returns: Filtered list of critical bugs needing attention

🗣️ "Show user stories with 5+ points created this week: points:>=5 AND created:this_week ORDER BY points DESC"
📈 Returns: High-value stories with detailed point breakdown

🗣️ "Search for API-related tasks: subject:contains:\"API\" OR description:contains:\"API\" LIMIT 10"
🔍 Returns: All tasks mentioning API with relevance ranking
コメントシステムの例
🗣️ "Add comment to issue #123: 'This needs more testing before deployment'"
💬 Returns: Comment added successfully with timestamp and user info

🗣️ "Show me all comments for user story #456"
📝 Returns: Complete comment history with user names and dates

🗣️ "Edit comment #789 to say 'Updated implementation approach'"
✏️ Returns: Comment updated successfully with new content

🗣️ "Delete comment #321"
🗑️ Returns: Comment removed from the discussion thread
ファイル添付の例
🗣️ "Upload design.pdf to user story #456 with description 'UI mockup v2'"
📎 Returns: File uploaded successfully with size and metadata

🗣️ "Upload screenshot.png to issue #123 in project MyApp"
📸 Returns: Image file attached with automatic MIME type detection

🗣️ "List all attachments for issue #789"
📂 Returns: Complete attachment list with filenames, sizes, and upload dates

🗣️ "Download attachment #123 to /Downloads/documents/"
⬇️ Returns: File downloaded successfully to specified location

🗣️ "Delete attachment #456"
🗑️ Returns: Attachment removed from the project
ファイルのアップロード方法

用途に応じて最適化された 2 つのアップロード方法に対応しています。

方法 1:ファイルパス(Claude Desktop に推奨)

{
  "itemType": "issue",
  "itemId": 123,
  "projectIdentifier": "MyApp",
  "filePath": "design.pdf",
  "description": "UI mockup v2"
}

方法 2:Base64 データ(プログラムからの利用向け)

{
  "itemType": "issue", 
  "itemId": 123,
  "projectIdentifier": "MyApp",
  "fileData": "base64_encoded_file_content",
  "fileName": "design.pdf",
  "mimeType": "application/pdf",
  "description": "UI mockup v2"
}
エピック管理の例
🗣️ "Create epic 'API v2.0 Migration' in project MyApp with description 'Complete API redesign'"
🏛️ Returns: Epic created with ID, color, and project association

🗣️ "List all epics in project MyApp"
📋 Returns: Epic list with progress stats and linked user stories count

🗣️ "Get details for epic #789"
📊 Returns: Epic overview with progress, status, and linked user stories

🗣️ "Link user story #456 to epic #789"
🔗 Returns: Story successfully linked to epic for better organization

🗣️ "Update epic #789 status to 'In Progress' and add tag 'backend'"
✏️ Returns: Epic updated with new status and organizational tags
Wiki 管理の例
🗣️ "Create wiki page 'api-documentation' in project MyApp with content about API usage"
📖 Returns: Wiki page created with slug, project association, and content preview

🗣️ "List all wiki pages in project MyApp"
📋 Returns: Complete wiki page list with modification dates and content summaries

🗣️ "Get wiki page 'user-guide' details from project MyApp"
🔍 Returns: Full wiki content, metadata, watchers, and version information

🗣️ "Update wiki page 'installation-guide' with new Docker instructions"
✏️ Returns: Wiki page updated with new content and incremented version

🗣️ "Watch wiki page 'api-documentation' for change notifications"
👁️ Returns: Successfully subscribed to wiki page change notifications

🗣️ "Delete wiki page 'outdated-info' from project MyApp"
🗑️ Returns: Wiki page permanently deleted with confirmation details

🔧 利用可能なツール(全 42 種類)

🔐 認証(1 ツール)
ツール説明
authenticateTaiga API で認証します
📁 プロジェクト管理(2 ツール)
ツール説明
listProjectsアクセス可能なすべてのプロジェクトを取得します
getProjectプロジェクトの詳細情報を表示します
🏃 スプリント管理(5 ツール)
ツール説明
listMilestonesプロジェクト内のすべてのスプリントを一覧表示します
getMilestoneユーザーストーリー、ウォッチャー、担当者、期間、指標、完全な JSON データなど、スプリントの詳細情報を取得します
getMilestoneStatsスプリントの進捗状況と統計情報を取得します
createMilestone日付を指定して新しいスプリントを作成します
getIssuesByMilestoneスプリント内のすべての課題を表示します
🐛 課題管理(6 ツール)
ツール説明
listIssuesスプリント情報とともに課題を一覧表示します
getIssue課題の詳細情報を取得します
createIssue優先度や種類を指定して課題を作成します
updateIssueStatus課題のステータスを更新します(例:「進行中」、「完了」)
addIssueToSprint課題をスプリントに割り当てるか、スプリントから削除します
assignIssue課題をチームメンバーに割り当てるか、割り当てを解除します
📝 ユーザーストーリー管理(4 ツール)
ツール説明
listUserStoriesプロジェクト内のユーザーストーリーを表示します
getUserStoryユーザーストーリーの詳細情報を取得します
createUserStory新しいユーザーストーリーを作成します
assignUserStoryToSprintユーザーストーリーをスプリントに割り当てるか、割り当てを解除します
✅ タスク管理(1 ツール)
ツール説明
createTaskユーザーストーリーに紐づくタスクを作成します
🚀 一括操作(3 ツール)
ツール説明
batchCreateIssues複数の課題を一括作成します(最大 20 件)
batchCreateUserStories複数のユーザーストーリーを一括作成します
batchCreateTasks1 つのユーザーストーリーに対して複数のタスクを一括作成します
🔍 高度な検索(3 ツール)
ツール説明
advancedSearchSQL のような高度なクエリを実行します
queryHelpクエリ構文のヘルプと使用例を取得します
validateQuery実行前にクエリ構文を検証します
💬 コメントシステム(4 ツール)
ツール説明
addComment課題、ストーリー、タスクにコメントを追加します
listComments項目のコメント履歴を表示します
editComment既存のコメントを編集します
deleteCommentコメントを削除します
📎 ファイル添付(4 ツール)
ツール説明主な機能
uploadAttachment課題、ストーリー、タスクにファイルをアップロードします2 つの方法に対応(ファイルパス/Base64)、スマートなパス解決
listAttachmentsアイテムの添付ファイル一覧を表示しますファイルサイズやアップロード日を含む完全なメタデータ
downloadAttachmentID を指定して添付ファイルをダウンロードします柔軟なダウンロード先の管理
deleteAttachment添付ファイルを削除します確認機能付きの安全な削除
🏛️ エピック管理(6 ツール)
ツール説明
createEpic大規模なエピック機能を作成します
listEpicsプロジェクト内のすべてのエピックを一覧表示します
getEpicエピックの詳細と進捗統計を取得します
updateEpicエピックの情報とステータスを更新します
linkStoryToEpicユーザーストーリーをエピックにリンクします
unlinkStoryFromEpicストーリーとエピックの関連付けを解除します
📖 Wiki 管理(6 ツール)
ツール説明
createWikiPageMarkdown に対応したプロジェクト Wiki ページを作成します
listWikiPagesプロジェクト内のすべての Wiki ページを一覧表示します
getWikiPageID またはスラッグを指定して Wiki ページの詳細を取得します
updateWikiPageWiki ページの内容と設定を更新します
deleteWikiPageWiki ページを削除します(取り消しできません)
watchWikiPage通知を受け取るために Wiki ページをウォッチ/ウォッチ解除します

🚀 Taiga MCP Server を選ぶ理由

  • 🔥 セットアップ不要:npx ですぐに利用できます
  • 🧠 AI ネイティブ:対話型のプロジェクト管理専用に構築されています
  • 🔗 完全な統合:39 個のツールで Taiga API を全面的にカバーします
  • 📊 豊富なデータ:詳細な進捗追跡と統計情報
  • 🎯 スプリント重視:高度なスプリントと課題の関連追跡
  • 🛡️ セキュア:環境変数による認証情報の管理
  • 🚀 バッチ操作:大規模プロジェクト向けの効率的な一括操作
  • 💬 チームコラボレーション:コミュニケーションを強化する完全なコメントシステム
  • 📎 ファイル管理:Claude Desktop に最適化された 2 種類のアップロード方法(ファイルパス/Base64)
  • 🏛️ エンタープライズ対応:大規模なプロジェクト整理のためのエピック管理
  • 📖 ナレッジ管理:プロジェクトドキュメント用の完全な Wiki システム
  • 🔍 高度な検索:複雑なデータフィルタリングに対応する SQL 風のクエリ構文

🙏 謝辞

帰属表示および法的通知

このプロジェクトは、adriapedralbes による mcpTAIGA に着想を得ています。このバージョンは、同じ ISC ライセンスの条件を使用しながら、まったく新しいアーキテクチャ、機能、性能を備えた大幅な書き換えおよび再実装です。

AI を活用した開発

🤖 Claude Code を活用して開発:このプロジェクト全体は Claude Code と共同で開発され、AI を活用したソフトウェア開発の可能性を示しています。アーキテクチャ、実装、テスト、ドキュメントのすべてが、人間と AI の協業によって作成されました。

主な機能強化

当初の基本コンセプトをもとに、このバージョンでは以下の機能を追加しました。

  • アーキテクチャを全面的に再設計:プロフェッショナルなモジュール型ツールシステム(v1.5.0以降)
  • 33個のMCPツール:基本機能からエンタープライズグレードのプロジェクト管理まで対応
  • 高度なスプリント管理:詳細な統計情報を含む、マイルストーンの完全な追跡
  • 課題管理を強化:スプリントとの関連付けを含む、課題ライフサイクル全体の管理
  • 一括操作:大規模プロジェクト向けの効率的な一括作成(v1.6.0)
  • 高度なクエリシステム:複雑なデータフィルタリングに対応するSQLライクな構文(v1.6.1)
  • チームコラボレーション:コミュニケーションを促進する、完全なコメントシステム(v1.7.0)
  • ファイル管理:複数の形式をサポートする、添付ファイルのライフサイクル全体の管理(v1.7.1)
  • エピック管理:エンタープライズグレードの大規模プロジェクト編成(v1.8.0)
  • プロフェッショナルなコード品質:エラー処理、フォーマット、包括的なテスト
  • 包括的なドキュメント:3言語でのプロフェッショナルなガイドとサンプル
  • CI/CDの自動化:完全な自動化による2つのレジストリへの公開

当初のコンセプト:基本的なTaiga MCP接続
本実装:アーキテクチャを全面的に刷新した、フル機能のTaigaプロジェクト管理スイート

この再実装では、基盤となるコンセプトを尊重しつつ、AI支援によるソフトウェア開発がもたらす協働の可能性を示しています。

📚 ドキュメント

すべてのドキュメントは、GitHub Wikiでご覧いただけます 📖

🌐 多言語対応

ドキュメントは以下の3言語でご利用いただけます。

  • 🇺🇸 英語 - 英語の完全なドキュメント
  • 🇨🇳 簡体字中国語 - 簡体字中国語の完全なドキュメント
  • 🇹🇼 繁体字中国語 - 繁体字中国語の完全なドキュメント
🎯 クイックナビゲーション
セクション英語簡体字中国語繁体字中国語
はじめにインストールガイドインストールガイドインストールガイド
APIリファレンスAPIリファレンスAPIリファレンスAPIリファレンス
アーキテクチャアーキテクチャアーキテクチャ概要アーキテクチャ概要
CI/CDガイドCI/CDガイドCI/CDガイドCI/CDガイド
👩‍💻 開発者向けリソース
トピックEnglish简体中文繁體中文
設計ドキュメントDesign设计文档設計文件
最初のステップFirst Steps第一步第一步
設定Configuration配置说明設定說明

💡 ヒント:Wikiでは、検索、ナビゲーション、モバイルでの使いやすさが向上します!

🚀 自動公開

このプロジェクトでは、完全に自動化されたCI/CDパイプラインを採用しています。

npm version patch              # Create new version
git push origin main --tags    # Trigger automated publishing

自動化フロー:テスト → NPM公開 → GitHub Packages → リリース作成
デュアルレジストリ対応:NPMとGitHub Package Registryの両方で利用可能です
詳細ドキュメント:完全なセットアップについては、CI/CDガイドをご覧ください。

🤝 コントリビューション

Issueやプルリクエストを歓迎します!コントリビューションは、GitHubリポジトリをご覧ください。

📄 ライセンス

ISCライセンス - このプロジェクトは、元のmcpTAIGAと同じISCライセンスで公開されています。

プロジェクト情報
  • 元になったプロジェクト:adriapedralbes / mcpTAIGA
  • この実装:Claude CodeのAI支援を受け、[email protected]が大幅に書き直しました
  • ライセンス:ISCライセンス
  • アーキテクチャ:11カテゴリにわたる33個のMCPツールを備えた、まったく新しいモジュール式設計
  • 現行バージョン:v1.8.0 - エピック管理を備えたエンタープライズ統合エディション

Taigaのプロジェクト管理を利用するアジャイルチームのために、❤️を込めて強化しました

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。