search_test_plans
Search for test plans in Xray using JQL queries to find specific testing documentation and organize test management workflows.
Instructions
Search for test plans using JQL (Jira Query Language)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| jql | Yes | JQL query to search test plans | |
| maxResults | No | Maximum number of results to return |
Implementation Reference
- src/index.ts:735-748 (handler)MCP server handler for the 'search_test_plans' tool. Extracts JQL and maxResults from arguments, calls xrayClient.searchTestPlans, and returns the result as JSON text content.case 'search_test_plans': { const result = await xrayClient.searchTestPlans( args.jql as string, args.maxResults as number | undefined ); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; }
- src/index.ts:312-326 (schema)Input schema definition for the 'search_test_plans' tool, specifying JQL query (required) and optional maxResults.inputSchema: { type: 'object', properties: { jql: { type: 'string', description: 'JQL query to search test plans', }, maxResults: { type: 'number', description: 'Maximum number of results to return', default: 50, }, }, required: ['jql'], },
- src/index.ts:309-327 (registration)Registration of the 'search_test_plans' tool in the MCP tools list, including name, description, and input schema.{ name: 'search_test_plans', description: 'Search for test plans using JQL (Jira Query Language)', inputSchema: { type: 'object', properties: { jql: { type: 'string', description: 'JQL query to search test plans', }, maxResults: { type: 'number', description: 'Maximum number of results to return', default: 50, }, }, required: ['jql'], }, },
- src/xray-client.ts:684-714 (helper)Core implementation of searchTestPlans in XrayClient: executes GraphQL query to getTestPlans with JQL and limit, returns paginated results including test plans and summary tests.async searchTestPlans(jql: string, maxResults: number = 50): Promise<any> { const query = ` query SearchTestPlans($jql: String!, $limit: Int!) { getTestPlans(jql: $jql, limit: $limit) { total start limit results { issueId projectId jira(fields: ["key", "summary", "description", "status", "created", "updated"]) tests(limit: 10) { total results { issueId jira(fields: ["key", "summary"]) } } } } } `; const variables = { jql, limit: maxResults }; const result = await this.graphqlRequest<{ getTestPlans: any }>(query, variables); return result.getTestPlans; }