mcpField
T
TurboSteed MCP

TurboSteed MCP

Local
turbosteed.comCloud & Infra0Updated 4w ago

About TurboSteed MCP

TurboSteed CLI provides command-line tools for deploying websites, managing assets, and editing CMS content, with support for AI coding agents. Its local MCP server forwards requests to the TurboSteed backend.

Key features

  1. 01Deploy and preview websites
  2. 02Upload, list, and delete assets
  3. 03Manage CMS schemas and entries
  4. 04Retrieve contact form submissions
  5. 05Deploy through CI/CD pipelines
  6. 06MCP server for Claude integration

Use cases

  1. 01Publish a site from a build directory
  2. 02Deploy sites in a CI/CD pipeline
  3. 03Maintain CMS schemas and content entries
  4. 04Ask Claude to inspect submissions or site settings

MCP support

The local stdio MCP server proxies client requests to TurboSteed's backend MCP HTTP endpoint. It exposes tools for site settings, CMS, webhooks, contacts, assets, and deployments to AI assistants.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"vivek-turbosteed-turbosteed-cli": {
"command": "npx",
"args": [
"-y",
"@turbosteed/cli"
],
"env": {
"TURBOSTEED_ACCOUNT_SID": "<TURBOSTEED_ACCOUNT_SID>",
"TURBOSTEED_API_KEY": "<TURBOSTEED_API_KEY>",
"TURBOSTEED_SITE_ID": "<TURBOSTEED_SITE_ID>"
}
}
}
}
Run commandnpx -y @turbosteed/cli
Environment variables to set
TURBOSTEED_ACCOUNT_SIDYour unique TurboSteed Account String Identifier
TURBOSTEED_API_KEYSecretSecret API Key used to authenticate your deployment payload
TURBOSTEED_SITE_IDTarget Site Identifier for hosting web files

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@turbosteed/cli1.1.1

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

TurboSteed CLI

Deploy and manage TurboSteed sites from your terminal or CI/CD pipeline.

Features

  • Deploy sites with a single command
  • Manage assets (upload, list, delete)
  • Retrieve contact form submissions
  • Manage CMS schemas and entries
  • Progress indicators and formatted output
  • Works with GitHub Actions, GitLab CI, and Bitbucket Pipelines
  • MCP server for Claude Code / Claude Desktop integration

Requirements

  • Node.js 18.0.0 or higher
  • A TurboSteed account (sign up)

Installation

Global Installation (Recommended)
npm install -g @turbosteed/cli

Verify installation:

turbosteed --version
Local Installation (Per Project)
npm install --save-dev @turbosteed/cli

Run via npx:

npx turbosteed deploy

Or add to package.json scripts:

{
  "scripts": {
    "deploy": "turbosteed deploy --source ./dist"
  }
}

Configuration

Step 1: Get Your Credentials
  1. Log in to the TurboSteed Dashboard
  2. Navigate to Settings > API Keys
  3. Copy your Account SID and API Key
  4. Navigate to your site and copy the Site ID
Step 2: Set Environment Variables
export TURBOSTEED_ACCOUNT_SID="your-account-sid"
export TURBOSTEED_API_KEY="your-api-key"
export TURBOSTEED_SITE_ID="your-site-id"

For permanent setup, add these to your shell profile (~/.bashrc, ~/.zshrc, etc.).

Step 3 (Optional): Create a Config File

Create turbosteed.json in your project root:

{
  "version": "1",
  "site": {
    "id": "your-site-id",
    "accountSid": "your-account-sid"
  },
  "deploy": {
    "source": "./dist",
    "exclude": ["**/*.map", ".DS_Store"]
  }
}

Note: Never put your API key in config files. Always use environment variables for secrets.

Environment Variables Reference
VariableRequiredDescription
TURBOSTEED_ACCOUNT_SIDYesYour account identifier
TURBOSTEED_API_KEYYesYour API key (keep secret)
TURBOSTEED_SITE_IDYes*Site ID (*can be in config file)
TURBOSTEED_API_BASENoAPI base URL (defaults to production)

Usage

Deploy a Site
# Deploy from ./dist (default)
turbosteed deploy

# Deploy from a specific directory
turbosteed deploy --source ./build

# Preview what would be deployed
turbosteed deploy --dry-run

# Output result as JSON
turbosteed deploy --json

Requirements:

  • Source directory must contain an index.html file
  • Maximum zip size: 25 MB
Manage Assets
# Upload a file
turbosteed assets upload ./images/logo.png

# List first page of assets
turbosteed assets list

# List ALL assets (automatic pagination)
turbosteed assets list --all

# Manual pagination (next page)
turbosteed assets list --page <token>

# Delete an asset
turbosteed assets delete logo.png
Contact Forms
# List first page of submissions
turbosteed forms list

# List ALL submissions (automatic pagination)
turbosteed forms list --all

# Manual pagination (next page)
turbosteed forms list --page <formId>

# Get a specific submission
turbosteed forms get <formId>
CMS Content
# List first page of schemas
turbosteed cms schema list

# List ALL schemas (automatic pagination)
turbosteed cms schema list --all

# Create a schema from JSON file
turbosteed cms schema create ./blog-schema.json

# List first page of entries in a schema
turbosteed cms entry list <schemaId>

# List ALL entries (automatic pagination)
turbosteed cms entry list <schemaId> --all

# Create an entry
turbosteed cms entry create <schemaId> ./post.json

# Publish an entry
turbosteed cms entry publish <schemaId> <entryId>

Example schema file (blog-schema.json):

{
  "display_name": "Blog Posts",
  "schema_mode": "custom",
  "fields": [
    { "name": "title", "type": "text", "required": true, "max_length": 200 },
    { "name": "slug", "type": "slug", "source_field": "title", "required": true },
    { "name": "body", "type": "richtext", "required": true },
    { "name": "published_date", "type": "date", "required": false }
  ]
}

Example entry file (post.json):

{
  "title": "My First Post",
  "slug": "my-first-post",
  "body": "# Hello World\n\nThis is my first blog post.",
  "published_date": "2026-07-01"
}

CI/CD Integration

GitHub Actions

Create .github/workflows/deploy.yml:

name: Deploy to TurboSteed

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - name: Install and Build
        run: npm ci && npm run build

      - name: Deploy to TurboSteed
        env:
          TURBOSTEED_ACCOUNT_SID: ${{ secrets.TURBOSTEED_ACCOUNT_SID }}
          TURBOSTEED_API_KEY: ${{ secrets.TURBOSTEED_API_KEY }}
          TURBOSTEED_SITE_ID: ${{ secrets.TURBOSTEED_SITE_ID }}
        run: npx @turbosteed/cli deploy --source ./dist
GitLab CI

Create .gitlab-ci.yml:

stages:
  - build
  - deploy

build:
  stage: build
  image: node:20
  script:
    - npm ci
    - npm run build
  artifacts:
    paths:
      - dist/

deploy:
  stage: deploy
  image: node:20
  dependencies:
    - build
  script:
    - npx @turbosteed/cli deploy --source ./dist
  only:
    - main
Bitbucket Pipelines

Create bitbucket-pipelines.yml:

image: node:20

pipelines:
  branches:
    main:
      - step:
          name: Build
          caches:
            - node
          script:
            - npm ci
            - npm run build
          artifacts:
            - dist/**

      - step:
          name: Deploy to TurboSteed
          deployment: production
          script:
            - npx @turbosteed/cli deploy --source ./dist

MCP Integration (Claude Code / Claude Desktop)

This CLI includes an MCP (Model Context Protocol) server that allows AI assistants like Claude to manage your TurboSteed site programmatically.

Setup

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "turbosteed": {
      "command": "npx",
      "args": ["@turbosteed/cli", "--mcp"],
      "env": {
        "TURBOSTEED_ACCOUNT_SID": "your-account-sid",
        "TURBOSTEED_API_KEY": "your-api-key",
        "TURBOSTEED_SITE_ID": "your-site-id",
        "TURBOSTEED_API_BASE": "https://api-us.turbosteed.com"
      }
    }
  }
}

For Claude Code, add to ~/.claude/settings.json:

{
  "mcpServers": {
    "turbosteed": {
      "command": "npx",
      "args": ["@turbosteed/cli", "--mcp"],
      "env": {
        "TURBOSTEED_ACCOUNT_SID": "your-account-sid",
        "TURBOSTEED_API_KEY": "your-api-key",
        "TURBOSTEED_SITE_ID": "your-site-id",
        "TURBOSTEED_API_BASE": "https://api-us.turbosteed.com"
      }
    }
  }
}
Starting the MCP Server Directly

You can also start the MCP server directly from the command line:

turbosteed --mcp

Or via npx:

npx @turbosteed/cli --mcp
MCP Environment Variables
VariableRequiredDescription
TURBOSTEED_ACCOUNT_SIDYesAccount identifier (e.g., AC...)
TURBOSTEED_API_KEYYesAPI key (e.g., sk_...)
TURBOSTEED_SITE_IDYesSite identifier (e.g., site_...)
TURBOSTEED_API_BASENoAPI base URL (https://api-us.turbosteed.com)
How It Works

The CLI runs a local stdio MCP server that proxies all requests to the TurboSteed backend MCP HTTP endpoint at ${TURBOSTEED_API_BASE}/users/${accountSid}/sites/${siteId}/mcp. It receives MCP protocol messages over stdio from Claude, forwards them via HTTP to the backend, and returns responses back through stdio.

Available Tools

Once configured, Claude can use these tools:

ToolDescription
site.getGet site configuration
site.updateUpdate site settings
cms.schema.listList CMS schemas
cms.schema.getGet a schema definition
cms.schema.createCreate a new schema
cms.entry.listList entries in a schema
cms.entry.getGet a specific entry
cms.entry.createCreate a new entry
cms.entry.updateUpdate an entry
cms.entry.publishPublish an entry
webhooks.listList webhooks
webhooks.createCreate a webhook
contacts.listList contact form submissions
contacts.getGet a specific submission
assets.listList all assets
assets.deleteDelete an asset
deploy.getUploadUrlGet a pre-signed upload URL
deploy.triggerTrigger deployment
apikeys.getSiteCredentialsGet public site credentials for RAG/widget
Example Usage

Ask Claude:

  • "List all my CMS schemas"
  • "Create a new blog post entry with title 'Hello World'"
  • "Show me my site configuration"
  • "What contact form submissions do I have?"

Exit Codes

CodeMeaning
0Success
1General error
2Authentication failure
3Resource not found
4Upload/network failure
5Invalid input
6Configuration error

Alternative: Shell Scripts (No Node.js)

For environments without Node.js, use shell scripts:

curl -sSL https://raw.githubusercontent.com/turbosteed/shell-tools/main/scripts/deploy.sh | bash -s ./dist

See github.com/turbosteed/shell-tools

Support

License

This software is licensed for use with TurboSteed accounts only. See LICENSE for full terms.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.