Create a new test suite in QMetry with metadata and release/cycle mapping. **Parameters:** - parentFolderId (string) *required* - name (string) *required* - isAutomatedFlag (boolean) - description (string) - testsuiteOwner (number) - testSuiteState (number) - associateRelCyc (boolean) - releaseC...
High parameter count (10 properties); Single-target operation; Admin/system-level operation
Part of the SmartBear MCP MCP server. Enforce policies on this tool with Intercept, the open-source MCP proxy.
AI agents use qmetry_create_test_suite to create or modify resources in SmartBear MCP. Write operations carry medium risk because an autonomous agent could trigger bulk unintended modifications. Rate limits prevent a single agent session from making hundreds of changes in rapid succession. Argument validation ensures the agent passes expected values.
Without a policy, an AI agent could call qmetry_create_test_suite repeatedly, creating or modifying resources faster than any human could review. Intercept's rate limiting ensures write operations happen at a controlled pace, and argument validation catches malformed or unexpected inputs before they reach SmartBear MCP.
Write tools can modify data. A rate limit prevents runaway bulk operations from AI agents.
tools:
qmetry_create_test_suite:
rules:
- action: allow
rate_limit:
max: 30
window: 60 See the full SmartBear MCP policy for all 147 tools.
Create a new test suite in QMetry with metadata and release/cycle mapping. **Parameters:** - parentFolderId (string) *required* - name (string) *required* - isAutomatedFlag (boolean) - description (string) - testsuiteOwner (number) - testSuiteState (number) - associateRelCyc (boolean) - releaseCycleMapping (array) **Output Description:** JSON object containing the new test suite ID, summary, and creation metadata. **Use Cases:** 1. Create a basic test suite with just a name and folder 2. Add detailed metadata like description to a test suite 3. Associate test suite with specific release/cycle for planning 4. Set testsuiteOwner, testSuiteState, and other metadata using valid IDs from project info 5. Create test suites for isAutomatedFlag true or false for automated or manual types, default is false 6. Add test suite to a specific folder using parentFolderId 7. Map test suite to multiple cycles/releases and build ID **Examples:** 1. Create a test suite in the root folder (auto-resolved) ```json { "name": "Demo Test Suite" } ``` Expected Output: Test suite created in the root test suite folder with ID and summary details 2. Create a simple test suite in folder 102653 ```json { "parentFolderId": "102653", "name": "Login Test Suite" } ``` Expected Output: Test suite created with ID and summary details 3. Create a test suite with some details and metadata ```json { "parentFolderId": "113557", "isAutomatedFlag": false, "name": "Testsuite Summary", "description": "desc", "testsuiteOwner": 6963, "testSuiteState": 505035, "associateRelCyc": true, "releaseCycleMapping": [ { "buildID": 18411, "releaseId": 10286 } ] } ``` Expected Output: Test suite created with details and metadata. Example uses: parentFolderId=113557 (MAC root TS folder from rootFolders.TS.id), testsuiteOwner=6963 (umang.savaliya from customListObjs.owner[index].id), testSuiteState=505035 (New from customListObjs.testSuiteState[index].id), releaseId=10286 (Air release from projects[index].releases[index].releaseID), buildID=18411 (Air Q1-19 cycle from projects[index].releases[index].builds[index].buildID) **Hints:** 1. If parentFolderId is not provided, it will be auto-resolved to the root test suite folder using project info (rootFolders.TS.id). 2. To get valid values for testsuiteOwner, testSuiteState, etc., call the 'Admin/Get info Service' API (FETCH_PROJECT_INFO tool) and use the returned customListObjs IDs. 3. CRITICAL: For testsuiteOwner mapping - Call API 'Admin/Get info Service', from the response get value from customListObjs.owner[<index>].id. Match the user by customListObjs.owner[<index>].name. 4. If the user provides an owner name (testsuiteOwner), fetch project info, find the matching owner in customListObjs.owner[index].name or customListObjs.owner[index].uniqueLabel, and use its ID in the payload as testsuiteOwner. If the name is not found, skip the testsuiteOwner field (it is not required) and show a user-friendly message: 'Test suite created without owner, as given owner is not available in the current project.' 5. CRITICAL: For testSuiteState mapping - Call API 'Admin/Get info Service', from the response get value from customListObjs.testSuiteState[<index>].id. Match the state by customListObjs.testSuiteState[<index>].name. 6. If the user provides a test suite state name(testSuiteState), fetch project info, find the matching state in customListObjs.testSuiteState[index].name, and use its ID in the payload as testSuiteState. If the name is not found, skip the testSuiteState field (it is not required) and show a user-friendly message: 'Test suite created without test suite state, as given state is not available in the current project.' 7. parentFolderId is required; use the root folder ID from project info (rootFolders.TS.id) or a specific folder. 8. Release/cycle mapping is optional but useful for planning. 9. If the user wants to link or associate a release and cycle to the test suite, set associateRelCyc: true in the payload. 10. CRITICAL: For releaseCycleMapping.releaseId - Call API 'Release/List' (or use project info projects[<index>].releases[<index>].releaseID), from the response get value from data[<index>].releaseID or projects[<index>].releases[<index>].releaseID. Match the release by name. 11. CRITICAL: For releaseCycleMapping.buildID - Call API 'Cycle/List' (or use project info projects[<index>].releases[<index>].builds[<index>].buildID), from the response get value from data[<index>].buildID or projects[<index>].releases[<index>].builds[<index>].buildID. Match the build/cycle by name. 12. If the user provides a release name, map it to its ID from projects[<index>].releases[<index>].releaseID in the project info response, and use that ID as releaseId in releaseCycleMapping. 13. If the user provides a build/cycle name, map it to its ID from projects[<index>].releases[<index>].builds[<index>].buildID in the project info response, and use that ID as buildID in releaseCycleMapping. 14. Example payload: releaseCycleMapping: [ { releaseId: <releaseID>, buildID: <buildID> } ] 15. Example: For 'Air' release and 'Air Q1-19' cycle in MAC project, use releaseId: 10286 and buildID: 18411 16. LLM should ensure that provided release/cycle names or IDs exist in the current project before using them in the payload. If not found, skip and show a user-friendly message: 'Test suite created without release/cycle association, as given release/cycle is not available in the current project.' 17. All IDs (testSuiteState from customListObjs.testSuiteState[index].id, testsuiteOwner from customListObjs.owner[index].id, releaseId from projects.releases[index].releaseID, buildID from projects.releases.builds[index].buildID) must be valid for your QMetry instance. 18. If a custom field is mandatory, include it in the UDF object.. It is categorised as a Write tool in the SmartBear MCP MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
Add a rule in your Intercept YAML policy under the tools section for qmetry_create_test_suite. You can allow, deny, rate-limit, or validate arguments. Then run Intercept as a proxy in front of the SmartBear MCP MCP server.
qmetry_create_test_suite is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the qmetry_create_test_suite 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_create_test_suite. 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_create_test_suite 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