rtm-mcp
rtm-mcp
オープンソースの MCP(Model Context Protocol)サーバー。Requirements and Test Management for Jira REST API v2 を扱い、要件(Requirements)、テストケース(Test Cases)、テスト計画(Test Plans)、テスト実行(Test Executions)、テストケース実行(Test Case Executions)、不具合(Defects)、ツリー構造(Tree)、自動化(Automation)を MCP ツールとして公開します。MCP 互換クライアント(Claude Desktop、IDE 拡張機能、カスタムエージェント)から RTM を直接操作できます。
NPX で実行可能 — インストールもクローンも不要です:
npx rtm-mcpリンク
📦 npm パッケージ: https://www.npmjs.com/package/rtm-mcp
🐙 GitHub リポジトリ: https://github.com/ngocdd/rtm-mcp
🐛 イシュートラッカー: https://github.com/ngocdd/rtm-mcp/issues
📚 RTM API ドキュメント: https://deviniti.com/support/addon/cloud/requirements-test-management/latest/rest-api/
機能
40+ のツール — すべての RTM リソースに対する CRUD とリンク管理をカバー。
Bearer トークン認証 —
RTM_API_TOKENで認証します。Jira の アプリ → Requirements and Test Management → ⋯ → Rest API 認証 からトークンを生成します。US + EU リージョン —
RTM_BASE_URLで切り替え可能。リトライ + タイムアウト + ジッター は HTTP クライアントに組み込み済み(429/5xx/ネットワークエラーを処理)。
型付きエラー を読みやすい MCP エラーメッセージに変換 — スタックトレースを漏らしません。
添付ファイルのアップロード は base64 ペイロードに対応(サンドボックス化された MCP クライアントでも安全)。
stderr 専用ログ — stdout は JSON-RPC 用にクリーンな状態を維持。
クイックスタート
1. RTM API トークンを生成する
Jira を開きます。
アプリ → Requirements and Test Management に移動します。
三点メニュー(⋯)→ Rest API 認証 をクリックします。
トークンを生成 をクリックし、ユーザーを選択、ラベルを追加、Generate をクリックします。
トークンはすぐにコピーしてください — RTM で再表示されることはありません。
2. サーバーを実行する
RTM_API_TOKEN=your-token-here npx rtm-mcpサーバーは stdio 経由で MCP を提供します — MCP クライアントからこのサーバーを指定してください。
Claude Desktop のセットアップ
claude_desktop_config.json に追加します:
US / グローバル(デフォルト URL):
{
"mcpServers": {
"rtm": {
"command": "npx",
"args": ["-y", "rtm-mcp"],
"env": {
"RTM_API_TOKEN": "<your-token-here>",
"RTM_BASE_URL": "https://rtm-us.deviniti.com/api"
}
}
}
}EU リージョン:
{
"mcpServers": {
"rtm": {
"command": "npx",
"args": ["-y", "rtm-mcp"],
"env": {
"RTM_API_TOKEN": "<your-token-here>",
"RTM_BASE_URL": "https://rtm-eu-api.hexygen.com/api"
}
}
}
}Claude Code CLI のセットアップ
claude mcp add コマンドで Claude Code にサーバーを登録します。
ユーザースコープ(推奨 — すべてのプロジェクトで利用可能)
claude mcp add --scope user --transport stdio rtm \
-e RTM_API_TOKEN=<your-token-here> \
-e RTM_BASE_URL=https://rtm-us.devinti.com/api \
-- npx -y rtm-mcpEU リージョン:
claude mcp add --scope user --transport stdio rtm \
-e RTM_API_TOKEN=<your-token-here> \
-e RTM_BASE_URL=https://rtm-eu-api.hexygen.com/api \
-- npx -y rtm-mcp--scope user はエントリを ~/.claude.json に書き込むため、このマシン上のすべての Claude Code プロジェクトで rtm サーバーを利用できます。
プロジェクトスコープ(このプロジェクトのみ)
claude mcp add --scope project --transport stdio rtm \
-e RTM_API_TOKEN=<your-token-here> \
-e RTM_BASE_URL=https://rtm-us.devinti.com/api \
-- npx -y rtm-mcpカレントディレクトリの .mcp.json に書き込みます(git にコミットされます)。
登録の確認
claude mcp list # see all configured servers
claude mcp get rtm # inspect the rtm entryサーバーの削除
claude mcp remove rtm設定
環境変数 | 必須 | デフォルト | 説明 |
| 必須 | — | Jira → アプリ → Requirements and Test Management → API トークン で生成する Bearer トークン。 |
| 任意 |
| EU の場合: |
| 任意 |
|
|
| 任意 |
| リクエストごとの HTTP タイムアウト(ミリ秒)。 |
| 任意 |
|
|
RTM_API_TOKEN が未指定または空の場合、起動時にフレンドリなヒントを表示して終了します。
利用可能なツール
すべてのツールは、整形された JSON を含む MCP text コンテンツを返します。
要件(REQUIREMENTS)
rtm_list_requirements—projectKeyで一覧取得(folder、page、pageSizeはオプション)rtm_get_requirement—requirementKeyで取得rtm_create_requirement— 作成rtm_update_requirement— 部分更新rtm_delete_requirement— 削除rtm_set_requirement_covered_test_cases— リンクセットを置き換えrtm_add_requirement_covered_test_cases— 追加rtm_remove_requirement_covered_test_cases— サブセットを削除
テストケース(TEST_CASES)
rtm_list_test_cases、rtm_get_test_case、rtm_create_test_case、rtm_update_test_case、rtm_delete_test_casertm_set_test_case_covered_requirements、rtm_add_test_case_covered_requirements、rtm_remove_test_case_covered_requirements
テスト計画(TEST_PLANS)
rtm_list_test_plans、rtm_get_test_plan、rtm_create_test_plan、rtm_update_test_plan、rtm_delete_test_planrtm_set_test_plan_included_test_cases、rtm_add_test_plan_included_test_cases、rtm_remove_test_plan_included_test_cases
テスト実行(TEST_EXECUTIONS)
rtm_list_test_executions、rtm_get_test_execution、rtm_create_test_execution、rtm_update_test_execution、rtm_delete_test_execution
テストケース実行(TCE)
rtm_link_defect_to_test_case_executionrtm_unlink_defect_from_test_case_executionrtm_link_defect_to_test_case_execution_steprtm_unlink_defect_from_test_case_execution_steprtm_list_test_case_execution_attachmentsrtm_upload_test_case_execution_attachment(base64 入力)
不具合(DEFECTS)
rtm_list_defects、rtm_get_defect、rtm_create_defect、rtm_update_defect、rtm_delete_defectrtm_set_defect_identifying_test_cases
ツリー
rtm_get_tree_structure—projectKeyとresourceTypeはオプション
自動化
rtm_import_test_results— JUnit/NUnit/Cucumber JSON の ZIP/TAR.GZ をアップロードし、taskIdを返しますrtm_get_import_status—statusがIMPORTING以外になるまでポーリングします
例
"プロジェクト ACME の最新の要件を 10 件一覧表示して。"
> rtm_list_requirements { projectKey: "ACME", pageSize: 10 }"「/Smoke」フォルダの下に「Login with valid credentials」というテストケースを作成して、要件 ACME-42 にリンクして。"
> rtm_create_test_case { projectKey: "ACME", name: "Login with valid credentials", folder: "/Smoke", stepGroups: [...] }
> rtm_set_test_case_covered_requirements { testCaseKey: "<new>", requirementKeys: ["ACME-42"] }"不具合 DEF-1 をテストケース実行 TCE-42 のステップ 3 にリンクして。"
> rtm_link_defect_to_test_case_execution_step { testCaseExecutionKey: "TCE-42", stepId: "3", defectTestKey: "DEF-1" }"昨夜の JUnit XML をインポートして。"
> rtm_import_test_results { projectKey: "ACME", filename: "junit.zip", contentBase64: "<base64>", reportType: "JUNIT", jobUrl: "https://ci/job/123" }
> rtm_get_import_status { taskId: "<returned>" }トラブルシューティング
症状 | 考えられる原因 / 対処 |
起動時に | トークンが未設定または空。起動前に |
ツールが | トークンが無効、期限切れ、または別のユーザー用に生成されています。Jira で再生成してください。 |
ツールが | テストキーがどの課題とも一致しません。最初に |
| RTM がペイロードを拒否しました。ツールのメッセージに応答ボディの解析結果が含まれています。 |
| レート制限に達しています。並行数を減らすか、待機してください。 |
|
|
ツールが実行中に止まる / タイムアウトする |
|
開発
git clone <repo>
cd rtm-mcp
npm install
npm run build # compile to dist/
npm test # unit tests
npm run dev # run from src/ via tsx
npm run typecheck # tsc --noEmitプロジェクト構成
src/
├── index.ts # entry point (shebang)
├── server.ts # McpServer wiring
├── config/ # env validation + constants
├── client/
│ ├── http.ts # fetch wrapper w/ retry + timeout
│ ├── errors.ts # RTMError hierarchy
│ └── rtm-client.ts # facade composing all resources
├── resources/ # one file per RTM resource
├── tools/ # MCP tool registrations
├── schemas/ # zod input schemas per tool group
└── utils/ # logger, MCP response helpers
tests/
├── unit/ # mocked fetch tests
└── integration/ # opt-in live tests (gated by RTM_LIVE=1)実環境での統合テスト
RTM_API_TOKEN=xxx \
RTM_BASE_URL=https://rtm-us.deviniti.com/api \
RTM_LIVE=1 \
RTM_TEST_PROJECT=ACME \
npm run test:integrationサンドボックスの Jira プロジェクトを使用してください。スモークテストは要件を作成し、取得し、周辺を一覧表示し、後片付けます。
公開
npm login
npm version patch # or minor / major
npm publish --access publicprepublishOnly は typecheck、test、build を自動的に実行します。
コントリビューション
このプロジェクトはオープンソースです — Issue や Pull Request を歓迎します。
フィーチャーブランチを作成:
git checkout -b feat/my-toolローカルでインストールしてテストを実行:
npm install npm run typecheck npm test新しいリソースメソッドやツールにはテストを追加してください。
mainに対して Pull Request を開く: https://github.com/ngocdd/rtm-mcp.
新しい RTM エンドポイントを追加する
対応する
src/resources/<resource>.tsモジュールに型付きメソッドを追加。src/schemas/<resource>.schema.tsに zod 入力スキーマを追加。src/tools/<resource>.tsに MCP ツールを登録。tests/unit/にユニットテストを追加。npm run typecheck && npm testを実行。
バグ報告
https://github.com/ngocdd/rtm-mcp/issues を使用してください — RTM リソース種別、エンドポイントパス、期待する応答と実際の応答、(マスクした)リクエストボディを含めてください。
ライセンス
MIT — LICENSE を参照してください。
Copyright (c) 2026 rtm-mcp contributors. Released under the MIT License; this project is free to use, modify, and distribute in both open-source and proprietary software, provided the copyright notice is preserved.
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 Connectors
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
MCP Server for JFrog, providing tools for development and artifact management.
Search, document and execute authenticated API calls across 700+ apps via one MCP server
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/ngocdd/rtm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server