testmo_list_issue_connections
List configured issue tracker integrations and obtain IDs needed to connect issues to test cases.
Instructions
List available issue integrations (GitHub, Jira, Azure DevOps, etc.).
Discover configured issue tracker integrations. Returns integration_id and connection_project_id needed for linking issues to test cases.
Args: project_id: Filter by project ID (optional). integration_type: Filter by type (e.g., 'github', 'jira', 'azure_devops'). is_active: Filter by active status (optional). page: Page number (default: 1). per_page: Results per page (default: 100). Valid: 25, 50, 100. expands: Related entities to include.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | ||
| integration_type | No | ||
| is_active | No | ||
| page | No | ||
| per_page | No | ||
| expands | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- testmo/tools/issues.py:7-38 (handler)Handler function for testmo_list_issue_connections tool. Decorated with @mcp.tool(), it sends a GET request to /issues/connections with optional filters (project_id, integration_type, is_active) and pagination parameters (page, per_page). Returns list of issue tracker integrations.
@mcp.tool() async def testmo_list_issue_connections( project_id: int | None = None, integration_type: str | None = None, is_active: bool | None = None, page: int = 1, per_page: int = 100, expands: list[str] | None = None, ) -> dict[str, Any]: """List available issue integrations (GitHub, Jira, Azure DevOps, etc.). Discover configured issue tracker integrations. Returns integration_id and connection_project_id needed for linking issues to test cases. Args: project_id: Filter by project ID (optional). integration_type: Filter by type (e.g., 'github', 'jira', 'azure_devops'). is_active: Filter by active status (optional). page: Page number (default: 1). per_page: Results per page (default: 100). Valid: 25, 50, 100. expands: Related entities to include. """ params: dict[str, Any] = {"page": page, "per_page": per_page} if project_id is not None: params["project_id"] = project_id if integration_type: params["integration_type"] = integration_type if is_active is not None: params["is_active"] = is_active if expands: params["expands"] = ",".join(expands) return await _request("GET", "/issues/connections", params=params) - testmo/tools/issues.py:7-7 (registration)Registration of the tool via the @mcp.tool() decorator on the FastMCP instance defined in testmo/server.py.
@mcp.tool() - testmo/client.py:25-49 (helper)Helper function _request that makes HTTP requests to the Testmo API. Used by the handler to send GET /issues/connections.
async def _request( method: str, endpoint: str, data: dict[str, Any] | None = None, params: dict[str, Any] | None = None, ) -> dict[str, Any]: async with _get_client() as client: response = await client.request( method=method, url=endpoint, json=data, params=params, ) if response.status_code == 204: return {"success": True} if response.status_code >= 400: try: error_body = response.json() except Exception: error_body = response.text raise RuntimeError( f"Testmo API error {response.status_code}: " f"{json.dumps(error_body) if isinstance(error_body, dict) else error_body}" ) return response.json() - testmo/tools/issues.py:7-38 (schema)Input schema/parameters for the tool: project_id (optional int), integration_type (optional str), is_active (optional bool), page (int, default 1), per_page (int, default 100), expands (optional list of strings). Returns dict[str, Any].
@mcp.tool() async def testmo_list_issue_connections( project_id: int | None = None, integration_type: str | None = None, is_active: bool | None = None, page: int = 1, per_page: int = 100, expands: list[str] | None = None, ) -> dict[str, Any]: """List available issue integrations (GitHub, Jira, Azure DevOps, etc.). Discover configured issue tracker integrations. Returns integration_id and connection_project_id needed for linking issues to test cases. Args: project_id: Filter by project ID (optional). integration_type: Filter by type (e.g., 'github', 'jira', 'azure_devops'). is_active: Filter by active status (optional). page: Page number (default: 1). per_page: Results per page (default: 100). Valid: 25, 50, 100. expands: Related entities to include. """ params: dict[str, Any] = {"page": page, "per_page": per_page} if project_id is not None: params["project_id"] = project_id if integration_type: params["integration_type"] = integration_type if is_active is not None: params["is_active"] = is_active if expands: params["expands"] = ",".join(expands) return await _request("GET", "/issues/connections", params=params)