GitFlic MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITFLIC_TOKEN | Yes | GitFlic authentication token used by the MCP server. | |
| GITFLIC_MCP_GROUPS | No | Comma-separated MCP tool groups to expose, e.g. "mr,issue". | |
| GITFLIC_MCP_READONLY | No | Set to "1" to expose only read-only tools. |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gitflic_authA | Check authentication: returns the current authenticated user (id, username, email, fullName). Use this first to verify the token works. |
| gitflic_auth_loginA | Validate a GitFlic API token against /user/me, then store it in the OS keychain (macOS Keychain / Linux libsecret) or chmod-0600 file. Refuses to store an invalid token. Use --as to store under a named account; --stdin to read the token from stdin. |
| gitflic_auth_logoutA | Remove a stored token. Default removes the active account. Pass --as to remove a specific named account. Pass --all to remove every token (and all per-project bindings). |
| gitflic_auth_listA | List all known accounts (default + named) with masked token values. Marks the active account with '*'. Use before switching or binding to confirm available identities. |
| gitflic_auth_switchA | Make the active account. Subsequent tool calls without a per-project binding resolve to this account's token. Refuses if no token is stored for the named account. |
| gitflic_auth_bindA | Bind (owner/alias) to . All subsequent commands scoped to that project resolve to 's token, overriding the active account. Refuses if has no token stored. Use to route different repos to different identities (work vs personal). |
| gitflic_auth_unbindA | Remove the binding for . Falls back to active-account token resolution for that project afterwards. |
| gitflic_auth_bindingsA | List all current project → account bindings. Sorted alphabetically by project. |
| gitflic_project_resolveA | Resolve a project owner/alias to its UUID + defaultBranch. Cached locally; needed before most other calls. |
| gitflic_mr_listB | List merge requests in a project. Returns array with localId, title, status, author, source/target branches. |
| gitflic_mr_viewB | Get one merge request by its localId. Returns full MR object including description, status, conflicts, canMerge. |
| gitflic_mr_diffB | Get the file-level diff for a merge request (hunks + per-line annotations). |
| gitflic_mr_createA | Create a new merge request. |
| gitflic_mr_approveA | Toggle approve on a merge request (calling twice removes the approval). |
| gitflic_mr_mergeB | Merge a merge request. May fail with MergeCheckException if branch protection requires more approvals. |
| gitflic_mr_closeC | Close a merge request. |
| gitflic_mr_commentB | Add a comment to a merge request. For inline-anchored comments, pass new_path/new_line and old_path/old_line. |
| gitflic_mr_discuss_listA | List discussions (with replies) on a merge request. |
| gitflic_mr_discuss_replyC | Reply to a discussion thread on a merge request. |
| gitflic_mr_discuss_resolveC | Resolve a discussion thread on a merge request. |
| gitflic_issue_listC | List issues. Filter by --status if needed. |
| gitflic_issue_viewC | Get one issue by localId. |
| gitflic_issue_createC | Create a new issue. |
| gitflic_issue_closeB | Close an issue (shortcut: edit with --status CLOSED). |
| gitflic_issue_commentC | Add a comment to an issue. |
| gitflic_branch_listC | List branches in a project. |
| gitflic_branch_createC | Create a new branch from an existing one. |
| gitflic_branch_deleteD | Delete a branch. |
| gitflic_tag_listC | List tags. |
| gitflic_tag_createC | Create a new tag (lightweight or annotated). |
| gitflic_release_listC | List releases. |
| gitflic_release_createC | Create a new release. |
| gitflic_commit_listC | List commits (default branch or --branch). |
| gitflic_user_meA | Get the current authenticated user (id, username, email, name, fullName). |
| gitflic_user_searchA | Search users by username substring. |
| gitflic_project_listA | List accessible projects, including team projects. Defaults to scope shared; filter by owner alias. |
| gitflic_project_list_myA | List projects owned by the current user. Use gitflic_project_list with scope shared for team and member projects. |
| gitflic_webhook_listB | List webhooks for a project. |
| gitflic_branch_protection_listC | List branch protection rules. |
| gitflic_mr_editC | Edit MR title/description/target. Source branch cannot change. |
| gitflic_mr_cancelC | Cancel a merge request. |
| gitflic_mr_by_commitC | Find MR(s) containing a specific commit hash. Optionally filter by status. |
| gitflic_mr_discuss_deleteC | Delete a discussion thread on a merge request. |
| gitflic_issue_editC | Edit an issue's title, description, status, assignee, or labels. |
| gitflic_issue_reopenC | Reopen a closed issue. |
| gitflic_issue_deleteC | Delete an issue. Irreversible. |
| gitflic_issue_comments_listC | List comments on an issue. |
| gitflic_issue_comments_editC | Edit an existing issue comment. |
| gitflic_issue_comments_deleteC | Delete an issue comment. |
| gitflic_issue_relations_listC | List issue relations (linked/related/blocks). |
| gitflic_branch_getC | Get a single branch by name. |
| gitflic_branch_defaultC | Get the project's default branch. |
| gitflic_branch_protection_getC | Get a branch-protection rule by uuid. |
| gitflic_branch_protection_createC | Create a branch-protection rule. |
| gitflic_branch_protection_editC | Edit a branch-protection rule. |
| gitflic_branch_protection_deleteC | Delete a branch-protection rule. |
| gitflic_tag_getA | Get a tag by name. NOTE: GitFlic returns 400 for project-scoped tag get; prefer tag list. |
| gitflic_release_getC | Get one release by uuid. |
| gitflic_release_latestC | Get the most recent release. |
| gitflic_release_editC | Edit release metadata. |
| gitflic_release_deleteC | Delete a release. |
| gitflic_commit_getC | Get one commit by hash. |
| gitflic_commit_filesC | List files touched by a commit. |
| gitflic_commit_compareC | Compare two commits. |
| gitflic_webhook_getC | Get one webhook by uuid. |
| gitflic_webhook_createC | Create a webhook. Pass one or more event names. |
| gitflic_webhook_deleteC | Delete a webhook by uuid. |
| gitflic_webhook_reveal_secretA | Reveal the raw signing secret of a webhook. SENSITIVE: by default the MCP masks secrets (returns secretSet:true/false). This tool returns the actual secret value and is marked destructive so the MCP host prompts for approval before it runs. Use only when the user explicitly needs the secret value. |
| gitflic_project_getC | Resolve an owner/alias to its UUID + metadata. |
| gitflic_project_createC | Create a new project. |
| gitflic_project_editA | Edit project title, description, or language (via change-setting). Visibility and default branch are not editable over the REST API. |
| gitflic_project_member_listC | List project members. |
| gitflic_project_member_inviteC | Invite a user to a project with a role. |
| gitflic_blob_getC | Get a file's text content. Binary files are base64-encoded by the server. |
| gitflic_blob_filesC | List files in the repo (optionally under a sub-path). |
| gitflic_user_getC | Get a user by alias. |
| gitflic_user_projectsC | List public projects of a user. |
| gitflic_user_followersC | List a user's followers. |
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 78 tools
Most tools are scoped by resource and action, but several pairs overlap enough to cause misselection: project_get vs project_resolve, auth vs user_me, mr_cancel vs mr_close, and issue_close vs issue_edit with status CLOSED. Descriptions help clarify some cases, but the boundaries are not consistently crisp.
All tools use snake_case with the gitflic_ prefix, and most follow a predictable resource_action pattern such as gitflic_mr_create or gitflic_issue_comment. Minor deviations like gitflic_auth, gitflic_user_me, gitflic_project_list_my, and gitflic_mr_by_commit keep it from being fully consistent.
With 78 tools, the surface is far larger than the recommended 3-15 range and is heavy for an agent to navigate reliably. The domain is broad and the tools are grouped by resource, but many CRUD/auth variants could be consolidated or exposed more selectively.
Coverage is strong across projects, merge requests, issues, comments, branches, tags, releases, commits, webhooks, users, and authentication. Some expected lifecycle operations are missing or partial, such as project delete, tag delete, webhook edit, and MR reviewer assignment, but most core workflows are supported.