Fetch QMetry defects or issues - automatically handles viewId resolution based on project **Parameters:** - projectKey (string): Project key - unique identifier for the project (default: "default") - baseUrl (string): The base URL for the QMetry instance (must be a valid URL) (default: "https://...
Part of the SmartBear MCP MCP server. Enforce policies on this tool with Intercept, the open-source MCP proxy.
AI agents call qmetry_fetch_defects_or_issues to retrieve information from SmartBear MCP without modifying any data. This is common in research, monitoring, and reporting workflows where the agent needs context before taking action. Because read operations don't change state, they are generally safe to allow without restrictions -- but you may still want rate limits to control API costs.
Even though qmetry_fetch_defects_or_issues only reads data, uncontrolled read access can leak sensitive information or rack up API costs. An agent caught in a retry loop could make thousands of calls per minute. A rate limit gives you a safety net without blocking legitimate use.
Read-only tools are safe to allow by default. No rate limit needed unless you want to control costs.
tools:
qmetry_fetch_defects_or_issues:
rules:
- action: allow See the full SmartBear MCP policy for all 147 tools.
Fetch QMetry defects or issues - automatically handles viewId resolution based on project **Parameters:** - projectKey (string): Project key - unique identifier for the project (default: "default") - baseUrl (string): The base URL for the QMetry instance (must be a valid URL) (default: "https://testmanagement.qmetry.com") - viewId (number) *required*: ViewId for issues - SYSTEM AUTOMATICALLY RESOLVES THIS. Leave empty unless you have a specific viewId. System will fetch project info using the projectKey and extract latestViews.IS.viewId automatically. Manual viewId only needed if you want to override the automatic resolution. - start (number): Start index for pagination - defaults to 0 (default: 0) - page (number): Page number to return (starts from 1) (default: 1) - limit (number): Number of records (default 10). (default: 10) - filter (string): Filter criteria as JSON string (default '[]') (default: "[]") - isJiraIntegrated (boolean): Send true if current project is Integrated with Jira (default: false) - sort (string): Sort Records - refer json schema, Possible property - entityKey, name, typeAlias, stateAlias, createdDate, createdByAlias, updatedDate, updatedByAlias, priorityAlias, createdSystem, linkedTcrCount, linkedRqCount, dfOwner, attachmentCount, environmentText (default: "[{\"property\":\"name\",\"direction\":\"ASC\"}]") **Output Description:** JSON object with 'data' array containing issues and pagination info **Use Cases:** 1. List all issues in a project 2. Search for specific issues using filters 3. Get paginated issue results **Examples:** 1. Get all issues from default project - system will auto-fetch viewId ```json {} ``` Expected Output: List of issues from default project with auto-resolved viewId 2. Get all issues from UT project - system will auto-fetch UT project's viewId ```json { "projectKey": "UT" } ``` Expected Output: List of issues from UT project using UT's specific IS viewId 3. Get issues with manual viewId (skip auto-resolution) ```json { "projectKey": "MAC", "viewId": 166065 } ``` Expected Output: Issues using manually specified viewId 166065 4. List issues from specific project (ex: project key can be anything (VT, UT, PROJ1, TEST9) ```json { "projectKey": "use specific given project key", "viewId": "fetch specific project given projectKey defects or issues ViewId" } ``` Expected Output: Issues using manually specified viewId 103097 or projectKey 5. Get issues by release/cycle filter ```json { "projectKey": "MAC", "filter": "[{\"value\":[55178],\"type\":\"list\",\"field\":\"release\"},{\"value\":[111577],\"type\":\"list\",\"field\":\"cycle\"}]" } ``` Expected Output: Issues associated with Release 8.12 (ID: 55178) and Cycle 8.12.1 (ID: 111577) 6. Get issues by release only ```json { "projectKey": "MAC", "filter": "[{\"value\":[55178],\"type\":\"list\",\"field\":\"release\"}]" } ``` Expected Output: All defects or issues associated with Release 8.12 (ID: 55178) 7. Get issues by cycle only ```json { "projectKey": "MAC", "filter": "[{\"value\":[111577],\"type\":\"list\",\"field\":\"cycle\"}]" } ``` Expected Output: All defects or issues associated with Cycle 8.12.1 (ID: 111577) 8. Search for specific issue by entity key ```json { "projectKey": "MAC", "filter": "[{\"type\":\"string\",\"value\":\"MAC-IS-636\",\"field\":\"entityKeyId\"}]" } ``` Expected Output: Issues matching the entity key criteria 9. Search for multiple defects or issues by comma-separated entity keys ```json { "projectKey": "MAC", "filter": "[{\"type\":\"string\",\"value\":\"MAC-IS-636,MAC-IS-637,MAC-IS-638\",\"field\":\"entityKeyId\"}]" } ``` Expected Output: Issues matching any of the specified entity keys **Hints:** 1. CRITICAL WORKFLOW: Always use the SAME projectKey for both project info and issues fetching 2. Step 1: If user specifies projectKey (like 'UT', 'MAC'), use that EXACT projectKey for project info 3. Step 2: Get project info using that projectKey, extract latestViews.IS.viewId 4. Step 3: Use the SAME projectKey and the extracted IS viewId for fetching issues 5. Step 4: If user doesn't specify projectKey, use 'default' for both project info and issues fetching 6. NEVER mix project keys - if user says 'MAC project', use projectKey='MAC' for everything 7. For search by issues key (like MAC-IS-1684), use filter: '[{"type":"string","value":"MAC-IS-1684","field":"entityKeyId"}]' 8. RELEASE/CYCLE FILTERING: Use release and cycle IDs, not names, for filtering 9. For release filter: '[{"value":[releaseId],"type":"list","field":"release"}]' 10. For cycle filter: '[{"value":[cycleId],"type":"list","field":"cycle"}]' 11. For combined release+cycle: '[{"value":[releaseId],"type":"list","field":"release"},{"value":[cycleId],"type":"list","field":"cycle"}]' 12. Get release/cycle IDs from FETCH_RELEASES_AND_CYCLES tool before filtering 13. FILTER FIELDS: name, stateAlias, typeAlias, entityKeyId, createdDate, createdByAlias, updatedDate, updatedByAlias, createdSystem, dfOwner, priorityAlias, linkedTcrCount, linkedRqCount, attachmentCount, componentAlias, environmentText 14. SORT FIELDS: entityKey, name, typeAlias, stateAlias, createdDate, createdByAlias, updatedDate, updatedByAlias, priorityAlias, createdSystem, linkedTcrCount, linkedRqCount, dfOwner, attachmentCount, environmentText 15. For multiple entity keys, use comma-separated values in filter 16. Use pagination for large result sets (start, page, limit parameters) 17. This tool is essential for defect management and issue tracking 18. Critical for quality assurance and defect lifecycle analysis 19. Use for compliance reporting and issue traceability 20. Helps maintain visibility into project defects and issues. It is categorised as a Read tool in the SmartBear MCP MCP Server, which means it retrieves data without modifying state.
Add a rule in your Intercept YAML policy under the tools section for qmetry_fetch_defects_or_issues. You can allow, deny, rate-limit, or validate arguments. Then run Intercept as a proxy in front of the SmartBear MCP MCP server.
qmetry_fetch_defects_or_issues is a Read tool with low risk. Read-only tools are generally safe to allow by default.
Yes. Add a rate_limit block to the qmetry_fetch_defects_or_issues rule in your Intercept policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the Intercept policy for qmetry_fetch_defects_or_issues. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
qmetry_fetch_defects_or_issues is provided by the SmartBear MCP MCP server (@smartbear/mcp). Intercept sits as a proxy in front of this server to enforce policies before tool calls reach the server.
Open source. One binary. Zero dependencies.
npx -y @policylayer/intercept