list_sca_repositories
Display repositories analyzed for dependencies to identify security vulnerabilities in codebases. Shows aggregated dependency inventory information for security assessment.
Instructions
List repositories with their aggregated dependency inventory information. Shows which repositories have been analyzed for dependencies.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- The primary handler function for the 'list_sca_repositories' tool. Decorated with @mcp.tool() for automatic registration in the FastMCP server. Fetches SCA repository data from the ZeroPath API endpoint 'sca/repositories/search' and formats it into a readable string output showing repository IDs, names, dependency counts, and vulnerability counts by severity.@mcp.tool() def list_sca_repositories() -> str: """ List repositories with their aggregated dependency inventory information. Shows which repositories have been analyzed for dependencies. """ response, error = make_api_request("sca/repositories/search") if error: return error if response.status_code == 200: result = response.json() repos = result.get("repositories", result if isinstance(result, list) else []) if not repos: return "No repositories with SCA data found." output = f"Found {len(repos)} repository(ies) with SCA data:\n\n" for i, repo in enumerate(repos, 1): output += f"Repository {i}:\n" output += f" ID: {repo.get('id', repo.get('repositoryId', 'N/A'))}\n" output += f" Name: {repo.get('name', repo.get('repositoryName', 'N/A'))}\n" output += f" Total Dependencies: {repo.get('totalDependencies', repo.get('dependencyCount', 'N/A'))}\n" output += f" Vulnerable Packages: {repo.get('vulnerablePackages', 'N/A')}\n" output += f" Critical: {repo.get('criticalCount', 'N/A')}\n" output += f" High: {repo.get('highCount', 'N/A')}\n" output += f" Medium: {repo.get('mediumCount', 'N/A')}\n" output += f" Low: {repo.get('lowCount', 'N/A')}\n" output += "\n" return output elif response.status_code == 401: return "Error: Unauthorized - check API credentials" elif response.status_code == 400: return f"Error: Bad request - {response.text}" else: return f"Error: API returned status {response.status_code}: {response.text}"