使用说明
Forgejo MCP服务器
将您的AI助手连接到Forgejo存储库。通过自然语言管理问题、拉取请求、文件等。
它的作用
Forgejo MCP Server是一个集成插件,它将Forgejo与 模型上下文协议(MCP) 系统。配置后,您可以通过任何与MCP兼容的AI助手(如Claude、Cursor或VS Code扩展)与Forgejo存储库进行交互。
您可以使用的示例命令:
- “列出我的所有存储库”
- “创建一个标题为“登录页面中的Bug”的问题”
- “在我的组织/我的仓库中显示打开的拉取请求”
- “从主分支获取README.md的内容”
- “显示goern/forgejo mcp中运行的最新操作工作流”
快速开始
1.安装
选项A:使用Go(推荐)
git clone https://codeberg.org/goern/forgejo-mcp.git
cd forgejo-mcp
go install .
确保 $GOPATH/bin (通常 ~/go/bin)在你的路径。
注:
go install codeberg.org/goern/forgejo-mcp/v2@latest目前不工作。看 已知问题.
选项B:下载二进制文件
从下载最新版本 发布页面.
对于Arch Linux,使用您最喜欢的AUR助手:
yay -S forgejo-mcp # builds from source
yay -S forgejo-mcp-bin # uses pre-built binary
2.获取您的访问令牌
- 登录您的Forgejo实例
- 首选 设置 → 应用程序 → 访问令牌
- 创建具有所需权限的新令牌(repo、issue等)
3.配置您的AI助手
将以下内容添加到MCP配置文件中:
用于stdio模式 (最常见):
{
"mcpServers": {
"forgejo": {
"command": "forgejo-mcp",
"args": [
"--transport", "stdio",
"--url", "https://your-forgejo-instance.org"
],
"env": {
"FORGEJO_ACCESS_TOKEN": "<your personal access token>",
"FORGEJO_USER_AGENT": "forgejo-mcp/1.0.0"
}
}
}
}
对于SSE模式 (基于HTTP):
{
"mcpServers": {
"forgejo": {
"url": "http://localhost:8080/sse"
}
}
}
使用SSE模式时,请先启动服务器:
forgejo-mcp --transport sse --url https://your-forgejo-instance.org --token <your-token>
4.开始使用它
打开兼容MCP的AI助手,尝试:
List all my repositories
可用工具
| 工具 | 说明 |
|---|---|
| 用户 | |
get_my_user_info |
获取已验证用户的信息 |
check_notifications |
检查并列出用户通知 |
get_notification_thread |
获取单个通知线程的详细信息 |
mark_notification_read |
将单个通知线程标记为已读 |
mark_all_notifications_read |
确认所有通知 |
list_repo_notifications |
筛选仅限于单个存储库的通知 |
mark_repo_notifications_read |
将特定仓库中的所有通知标记为已读 |
search_users |
搜索用户 |
| 仓库 | |
list_my_repos |
列出您拥有的所有存储库 |
create_repo |
创建新存储库 |
fork_repo |
分叉存储库 |
search_repos |
搜索存储库 |
| 分支 | |
list_branches |
列出存储库中的所有分支 |
create_branch |
创建新分支 |
delete_branch |
删除分支 |
| 文件 | |
get_file_content |
获取文件内容 |
create_file |
创建新文件 |
update_file |
更新现有文件 |
delete_file |
删除文件 |
| 提交 | |
list_repo_commits |
列出存储库中的提交 |
| 问题 | |
list_repo_issues |
在存储库中列出问题 |
get_issue_by_index |
获取特定问题 |
create_issue |
创建新问题 |
add_issue_labels |
为问题添加标签(需要数字标签ID) |
update_issue |
更新现有问题(需要数字里程碑ID) |
issue_state_change |
打开或关闭问题 |
list_repo_milestones |
列出里程碑及其ID(与 update_issue) |
list_repo_labels |
列出标签及其ID(与 add_issue_labels) |
| 评论 | |
list_issue_comments |
列出对问题或PR的评论 |
get_issue_comment |
获取具体评论 |
create_issue_comment |
为问题或PR添加评论 |
edit_issue_comment |
编辑评论 |
delete_issue_comment |
删除评论 |
| 拉取请求 | |
list_repo_pull_requests |
在存储库中列出拉取请求 |
get_pull_request_by_index |
获取特定的拉取请求 |
create_pull_request |
创建新的pull请求 |
update_pull_request |
更新现有的pull请求 |
list_pull_reviews |
列出拉取请求的评论 |
get_pull_review |
获取特定的拉取请求审核 |
list_pull_review_comments |
列出对拉取请求审核的评论 |
| 行动 | |
dispatch_workflow |
通过触发工作流运行 workflow_dispatch 事件 |
list_workflow_runs |
列表工作流运行时,可选择按状态、事件或SHA进行筛选 |
get_workflow_run |
获取按ID运行的特定工作流的详细信息 |
| 组织 | |
search_org_teams |
搜索组织中的团队 |
| 服务器 | |
get_forgejo_mcp_server_version |
获取MCP服务器版本 |
命令行接口命令模式
您可以直接从命令行调用任何工具,而无需运行MCP服务器。这对于shell脚本、CI/CD管道和Claude代码技能非常有用。
# List all available tools (grouped by domain)
forgejo-mcp --cli list
# Invoke a tool with JSON arguments
forgejo-mcp --cli get_issue_by_index --args '{"owner":"goern","repo":"forgejo-mcp","index":1}'
# Pipe JSON arguments via stdin
echo '{"owner":"goern","repo":"forgejo-mcp"}' | forgejo-mcp --cli list_repo_issues
# List recent workflow runs (text output)
forgejo-mcp --cli list_workflow_runs \
--args '{"owner":"goern","repo":"forgejo-mcp"}' \
--output=text
# List only failed runs
forgejo-mcp --cli list_workflow_runs \
--args '{"owner":"goern","repo":"forgejo-mcp","status":"failure"}' \
--output=text
# Show a tool's parameters
forgejo-mcp --cli create_issue --help
# Control output format (json or text)
forgejo-mcp --cli list --output=json
forgejo-mcp --cli get_my_user_info --args '{}' --output=text
CLI模式要求相同 FORGEJO_URL 和 FORGEJO_ACCESS_TOKEN 配置为MCP服务器模式。默认情况下,工具结果以JSON格式写入stdout;错误将以非零退出代码进入stderr。
配置选项
您可以使用命令行参数或环境变量配置服务器:
| CLI参数 | 环境变量 | 描述 |
|---|---|---|
--url |
FORGEJO_URL |
您的Forgejo实例URL |
--token |
FORGEJO_ACCESS_TOKEN |
您的个人访问令牌 |
--debug |
FORGEJO_DEBUG |
启用调试模式 |
--transport |
- | 运输方式: stdio 或 sse |
--sse-port |
- | SSE模式端口(默认值:8080) |
--cli |
- | 进入CLI模式以直接调用工具 |
--user-agent |
FORGEJO_USER_AGENT |
HTTP用户代理标头(默认值: forgejo-mcp/<version>) |
命令行参数优先于环境变量。
故障排除
启用调试模式 查看详细日志:
forgejo-mcp --transport sse --url <url> --token <token> --debug
或者设置环境变量:
export FORGEJO_DEBUG=true
自定义用户代理:如果您的Forgejo实例或代理阻止了默认设置 go-http-client 用户代理,设置一个自定义代理:
# Via environment variable
export FORGEJO_USER_AGENT="forgejo-mcp/1.0.0"
# Or via CLI flag
forgejo-mcp --user-agent "forgejo-mcp/1.0.0" --transport sse --url <url> --token <token>
获取帮助
面向开发者
看 开发商.md 获取构建说明、架构概述和贡献指南。
已知问题
go install ...@latest失败 --Thego.mod包含areplace指令(用于分叉的Forgejo SDK),防止远程go install。使用中所示的克隆和构建工作流 快速开始 相反。已追踪 #67.
贡献者
forgejo-mcp由每个提交问题、编写代码、审查PR和推进项目的人塑造。谢谢大家。 🙏
代码贡献者
| 贡献者 | 亮点 |
|---|---|
| 歌德 (Christoph Görn) | 项目创建者和维护者 |
| Ronmi Ren | 联合创作者;SSE/HTTP传输、问题阻止、CI/CD改进、徽标、Glama规范 |
| twstagg (Tristin Stagg) | 用户代理配置支持(PR#89) |
| mattdm (Matthew Miller) | 日志记录改进、FORGEJO_*迁移、README、URL重构 |
| 按口味 | check_notifications +全面通知管理API(PR#84、#86);功能请求#80、#85 |
| 杰西地形。 | 请求审核和评论支持(PR#51) |
| 苹果 | 自定义SSE端口支持,错误修复 |
| 支尔格74 | mcp-go v0.44.0依赖更新(PR#90) |
| th (托米·哈帕涅米) | update_pull_request 工具 |
| 希丰 | 早期错误修复和更新 |
| 肖伦妮 | 早期捐款 |
| 技术知识 | 早期捐款 |
| yp05327 | 早期捐款 |
| mw75 | 所有者/组织对回购创建的支持(PR#18) |
| 达克斯·凯尔森 | 问题评论管理(PR#34) |
| 古鲁普拉萨德·库尔卡尼 | Arch Linux AUR安装文档(PR#69) |
| 马里奥·沃尔夫 | 捐款 |
| 马西莫 Fraschetti | 捐款 |
社区贡献者
塑造项目方向的问题记者和讨论参与者:
| 贡献者 | 贡献 |
|---|---|
| 按口味 | 提交#80(里程碑/标签发现)、#85(通知API提案);讨论中的积极审阅者 |
| 霍卡瓦尔 | 已提交#82(修复技能),#70(macOS arm64版本),#62(二进制版本和mise支持) |
| 马尔科姆·米耶 | 已提交#59(PR审查工具——自实施以来) |
| 红胡子 | 已提交#60(操作支持——自实施以来) |
| c6sepl6p | 提交#72(base64编码),#54(合并拉取请求——自实现以来) |
| 马利克 | 已提交#73(版本标志),#47(Nix构建修复) |
| a2800276 | 已提交#74(OpenAI兼容性) |
| 西蒙纳德 | 提起#49(去安装支持) |
| BasdP | 已提交#42(项目支持) |
| BoBeR182 | 已提交#32(维基支持) |
| fraschm98 | 早期问题报告 |
Cyborg贡献者
该项目还收到了人工智能编码代理的贡献——作为定期PR提交,由人类审查:
| 代理人 | 角色 | 贡献 |
|---|---|---|
| 布伦纳公理 (b4-dev,B4arena) | 人工智能开发代理 | list_repo_milestones, list_repo_labels 工具(PR#83);比赛条件修复(PR#78);贡献者文档(PR#87、#88);申请号76;代码审查 |
| opencode | AI开发代理 | 请求审核和评论支持(PR#51) |
| b4mad发布机器人 | 发布自动化 | 自动更新日志和发布标记 |
| #B4mad Renovate机器人 | 依赖更新 | 自动依赖升级 |
想贡献吗?打开问题或拉取请求——欢迎所有人。
许可证
这个项目是开源的。有关许可证的详细信息,请参阅存储库。
