Skip to content

feat(mint): add registry API, CLI commands, and web UI - #1

Merged
dndungu merged 6 commits into
mainfrom
feat/mint-cli-registry-commands
Mar 11, 2026
Merged

feat(mint): add registry API, CLI commands, and web UI#1
dndungu merged 6 commits into
mainfrom
feat/mint-cli-registry-commands

Conversation

@dndungu

@dndungu dndungu commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Registry backend API (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.
  • CLI commands (cmd/mint/, internal/): mint login, mint publish, mint install for registry interaction with credential storage and dry-run support.
  • Registry web UI (web/): Next.js 16 site with server listing, search with typeahead, category filters, publisher profiles, publish flow, SEO, and dark theme. 55+ vitest tests.
  • Seed command: Curated catalog of 120+ public OpenAPI specs across 10 categories with batch generation script (93.9% coverage).
  • Sire upgrade path: Deploy to Sire CTAs, branding, and analytics tracking for registry events.
  • Legal: Standardized entity name to "Sire Run, Inc."

Test plan

  • Registry backend unit and integration tests (73.8% coverage)
  • CLI command table-driven tests
  • Seed command tests (93.9% coverage)
  • Web UI vitest component and unit tests (55 passing)

dndungu added 6 commits March 10, 2026 20:00
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)
@dndungu
dndungu merged commit 6b5fb9c into main Mar 11, 2026
2 of 4 checks passed
@dndungu
dndungu deleted the feat/mint-cli-registry-commands branch March 12, 2026 04:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant