| Filename | Latest commit message | Latest commit date |
|---|---|---|
## Summary - add a publisher preflight that rejects non-UTF-8 `server.json` bytes before parsing - reject unpaired UTF-16 surrogate escapes inside JSON string fields before publish/validate requests are sent - keep valid non-ASCII descriptions, including em dashes, round-tripping through the publish path - make the publisher test token helper set `USERPROFILE` as well as `HOME` so Windows tests use the temp home directory Closes #1306. ## To verify - `go test ./cmd/publisher/commands -run "TestPublishCommand_(Success|PreservesNonASCIIDescription|RejectsInvalidUTF8ServerJSON|RejectsUnpairedSurrogateEscape)$" -count=1` - `go test ./cmd/publisher/commands -run TestPublishCommand -count=1` - `go test ./cmd/publisher/commands -run TestValidateCommand -count=1` - `git diff --check` Co-authored-by: Radoslav Dimitrov <radoslav@stacklok.com> |
||
| .. | ||
| auth | ||
| commands | ||
| main.go | ||
| README.md | ||
MCP Publisher Tool - Development
CLI tool for publishing MCP servers to the registry.
These docs are for contributors. See the Publisher User Guide for end-user documentation.
Quick Development Setup
# Build the tool
make publisher
# Test locally
make dev-compose # Start local registry
./bin/mcp-publisher init
./bin/mcp-publisher login none --registry=http://localhost:8080
./bin/mcp-publisher publish --registry=http://localhost:8080
Architecture
Commands
init- Generate server.json templates with auto-detectionlogin- Handle authentication (github, dns, http, none)publish- Validate and upload servers to registrystatus- Update server lifecycle status (active, deprecated, deleted)logout- Clear stored credentials
Authentication Providers
github- Interactive OAuth flowgithub-oidc- CI/CD with GitHub Actionsdns- Domain verification via DNS TXT recordshttp- Domain verification via HTTPS endpointsnone- No auth (testing only)
Signing Providers
Optional: enables dns and http methods to sign out-of-process without direct access to the private key.
google-kms- Google KMS signingazure-key-vault- Azure Key Vault signing
Key Files
main.go- CLI setup and command routingcommands/- Command implementations with auto-detection logicauth/- Authentication provider implementationsbuild.sh- Cross-platform build script