Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
MCP server for ArgoCD GitOps continuous delivery integration
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
ARGOCD_API_KEY, ARGOCD_API_URL标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"argocd": {
"command": "uvx",
"args": [
"argocd-mcp-server"
],
"env": {
"ARGOCD_API_KEY": "your-value",
"ARGOCD_API_URL": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add argocd --env ARGOCD_API_KEY=your-value --env ARGOCD_API_URL=your-value -- uvx argocd-mcp-server运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"argocd": {
"command": "uvx",
"args": [
"argocd-mcp-server"
],
"env": {
"ARGOCD_API_KEY": "your-value",
"ARGOCD_API_URL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"argocd": {
"type": "stdio",
"command": "uvx",
"args": [
"argocd-mcp-server"
],
"env": {
"ARGOCD_API_KEY": "your-value",
"ARGOCD_API_URL": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
ARGOCD_API_URL env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 asklokesh 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:ARGOCD_API_KEY
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.0)于10个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
同一分类中有:Spec Driven Development, Remote Desktop Commander, MemberVault MCP by usefulapi
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
List courses; add users to courses, remove course access or delete users in MemberVault.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
A Model Context Protocol (MCP) server for integrating ArgoCD GitOps continuous delivery tool with GenAI applications, enabling intelligent Kubernetes deployment management.
pip install argocd-mcp-server
Or install from source:
git clone https://github.com/asklokesh/argocd-mcp-server.git
cd argocd-mcp-server pip install -e .
Create a .env file or set environment variables:
# ArgoCD Connection
ARGOCD_SERVER=argocd.example.com ARGOCD_AUTH_TOKEN=your_auth_token ARGOCD_INSECURE=false
ARGOCD_GRPC_WEB=true ARGOCD_TIMEOUT=30 ARGOCD_CLIENT_CERT=/path/to/cert.pem ARGOCD_CLIENT_KEY=/path/to/key.pem
ARGOCD_PROD_SERVER=argocd-prod.example.com ARGOCD_PROD_TOKEN=prod_token
ARGOCD_DEV_SERVER=argocd-dev.example.com ARGOCD_DEV_TOKEN=dev_token
from argocd_mcp import ArgoCDMCPServer
server = ArgoCDMCPServer()
server.start()
Add to your Claude Desktop config:
{
"mcpServers": { "argocd": { "command": "python", "args": ["-m", "argocd_mcp.server"], "env": { "ARGOCD_SERVER": "argocd.example.com", "ARGOCD_AUTH_TOKEN": "your_auth_token" } } } }
{
"tool": "argocd_list_applications", "arguments": { "project": "default", "namespace": "argocd" } }
{
"tool": "argocd_create_application", "arguments": { "name": "my-app", "project": "default", "source": { "repoURL": "https://github.com/org/repo.git", "path": "manifests", "targetRevision": "main" }, "destination": { "server": "https://kubernetes.default.svc", "namespace": "production" }, "syncPolicy": { "automated": { "prune": true, "selfHeal": true } } } }
{
"tool": "argocd_sync_application", "arguments": { "name": "my-app", "prune": true, "force": false, "strategy": { "hook": { "force": true } } } }
{
"tool": "argocd_get_application_status", "arguments": { "name": "my-app", "refresh": true } }
{
"tool": "argocd_rollback_application", "arguments": { "name": "my-app", "revision": "abc123" } }
{
"tool": "argocd_create_project", "arguments": { "name": "production", "description": "Production applications", "sourceRepos": ["https://github.com/org/*"], "destinations": [ { "server": "https://kubernetes.default.svc", "namespace": "prod-*" } ], "clusterResourceWhitelist": [ {"group": "*", "kind": "*"} ] } }
{
"tool": "argocd_add_repository", "arguments": { "url": "https://github.com/org/repo.git", "name": "my-repo", "type": "git", "username": "git-user", "password": "git-token", "insecure": false } }
{
"tool": "argocd_add_helm_repository", "arguments": { "url": "https://charts.example.com", "name": "my-charts", "type": "helm", "username": "helm-user", "password": "helm-password" } }
{
"tool": "argocd_add_cluster", "arguments": { "name": "production-cluster", "server": "https://k8s-prod.example.com", "config": { "bearerToken": "cluster-token", "tlsClientConfig": { "insecure": false, "caData": "base64-encoded-ca" } } } }
{
"tool": "argocd_create_applicationset", "arguments": { "name": "multi-cluster-app", "generators": [ { "clusters": {}, "selector": { "matchLabels": { "environment": "production" } } } ], "template": { "metadata": { "name": "{{cluster}}-app" }, "spec": { "project": "default", "source": { "repoURL": "https://github.com/org/repo.git", "path": "{{cluster}}" }, "destination": { "server": "{{server}}", "namespace": "default" } } } } }
{
"tool": "argocd_get_application_health", "arguments": { "name": "my-app" } }
{
"tool": "argocd_get_resource_tree", "arguments": { "name": "my-app" } }
from argocd_mcp import ArgoCDMCPServer, ClusterConfig
clusters = { "production": ClusterConfig( server="argocd-prod.example.com", auth_token="prod_token", default_namespace="argocd" ), "staging": ClusterConfig( server="argocd-staging.example.com", auth_token="staging_token", default_namespace="argocd-staging" ), "development": ClusterConfig( server="argocd-dev.example.com", auth_token="dev_token", default_namespace="argocd-dev" ) }
server = ArgoCDMCPServer(clusters=clusters, default_cluster="production")
# Configure progressive delivery strategies
progressive_config = { "canary": { "steps": [ {"setWeight": 10}, {"pause": {"duration": "5m"}}, {"setWeight": 30}, {"pause": {"duration": "5m"}}, {"setWeight": 50}, {"pause": {"duration": "5m"}}, {"setWeight": 100} ] }, "blueGreen": { "activeService": "app-active", "previewService": "app-preview", "autoPromotionEnabled": false } }
server = ArgoCDMCPServer(progressive_config=progressive_config)
from argocd_mcp import ArgoCDMCPServer, DisasterRecoveryConfig
dr_config = DisasterRecoveryConfig( backup_enabled=True, backup_schedule="0 2 * * *", # Daily at 2 AM backup_location="s3://backups/argocd", restore_priority=["production", "staging", "development"] )
server = ArgoCDMCPServer(dr_config=dr_config)
See the examples/ directory for complete integration examples:
basic_gitops.py - Basic GitOps workflowsmulti_cluster_deployment.py - Multi-cluster application deploymentprogressive_delivery.py - Canary and blue-green deploymentsdisaster_recovery.py - Backup and restore workflowsgenai_gitops.py - AI-powered GitOps automationsecurity_scanning.py - Integration with security toolsThe server provides detailed error information:
try:
result = server.execute_tool("argocd_sync_application", { "name": "my-app" }) except ArgoCDError as e: print(f"ArgoCD error: {e.error_code} - {e.message}") if e.error_code == "OutOfSync": print("Application is out of sync") elif e.error_code == "ComparisonError": print("Error comparing application state")
Contributions are welcome! Please read our contributing guidelines and submit pull requests.
MIT License - see LICENSE file for details