Full-Code Guides
Deployment
Build and deploy your MCP App
Build
bun run build
This runs two steps:
build:web— Vite builds the React app into a single-file HTML bundle (dist/client/index.html)build:server— Bun bundlesapi/main.tsintodist/server/main.js(minified, production-ready)
app.json Configuration
Update app.json with your app’s details before publishing:
{
"scopeName": "your-org",
"name": "your-app",
"friendlyName": "Your App Name",
"description": "What your app does.",
"connection": {
"type": "HTTP",
"url": "https://your-app.decocache.com/api/mcp",
"configSchema": {
"type": "object",
"properties": {},
"required": []
}
}
}
scopeName+name— unique identifier in the deco meshconnection.url— your deployed MCP endpoint (must end with/api/mcp)configSchema— JSON Schema for configuration options shown to users who install your app
Publishing to Deco Studio
- Update
app.jsonwith your app’s name, description, and deployed connection URL - Push to your repository
- Follow deco mesh publishing instructions to make your app available
CI/CD
GitHub Actions
The template includes a CI workflow ( .github/workflows/ci.yml ):
name: CI
on: [push, pull_request]
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Cache Bun dependencies
uses: actions/cache@v4
with:
path: ~/.bun/install/cache
key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }}
restore-keys: ${{ runner.os }}-bun-
- run: bun install --frozen-lockfile
- run: bun run ci:check
- run: bun run check
- run: bun run build
This runs on every push and pull request:
bun run ci:check— Biome lint + format checkbun run check— TypeScript type checkingbun run build— Full production build
Testing After Deploy
- Go to admin.decocms.com
- Add your deployed URL +
/api/mcpas a custom integration - Test tool invocations
- Verify MCP App UIs render correctly in the client
Previous
Found an error or want to improve this page?
Edit this page