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.jsThat'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
| Field | What It Does |
|---|---|
| version | Just put 1. That's it. |
| runtime | typescript, python, php, or container |
| entry | Your main file (e.g., src/index.ts) |
| name | Server name (grabbed from package.json if missing) |
| description | Short 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 runtimeStart Command
startCommand:
type: http # http, sse, or stdio
command: node dist/index.js
args: ["--port", "8080"] # optionalhttp — 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 completionsThe 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"
}
}