testlink-mcp
testlink-mcp
TestLink 1.9.20 向けの、AI フレンドリーかつ安全性を最優先する Model Context Protocol サーバーです。正規化された探索・分析ツール、境界付きカーソルページネーション、構造化出力、プレビュー確認後の書き込み適用を stdio 経由で提供します。
このリポジトリは、TestLink の公開 XML-RPC インターフェースと公開 MCP SDK に基づくクリーンな実装です。非公開の TestLink パッケージや非公開ソースツリーへの依存はありません。
主な特長
認証情報なしで起動できるため、MCP クライアントはすべてのツール・リソース・プロンプトを探索できます。
評価とオンボーディングのための明示的かつ決定的なデモモードを搭載。
structuredContent、outputSchema、ツールアノテーション、カーソルページネーション、安定したエラーコードに対応。添付ファイルはメタデータのみを扱い、添付コンテンツと base64 ペイロードは除去されます。
書き込みはデフォルトで無効。削除ツールはありません。
すべての適用操作には
confirm: true、有効期限 10 分以内のプレビュー、およびサーバースナップショットの不変性が必須です。副作用を伴う呼び出しは自動リトライされません。適用試行は秘匿化された操作台帳に記録されます。
実行時ガードが、サポート対象外・EOL の奇数版 Node リリースと、宣言された下限未満のセキュリティパッチレベルをブロックします。
Related MCP server: TestRail MCP Server
要件
Node.js
^22.23.2 || ^24.18.1 || ^26.5.1XML-RPC API が有効な TestLink 1.9.20
開発・コンテナのベースラインは Node 24.19.0 LTS です。CI では Node 22.23.2 と 26.7.0 でも実行されます。
クイックスタート
nvm use
npm ci
npm run build
TESTLINK_DEMO_MODE=true node dist/cli.js公開後の npm 呼び出し:
npx -y testlink-mcp@1.0.0MCP クライアント設定:
{
"mcpServers": {
"testlink": {
"command": "npx",
"args": ["-y", "testlink-mcp@1.0.0"],
"env": {
"TESTLINK_URL": "https://testlink.example.com/testlink",
"TESTLINK_DEV_KEY": "your-testlink-dev-key"
}
}
}
}追跡対象のファイルに実際の認証情報を置かないでください。.env.example を無視対象の .env にコピーするか、MCP クライアントまたはシークレットマネージャーから環境変数を注入してください。
ツール
ワークフロー | ツール | 目的 |
開始 |
| 設定・互換性・デモモード・書き込みポリシーを確認 |
探索 |
| プロジェクト一覧 |
探索 |
| プロジェクト内のプラン一覧 |
探索 |
| プラン内のビルド一覧 |
探索 |
| 1 階層分のスイートを走査 |
分析 |
| 境界付きのプロジェクト/スイート範囲でケースを検索 |
分析 |
| 正規化された 1 ケースを取得 |
分析 |
| 安全な添付メタデータを取得 |
分析 |
| 要件・プランのカバレッジを調査 |
分析 |
| 直近の実行証跡を調査 |
検証 |
| 不完全または曖昧なケース内容を検出 |
プレビュー |
| 作成/更新とプラン所属のプレビュー |
適用 |
| 変更のない確認済み同期プレビューを適用 |
プレビュー |
| 合格/不合格/ブロック報告のプレビュー |
適用 |
| 変更のない確認済み結果プレビューを適用 |
すべてのツールは以下を返します:
{
"ok": true,
"data": {},
"meta": {
"source": "testlink",
"requestId": "..."
}
}失敗時は ok: false と { code, message, retryable, details? } を返します。利用側はメッセージ本文ではなく error.code で分岐してください。
安全な書き込みワークフロー
既存のケースを検索し、現在のバージョンを取得します。
目的のテストケースを検証します。
該当するプレビューツールを呼び出します。
proposedChangesをユーザーに提示し、明示的な確認を得ます。プレビュー ID と
confirm: trueを指定して 10 分以内に適用を呼び出します。適用が
CONFLICTまたはPREVIEW_EXPIREDを返した場合は、新しいプレビューを作成して再確認します。
書き込みを実行するサーバープロセスでのみ書き込みを有効にしてください:
TESTLINK_WRITE_ENABLED=true npx -y testlink-mcp@1.0.0デフォルトの台帳パスは ~/.local/state/testlink-mcp/operations.jsonl です。TESTLINK_LEDGER_PATH で上書きできます。台帳にはハッシュと秘匿化された結果のみが記録され、開発者キーは含まれません。
設定
変数 | デフォルト | 意味 |
| 未設定 | TestLink のベース URL または完全な XML-RPC エンドポイント |
| 未設定 | 個人用 TestLink API キー |
|
| 決定的なローカルデモデータを使用 |
|
| 確認済みの適用ツールを許可 |
|
| リクエストタイムアウト、100〜300000 ms |
|
| XML レスポンスの最大サイズ |
| ユーザー状態ディレクトリ | 秘匿化された JSONL 操作台帳 |
| 未設定 | 追加の CA バンドル(任意); TLS 検証は常に有効 |
デモモードは明示的であり、リモート設定よりも優先されます:
TESTLINK_DEMO_MODE=true TESTLINK_WRITE_ENABLED=true node dist/cli.js開発
npm ci
npm run check
npm test
npm run eval
npm run build
npm audit --omit=dev --audit-level=high
npm pack --dry-runオフラインのツール選択評価では、一般的なユーザー意図が検索・検証・プレビュー・適用ツールをそれぞれ明確に選択することを確認します。これは決定的であり、外部モデルにデータを送信しません。
Docker
イメージは非 root ユーザーで実行され、Node 24.19.0 を使用します。プッシュせずにビルドする場合:
docker buildx build --platform linux/amd64,linux/arm64 --tag testlink-mcp:local --output type=oci,dest=testlink-mcp.oci.tar .承認・公開後の将来のイメージ名: ghcr.io/easonlin/testlink-mcp:1.0.0。
リリースポリシー
バージョン 1.0.0 はリリース準備完了ですが、公開は明示的な操作として残されています。保護されたリリースワークフローでは、署名付きバージョンタグの要求、完全なテスト/評価/監査/SBOM/パッケージゲートの再実行、provenance 付き npm 公開、SBOM と provenance 付きマルチアーキテクチャ GHCR イメージの公開、GitHub Release の作成、最後に検証済み MCP Registry エントリの公開が行われます。
別の保護されたライブスモークワークフローでは、インストール済みパッケージを実際の TestLink 1.9.20 インスタンスに対して読み取り専用呼び出しで検証します。その URL と開発者キーは環境シークレットとして保存する必要があり、ログに書き込まれることはありません。
パッケージマニフェストと server.json は MCP 名 io.github.easonlin/testlink-mcp を共有します。レジストリ検証は公開せずに実行できます:
mcp-publisher validate server.json公開リファレンス
ライセンス
MIT
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that allows interaction with TestRail's core entities (projects, cases, runs, results, datasets) through a standardized protocol compatible with MCP clients like Claude Desktop.2320MIT
- FlicenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server that provides integration with TestRail, allowing AI assistants to interact with TestRail projects, test cases, test runs, and results.1,3341
- AlicenseBqualityCmaintenanceA security-focused Model Context Protocol server that enables controlled local tool execution through strict network firewalls, filesystem protections, and rate-limiting policies. It features a plugin-based architecture for progressive tool discovery and includes reference implementations for web searching and bug tracking.15MIT
- AlicenseBqualityAmaintenanceAI-native Model Context Protocol (MCP) server for TestRail. Lets Claude, Cursor, Windsurf, and other AI assistants browse projects, create and update test cases, kick off test runs, and record results through natural-language conversation — with strongly-typed tool schemas and per-project custom field validation that helps LLMs generate valid TestRail requests on the first try.2681730Apache 2.0
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
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/Eason0in/testlink-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server