feat(mcp-phase3): ArgoCD MCP + Sentry MCP + 完整 Provider 註冊
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
ArgoCDProvider (3 工具): - argocd_list_apps: 列出所有 App + sync/health 狀態 - argocd_get_app_status: 詳細狀態 + 問題資源清單 - argocd_get_sync_history: 最近 N 筆部署記錄 - 輸入驗證: app_name 白名單 regex - 需 ARGOCD_API_TOKEN + ARGOCD_MCP_ENABLED=true SentryProvider (3 工具): - sentry_list_issues: 列出最近 Issues(狀態過濾) - sentry_get_issue: 詳情 + stacktrace 最後 5 frames - sentry_search_issues: PromQL 風格搜尋 - issue_id 白名單驗證(只允許純數字) - 需 SENTRY_AUTH_TOKEN + SENTRY_MCP_ENABLED=true providers/__init__.py: 補上 Prometheus + SSH + ArgoCD + Sentry 全部 10 個 providers config.py: 新增 ARGOCD_URL / ARGOCD_API_TOKEN / ARGOCD_MCP_ENABLED / SENTRY_MCP_ENABLED Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -9,21 +9,31 @@ MCP Tool Providers - ADR-015 模組化架構
|
||||
- FilesystemProvider: 安全受限的文件讀取 (#82)
|
||||
- GrafanaProvider: Grafana Dashboard 查詢 (#83)
|
||||
- RAGProvider: 維運手冊語義搜尋 (#84)
|
||||
- PrometheusProvider: Prometheus 即時查詢 (MCP Phase 2b)
|
||||
- SSHProvider: 主機層 SSH 診斷/操作 (MCP Phase 2a)
|
||||
- ArgoCDProvider: ArgoCD GitOps 狀態查詢 (MCP Phase 3)
|
||||
- SentryProvider: Sentry 錯誤追蹤查詢 (MCP Phase 3)
|
||||
|
||||
@see docs/adr/ADR-015-mcp-modular-architecture.md
|
||||
|
||||
變更紀錄:
|
||||
- 2026-04-11 v1.6: 新增 ArgoCDProvider + SentryProvider (MCP Phase 3) - Claude Sonnet 4.6
|
||||
- 2026-04-11 v1.5: 新增 PrometheusProvider + SSHProvider (MCP Phase 2) - Claude Sonnet 4.6
|
||||
- 2026-03-27 v1.3: 新增 RAGProvider (#84) - Claude Code (台北時區)
|
||||
- 2026-03-26 v1.2: 新增 GrafanaProvider (#83) - Claude Code
|
||||
- 2026-03-26 v1.1: 新增 FilesystemProvider (#82) - Claude Code
|
||||
"""
|
||||
|
||||
from src.plugins.mcp.providers.argocd_provider import ArgoCDProvider
|
||||
from src.plugins.mcp.providers.database_provider import DatabaseProvider
|
||||
from src.plugins.mcp.providers.filesystem_provider import FilesystemProvider
|
||||
from src.plugins.mcp.providers.grafana_provider import GrafanaProvider
|
||||
from src.plugins.mcp.providers.k8s_provider import K8sProvider
|
||||
from src.plugins.mcp.providers.prometheus_provider import PrometheusProvider
|
||||
from src.plugins.mcp.providers.rag_provider import RAGProvider
|
||||
from src.plugins.mcp.providers.sentry_provider import SentryProvider
|
||||
from src.plugins.mcp.providers.signoz_provider import SignOzProvider
|
||||
from src.plugins.mcp.providers.ssh_provider import SSHProvider
|
||||
|
||||
__all__ = [
|
||||
"K8sProvider",
|
||||
@@ -32,6 +42,10 @@ __all__ = [
|
||||
"FilesystemProvider",
|
||||
"GrafanaProvider",
|
||||
"RAGProvider",
|
||||
"PrometheusProvider",
|
||||
"SSHProvider",
|
||||
"ArgoCDProvider",
|
||||
"SentryProvider",
|
||||
]
|
||||
|
||||
|
||||
@@ -49,3 +63,7 @@ def register_all_providers() -> None:
|
||||
register_provider(FilesystemProvider())
|
||||
register_provider(GrafanaProvider())
|
||||
register_provider(RAGProvider())
|
||||
register_provider(PrometheusProvider())
|
||||
register_provider(SSHProvider())
|
||||
register_provider(ArgoCDProvider())
|
||||
register_provider(SentryProvider())
|
||||
|
||||
Reference in New Issue
Block a user