search_test_plans
Search for test plans using JQL queries to find specific testing documentation and organize test management workflows in Xray.
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 CallTool handler for 'search_test_plans': extracts arguments, calls xrayClient.searchTestPlans, and returns JSON-formatted result.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 (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 used for ListTools requests.{ 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 using provided JQL and limit, returns search results.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; }