インストール
コンテンツ詳細
代替品
インストール
{
"mcpServers": {
"yandex-tracker": {
"command": "uvx",
"args": ["yandex-tracker-mcp@latest"],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
{
"mcpServers": {
"yandex-tracker": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "TRACKER_TOKEN",
"-e", "TRACKER_CLOUD_ORG_ID",
"-e", "TRACKER_ORG_ID",
"ghcr.io/aikts/yandex-tracker-mcp:latest"
],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}🚀 Yandex Tracker MCP Server
このサーバーは、AIアシスタントがYandex Tracker APIとやり取りできる包括的なモデルコンテキストプロトコル(MCP)サーバーです。セキュアで認証されたアクセスを通じて、Yandex Trackerのイシュー、キュー、コメント、作業記録、検索機能にアクセスでき、オプションでRedisキャッシュを使用してパフォーマンスを向上させることができます。
こちらにロシア語のドキュメントがあります。
✨ 主な機能
- 完全なキュー管理:ページネーションとタグ取得をサポートし、すべての利用可能なYandex Trackerキューをリスト表示およびアクセスできます。
- ユーザー管理:ログイン詳細、メールアドレス、ライセンス状態、組織データを含むユーザーアカウント情報を取得できます。
- イシュー操作:詳細なイシュー情報、コメント、関連リンク、作業記録、添付ファイルを取得できます。
- フィールド管理:グローバルフィールド、キュー固有のローカルフィールド、ステータス、イシュータイプにアクセスできます。
- 高度なクエリ言語:複雑なフィルタリング、ソート、日付関数を備えた完全なYandex Trackerクエリ言語をサポートします。
- パフォーマンスキャッシュ:オプションのRedisキャッシュレイヤーを使用して応答時間を短縮できます。
- セキュリティコントロール:キューアクセス制限とセキュアなトークン処理を設定できます。
- 複数のトランスポートオプション:柔軟な統合のために、stdio、SSE(非推奨)、HTTPトランスポートをサポートします。
- OAuth 2.0認証:静的APIトークンの代替として、自動更新をサポートする動的トークンベースの認証が可能です。
- 組織サポート:標準およびクラウド組織IDの両方に対応しています。
組織IDの設定
Yandex組織のタイプに応じて、以下のいずれかを選択してください。
- Yandex Cloud組織:Yandex Cloudで管理される組織の場合は、後で
TRACKER_CLOUD_ORG_ID環境変数を使用します。 - Yandex 360組織:Yandex 360組織の場合は、後で
TRACKER_ORG_ID環境変数を使用します。
組織IDは、Yandex TrackerのURLまたは組織設定で確認できます。
🚀 クイックスタート
Claude Desktopでの拡張機能のインストール
Yandex Tracker MCP Serverは、Claude Desktopで拡張機能としてワンクリックでインストールできます。
前提条件
システムにPython 3.12がインストールされている必要があります。macOSユーザーは、以下のコマンドを使用してインストールできます。
brew install python@3.12
インストール手順
- GitHub Releasesから、お使いのOSとプラットフォームに合った
*.dxtファイルをダウンロードします。 - ダウンロードしたファイルをダブルクリックして、Claude Desktopにインストールします。
- 求められたら、Yandex TrackerのOAuthトークンを入力します。
- 拡張機能が有効になっていることを確認して、このMCPサーバーを使用できます。
手動インストール
前提条件
- uvがグローバルにインストールされていること
- 適切な権限を持つ有効なYandex Tracker APIトークン
以下のセクションでは、さまざまなAIクライアントに対するMCPサーバーの設定方法を示します。uvx yandex-tracker-mcp@latestまたはDockerイメージghcr.io/aikts/yandex-tracker-mcp:latestのいずれかを使用できます。どちらも以下の環境変数が必要です。
- 認証(以下のいずれか)
TRACKER_TOKEN- Yandex TrackerのOAuthトークンTRACKER_IAM_TOKEN- IAMトークンTRACKER_SA_KEY_ID、TRACKER_SA_SERVICE_ACCOUNT_ID、TRACKER_SA_PRIVATE_KEY- サービスアカウントの資格情報
TRACKER_CLOUD_ORG_IDまたはTRACKER_ORG_ID- Yandex Cloud(またはYandex 360)の組織ID
Claude Desktop
設定ファイルのパス
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
uvxを使用する場合
{
"mcpServers": {
"yandex-tracker": {
"command": "uvx",
"args": ["yandex-tracker-mcp@latest"],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
Dockerを使用する場合
{
"mcpServers": {
"yandex-tracker": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "TRACKER_TOKEN",
"-e", "TRACKER_CLOUD_ORG_ID",
"-e", "TRACKER_ORG_ID",
"ghcr.io/aikts/yandex-tracker-mcp:latest"
],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
Claude Code
uvxを使用する場合
claude mcp add yandex-tracker uvx yandex-tracker-mcp@latest \
-e TRACKER_TOKEN=your_tracker_token_here \
-e TRACKER_CLOUD_ORG_ID=your_cloud_org_id_here \
-e TRACKER_ORG_ID=your_org_id_here \
-e TRANSPORT=stdio
Dockerを使用する場合
claude mcp add yandex-tracker docker "run --rm -i -e TRACKER_TOKEN=your_tracker_token_here -e TRACKER_CLOUD_ORG_ID=your_cloud_org_id_here -e TRACKER_ORG_ID=your_org_id_here -e TRANSPORT=stdio ghcr.io/aikts/yandex-tracker-mcp:latest"
Cursor
設定ファイルのパス
- プロジェクト固有: プロジェクトディレクトリ内の
.cursor/mcp.json - グローバル:
~/.cursor/mcp.json
uvxを使用する場合
{
"mcpServers": {
"yandex-tracker": {
"command": "uvx",
"args": ["yandex-tracker-mcp@latest"],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
Dockerを使用する場合
{
"mcpServers": {
"yandex-tracker": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "TRACKER_TOKEN",
"-e", "TRACKER_CLOUD_ORG_ID",
"-e", "TRACKER_ORG_ID",
"ghcr.io/aikts/yandex-tracker-mcp:latest"
],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
Windsurf
設定ファイルのパス
~/.codeium/windsurf/mcp_config.json
アクセス方法: Windsurf Settings → Cascadeタブ → Model Context Protocol (MCP) Servers → "View raw config"
uvxを使用する場合
{
"mcpServers": {
"yandex-tracker": {
"command": "uvx",
"args": ["yandex-tracker-mcp@latest"],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
Dockerを使用する場合
{
"mcpServers": {
"yandex-tracker": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "TRACKER_TOKEN",
"-e", "TRACKER_CLOUD_ORG_ID",
"-e", "TRACKER_ORG_ID",
"ghcr.io/aikts/yandex-tracker-mcp:latest"
],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
Zed
設定ファイルのパス
~/.config/zed/settings.json
アクセス方法: Cmd+, (macOS) または Ctrl+, (Linux/Windows) またはコマンドパレット: "zed: open settings"
注意: MCPをサポートするにはZed Previewバージョンが必要です。
uvxを使用する場合
{
"context_servers": {
"yandex-tracker": {
"source": "custom",
"command": {
"path": "uvx",
"args": ["yandex-tracker-mcp@latest"],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
}
Dockerを使用する場合
{
"context_servers": {
"yandex-tracker": {
"source": "custom",
"command": {
"path": "docker",
"args": [
"run", "--rm", "-i",
"-e", "TRACKER_TOKEN",
"-e", "TRACKER_CLOUD_ORG_ID",
"-e", "TRACKER_ORG_ID",
"ghcr.io/aikts/yandex-tracker-mcp:latest"
],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
}
GitHub Copilot (VS Code)
設定ファイルのパス
- ワークスペース: プロジェクトディレクトリ内の
.vscode/mcp.json - グローバル: VS Codeの
settings.json
オプション1: ワークスペース設定(セキュリティ上推奨)
.vscode/mcp.jsonを作成します。
uvxを使用する場合
{
"inputs": [
{
"type": "promptString",
"id": "tracker-token",
"description": "Yandex Tracker Token",
"password": true
},
{
"type": "promptString",
"id": "cloud-org-id",
"description": "Yandex Cloud Organization ID"
},
{
"type": "promptString",
"id": "org-id",
"description": "Yandex Tracker Organization ID (optional)"
}
],
"servers": {
"yandex-tracker": {
"type": "stdio",
"command": "uvx",
"args": ["yandex-tracker-mcp@latest"],
"env": {
"TRACKER_TOKEN": "${input:tracker-token}",
"TRACKER_CLOUD_ORG_ID": "${input:cloud-org-id}",
"TRACKER_ORG_ID": "${input:org-id}",
"TRANSPORT": "stdio"
}
}
}
}
Dockerを使用する場合
{
"inputs": [
{
"type": "promptString",
"id": "tracker-token",
"description": "Yandex Tracker Token",
"password": true
},
{
"type": "promptString",
"id": "cloud-org-id",
"description": "Yandex Cloud Organization ID"
},
{
"type": "promptString",
"id": "org-id",
"description": "Yandex Tracker Organization ID (optional)"
}
],
"servers": {
"yandex-tracker": {
"type": "stdio",
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "TRACKER_TOKEN",
"-e", "TRACKER_CLOUD_ORG_ID",
"-e", "TRACKER_ORG_ID",
"ghcr.io/aikts/yandex-tracker-mcp:latest"
],
"env": {
"TRACKER_TOKEN": "${input:tracker-token}",
"TRACKER_CLOUD_ORG_ID": "${input:cloud-org-id}",
"TRACKER_ORG_ID": "${input:org-id}",
"TRANSPORT": "stdio"
}
}
}
}
オプション2: グローバル設定
VS Codeのsettings.jsonに追加します。
uvxを使用する場合
{
"github.copilot.chat.mcp.servers": {
"yandex-tracker": {
"type": "stdio",
"command": "uvx",
"args": ["yandex-tracker-mcp@latest"],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
Dockerを使用する場合
{
"github.copilot.chat.mcp.servers": {
"yandex-tracker": {
"type": "stdio",
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "TRACKER_TOKEN",
"-e", "TRACKER_CLOUD_ORG_ID",
"-e", "TRACKER_ORG_ID",
"ghcr.io/aikts/yandex-tracker-mcp:latest"
],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
その他のMCP互換クライアント
その他のMCP互換クライアントの場合、標準のMCPサーバー設定形式を使用します。
uvxを使用する場合
{
"mcpServers": {
"yandex-tracker": {
"command": "uvx",
"args": ["yandex-tracker-mcp@latest"],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
Dockerを使用する場合
{
"mcpServers": {
"yandex-tracker": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "TRACKER_TOKEN",
"-e", "TRACKER_CLOUD_ORG_ID",
"-e", "TRACKER_ORG_ID",
"ghcr.io/aikts/yandex-tracker-mcp:latest"
],
"env": {
"TRACKER_TOKEN": "your_tracker_token_here",
"TRACKER_CLOUD_ORG_ID": "your_cloud_org_id_here",
"TRACKER_ORG_ID": "your_org_id_here"
}
}
}
}
⚠️ 重要提示
- プレースホルダー値を実際の資格情報に置き換えてください。
- 設定を変更した後は、AIクライアントを再起動してください。
uvxがインストールされ、システムのPATHに含まれていることを確認してください。- 本番環境では、セキュリティを向上させるために動的トークン(OAuthまたはIAM)を使用することをお勧めします。
📚 ドキュメント
利用可能なMCPツール
このサーバーは、MCPプロトコルを通じて以下のツールを公開しています。
キュー管理
queues_get_all: すべての利用可能なYandex Trackerキューをリスト表示します。- ページネーションされたキュー情報を返します。
TRACKER_LIMIT_QUEUESの制限に従います。
queue_get_local_fields: 特定のキューのローカルフィールドを取得します。- パラメーター:
queue_id(文字列、例: "SOMEPROJECT") - キュー固有のカスタムフィールド(ID、名前、キー)を返します。
TRACKER_LIMIT_QUEUESの制限に従います。
- パラメーター:
queue_get_tags: 特定のキューのすべてのタグを取得します。- パラメーター:
queue_id(文字列、例: "SOMEPROJECT") - 指定されたキューで利用可能なタグのリストを返します。
TRACKER_LIMIT_QUEUESの制限に従います。
- パラメーター:
queue_get_versions: 特定のキューのすべてのバージョンを取得します。- パラメーター:
queue_id(文字列、例: "SOMEPROJECT") - 指定されたキューで利用可能なバージョンのリスト(名前、説明、日付、ステータスなどの詳細を含む)を返します。
TRACKER_LIMIT_QUEUESの制限に従います。
- パラメーター:
ユーザー管理
users_get_all: 組織に登録されているユーザーアカウントの情報を取得します。- パラメーター:
per_page(オプション): 1ページあたりのユーザー数(デフォルト: 50)page(オプション): 返すページ番号(デフォルト: 1)
- ページネーションされたユーザーリスト(ログイン、メール、ライセンス状態、組織詳細を含む)を返します。
- ユーザーのメタデータ(外部ステータス、解雇ステータス、通知設定など)も含まれます。
- パラメーター:
user_get: ログイン名またはUIDで特定のユーザーの情報を取得します。- パラメーター:
user_id(文字列、ユーザーログイン名(例: "john.doe")またはUID(例: "12345")) - 詳細なユーザー情報(ログイン、メール、ライセンス状態、組織詳細を含む)を返します。
- ユーザーログイン名と数値型のユーザーIDの両方をサポートし、柔軟な識別が可能です。
- パラメーター:
user_get_current: 現在認証されているユーザーの情報を取得します。- パラメーターは不要です。
- 現在の認証トークンに関連付けられたユーザーの詳細情報を返します。
- 認証されたユーザーのログイン、メール、表示名、組織詳細を含みます。
フィールド管理
get_global_fields: Yandex Trackerで利用可能なすべてのグローバルフィールドを取得します。- イシューで使用できるグローバルフィールドの完全なリストを返します。
- フィールドスキーマ、タイプ情報、設定を含みます。
ステータスとタイプ管理
get_statuses: すべての利用可能なイシューステータスを取得します。- 割り当てることができるイシューステータスの完全なリストを返します。
- ステータスID、名前、タイプ情報を含みます。
get_issue_types: すべての利用可能なイシュータイプを取得します。- イシューを作成/更新するためのイシュータイプの完全なリストを返します。
- タイプID、名前、設定詳細を含みます。
get_priorities: すべての利用可能なイシューの優先度を取得します。- イシューに割り当てることができる優先度の完全なリストを返します。
- 優先度キー、名前、順序情報を含みます。
イシュー操作
issue_get: IDで詳細なイシュー情報を取得します。- パラメーター:
issue_id(文字列、形式: "QUEUE-123")include_description(ブール値、オプション、デフォルト: true): 結果にイシューの説明を含めるかどうか。大きなデータになる可能性があるため、必要な場合のみ使用してください。
- ステータス、担当者、説明などを含む完全なイシューデータを返します。
- パラメーター:
issue_get_url: イシューのWeb URLを生成します。- パラメーター:
issue_id(文字列) - 返り値:
https://tracker.yandex.ru/{issue_id}
- パラメーター:
issue_get_comments: イシューのすべてのコメントを取得します。- パラメーター:
issue_id(文字列) - メタデータ付きのコメントの時系列リストを返します。
- パラメーター:
issue_get_links: 関連するイシューのリンクを取得します。- パラメーター:
issue_id(文字列) - 関連、ブロック、または重複するイシューへのリンクを返します。
- パラメーター:
issue_get_worklogs: 作業記録エントリを取得します。- パラメーター:
issue_ids(文字列の配列) - 指定されたイシューのタイムトラッキングデータを返します。
- パラメーター:
issue_get_attachments: イシューの添付ファイルを取得します。- パラメーター:
issue_id(文字列、形式: "QUEUE-123") - 指定されたイシューのメタデータ付きの添付ファイルのリストを返します。
- パラメーター:
issue_get_checklist: イシューのチェックリスト項目を取得します。- パラメーター:
issue_id(文字列、形式: "QUEUE-123") - テキスト、ステータス、担当者、期限情報を含むチェックリスト項目のリストを返します。
- パラメーター:
検索と発見
issues_find: Yandex Trackerクエリ言語を使用してイシューを検索します。- パラメーター:
query(必須): Yandex Trackerクエリ言語の構文を使用したクエリ文字列include_description(ブール値、オプション、デフォルト: false): イシューの結果に説明を含めるかどうか。大きなデータになる可能性があるため、必要な場合のみ使用してください。fields(文字列のリスト、オプション): レスポンスに含めるフィールド。必要なフィールドのみを選択することで、コンテキストウィンドウの使用を最適化できます。指定しない場合は、すべての利用可能なフィールドが返されます。page(オプション): ページネーションのページ番号(デフォルト: 1)per_page(オプション): 1ページあたりのアイテム数(デフォルト: 100)。結果がコンテキストウィンドウを超える場合は減らすことができます。
- 1ページあたり指定された数のイシューを返します。
- パラメーター:
issues_count: Yandex Trackerクエリ言語を使用して、クエリに一致するイシューの数をカウントします。- パラメーター:
query(必須): Yandex Trackerクエリ言語の構文を使用したクエリ文字列
- 指定された条件に一致するイシューの総数を返します。
- すべてのクエリ言語機能(フィールドフィルタリング、日付関数、論理演算子、複雑な式)をサポートします。
- 分析、レポート、イシューの分布を理解するために、完全なイシューデータを取得せずに使用できます。
- パラメーター:
httpトランスポート
MCPサーバーは、ウェブベースの統合やstdioトランスポートが適さない場合に、streamable-httpモードで実行することもできます。
streamable-httpモードの環境変数
# 必須 - トランスポートをstreamable-httpモードに設定
TRANSPORT=streamable-http
# サーバー設定
HOST=0.0.0.0 # デフォルト: 0.0.0.0 (すべてのインターフェース)
PORT=8000 # デフォルト: 8000
streamable-httpサーバーの起動
# 基本的なstreamable-httpサーバーの起動
TRANSPORT=streamable-http uvx yandex-tracker-mcp@latest
# カスタムホストとポートを使用する場合
TRANSPORT=streamable-http \
HOST=localhost \
PORT=9000 \
uvx yandex-tracker-mcp@latest
# すべての環境変数を使用する場合
TRANSPORT=streamable-http \
HOST=0.0.0.0 \
PORT=8000 \
TRACKER_TOKEN=your_token \
TRACKER_CLOUD_ORG_ID=your_org_id \
uvx yandex-tracker-mcp@latest
MCPサーバーに接続するときに以下の形式を使用する場合は、TRACKER_CLOUD_ORG_IDまたはTRACKER_ORG_IDの設定を省略できます(Claude Codeの例)。
claude mcp add --transport http yandex-tracker "http://localhost:8000/mcp/?cloudOrgId=your_cloud_org_id&"
または
claude mcp add --transport http yandex-tracker "http://localhost:8000/mcp/?orgId=org_id&"
OAuth 2.0認証を使用する場合は、グローバルなTRACKER_TOKEN環境変数の設定も省略できます(以下を参照)。
OAuth 2.0認証
Yandex Tracker MCP Serverは、静的APIトークンのセキュアな代替手段として、OAuth 2.0認証をサポートしています。設定すると、サーバーはOAuthプロバイダーとして機能し、MCPクライアントとYandex OAuthサービス間の認証を容易にします。
OAuthの仕組み
MCPサーバーは、標準的なOAuth 2.0認可コードフローを実装しています。
- クライアント登録: MCPクライアントがサーバーに登録して、クライアント資格情報を取得します。
- 認可: ユーザーはYandex OAuthにリダイレクトされて認証します。
- トークン交換: サーバーは認可コードをアクセストークンに交換します。
- APIアクセス: クライアントはすべてのAPIリクエストにベアラートークンを使用します。
- トークン更新: 期限切れのトークンは、再認証せずに更新できます。
MCP Client → MCP Server → Yandex OAuth → User Authentication
↑ ↓
└────────── Access Token ←─────────────────┘
OAuthの設定
OAuth認証を有効にするには、以下の環境変数を設定します。
# OAuthモードを有効にする
OAUTH_ENABLED=true
# Yandex OAuthアプリケーションの資格情報(OAuthに必要)
OAUTH_CLIENT_ID=your_yandex_oauth_app_id
OAUTH_CLIENT_SECRET=your_yandex_oauth_app_secret
# MCPサーバーの公開URL(OAuthコールバックに必要)
MCP_SERVER_PUBLIC_URL=https://your-mcp-server.example.com
# オプションのOAuth設定
OAUTH_SERVER_URL=https://oauth.yandex.ru # デフォルトのYandex OAuthサーバー
# OAuthが有効な場合、TRACKER_TOKENはオプションになります
Yandex OAuthアプリケーションの設定
- Yandex OAuthにアクセスして、新しいアプリケーションを作成します。
- コールバックURLを
{MCP_SERVER_PUBLIC_URL}/oauth/yandex/callbackに設定します。 - 以下の権限を要求します。
tracker:read- Trackerの読み取り権限tracker:write- Trackerの書き込み権限
- クライアントIDとクライアントシークレットを保存します。
OAuthと静的トークン認証の比較
| 機能 | OAuth | 静的トークン |
|---|---|---|
| セキュリティ | 期限付きの動的トークン | 長期間有効な静的トークン |
| ユーザー体験 | 対話型のログインフロー | 一度の設定で済む |
| トークン管理 | 自動更新 | 手動でのローテーション |
| アクセス制御 | ユーザーごとの認証 | 共有トークン |
| 設定の複雑さ | OAuthアプリの設定が必要 | シンプルなトークン設定 |
OAuthモードの制限
- 現在、OAuthモードでは、コールバックURLのためにMCPサーバーが公開アクセス可能である必要があります。
- OAuthモードは、ウェブベースの認証フローをサポートする対話型クライアントに最適です。
MCPクライアントでのOAuthの使用
OAuthが有効になっている場合、MCPクライアントは以下のことが必要です。
- OAuth 2.0認可コードフローをサポートする。
- アクセストークンが期限切れになったときにトークンを更新する。
- 永続的な認証のためにリフレッシュトークンを安全に保存する。
注意: すべてのMCPクライアントが現在OAuth認証をサポートしているわけではありません。クライアントのドキュメントでOAuth互換性を確認してください。
Claude Codeの例:
claude mcp add --transport http yandex-tracker https://your-mcp-server.example.com/mcp/ -s user
OAuthデータの保存
MCPサーバーは、OAuthデータ(クライアント登録、アクセストークン、リフレッシュトークン、認可状態)の保存に2つの異なるバックエンドをサポートしています。
インメモリストア(デフォルト)
インメモリストアは、すべてのOAuthデータをサーバーのメモリに保持します。これはデフォルトのオプションで、追加の設定は必要ありません。
特徴:
- 永続性: サーバーを再起動するとデータが失われます。
- パフォーマンス: データがメモリに保存されているため、非常に高速にアクセスできます。
- スケーラビリティ: 単一のサーバーインスタンスに限定されます。
- セットアップ: 追加の依存関係は必要ありません。
- 最適な使用シーン: 開発、テスト、またはサーバー再起動時にOAuthセッションが失われても問題ない単一インスタンスのデプロイメント。
設定:
OAUTH_STORE=memory # デフォルト値、省略可能
Redisストア
Redisストアは、Redisデータベースを使用してOAuthデータを永続的に保存します。これにより、サーバーの再起動後もOAuthセッションが維持され、複数のインスタンスのデプロイメントが可能になります。
特徴:
- 永続性: サーバーを再起動してもデータが保持されます。
- パフォーマンス: ネットワークのオーバーヘッドがありますが、高速にアクセスできます。
- スケーラビリティ: 同じRedisデータベースを共有する複数のサーバーインスタンスをサポートします。
- セットアップ: Redisサーバーのインストールと設定が必要です。
- 最適な使用シーン: 本番環境のデプロイメント、高可用性の設定、またはOAuthセッションを永続的に保持する必要がある場合。
設定:
# OAuthデータのRedisストアを有効にする
OAUTH_STORE=redis
# Redis接続設定(ツールキャッシュと同じ設定を使用)
REDIS_ENDPOINT=localhost # デフォルト: localhost
REDIS_PORT=6379 # デフォルト: 6379
REDIS_DB=0 # デフォルト: 0
REDIS_PASSWORD=your_redis_password # オプション: Redisパスワード
REDIS_POOL_MAX_SIZE=10 # デフォルト: 10
保存動作:
- クライアント情報: 永続的に保存されます。
- OAuth状態: セキュリティのためにTTL(有効期限)付きで保存されます。
- 認可コード: TTL付きで保存され、使用後は自動的に削除されます。
- アクセストークン: トークンの有効期限に基づいて自動的に期限切れになります。
- リフレッシュトークン: 取り消されるまで永続的に保存されます。
- キーの名前空間:
oauth:*のプレフィックスを使用して、他のRedisデータとの競合を避けます。
⚠️ 重要提示
- 両方のストアは、ツールキャッシュシステムと同じRedis接続設定を使用します。
- Redisストアを使用する場合は、Redisインスタンスが適切にセキュリティ保護され、アクセス可能であることを確認してください。
OAUTH_STORE設定はOAuthデータの保存のみに影響し、ツールキャッシュはTOOLS_CACHE_ENABLEDを使用します。- Redisストアは、クロス言語の互換性とデバッグのためにJSONシリアル化を使用します。
認証
Yandex Tracker MCP Serverは、明確な優先順位で複数の認証方法をサポートしています。サーバーは、この階層に基づいて最初に利用可能な認証方法を使用します。
認証の優先順位
- 動的OAuthトークン (最も高い優先度)
- OAuthが有効になっており、ユーザーがOAuthフローで認証した場合
- トークンはユーザーセッションごとに動的に取得および更新されます
- 必要な環境変数:
OAUTH_ENABLED=true、OAUTH_CLIENT_ID、OAUTH_CLIENT_SECRET、MCP_SERVER_PUBLIC_URL
- 静的OAuthトークン
- 環境変数を介して提供される従来のOAuthトークン
- すべてのリクエストに単一のトークンが使用されます
- 必要な環境変数:
TRACKER_TOKEN(あなたのOAuthトークン)
- 静的IAMトークン
- サービス間認証のためのIAM(Identity and Access Management)トークン
- 自動化システムやCI/CDパイプラインに適しています
- 必要な環境変数:
TRACKER_IAM_TOKEN(あなたのIAMトークン)
- 動的IAMトークン (最も低い優先度)
- サービスアカウントの資格情報を使用して自動的に取得されます
- トークンは自動的に取得および更新されます
- 必要な環境変数:
TRACKER_SA_KEY_ID、TRACKER_SA_SERVICE_ACCOUNT_ID、TRACKER_SA_PRIVATE_KEY
認証シナリオ
シナリオ1: 動的トークンを使用したOAuth(対話型使用に推奨)
# OAuthモードを有効にする
OAUTH_ENABLED=true
OAUTH_CLIENT_ID=your_oauth_app_id
OAUTH_CLIENT_SECRET=your_oauth_app_secret
MCP_SERVER_PUBLIC_URL=https://your-server.com
# 組織ID(いずれかを選択)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id # またはTRACKER_ORG_ID
シナリオ2: 静的OAuthトークン(シンプルな設定)
# OAuthトークン
TRACKER_TOKEN=your_oauth_token
# 組織ID(いずれかを選択)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id # またはTRACKER_ORG_ID
シナリオ3: 静的IAMトークン
# IAMトークン
TRACKER_IAM_TOKEN=your_iam_token
# 組織ID(いずれかを選択)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id # またはTRACKER_ORG_ID
シナリオ4: サービスアカウントを使用した動的IAMトークン
# サービスアカウントの資格情報
TRACKER_SA_KEY_ID=your_key_id
TRACKER_SA_SERVICE_ACCOUNT_ID=your_service_account_id
TRACKER_SA_PRIVATE_KEY=your_private_key
# 組織ID(いずれかを選択)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id # またはTRACKER_ORG_ID
重要な注意事項
- サーバーは、上記の順序で認証方法を確認します。
- 一度に1つの認証方法のみが使用されます。
- 本番環境では、セキュリティを向上させるために動的トークン(OAuthまたはIAM)を使用することをお勧めします。
- IAMトークンはOAuthトークンよりも有効期限が短く、より頻繁な更新が必要になる場合があります。
- サービスアカウントを使用する場合は、アカウントがYandex Trackerに適切な権限を持っていることを確認してください。
設定
環境変数
# 認証(以下のいずれかの方法を使用)
# 方法1: OAuthトークン
TRACKER_TOKEN=your_yandex_tracker_oauth_token
# 方法2: IAMトークン
TRACKER_IAM_TOKEN=your_iam_token
# 方法3: サービスアカウント(動的IAMトークン用)
TRACKER_SA_KEY_ID=your_key_id # サービスアカウントのキーID
TRACKER_SA_SERVICE_ACCOUNT_ID=your_sa_id # サービスアカウントのID
TRACKER_SA_PRIVATE_KEY=your_private_key # サービスアカウントの秘密鍵
# 組織設定(いずれかを選択)
TRACKER_CLOUD_ORG_ID=your_cloud_org_id # Yandex Cloud組織用
TRACKER_ORG_ID=your_org_id # Yandex 360組織用
# API設定(オプション)
TRACKER_API_BASE_URL=https://api.tracker.yandex.net # デフォルト: https://api.tracker.yandex.net
# セキュリティ - 特定のキューへのアクセスを制限(オプション)
TRACKER_LIMIT_QUEUES=PROJ1,PROJ2,DEV # カンマ区切りのキューキー
# サーバー設定
HOST=0.0.0.0 # デフォルト: 0.0.0.0
PORT=8000 # デフォルト: 8000
TRANSPORT=stdio # オプション: stdio, streamable-http, sse
# Redis接続設定(キャッシュとOAuthストアに使用)
REDIS_ENDPOINT=localhost # デフォルト: localhost
REDIS_PORT=6379 # デフォルト: 6379
REDIS_DB=0 # デフォルト: 0
REDIS_PASSWORD=your_redis_password # オプション: Redisパスワード
REDIS_POOL_MAX_SIZE=10 # デフォルト: 10
# ツールキャッシュ設定(オプション)
TOOLS_CACHE_ENABLED=true # デフォルト: false
TOOLS_CACHE_REDIS_TTL=3600 # デフォルト: 3600秒(1時間)
# OAuth 2.0認証(オプション)
OAUTH_ENABLED=true # デフォルト: false
OAUTH_STORE=redis # オプション: memory, redis (デフォルト: memory)
OAUTH_SERVER_URL=https://oauth.yandex.ru # デフォルト: https://oauth.yandex.ru
OAUTH_CLIENT_ID=your_oauth_client_id # OAuthが有効な場合に必要
OAUTH_CLIENT_SECRET=your_oauth_secret # OAuthが有効な場合に必要
MCP_SERVER_PUBLIC_URL=https://your.server.com # OAuthが有効な場合に必要
TRACKER_READ_ONLY=true # デフォルト: false - OAuthを読み取り専用権限に制限
Dockerデプロイメント
事前構築済みイメージの使用(推奨)
# 環境ファイルを使用する場合
docker run --env-file .env -p 8000:8000 ghcr.io/aikts/yandex-tracker-mcp:latest
# インライン環境変数を使用する場合
docker run -e TRACKER_TOKEN=your_token \
-e TRACKER_CLOUD_ORG_ID=your_org_id \
-p 8000:8000 \
ghcr.io/aikts/yandex-tracker-mcp:latest
ローカルでイメージをビルドする場合
docker build -t yandex-tracker-mcp .
Docker Compose
事前構築済みイメージを使用する場合
version: '3.8'
services:
mcp-tracker:
image: ghcr.io/aikts/yandex-tracker-mcp:latest
ports:
- "8000:8000"
environment:
- TRACKER_TOKEN=${TRACKER_TOKEN}
- TRACKER_CLOUD_ORG_ID=${TRACKER_CLOUD_ORG_ID}
ローカルでビルドする場合
version: '3.8'
services:
mcp-tracker:
build: .
ports:
- "8000:8000"
environment:
- TRACKER_TOKEN=${TRACKER_TOKEN}
- TRACKER_CLOUD_ORG_ID=${TRACKER_CLOUD_ORG_ID}
開発環境のセットアップ
# クローンしてセットアップ
git clone https://github.com/aikts/yandex-tracker-mcp
cd yandex-tracker-mcp
# 開発用の依存関係をインストール
uv sync --dev
# フォーマットと静的チェック
make
📄 ライセンス
このプロジェクトは、LICENSEファイルに指定された条件でライセンスされています。
サポート
問題や質問については、以下の方法で対応します。
- Yandex Tracker APIのドキュメントを確認してください。
- 問題をこちらに投稿してください。
代替品









