Full-Code Guides

Deployment

Build and deploy your MCP App

Build

 bun run build 

This runs two steps:

  1. build:web — Vite builds the React app into a single-file HTML bundle ( dist/client/index.html )
  2. build:server — Bun bundles api/main.ts into dist/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 mesh
  • connection.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

  1. Update app.json with your app’s name, description, and deployed connection URL
  2. Push to your repository
  3. 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 check
  • bun run check — TypeScript type checking
  • bun run build — Full production build

Testing After Deploy

  1. Go to admin.decocms.com
  2. Add your deployed URL + /api/mcp as a custom integration
  3. Test tool invocations
  4. Verify MCP App UIs render correctly in the client
Previous

Found an error or want to improve this page?

Edit this page