Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server for ArgoCD GitOps continuous delivery integration
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม 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": "ใส่ค่าของคุณ",
"ARGOCD_API_URL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add argocd --env ARGOCD_API_KEY='ใส่ค่าของคุณ' --env ARGOCD_API_URL='ใส่ค่าของคุณ' -- uvx argocd-mcp-serverเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"argocd": {
"command": "uvx",
"args": [
"argocd-mcp-server"
],
"env": {
"ARGOCD_API_KEY": "ใส่ค่าของคุณ",
"ARGOCD_API_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"argocd": {
"type": "stdio",
"command": "uvx",
"args": [
"argocd-mcp-server"
],
"env": {
"ARGOCD_API_KEY": "ใส่ค่าของคุณ",
"ARGOCD_API_URL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ARGOCD_API_URL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub asklokesh ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: ARGOCD_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.0) เข้า registry 10 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, SuperCollider
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
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.
Make sound with SuperCollider: synths, drums, chords, melodies and soundscapes over OSC.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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