feat(mint): add registry API, CLI commands, and web UI - #1
Merged
Conversation
Implement the REST API for the Mint MCP server registry at
/api/v1. This is the MVP backend that enables publishing,
discovering, downloading, and starring MCP server packages.
Endpoints:
- POST /publish - upload server package (auth required)
- GET /servers - list/search with full-text, category filter, pagination
- GET /servers/{id} - server detail with version history
- GET /servers/{id}/download - download artifact (increments counter)
- POST /servers/{id}/star - toggle star (auth required)
- GET /servers/{id}/stars - star count
- POST /publishers/register - register and get API key
- POST /publishers/{id}/verify - mark publisher as verified
Features:
- SQLite storage (standalone binary, easy deployment)
- Bearer token auth for publish, public read for discover/install
- Rate limiting: 10 publishes/hour per key, 100 searches/min per IP
- Semver validation, name uniqueness, ownership enforcement
- SHA-256 checksums on uploaded artifacts
Sub-tasks completed:
- S-MINT-REG.1.1 Registry data model (SQLite)
- S-MINT-REG.1.2 Publish endpoint
- S-MINT-REG.1.3 Discover/search endpoints
- S-MINT-REG.1.4 Install/download endpoint
- S-MINT-REG.1.5 Star/rating system
- S-MINT-REG.1.6 Publisher auth and verified badges
- S-MINT-REG.1.7 Rate limiting and abuse prevention
- S-MINT-REG.1.8 Unit and integration tests (73.8% coverage)
- S-MINT-REG.1.10 Linter and formatter (go vet clean)
Implement three new CLI commands for the Mint registry: - mint login: Register with registry via GitHub handle, store credentials in ~/.mint/credentials, support MINT_API_KEY env var - mint publish: Read mint.json manifest, package as tarball (excluding .git, node_modules, etc.), upload to registry API with --dry-run flag - mint install: Download and extract MCP servers from registry with optional version pinning (name@version syntax) Internal packages: auth, publish, install with table-driven tests.
Build the public Mint Registry website at mint/web/ with: - Next.js 16, TypeScript, Tailwind CSS v4, App Router - Homepage with hero, search bar with typeahead, category cards, featured servers grid - Server listing page with category/sort filters and pagination - Server detail page with install command, README, stats, and "Deploy to Sire" CTA - Publisher profile page showing their published servers - Publish flow with form, preview step, and API integration - SEO: Open Graph meta tags, sitemap.xml, robots.txt, structured metadata - 39 passing vitest component and unit tests - Dark theme matching sire.run design system
S-MINT-REG.4.1: Curate catalog of 120 public OpenAPI specs across 10 categories (Payments, CRM, Communication, DevOps, Productivity, Analytics, Support, Marketing, HR, Infrastructure) in catalog.json. S-MINT-REG.4.2: Build batch generation script that reads the catalog, runs mint mcp generate for each spec, captures success/failure with timing and tool counts, and outputs a formatted report with category breakdown. Supports --dry-run for validation only. Tests at 93.9% coverage with table-driven tests using stdlib only.
- Deploy to Sire CTA links to sire.run/signup with mcp, source, and UTM params - Sire branding: "Powered by Sire" footer, promotional banner on homepage - Analytics tracking module: registry visits, searches, server views, download clicks, deploy-to-sire clicks via sendBeacon/fetch - SearchBar tracks search submissions - 55 tests passing (16 new tests for upgrade path components)
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
registry/): REST API for publishing, discovering, downloading, and starring MCP server packages. SQLite storage, bearer token auth, rate limiting, semver validation, SHA-256 checksums. 73.8% test coverage.cmd/mint/,internal/):mint login,mint publish,mint installfor registry interaction with credential storage and dry-run support.web/): Next.js 16 site with server listing, search with typeahead, category filters, publisher profiles, publish flow, SEO, and dark theme. 55+ vitest tests.Test plan