GitCafe MCP Server 是官方的吗?
是的。GitCafe 在 `https://git.cafe/mcp` 运行该服务,并在账号文档的“Connect an MCP app”中提供说明。
@GitCafe
基本信息
GitCafe 官方托管的 MCP 服务器让 AI 客户端访问 GitCafe 的 Git 托管服务。公开仓库无需登录即可读取;通过 OAuth 连接后,可访问私有仓库,并使用处理 issue、pull request、评审和合并的写入类工具,范围仅限你批准的仓库和权限。
https://git.cafe/mcpclaude mcp add gitcafe --transport http https://git.cafe/mcpRead who this connection is signed in as and what it may reach: your actor identity and, for an OAuth connection, the repositories and permissions the user approved and when it expires. Returns null when the credential names no user. Call it first to learn which repositories the other tools can reach: every repository the user can access, or the ones they selected (adding one to a selection needs the user to connect again).
List the repositories this connection can read, oldest first, one page at a time, narrowed by owner, topic or name prefix (filters combine). Signed in, it lists the approved repositories; without sign-in it lists public repositories only, needs owner or topic, and q is not available. Pass an item's owner and name to the other tools.
Read one repository: its identity, description, topics, visibility, default branch, fork parent, version and timestamps. Use it to find the default branch before list_refs, list_tree or read_file, and the id before create_pull_request.
List a repository's branches or its tags, sorted by name, one page at a time, optionally narrowed by a name substring. Each ref carries the commit it points to and, for an annotated tag, its signature check. Pass a ref's name as ref to list_tree, read_file or search_code, or its target commit's oid as oid to pin later reads to one commit.
List the entries of one directory of a repository, not recursively, at a branch, tag or commit, one page at a time; later pages stay on the same commit. Each entry says whether it is a file, directory, submodule or symbolic link. Omit path for the root; pass a tree's path back to descend and a blob's path to read_file.
Read one file of a repository at a branch, tag or commit, a window of lines at a time. A text file comes with its line window and nextLine to continue; a binary file comes with null content. A window holds at most maxLines lines and 64 KiB; a file over 1 MiB cannot be read. Take path from list_tree or search_code.
Search the text files of a repository at a branch, tag or commit for a literal string, optionally within one file or directory. Matches come one per matching line, in file and line order, with context lines; truncated says when maxMatches or a size limit cut them short, so narrow by path or raise maxMatches. Pass a match's path and lineNumber to read_file.
List a repository's issues, newest first, one page at a time, optionally narrowed by workflow state or by words in the title or description; total counts every match. Pass an issue's number as issue to issue_read, update_issue and add_comment, and reuse the label, assignee and milestone IDs it shows when creating issues.
Read one issue, one facet per call. detail (the default): the issue, with its version and what you may do to it. comments: one page of its comments, oldest first, with the IDs and versions update_comment takes. Take the issue number from list_issues or a create_issue receipt.
List a repository's pull requests, oldest first, one page at a time, optionally narrowed by lifecycle state or by text in the title. Each item carries the number, head commit and version the other pull request tools take. For a pull request's description, merge readiness, reviews, commits, files or comments call pull_request_read.
Read one pull request, one facet per call. detail: the pull request, with its version, headOid, mergeRoute and what you may do to it. status: merge readiness and checks, with the version, headOid and baseOid merge_pull_request needs. reviews, commits, files, comments: one page each; files carries the version and paths get_pull_request_diff takes, comments the IDs and versions add_comment and update_comment take. merge_status: a merge operation's outcome; poll an accepted merge with backoff, as accepted is not completed. Take the number from list_pull_requests or a create_pull_request receipt.
Read the patch of chosen changed files of a pull request, pinned to the version the files were listed at. Each file comes with its hunks and line origins; a binary or too-large file has no hunks, and hunksOmitted marks a file whose hunks did not fit the response, so request fewer paths. Take paths and expectedVersion from pull_request_read facet files; the line numbers are what add_comment target pull_inline anchors to.
Create an issue in a repository with a title and, optionally, a description, priority, due date, workflow state, labels, assignees and a milestone. Returns the new issue's number and the version its next write takes. Take label, assignee and milestone IDs from the issues list_issues or issue_read return, and your own actorId from get_me. There is no idempotency key: on an unknown outcome, list_issues before trying again rather than retrying automatically.
Change one issue, one action per call: edit its title, description, priority, due date or open workflow state; close it as completed or canceled; or reopen it. Returns the version the next write takes. Take the number and current version from issue_read, list_issues or the last receipt; the write fails if the issue changed since. An edit overwrites the previous values, which are not kept; title, description and open/closed changes also reach a linked GitHub issue. Labels, assignees and milestones cannot be changed with these tools.
Post one comment, by target: on an issue; in a pull request's conversation; inline on a file or lines of a pull request's diff, anchored to an exact commit; or as a reply in an existing pull request thread, which inherits the thread's anchor. Returns the comment's id and version for update_comment, and for a pull request comment its threadId. For an inline comment take path and the commit (headOid for the right side and file comments, comparisonBaseOid for the left side) from pull_request_read facet files; for a reply take replyTo from facet comments. There is no idempotency key: on an unknown outcome, read the comments before trying again rather than retrying automatically.
Change one comment, one action per call: edit the body of an issue or pull request comment, or resolve or unresolve a pull request thread. Returns the version the next write takes. Take the comment ID and current version from issue_read or pull_request_read facet comments or the last receipt; the write fails if the comment changed since. To resolve or unresolve, pass the thread's root comment (its threadId) and that root's version. An edit overwrites the old text, which is not kept; resolution stays in GitCafe and is not written to GitHub. Comments cannot be hidden or deleted with these tools.
Merge a pull request into its target branch with an explicit strategy, at the exact head, base and version you reviewed. Returns a merge operation: accepted is admitted but not merged yet, completed is merged, failed is not merged. Take headOid, baseOid and expectedVersion from pull_request_read facet status, and which strategies are allowed from its merge verdict; follow an accepted operation with facet merge_status, with backoff. A merge cannot be undone with these tools. On an unknown outcome, retry with the same requestId and input, never with a new key; a different input under the same requestId is rejected.
Commit file edits to a branch on the server, without a clone or push: write files (full content), delete, rename or change their mode, in one commit on the branch's exact current commit. Returns the job: succeeded with the new commit, failed when nothing was committed, or another state when the outcome is not confirmed. Take expectedOid from list_refs and blob OIDs for expected from read_file; pin every path you read and rewrite with expected, so a concurrent change fails the commit instead of being overwritten. On failed, read again and rebuild the edits; on an unconfirmed outcome, retry with the same requestId and input, never with a new key. Push rules apply as for a git push; protected branches may refuse it. Content is limited by this endpoint's request size; push larger changes with git.
Read a repository's CI, one facet per call. runs: one page of Buildkite runs, newest first, narrowed by commit or state. run: one run by runId. checks: one page of the checks on a commit, with a summary over all of them. jobs: one page of a run's jobs. log: the end of a job's log. Runs, run and checks read what GitCafe recorded, including GitHub checks on a linked repository; jobs and log read Buildkite live and need the repository owner to have shared logs. Take the commit from pull_request_read (headOid) or list_refs, runId from a run or check, and jobId from facet jobs. Long text fields are cut to fit, and truncatedFields names them. CI cannot be started, rerun or cancelled with these tools.
Open a pull request that merges a source branch of this repository or a fork into a target branch, with a title and optional description. Returns the new pull request's number and the version its next write takes. Take sourceRepo from get_repository (the fork's id, or this repository's) and the branch names from list_refs; the source branch must already be pushed with git or the Cafe CLI, as these tools cannot push. With a stable submissionKey, retrying after an unknown outcome returns the original pull request instead of a duplicate; without one, list_pull_requests before trying again rather than retrying automatically.
Change one pull request, one action per call: edit its title, description or target branch; close it without merging (which also clears draft); reopen it; mark it as a draft; or mark it ready for review. Returns the version the next write takes. Take the number and current version from pull_request_read, list_pull_requests or the last receipt; the write fails if the pull request changed since. An edit overwrites the previous values, which are not kept; title, description and state changes also reach a linked GitHub pull request. Merging is merge_pull_request; reviewers, labels and assignees cannot be changed with these tools.
Submit a review of a pull request at an exact commit and version: approve, request changes, or comment without a decision, with an optional overall body. Returns the review with its id, verdict and commit. Take commitOid (headOid) and expectedVersion from pull_request_read facet detail or status; the review fails if the pull request changed since, so read again and resubmit at the new head. To publish a draft review you saved in the GitCafe web UI, with its inline comments, pass its id and version as draft with the same verdict, body and commit it was saved with; these tools cannot create or read drafts. Approving or requesting changes on your own pull request is refused, and a submitted review cannot be withdrawn with these tools. On an unknown outcome, retry with the same requestId and input, which returns the original review; a different input under the same requestId is rejected.
Send a report about GitCafe itself to the GitCafe team: a tool that failed or misbehaved, a confusing result, or a missing capability. Returns a reference to give the user for any follow-up; the report is not readable with these tools. Give a one-line summary, what you tried and what happened in body, and the tool name, request ID or problem code in context. A bug in the user's own repository is an issue for create_issue, not feedback. There is no idempotency key: on an unknown outcome, tell the user rather than retrying automatically, as a retry files a second report.
GitCafe MCP Server 是 GitCafe 官方托管的端点(https://git.cafe/mcp),让 Claude、ChatGPT 等 AI 客户端读取代码仓库,并在你授权后处理 issue、pull request 和代码评审。
GitCafe 是一个 Git 托管与代码评审服务,支持堆叠式 pull request、可选的 GitHub 双向同步以及 cafe CLI。GitCafe MCP Server 由 GitCafe 自己运营。公开仓库无需登录即可读取;通过 OAuth 登录后可访问私有仓库并使用写入类工具,权限仅限于你批准的仓库和权限。
该服务器使用 Streamable HTTP 传输,地址为:
https://git.cafe/mcp
读取类工具可以匿名用于公开仓库。写入类工具和 get_me 会触发登录:客户端打开浏览器,你用已验证的 GitCafe 账号登录,选择最多 50 个仓库,检查权限(读取默认开启,写入和管理默认关闭),然后点击 Approve connection。GitCafe 文档提醒:不要把 token 或密码粘贴到连接器设置中,登录由浏览器流程完成。
claude mcp add --transport http gitcafe https://git.cafe/mcp
需要访问私有仓库或写入权限时,在 Claude Code 中运行 /mcp 完成登录。
打开 Customize → Connectors → Add → Add custom connector,填写名称和 https://git.cafe/mcp,保留自动检测到的登录和自动注册选项,然后选择 Add → Connect 并批准连接。GitCafe 建议把工具保持为 Needs approval,以便逐次审核调用。
将服务器添加到 ~/.cursor/mcp.json(或项目内的 .cursor/mcp.json):
{
"mcpServers": {
"gitcafe": {
"url": "https://git.cafe/mcp"
}
}
}
添加到 .vscode/mcp.json:
{
"servers": {
"gitcafe": {
"type": "http",
"url": "https://git.cafe/mcp"
}
}
}
GitCafe 也提供了 ChatGPT 的配置说明:开启开发者模式后,用该 URL 创建一个 MCP 应用,并保持 OAuth。
pr:merge:write 权限)。我们对该端点的探测返回了 21 个工具:
get_me 显示连接所代表的身份及可访问范围;list_repositories 和 get_repository 用于查找仓库及其默认分支。list_refs、list_tree、read_file 和 search_code 浏览分支、标签、目录和文件,并可在任意 ref 上进行字面字符串搜索。list_issues、issue_read、create_issue 和 update_issue。list_pull_requests、pull_request_read、get_pull_request_diff、create_pull_request、update_pull_request、submit_review 和 merge_pull_request。add_comment 可在 issue、pull request 会话或 diff 行内发表评论;update_comment 用于编辑评论和解决讨论线程。ci_read 读取 Buildkite 的运行、检查、任务和日志。写入类工具需要传入预期版本号,因此过期的写入会失败,而不会覆盖他人的修改。merge_pull_request 可能在合并完成前返回 accepted,智能体应持续检查直到状态变为 completed。
是的。GitCafe 在 `https://git.cafe/mcp` 运行该服务,并在账号文档的“Connect an MCP app”中提供说明。
读取公开仓库不需要:读取类工具无需登录即可使用。私有仓库、写入类工具和 `get_me` 需要通过 OAuth 连接一个已验证的 GitCafe 账号。
GitCafe 提供免费套餐,公开测试期间私有仓库也免费。付费套餐(Pro、Team 和 Enterprise)提供更多存储空间和更高的 API 速率限制。
不可以。已连接的应用不能创建分支或提交、推送、启动或取消 CI,也不能管理或删除仓库。它可以基于已有分支创建 pull request、进行评审,并在获得权限后合并。
支持。它是标准的 Streamable HTTP 端点;在各客户端的远程 MCP 配置中添加该 URL,并在提示时于浏览器中登录即可。
在 GitCafe 中打开 **Settings → Authorized Apps**,找到对应应用并选择 **Revoke access**,连接会立即终止。
GitCafe 的远程 MCP 服务器是一个托管的 Model Context Protocol 端点,地址是 https://git.cafe/mcp,AI 助手无需在本地安装或运行任何东西即可连接。
把端点 https://git.cafe/mcp 添加到任意支持 MCP 的客户端,比如 Claude Code、Cursor 或 VS Code。本页的接入代码块可以一步配置好每个客户端。
需要。GitCafe 使用 OAuth——第一次连接时,你的 MCP 客户端会打开浏览器窗口登录并授权,之后会复用这个凭证。
GitCafe 暴露的是 streamable-http 端点,这是远程 MCP 服务器普遍使用、主流客户端都支持的传输方式。
AdaptlyPost: Schedule and publish social posts to Instagram, TikTok, YouTube, X, Facebook, LinkedIn, Pinterest, Threads, and Bluesky from any MCP client.
Hosted AdLoop: Google Ads, Reddit Ads, GA4 and Tag Manager in claude.ai, ChatGPT and more, with a preview before every change.
Pharmaceutical drug & clinical trial intelligence
Search and read current AWS documentation, check regional availability and load AWS agent skills, with no AWS account needed.
Read-only, source-backed AI model pricing, history, comparisons and cost calculations.
评论