0.16.0
forgejo-mcp v0.16.0 (2026-09-02)
create_repo had been in the elevated tier since #106 and had never once worked. It posts to an endpoint Forgejo gates behind write:user, which is the same scope that adds SSH keys and changes the account's email addresses, so granting it was never the smaller risk. Removing the tool leaves the tier with the one property worth having, which is that everything in it destroys something and nothing in it is there for another reason. The less comfortable find was sitting next to it. Two of the three places that tell you what to allowlist had been describing a four-tool tier since #127 added a fifth.
⚠ Breaking changes
create_repois removed. The elevated tier goes from seven tools to six, and the full surface from 60 to 59. There is no replacement: create repositories in the Forgejo web UI or with a token you control directly.
Fixed
- elevated: remove
create_repoand correct every tier enumeration (#144) (9faf8c3), closes #142 and #143. Thanks to Dax Davis.
Why the tool went rather than the scope
POST /user/repos returns 403 token does not have at least one of required scope(s): [write:user] for every token this server is designed to hold. The same scope gates POST /user/emails, POST /user/keys and POST /user/gpg_keys, so an elevated token carrying it could plant an SSH key that outlives the token that planted it. That is the account administration this project puts permanently out of scope, and no narrower scope exists: the organisation-scoped path needs write:organization and does not apply to a user account.
Documentation
The README tier table, the README security warning and ARCHITECTURE.md all still listed the four-tool tier from before #127 and #129. Two of those are allowlisting guidance, so a reader working from either would have believed they had enumerated the elevated surface while three irreversible tools were missing from the list they checked. All five places that name the tier now agree with the registry, and that agreement is checked rather than eyeballed.
Upgrading
If your client allowlist names mcp__forgejo__create_repo, remove the entry. It now refers to a tool that does not exist.