Skip to main content
Glama
upascal

mcp-deploy-mcp

by upascal

MCP Deploy Assistant (mcp-deploy-mcp)

A remote MCP server that helps Claude design, scaffold, and validate MCP servers compatible with the mcp-deploy platform — and is itself deployed by it.

Tools

Tool

Purpose

get_help

Platform overview + topic guides (worker format, manifest, tool design, testing/release, auth, gotchas)

scaffold_mcp

Generate a complete, working repo for a new MCP (13 files, pre-validated)

get_manifest_schema

JSON Schema + naming rules + reserved keys for mcp-deploy.json; optional live upstream drift check

validate_manifest

Validate a drafted manifest, with optional wrangler.jsonc cross-check

check_repo_compatibility

Verify a GitHub repo's release carries deployable assets and a valid manifest

get_example

Minimal scaffolded repo + the production paper-search manifest

How it stays fresh

All servable knowledge lives in content/. It's bundled into the worker at build time as a fallback, but at runtime the worker fetches the latest content/ from this repo's main branch (cached ~6h in the Durable Object's SQLite). Editing content/ and pushing to main updates every deployed instance — no release or redeploy needed. Code changes (validation rules, new tools) ship via tagged releases like any mcp-deploy MCP.

Tool responses tag where content came from: live, cached, or bundled@<version>.

Development

npm install
npm run dev        # wrangler dev — http://localhost:8787 (health at /, MCP at /mcp)
npm test           # vitest (network-dependent tests skip gracefully when rate-limited)
npm run typecheck
npm run build      # produces dist/worker.mjs

Releasing

# bump "version" in mcp-deploy.json, package.json, and src/content.ts (VERSION), then:
git tag v0.1.0
git push origin main v0.1.0

CI attaches worker.mjs + mcp-deploy.json to the GitHub Release — the two assets the platform deploys from.

Secrets

None required. Optional GITHUB_TOKEN raises GitHub API rate limits for check_repo_compatibility (Workers share egress IPs, so the unauthenticated 60/hr pool is sometimes exhausted).