Configuration Reference

mcpize.yaml

Your server's config file. Think of it like package.json but for deployments. Drop it in your repo root and you're good to go.

version: 1
runtime: typescript
entry: src/index.ts
build:
  install: npm ci
  command: npm run build
startCommand:
  type: http
  command: node dist/index.js

That's it. The minimum you need for a TypeScript server.

TypeScript
Python
PHP
Container
Interactive

Config Generator

Fill the form, get your mcpize.yaml instantly

Import from GitHub
Public repos

Paste a public GitHub URL to auto-fill the form below

mcpize.yaml

version: 1
runtime: typescript
entry: src/index.ts
build:
  install: npm ci
  command: npm run build
startCommand:
  type: http
  command: node dist/index.js

Do I Even Need One?

MCPize Auto-Detects

  • • package.json + tsconfig.json → TypeScript
  • • pyproject.toml / requirements.txt → Python
  • • composer.json → PHP
  • • Dockerfile → Container
  • • smithery.yaml → Auto-converted

Use mcpize.yaml When You Need

  • • Custom build commands
  • • Publisher secrets (your API keys)
  • • Subscriber credentials (BYOK)
  • • STDIO bridging mode
  • • Full control over startup

The Fields (What Goes Where)

Core Fields

FieldWhat It Does
versionJust put 1. That's it.
runtimetypescript, python, php, or container
entryYour main file (e.g., src/index.ts)
nameServer name (grabbed from package.json if missing)
descriptionShort blurb about your server

Build Configuration

build:
  install: npm ci          # Install your deps
  command: npm run build   # Compile/bundle/whatever
  dockerfile: Dockerfile   # Only for container runtime

Start Command

startCommand:
  type: http              # http, sse, or stdio
  command: node dist/index.js
  args: ["--port", "8080"]  # optional
http — Standard HTTP server
sse — Server-Sent Events
stdio — stdin/stdout (auto-bridged)

Secrets vs Credentials

This confused me at first too. Here's the deal.

Secrets = Your Stuff

Publisher infrastructure

secrets:
  - name: OPENAI_API_KEY
    required: true
    description: OpenAI API key
  - name: DATABASE_URL
    required: true
  • • YOU provide at deploy time
  • • Your OpenAI key, database URL, etc.
  • • Encrypted, nobody else sees them

Credentials = User's Stuff

BYOK (Bring Your Own Keys)

credentials:
  - name: GITHUB_TOKEN
    required: true
    docs_url: https://...
    mapping:
      env: GITHUB_TOKEN
      header: X-GitHub-Token
credentials_mode: per_user
  • • Each SUBSCRIBER provides their own
  • • Their GitHub token, API key, etc.
  • • Mapped to env, header, or CLI arg

Copy-Paste Examples

TypeScript HTTP Server

version: 1
runtime: typescript
entry: src/index.ts

build:
  install: npm ci
  command: npm run build

startCommand:
  type: http
  command: node dist/index.js

secrets:
  - name: OPENAI_API_KEY
    required: true
    description: OpenAI API key for completions

The classic. Build with npm, start with node.

Pro Tip

IDE Autocomplete

Want nice autocomplete in VS Code? Add this to your .vscode/settings.json:

{
  "yaml.schemas": {
    "https://raw.githubusercontent.com/mcpize/cli/main/schemas/mcpize.schema.json": "mcpize.yaml"
  }
}

Frequently Asked Questions

Ready to Deploy?

Create your mcpize.yaml and deploy your MCP server.