Adds an extension/ directory containing the manifest, build documentation,
and a smoke test for packaging forgejo-mcp as a Claude Desktop Extension.
Users of the Claude Desktop app can install this with a sideload
(drag-and-drop or file picker) rather than hand-editing
claude_desktop_config.json. The server binary itself is unchanged —
this is purely packaging. Existing CLI / mcpServers / `claude mcp add`
usage continues to work identically.
What's added:
extension/manifest.json Manifest schema 0.3, full 94-tool inventory,
user_config for URL + access token (sensitive).
extension/test_smoke.py MCP handshake + tools/list verification.
Catches manifest-vs-binary drift, the most
likely failure mode when manifest tool lists
are hand-maintained alongside an evolving
upstream binary. Skips cleanly when
FORGEJO_ACCESS_TOKEN is unset (unattended
CI with no secrets).
extension/README.md Build flow, test usage, future-work hints.
extension/.gitignore Ignores build artifacts (bin/, *.mcpb).
Build:
go build -o extension/bin/forgejo-mcp .
npx @anthropic-ai/mcpb pack extension/ extension/forgejo-mcp.mcpb
Test:
FORGEJO_ACCESS_TOKEN=<token> python3 extension/test_smoke.py
# PASS: manifest and binary agree on 94 tools
The smoke test caught real drift while developing this PR — the README's
tool table was missing 14 tools the binary already exposes (orgs, teams,
PR reviews, attachments). The manifest reflects the binary's actual
tools/list output, so anyone using the extension gets accurate tool
discoverability in Claude Desktop's Extensions UI.
Possible follow-ups documented in extension/README.md (goreleaser hook,
cross-platform binaries, registry submission, signing) — left for the
maintainer's call rather than pre-implemented.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 lines
30 B
Text
3 lines
30 B
Text
# Build artifacts
|
|
bin/
|
|
*.mcpb
|