list_projects
Retrieve and filter projects from Pagure git forges with namespace selection, search patterns, and pagination controls.
Instructions
List Pagure projects/packages.
Args: namespace: Project namespace (rpms, container, modules, etc.) pattern: Search pattern for project name page: Page number (default: 1) per_page: Results per page (default: 20)
Returns: JSON string with project list and pagination info
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | No | rpms | |
| pattern | No | ||
| page | No | ||
| per_page | No |
Implementation Reference
- src/pagure/server.py:25-47 (handler)MCP tool handler registration and wrapper for listing Pagure projects.
@mcp.tool() async def list_projects( namespace: str = "rpms", pattern: Optional[str] = None, page: int = 1, per_page: int = 20, ) -> str: """List Pagure projects/packages. Args: namespace: Project namespace (rpms, container, modules, etc.) pattern: Search pattern for project name page: Page number (default: 1) per_page: Results per page (default: 20) Returns: JSON string with project list and pagination info """ client = get_client() result = await client.list_projects(namespace, pattern, page, per_page) import json return json.dumps(result, indent=2) - src/pagure/client.py:41-73 (handler)Actual API implementation for listing Pagure projects.
async def list_projects( self, namespace: Optional[str] = "rpms", pattern: Optional[str] = None, page: int = 1, per_page: int = 20, ) -> Dict[str, Any]: """List projects/packages. Args: namespace: Project namespace (rpms, container, modules, etc.) pattern: Search pattern for project name page: Page number per_page: Results per page Returns: Dict with projects list and pagination info """ params = { "namespace": namespace, "page": page, "per_page": per_page, } if pattern: params["pattern"] = pattern response = await self.client.get( f"{self.api_base}/projects", params=params, headers=self._get_headers(), ) response.raise_for_status() return response.json()