Server data from the Official MCP Registry
Model Context Protocol (MCP) server for DeployHQ API integration
Model Context Protocol (MCP) server for DeployHQ API integration
Valid MCP server (3 strong, 3 medium validity signals). 4 known CVEs in dependencies (0 critical, 2 high severity) Package registry verified. Imported from the Official MCP Registry.
5 files analyzed ยท 5 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Set these up before or after installing:
Environment variable: DEPLOYHQ_EMAIL
Environment variable: DEPLOYHQ_API_KEY
Environment variable: DEPLOYHQ_ACCOUNT
Environment variable: LOG_LEVEL
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-deployhq-deployhq-mcp-server": {
"env": {
"LOG_LEVEL": "your-log-level-here",
"DEPLOYHQ_EMAIL": "your-deployhq-email-here",
"DEPLOYHQ_ACCOUNT": "your-deployhq-account-here",
"DEPLOYHQ_API_KEY": "your-deployhq-api-key-here"
},
"args": [
"-y",
"deployhq-mcp-server"
],
"command": "npx"
}
}
}From the project's GitHub README.
A Model Context Protocol (MCP) server for DeployHQ that enables AI assistants like Claude Desktop and Claude Code to interact with your DeployHQ deployments.
npx - no installation requiredThe MCP server provides 18 tools for AI assistants:
| Tool | Description | Parameters |
|---|---|---|
list_projects | List all projects | None |
get_project | Get project details | permalink |
list_servers | List project servers | project |
list_deployments | List deployments with pagination | project, page?, server_uuid? |
get_deployment | Get deployment details | project, uuid |
get_deployment_log | Get deployment log output | project, uuid |
create_deployment | Create new deployment | project, parent_identifier, start_revision, end_revision, + optional params |
list_ssh_keys | List all SSH public keys | None |
create_ssh_key | Create a new SSH key pair | title, key_type? |
list_global_environment_variables | List all global environment variables | None |
create_global_environment_variable | Create a global environment variable | name, value, locked?, build_pipeline? |
update_global_environment_variable | Update a global environment variable | id, name?, value?, locked?, build_pipeline? |
delete_global_environment_variable | Delete a global environment variable | id |
list_global_config_files | List all global config file templates | None |
get_global_config_file | Get a global config file with body | id |
create_global_config_file | Create a global config file template | path, body, description?, build? |
update_global_config_file | Update a global config file template | id, path?, body?, description?, build? |
delete_global_config_file | Delete a global config file template | id |
list_projectsList all projects in your DeployHQ account.
Returns: Array of projects with repository information and deployment status.
get_projectGet detailed information about a specific project.
Parameters:
permalink (string): Project permalink or identifierlist_serversList all servers configured for a project.
Parameters:
project (string): Project permalinklist_deploymentsList deployments for a project with pagination support.
Parameters:
project (string): Project permalinkpage (number, optional): Page number for paginationserver_uuid (string, optional): Filter by server UUIDget_deploymentGet detailed information about a specific deployment.
Parameters:
project (string): Project permalinkuuid (string): Deployment UUIDget_deployment_logGet the deployment log for a specific deployment. Useful for debugging failed deployments.
Parameters:
project (string): Project permalinkuuid (string): Deployment UUIDReturns: Complete deployment log as text
create_deploymentCreate a new deployment for a project.
Parameters:
project (string): Project permalinkparent_identifier (string): Server or server group UUIDstart_revision (string): Starting commit hashend_revision (string): Ending commit hashbranch (string, optional): Branch to deploy frommode (string, optional): "queue" or "preview"copy_config_files (boolean, optional): Copy config filesrun_build_commands (boolean, optional): Run build commandsuse_build_cache (boolean, optional): Use build cacheuse_latest (string, optional): Use latest deployed commit as startlist_ssh_keysList all SSH public keys for the account.
Returns: Array of SSH keys with public keys, fingerprints, and key types. Never returns private keys.
create_ssh_keyCreate a new SSH key pair for the account.
Parameters:
title (string): Title for the SSH keykey_type (string, optional): Key type โ ED25519 (default) or RSAlist_global_environment_variablesList all global (account-level) environment variables.
Returns: Array of environment variables with names, masked values, and settings.
create_global_environment_variableCreate a new global environment variable available across all projects.
Parameters:
name (string): Variable namevalue (string): Variable valuelocked (boolean, optional): Lock the variable to prevent changesbuild_pipeline (boolean, optional): Make available in build pipelineupdate_global_environment_variableUpdate an existing global environment variable.
Parameters:
id (string): Environment variable identifiername (string, optional): Variable namevalue (string, optional): Variable valuelocked (boolean, optional): Lock statusbuild_pipeline (boolean, optional): Build pipeline availabilitydelete_global_environment_variableDelete a global environment variable. This action is irreversible.
Parameters:
id (string): Environment variable identifierlist_global_config_filesList all global (account-level) config file templates.
Returns: Array of config files with paths, descriptions, and settings.
get_global_config_fileGet a specific global config file template including its body content.
Parameters:
id (string): Config file identifier (UUID)create_global_config_fileCreate a new global config file template.
Parameters:
path (string): File path (e.g. config/database.yml)body (string): File contentsdescription (string, optional): Description of the config filebuild (boolean, optional): Use with build pipelineupdate_global_config_fileUpdate an existing global config file template.
Parameters:
id (string): Config file identifier (UUID)path (string, optional): File pathbody (string, optional): File contentsdescription (string, optional): Descriptionbuild (boolean, optional): Build pipeline flagdelete_global_config_fileDelete a global config file template. This action is irreversible.
Parameters:
id (string): Config file identifier (UUID)The fastest way to install for Claude Code:
claude mcp add --transport stdio deployhq --env DEPLOYHQ_EMAIL=your-email@example.com --env DEPLOYHQ_API_KEY=your-api-key --env DEPLOYHQ_ACCOUNT=your-account -- npx -y deployhq-mcp-server
Replace your-email@example.com, your-api-key, and your-account with your actual DeployHQ credentials.
The same configuration works for both clients. Copy from docs/claude-config.json and add your credentials.
For Claude Desktop:
Edit your config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonThen restart Claude Desktop.
For Claude Code:
Add to your .claude.json file in your project directory, then exit and restart your Claude session (type exit or Ctrl+D, then run claude).
Configuration:
{
"mcpServers": {
"deployhq": {
"command": "npx",
"args": ["-y", "deployhq-mcp-server"],
"env": {
"DEPLOYHQ_EMAIL": "your-email@example.com",
"DEPLOYHQ_API_KEY": "your-password",
"DEPLOYHQ_ACCOUNT": "your-account-name"
// Optional: "LOG_LEVEL": "INFO" (ERROR, INFO, or DEBUG)
}
}
}
}
Note: Only the 3 DeployHQ credentials are required. LOG_LEVEL is optional and defaults to INFO.
Once configured, you can ask Claude to interact with DeployHQ:
User: What's the status of my latest deployment for my-app?
Claude: [Uses list_deployments โ get_deployment โ shows status]
User: Why did the last deployment fail for my-app?
Claude: [Uses list_deployments โ get_deployment_log โ analyzes log]
User: Deploy the latest changes to production for my-app
Claude: [Uses list_servers โ list_deployments โ create_deployment with use_latest]
User: I want to deploy my-app to production with the latest changes
Claude will:
1. Use list_projects to find "my-app"
2. Use list_servers to find production server UUID
3. Use list_deployments with use_latest to get last revision
4. Use create_deployment to queue deployment
5. Use get_deployment to show status
6. Use get_deployment_log if anything fails
DEPLOYHQ_EMAIL: Your DeployHQ login emailDEPLOYHQ_API_KEY: Your DeployHQ password/API keyDEPLOYHQ_ACCOUNT: Your DeployHQ account name (from URL: https://ACCOUNT.deployhq.com)LOG_LEVEL: Controls log verbosity - ERROR, INFO, or DEBUG (default: INFO)NODE_ENV: Environment mode - production or developmentDEPLOYHQ_READ_ONLY: Set to true to block all mutating operations (default: false)Control verbosity with the LOG_LEVEL environment variable:
Example:
{
"mcpServers": {
"deployhq": {
"command": "npx",
"args": ["-y", "deployhq-mcp-server"],
"env": {
"DEPLOYHQ_EMAIL": "your-email@example.com",
"DEPLOYHQ_API_KEY": "your-password",
"DEPLOYHQ_ACCOUNT": "your-account-name",
"LOG_LEVEL": "DEBUG"
}
}
}
}
Problem: Server exits immediately after starting
Solutions:
node --versionLOG_LEVEL=DEBUG for more detailsProblem: "Authentication failed" or 401/403 errors
Solutions:
Problem: "Project not found" or 404 errors
Solutions:
list_projects to see exact permalink formatProblem: "Server is running in read-only mode" error when trying to create deployments
Solution:
DEPLOYHQ_READ_ONLY=false in your environment variables--read-only=false CLI flagProblem: Deployment created but fails immediately
Solutions:
get_deployment_log to see detailed error logslist_serversProblem: "Request timeout" errors
Solutions:
curl https://YOUR_ACCOUNT.deployhq.comProblem: Not seeing any log output
Solutions:
~/Library/Logs/Claude/%APPDATA%\Claude\logs\LOG_LEVEL=DEBUG for verbose outputhttps://ACCOUNT.deployhq.com)โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ Claude Desktop โ stdio/JSON-RPC โ DeployHQ โ
โ or Claude Code โโโโโโโโโโโโโโโโโโโโโบโ API โ
โ โ (via npx) โ โ
โ Environment โ โ โ
โ Variables โโโโโโผโโโโโโโโโโโโโโโโโโโโบโ Basic Auth โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
npxNote: The server uses node-fetch for HTTP requests. Node 18+ is required for development tools (ESLint, Vitest).
git clone https://github.com/your-username/deployhq-mcp-server.git
cd deployhq-mcp-server
npm install
npm test # Run tests once
npm run test:watch # Run tests in watch mode
npm run test:coverage # Run tests with coverage report
npm run test:ui # Run tests with UI
npm run build
# Build first
npm run build
# Test with environment variables
DEPLOYHQ_EMAIL="your-email@example.com" \
DEPLOYHQ_API_KEY="your-api-key" \
DEPLOYHQ_ACCOUNT="your-account" \
node dist/stdio.js
The server will start in stdio mode and wait for JSON-RPC messages on stdin.
Configure your local .claude.json to use the built version:
{
"mcpServers": {
"deployhq": {
"command": "node",
"args": ["/path/to/deployhq-mcp-server/dist/stdio.js"],
"env": {
"DEPLOYHQ_EMAIL": "your-email@example.com",
"DEPLOYHQ_API_KEY": "your-password",
"DEPLOYHQ_ACCOUNT": "your-account-name"
}
}
}
}
The project includes a comprehensive test suite using Vitest:
Test Coverage:
Running Tests:
npm test # Run all tests
npm run test:watch # Watch mode for development
npm run test:coverage # Generate coverage report
npm run test:ui # Interactive UI for debugging
Test Stats:
By default, the MCP server allows all operations, including creating deployments. This is the recommended configuration for most users.
For users who want additional protection against accidental deployments, the server includes an optional read-only mode that can be enabled to block deployment creation.
Default Behavior (No Configuration Needed):
When you might want to enable read-only mode:
Important: Read-only mode is completely optional. The server works fully without it.
How to enable read-only mode:
Via environment variable:
{
"mcpServers": {
"deployhq": {
"command": "npx",
"args": ["-y", "deployhq-mcp-server"],
"env": {
"DEPLOYHQ_EMAIL": "your-email@example.com",
"DEPLOYHQ_API_KEY": "your-api-key",
"DEPLOYHQ_ACCOUNT": "your-account",
"DEPLOYHQ_READ_ONLY": "true"
}
}
}
}
Via CLI flag:
{
"mcpServers": {
"deployhq": {
"command": "npx",
"args": [
"-y",
"deployhq-mcp-server",
"--read-only"
],
"env": {
"DEPLOYHQ_EMAIL": "your-email@example.com",
"DEPLOYHQ_API_KEY": "your-api-key",
"DEPLOYHQ_ACCOUNT": "your-account"
}
}
}
}
Configuration precedence:
--read-only (highest priority)DEPLOYHQ_READ_ONLYfalse (deployments allowed)Deployment Logs May Contain Secrets: Deployment logs can include environment variables, API keys, and other sensitive information. Exercise caution when using tools that retrieve logs, especially with third-party AI services.
Use Least-Privilege API Keys: Create dedicated API keys with minimum required permissions for MCP access. Consider separate keys for read-only vs. read-write operations.
Audit MCP Activity: Monitor MCP usage, especially in production environments. Review logs regularly for unexpected behavior.
Environment Variables: Credentials are never stored, only passed via environment variables
HTTPS: When using npx, credentials stay local to your machine
No Telemetry: No data is sent anywhere except directly to DeployHQ API
The server can also be deployed as a hosted service with SSE/HTTP transports. This is useful for web integrations or shared team access.
Prepare your repository:
git add .
git commit -m "Initial commit"
git push origin main
Create a new app:
Configure the app:
.do/app.yaml configurationSet environment variables:
DEPLOYHQ_EMAILDEPLOYHQ_API_KEYDEPLOYHQ_ACCOUNTNODE_ENV=productionPORT=8080LOG_LEVEL=infoDeploy:
Configure custom domain (optional):
mcp.deployhq.comInstall doctl:
# macOS
brew install doctl
# Linux
cd ~
wget https://github.com/digitalocean/doctl/releases/download/v1.104.0/doctl-1.104.0-linux-amd64.tar.gz
tar xf doctl-1.104.0-linux-amd64.tar.gz
sudo mv doctl /usr/local/bin
Authenticate:
doctl auth init
Update .do/app.yaml:
github.repo field with your repositoryCreate the app:
doctl apps create --spec .do/app.yaml
Set environment secrets:
# Get your app ID
doctl apps list
# Update environment variables (replace APP_ID)
doctl apps update APP_ID --spec .do/app.yaml
View logs:
doctl apps logs APP_ID --follow
.env for local development (excluded by .gitignore)The hosted server includes a health check endpoint at /health:
curl https://mcp.deployhq.com/health
View logs in Digital Ocean:
doctl apps logs <APP_ID> --followDigital Ocean will alert you on:
Test the SSE endpoint:
curl -N http://localhost:8080/sse \
-H "X-DeployHQ-Email: your-email@example.com" \
-H "X-DeployHQ-API-Key: your-api-key" \
-H "X-DeployHQ-Account: your-account"
Test the HTTP transport endpoint:
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "X-DeployHQ-Email: your-email@example.com" \
-H "X-DeployHQ-API-Key: your-api-key" \
-H "X-DeployHQ-Account: your-account" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"params": {},
"id": 1
}'
See the hosted deployment documentation for full testing examples.
deployhq-mcp-server/
โโโ src/
โ โโโ stdio.ts # stdio transport entrypoint (for Claude Desktop/Code)
โ โโโ index.ts # Express server (for hosted deployment)
โ โโโ mcp-server.ts # Core MCP server factory (shared)
โ โโโ tools.ts # Tool definitions and schemas (shared)
โ โโโ api-client.ts # DeployHQ API client (shared)
โ โโโ transports/ # SSE/HTTP handlers (for hosted)
โ โโโ utils/ # Logging and utilities
โโโ docs/
โ โโโ claude-config.json # Universal config template (Desktop & Code)
โ โโโ USER_GUIDE.md # User documentation
โ โโโ DEPLOYMENT.md # Hosted deployment guide
โ โโโ HTTP_TRANSPORT.md # HTTP transport documentation
โโโ .do/
โ โโโ app.yaml # Digital Ocean configuration (optional)
โโโ Dockerfile # Container configuration (optional)
โโโ package.json # Dependencies and scripts
โโโ tsconfig.json # TypeScript configuration
โโโ STDIO_MIGRATION.md # stdio migration documentation
โโโ README.md # This file
Contributions are welcome! Please:
See RELEASING.md for instructions on creating releases and publishing to npm.
This MCP server does not collect, store, or transmit any user data beyond what is necessary to communicate with the DeployHQ API. Credentials are passed via environment variables and are never logged or persisted.
For DeployHQ's full privacy policy, see: https://www.deployhq.com/privacy
MIT License - see LICENSE file for details
Be the first to review this server!
by Toleno ยท Developer Tools
Toleno Network MCP Server โ Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace ยท Developer Tools
Create, build, and publish Python MCP servers to PyPI โ conversationally.
by Microsoft ยท Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace ยท Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm โ conversationally
by mcp-marketplace ยท Finance
Free stock data and market news for any MCP-compatible AI assistant.
by Taylorwilsdon ยท Productivity
Control Gmail, Calendar, Docs, Sheets, Drive, and more from your AI