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:
bun run new <name> [options]-d, --description- Description for package.json-h, --help- Show help message
Create a new MCP:
bun run new weather-apiCreate with custom description:
bun run new weather-api --description "Weather forecast API"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!