First-party MCPs maintained by the decocms team.
After cloning the repository, install dependencies:
bun installThis will automatically set up git hooks that run formatting and linting checks before each commit.
To manually set up the git hooks later, run:
bun run prepareUse the new.ts script to quickly scaffold a new MCP app from templates:
bun run new <name> [options]-t, --template <type>- Template type:minimalorwith-view(default:with-view)--no-view- Remove view/frontend code (API only)-d, --description- Description for package.json-h, --help- Show help message
Create an MCP with a React view:
bun run new weather-mcpCreate an API-only MCP (no view):
bun run new weather-api --no-viewCreate from minimal template:
bun run new my-mcp --template minimalCreate with custom description:
bun run new weather-api --no-view --description "Weather forecast API"-
with-view- Full-featured MCP with a Vite + React view- Includes Tailwind CSS, React Router, React Query
- Cloudflare Workers backend
- Perfect for MCPs that need a UI
-
minimal- Lightweight API-only MCP- Just the server code, no frontend
- Smaller dependency footprint
- Perfect for pure API/tool MCPs
The minimal template is automatically created from template-with-view when first needed.
cd your-mcp-name
bun install
bun run devThat's it! The deployment workflows will automatically detect your new MCP - no manual configuration needed.
This monorepo uses centralized GitHub Actions workflows with automatic MCP discovery.
- 🔍 Automatic MCP Discovery: The workflows automatically find all directories with a
package.json(excluding special folders likescripts,shared, etc.) - 🎯 Smart Change Detection: Uses git diff to detect which MCPs have changed in each commit or PR
- 🚀 Selective Deployment: Only MCPs with actual changes are built and deployed
- ⚡ Parallel Execution: Multiple changed MCPs deploy simultaneously using GitHub's matrix strategy
.github/workflows/deploy.yml- Production deployment on push to main.github/workflows/deploy-preview.yml- Preview deployment on pull requests
Production (push to main):
- Compares current commit with previous commit
- Deploys all MCPs that have file changes
Preview (pull requests):
- Compares PR branch with base branch (main)
- Deploys all MCPs that have changes in the PR
- Posts preview URLs as a comment on the PR
You can also deploy MCPs manually using the deployment script:
# Deploy to production
bun run scripts/deploy.ts your-mcp-name
# Deploy preview
bun run scripts/deploy.ts your-mcp-name --previewEach MCP directory must have:
- A
package.jsonwith abuildscript - Build output in
dist/serverdirectory (or as configured for Deco)
Repository requirements:
DECO_DEPLOY_TOKENsecret configured in GitHub repository settings
Just create a new directory with a package.json - that's it! The workflows will automatically:
- Detect it as an MCP
- Monitor it for changes
- Deploy it when changes are pushed
No manual workflow configuration needed!