Hosted personal MCP server for the Orchestra platform, running at orchestra-mcp.dev/mcp.
Implements the MCP 2025-11-25 Streamable HTTP transport — connect Claude Desktop or any MCP client in one click.
Part of the Orchestra MCP framework.
Orchestra Cloud MCP lets you control Orchestra from any MCP-compatible AI agent without installing anything locally:
- Check if Orchestra is installed on your machine
- Install Orchestra, the desktop app, and IDE integrations via shell scripts
- Browse and install packs, plugins, skills, agents, and workflows from the marketplace
- Read / update your Orchestra profile (controlled by your permission toggles)
All tools are user-controlled — toggle permissions on/off from orchestra-mcp.dev/settings/mcp.
{
"mcpServers": {
"orchestra-cloud": {
"type": "sse",
"url": "https://orchestra-mcp.dev/mcp"
}
}
}- Log in at orchestra-mcp.dev
- Go to Settings → MCP Access
- Click Add to Claude Desktop — pre-fills your token automatically
Or manually:
{
"mcpServers": {
"orchestra-cloud": {
"type": "sse",
"url": "https://orchestra-mcp.dev/mcp",
"headers": {
"Authorization": "Bearer <your-token>"
}
}
}
}| Tool | Description |
|---|---|
check_status |
Check if Orchestra is installed locally |
install_orchestra |
Install Orchestra CLI + configure your IDE |
install_desktop_app |
Install the Orchestra desktop app (macOS/Windows/Linux) |
| Tool | Permission toggle | Description |
|---|---|---|
get_profile |
mcp.profile.read |
Read your Orchestra profile |
update_profile |
mcp.profile.write |
Update name, timezone, bio |
list_packs |
mcp.marketplace |
Browse available packs |
search_packs |
mcp.marketplace |
Search the marketplace |
get_pack |
mcp.marketplace |
Get details for a pack |
install_pack |
mcp.marketplace |
Install a pack via CLI |
All configuration is via environment variables:
| Variable | Default | Description |
|---|---|---|
PORT |
8091 |
HTTP listen port |
DATABASE_URL |
postgres://postgres:postgres@localhost:5432/orchestra_web?sslmode=disable |
PostgreSQL connection |
JWT_SECRET |
(change in production) | JWT signing secret (same as apps/web) |
ALLOWED_ORIGINS |
orchestra-mcp.dev,localhost:3000,... |
Comma-separated CORS origins |
WEB_API_BASE_URL |
https://orchestra-mcp.dev/api |
Orchestra Web API base URL |
PUBLIC_RATE_LIMIT |
10 |
Requests/minute/IP for public tools |
apps/cloud-mcp/
├── cmd/
│ └── main.go # Entry point, port 8091
├── internal/
│ ├── auth/
│ │ └── auth.go # JWT + API key validation
│ ├── config/
│ │ └── config.go # ENV-based configuration
│ ├── mcp/
│ │ ├── handler.go # MCP Streamable HTTP transport
│ │ └── session.go # SSE session management
│ ├── permissions/
│ │ └── checker.go # Per-user permission toggle cache
│ ├── protocol/
│ │ └── mcp.go # MCP 2025-11-25 types
│ └── tools/
│ ├── registry.go # Tool registry + permission filtering
│ ├── status.go # check_status
│ ├── install.go # install_orchestra, install_desktop_app
│ ├── profile.go # get_profile, update_profile
│ └── marketplace.go # list_packs, search_packs, get_pack, install_pack
├── .github/
│ └── workflows/
│ ├── ci.yml # Build + test on push
│ └── deploy.yml # SSH deploy to VPS
├── Dockerfile # Multi-stage distroless image
├── go.mod # module: github.com/orchestra-mcp/cloud-mcp
└── README.md
# Build
go build -o orchestra-cloud-mcp ./cmd/
# Run locally (requires PostgreSQL)
DATABASE_URL="postgres://postgres:postgres@localhost:5432/orchestra_web?sslmode=disable" \
JWT_SECRET="dev-secret" \
./orchestra-cloud-mcp
# Vet
go vet ./...
# Test
go test ./...curl http://localhost:8091/health
# {"status":"ok","service":"orchestra-cloud-mcp","version":"1.0.0","protocol":"2025-11-25"}# Initialize (anonymous)
curl -X POST http://localhost:8091/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","clientInfo":{"name":"test","version":"1.0"}}}'
# List tools
curl -X POST http://localhost:8091/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
# Call check_status
curl -X POST http://localhost:8091/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"check_status","arguments":{}}}'docker build -t orchestra-cloud-mcp .
docker run -p 8091:8091 \
-e DATABASE_URL="postgres://..." \
-e JWT_SECRET="your-secret" \
orchestra-cloud-mcpThe server is deployed via GitHub Actions on every push to master. The workflow SSHs into the VPS, builds the Go binary, and restarts the orchestra-cloud-mcp systemd service.
See scripts/deploy/setup-server.sh in the main framework repo for one-command server setup.
GitHub secrets required (Settings → Environments → production):
| Secret | Description |
|---|---|
VPS_HOST |
Server IP or hostname |
VPS_USER |
SSH user (e.g. deploy) |
VPS_SSH_KEY |
Private key for SSH |
VPS_SSH_PORT |
SSH port (usually 22) |
DISCORD_WEBHOOK |
(optional) Discord deploy notifications |
Implements MCP 2025-11-25 Streamable HTTP transport:
POST /mcp— JSON-RPC request/responseGET /mcp— SSE stream for server-initiated messagesGET /health— Health check
MIT License. See LICENSE for details.