Citizen Deployment MCP Server
Supports deploying applications using Dockerfiles, featuring intelligent error handling and automatic fixes for build-related issues.
Enables the deployment and management of Flask applications on the Citizen platform with automatic environment troubleshooting.
Allows for deploying applications directly from Git repositories, including tools for monitoring status and logs.
Enables deploying applications from GitHub repositories with automated deployment workflows and error analysis.
Supports deploying Node.js applications, with capabilities to automatically detect and fix common build errors and versioning issues.
Provides tools for deploying Python applications, including the ability to automatically identify and resolve version mismatches and dependency errors.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Citizen Deployment MCP Server Deploy the current directory and fix any build errors automatically"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Citizen Deployment MCP Server
Model Context Protocol (MCP) server for deploying applications to Citizen platform. Deploy from git or local files with intelligent error handling and automatic fixes.
Works with:
✅ Claude Desktop
✅ Claude Code (VS Code Extension)
✅ Cursor
✅ VS Code with MCP extension
Installation
npm install -g @citizenteam/mcp
# or
bun install -g @citizenteam/mcpRelated MCP server: golive-mcp
Quick Setup
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"citizen": {
"command": "npx",
"args": ["-y", "@citizenteam/mcp"]
}
}
}Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Claude Code (VS Code Extension)
Open VS Code settings (Cmd/Ctrl + ,)
Search for "MCP Servers"
Click "Edit in settings.json"
Add:
{
"claude.mcpServers": {
"citizen": {
"command": "npx",
"args": ["-y", "@citizenteam/mcp"]
}
}
}Cursor
Open Cursor Settings → Features → MCP
Click "Add MCP Server"
Enter configuration:
{
"citizen": {
"command": "npx",
"args": ["-y", "@citizenteam/mcp"]
}
}Or manually edit ~/.cursor/mcp.json:
{
"mcpServers": {
"citizen": {
"command": "npx",
"args": ["-y", "@citizenteam/mcp"]
}
}
}VS Code (with MCP extension)
Install MCP extension for VS Code
Open settings.json (Cmd/Ctrl + Shift + P → "Preferences: Open Settings (JSON)")
Add:
{
"mcp.servers": {
"citizen": {
"command": "npx",
"args": ["-y", "@citizenteam/mcp"]
}
}
}First Time Setup
Restart your IDE/Claude Desktop after adding the configuration
Use the
authenticatetool to login with device flowFollow the device authorization link in your browser
Once authorized, you can deploy apps!
Available Tools
Authentication
authenticate- Login with device flowcheck_auth_status- Check auth status
App Management
list_apps- List your apps (RBAC filtered)get_app_info- Get app details
Deployment
deploy_from_git- Deploy from git repositorydeploy_from_local- Deploy from local directoryget_deployment_status- Check deployment status and logslist_deployment_runs- List recent deployments
Available Resources
Deployment Instructions (citizen://instructions)
A comprehensive guide that helps LLMs understand:
Complete deployment workflows (git and local)
Error handling and debugging strategies
How to fix common build errors (Python version, Node version, port binding, etc.)
Best practices for monitoring deployments
RBAC permission model
Common nixpacks configurations
Example conversations and use cases
Your AI assistant will automatically read this resource to understand how to properly use the deployment tools, monitor builds, and fix errors when they occur.
Example Usage
Basic Deployment
You: Deploy my app from github.com/user/repo.git
AI will:
1. Read the deployment instructions to understand the workflow
2. Check if you're authenticated
3. List your apps to see what's available
4. Deploy using deploy_from_git tool
5. Monitor the deployment with get_deployment_status
6. If errors occur, analyze logs and suggest fixesDeployment with Error Handling
You: Deploy my Flask app from the current directory
AI will:
1. Deploy using deploy_from_local (creates tar.gz automatically)
2. Monitor build progress
3. If build fails (e.g., "Python 3.11 not found"):
- Read the error from logs
- Create/update nixpacks.toml with correct Python version
- Redeploy automatically
4. Continue monitoring until successfulInteractive Debugging
You: My last deployment failed, can you help?
AI will:
1. List recent deployment runs
2. Get detailed logs for the failed run
3. Analyze the error (missing dependency, version mismatch, etc.)
4. Suggest and apply fixes
5. Redeploy with correctionsFeatures
🔐 Secure Device Authentication - OAuth-like device flow, no passwords needed
🚀 Git & Local Deployment - Deploy from GitHub or local files
🤖 Intelligent Error Fixing - AI analyzes logs and fixes build errors automatically
📊 Real-time Monitoring - Live deployment logs and status updates
🔒 RBAC Support - Role-based access control (viewer, member, admin, owner)
🏗️ Auto-detect Builders - Supports nixpacks and Dockerfile
🔄 Fast Iteration - Local deployment for quick fixes without git commits
Requirements
Node.js 18+ or Bun
Citizen platform account (sign up)
One of: Claude Desktop, Claude Code, Cursor, or VS Code with MCP extension
Troubleshooting
Authentication Issues
Make sure you've run the
authenticatetoolCheck if your token has expired with
check_auth_statusVerify you're using the correct organization
Deployment Failures
The AI will automatically analyze logs and suggest fixes
Common issues: Python/Node version mismatches, missing dependencies, port binding
Use
deploy_from_localfor faster iteration when fixing errors
Permission Denied
Check your role with
list_apps- you may not have access to that appContact your organization admin to grant you member+ role
Links
License
MIT © Citizen Team
Available Tools
11 toolsauthenticateA
Authenticate with Citizen platform using device flow. ALWAYS call this first if check_auth_status shows not authenticated. Opens browser for user authorization.
Inputs: no named parameters.
check_auth_statusA
Check current authentication status. Call this at the start of any deployment workflow to ensure you are authenticated.
Inputs: no named parameters.
deploy_from_gitA
Deploy application from git repository (requires member+ role). Use when user provides a git URL. After deployment starts, ALWAYS monitor with get_deployment_status until completion. If build fails, read logs to understand error and fix accordingly.
Inputs: app_name (required), git_url (required), git_branch, builder.
deploy_from_localA
Deploy from local directory. Automatically creates tar.gz, uploads, and deploys. Use this when deploying current directory, local files, or when iterating on fixes. ALWAYS monitor with get_deployment_status after calling. If build fails, analyze logs, fix files locally, and redeploy.
Inputs: app_name (required), directory_path (required), builder.
get_app_infoB
Get detailed information about a specific app including current deployment status and configuration.
Inputs: app_name (required).
get_deployment_statusA
Get deployment run status and detailed logs. CRITICAL: After starting any deployment, poll this every 5-10 seconds until status is "completed" or "failed". If failed, carefully read ALL logs to identify the error (missing dependencies, version mismatches, port binding issues, etc.) and suggest fixes.
Inputs: run_id (required).
get_instructionsA
CRITICAL: Call this FIRST before ANY deployment operation. Returns deployment instructions including polling intervals, error handling guides, and best practices. You MUST read and follow these instructions before calling deploy_from_git, deploy_from_local, or get_deployment_status.
Inputs: no named parameters.
list_appsA
List all applications you have access to (RBAC filtered). ALWAYS call this before deploying to understand which apps exist and which you have permission to deploy.
Inputs: no named parameters.
list_deployment_runsA
List recent deployment runs for an app with their status. Useful for debugging when user mentions "my last deployment failed".
Inputs: app_name (required).
list_serversA
List all Citizen servers in your organization. This discovers available deployment targets. Call this before list_apps to see which servers are available.
Inputs: no named parameters.
open_app_urlA
Open app URL in system browser (not Cursor browser). Use this after successful deployment to verify the app is working. Opens the default browser just like device authentication flow.
Inputs: app_name (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 11 tools
Each tool has a clearly distinct purpose with no overlap. For example, authenticate handles authentication, deploy_from_git and deploy_from_local handle different deployment sources, and monitoring tools like get_deployment_status and list_deployment_runs serve separate roles. The descriptions reinforce unique functions, preventing agent misselection.
Tool names follow a consistent verb_noun pattern throughout, such as authenticate, check_auth_status, deploy_from_git, get_app_info, and list_apps. This predictability makes it easy for agents to understand and navigate the toolset without confusion from mixed conventions.
With 11 tools, the server is well-scoped for deployment workflows, covering authentication, deployment from multiple sources, monitoring, listing resources, and post-deployment actions. Each tool earns its place by addressing specific steps in the deployment process, avoiding bloat or gaps.
The toolset provides complete coverage for the deployment domain, including authentication (authenticate, check_auth_status), deployment initiation (deploy_from_git, deploy_from_local), monitoring (get_deployment_status, list_deployment_runs), resource discovery (list_apps, list_servers), and verification (open_app_url). No obvious gaps exist, enabling agents to handle full deployment lifecycles.
Maintenance
Related MCP Connectors
Put AI-built apps online from GitHub: deploy, check status, read logs and set env vars.
Deploy apps from GitHub, read build/runtime logs, and manage your app's users from your AI agent.
Deploy sites and apps from your AI coding agent: domains, DNS, logs, env, versions and rollback.
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceDeploy, manage, and scale applications directly from your AI assistant.8-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to deploy code to any hosting provider by creating PRs, building, and verifying health checks, all from a single natural language command.62 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI clients and users to deploy static sites, Node.js services, and Python web applications without Docker, with tools for project management, deployment, rollback, and domain configuration.Apache 2.0
- AlicenseAqualityDmaintenanceEnables AI agents to deploy, manage, and configure web applications on sota.io, including project creation, deployment, environment variables, custom domains, and rollbacks.1399 npmMIT