mcp-pagure
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PAGURE_BASE_URL | No | The base URL of the Pagure instance. Defaults to https://src.fedoraproject.org | https://src.fedoraproject.org |
| PAGURE_API_TOKEN | Yes | Your Pagure API token from your Pagure instance (e.g., src.fedoraproject.org or pagure.io). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_projectsB | 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 |
| get_project_infoB | Get detailed information about a Pagure project. Args: project: Project name (e.g., 'python3', 'kernel') namespace: Project namespace (default: rpms) Returns: JSON string with project details |
| fork_projectC | Fork a Pagure project to your namespace. Args: project: Project name to fork namespace: Project namespace (default: rpms) Returns: JSON string with fork creation result |
| get_fileB | Get file content from a Pagure repository. Args: project: Project name filename: File path (e.g., 'python3.spec', 'sources') branch: Branch name (default: rawhide) namespace: Project namespace (default: rpms) Returns: File content as string |
| list_branchesB | List all branches in a Pagure repository. Args: project: Project name namespace: Project namespace (default: rpms) Returns: JSON string with list of branch names |
| list_pull_requestsB | List pull requests for a Pagure project. Args: project: Project name namespace: Project namespace (default: rpms) status: PR status - Open, Merged, Closed, or all (default: Open) page: Page number (default: 1) per_page: Results per page (default: 20) Returns: JSON string with PR list and pagination info |
| get_pull_requestC | Get detailed information about a specific pull request. Args: project: Project name pr_id: Pull request ID number namespace: Project namespace (default: rpms) Returns: JSON string with PR details including comments |
| comment_on_prC | Add a comment to a pull request. Args: project: Project name pr_id: Pull request ID number comment: Comment text to add namespace: Project namespace (default: rpms) Returns: JSON string with comment creation result |
| merge_pull_requestC | Merge an approved pull request. Args: project: Project name pr_id: Pull request ID number to merge namespace: Project namespace (default: rpms) Returns: JSON string with merge result |
| close_pull_requestA | Close a pull request without merging. Args: project: Project name pr_id: Pull request ID number to close namespace: Project namespace (default: rpms) Returns: JSON string with close result |
| get_commitB | Get detailed information about a specific commit. Args: project: Project name commit_hash: Commit hash (full or short) namespace: Project namespace (default: rpms) Returns: JSON string with commit details |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool has a clearly distinct purpose targeting specific resources and actions in the Pagure domain. For example, close_pull_request, merge_pull_request, and comment_on_pr all operate on pull requests but perform different operations, while get_commit, get_file, and get_project_info retrieve different types of information without overlap.
All tools follow a consistent verb_noun naming pattern using snake_case throughout. The verbs are clear and descriptive (close, comment, fork, get, list, merge), and the nouns precisely identify the target resources (pull_request, project, commit, file, branches).
With 11 tools, this server is well-scoped for a Pagure integration. The count covers essential operations for repository management, pull request handling, and project information retrieval without being overwhelming or insufficient for the domain.
The toolset provides strong coverage for core Pagure workflows including project listing/info, file/commit access, branch management, and full pull request lifecycle (list, get, comment, close, merge). A minor gap exists in creating or updating resources like projects or pull requests, but agents can work effectively with the available read and modify operations.