feat: add read-write Forgejo MCP app for ChatGPT #1
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/forgejo-chatgpt-plugin!1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/read-only-mcp-v1-final"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What changed
Implements
forgejo-chatgpt-pluginv0.2 as a read/write remote MCP server for ChatGPT Developer Mode / custom apps.initialize,tools/list,tools/call, and ping flow/mcp/healthzTool surface
29 tools total: 14 reads + 15 mutations.
Read operations cover repositories, branches, commits, trees, bounded UTF-8 files, code search, issues, pull requests, changed files, and bounded PR diffs.
Mutation operations include:
forgejo_commit_changesfor atomic multi-file commits (up to 100 create/update/delete operations, including feature-branch creation)forgejo_delete_branch,forgejo_delete_file, andforgejo_merge_pull_requestare explicitly annotateddestructiveHint: true. Other mutations are writable/non-destructive.There is still no generic HTTP tool, shell tool, Git SSH key, repository-admin tool, or arbitrary command execution.
Security boundary
The server talks to Forgejo only through its REST API using a dedicated runtime token. The intended StarIntel deployment runs it beside Forgejo and uses
http://127.0.0.1:3000internally, avoiding a loop through the public Git ingress.Repository file reads and PR diffs are bounded. The NixOS module loads credentials with systemd
LoadCredential, so credential values do not enter the Nix store or process argv. The MCP service defaults to127.0.0.1:9473and should initially be reached through Secure MCP Tunnel or an authenticated HTTPS boundary.The Forgejo token should have repository write permission required for the desired mutation operations but should not have instance-admin privileges.
Validation
The original read-only slice was executed successfully before write expansion (9/9 tests).
The expanded v0.2 test suite is committed and adds coverage for:
The expanded suite was not re-run in the ChatGPT implementation container because that environment has no outbound DNS and no Nix installation. Run
npm test,nix build, and thestarintel-infrasource-build evaluation before merge/deploy.ChatGPT
docs/chatgpt.mddocuments testing from a new normal ChatGPT chat, not Work mode. The write smoke test is:ChatGPT may require confirmation before executing write/destructive tools; that is expected Developer Mode behavior.
Intended StarIntel deployment
source-buildhttp://127.0.0.1:3000127.0.0.1:9473https://mcp.git.starintel.actor/mcpDo not merge until the expanded Node tests and Nix/source-build evaluation have been run in the real development/infra environment.