Skip to content

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

Closed
dndungu wants to merge 6 commits into
mainfrom
feat/mint-cli-registry-commands
Closed

feat(mint): add registry API, CLI commands, and web UI#2
dndungu wants to merge 6 commits into
mainfrom
feat/mint-cli-registry-commands

Conversation

@dndungu

@dndungu dndungu commented Mar 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add Mint registry backend API for publishing and discovering MCP servers
  • Add login, publish, install, and seed CLI commands
  • Scaffold registry web UI with Next.js
  • Add Mint-to-Sire upgrade path with analytics tracking
  • Standardize legal entity name to "Sire Run, Inc."

Test plan

  • Verify registry API endpoints work correctly
  • Test CLI login, publish, install, and seed commands
  • Confirm web UI renders and connects to API
  • Validate upgrade path analytics tracking

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 commented Mar 12, 2026

Copy link
Copy Markdown
Contributor Author

Closing: these changes were already merged via PR #1.

@dndungu dndungu closed this Mar 12, 2026
@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