feat(server): add release, tag, and package tools #14
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/releases-tags-packages-tools-fjmcp-13"
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?
Expose every fj_core::release (11 ops), fj_core::tag (4 ops), and fj_core::packages (4 ops) operation as MCP tools, completing phase 3 of the tool-surface expansion. Each tool carries its FJMCP-10 permission tier: READ runs unconditionally, EDIT tools (create_release, edit_release, create_release_attachment, create_tag) call require(Tier::Edit), and DELETE tools (delete_release, delete_release_by_tag, delete_release_attachment, delete_tag, delete_package) call require(Tier::Delete).
The byte-returning reads (get_release_archive, download_release_attachment) write the payload to a local file (an optional dest_path, else a temp file) and return { path, bytes, filename } rather than streaming bytes through the MCP text channel, so large archives never blow up the result. The path shape is documented as only useful when the server shares a filesystem with the caller (stdio transport).
list_packages maps its type filter to ListPackagesQueryType via the same serde-based parse the fj packages CLI uses, keeping the accepted set in sync with the API. get_info instructions and the README tool tables/notes are updated for all 19 tools.
The fj-core / fj-client git dependency is repinned from tag v0.8.1 to rev 32312ee because the packages module landed on main after that tag and has no release tag yet; CLAUDE.md notes the temporary rev pin and the condition to move back to a tag.
#FJMCP-13
Expose every fj_core::release (11 ops), fj_core::tag (4 ops), and fj_core::packages (4 ops) operation as MCP tools, completing phase 3 of the tool-surface expansion. Each tool carries its FJMCP-10 permission tier: READ runs unconditionally, EDIT tools (create_release, edit_release, create_release_attachment, create_tag) call require(Tier::Edit), and DELETE tools (delete_release, delete_release_by_tag, delete_release_attachment, delete_tag, delete_package) call require(Tier::Delete). The byte-returning reads (get_release_archive, download_release_attachment) write the payload to a local file (an optional dest_path, else a temp file) and return { path, bytes, filename } rather than streaming bytes through the MCP text channel, so large archives never blow up the result. The path shape is documented as only useful when the server shares a filesystem with the caller (stdio transport). list_packages maps its type filter to ListPackagesQueryType via the same serde-based parse the fj packages CLI uses, keeping the accepted set in sync with the API. get_info instructions and the README tool tables/notes are updated for all 19 tools. The fj-core / fj-client git dependency is repinned from tag v0.8.1 to rev 32312ee because the packages module landed on main after that tag and has no release tag yet; CLAUDE.md notes the temporary rev pin and the condition to move back to a tag. #FJMCP-13