{"product_id":"observability-agent-tich-hợp-mcp-va-giam-sat-hệ-thống-với-claude-sdk","title":"Observability Agent — Tích hợp MCP và giám sát hệ thống với Claude SDK","description":"\n\u003cp\u003eTrong các bài trước, agents của chúng ta bị giới hạn ở web search và filesystem. Agents thực tế cần tương tác với \u003cstrong\u003edatabases, APIs, Git repos, CI\/CD pipelines\u003c\/strong\u003e. Bài này hướng dẫn tích hợp hệ thống bên ngoài qua \u003cstrong\u003eModel Context Protocol (MCP)\u003c\/strong\u003e — biến agent thành observability system tự động.\u003c\/p\u003e\n\n\u003cp\u003eBài viết dựa trên \u003cstrong\u003eClaude Cookbooks chính thức\u003c\/strong\u003e của Anthropic.\u003c\/p\u003e\n\n\u003ch2\u003eMCP là gì?\u003c\/h2\u003e\n\n\u003cp\u003e\u003cstrong\u003eModel Context Protocol (MCP)\u003c\/strong\u003e là open-source standard cho AI-tool integrations. Nó cho phép kết nối dễ dàng giữa agents và hệ thống bên ngoài — databases, Git, GitHub, Prometheus, Slack, và hàng trăm services khác.\u003c\/p\u003e\n\n\u003cp\u003eThay vì viết custom integrations cho mỗi service, bạn chỉ cần \u003cstrong\u003ekhai báo MCP server\u003c\/strong\u003e và agent tự biết cách sử dụng.\u003c\/p\u003e\n\n\u003ch2\u003eStep 1: Git MCP Server — Local Git Operations\u003c\/h2\u003e\n\n\u003cp\u003eBắt đầu đơn giản: cho agent khả năng làm việc với Git repositories.\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003efrom claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions\n\noptions = ClaudeAgentOptions(\n    model=\"claude-sonnet-4-6\",\n    mcp_servers={\n        \"git\": {\n            \"command\": \"uvx\",\n            \"args\": [\"mcp-server-git\",\n                     \"--repository\", \"\/path\/to\/repo\"]\n        }\n    },\n    allowed_tools=[\"mcp__git__*\"]  # Cho phép tất cả Git tools\n)\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eGit MCP server cung cấp \u003cstrong\u003e13 tools\u003c\/strong\u003e: examine commit history, check file changes, create branches, make commits. Agent từ passive observer trở thành active participant trong development workflow.\u003c\/p\u003e\n\n\u003ch3\u003eVí dụ sử dụng\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003easync with ClaudeSDKClient(options=options) as client:\n    await client.query(\n        \"Phân tích 20 commits gần nhất. \"\n        \"Tìm pattern: ai commit nhiều nhất? \"\n        \"Files nào thay đổi thường xuyên nhất?\"\n    )\n    async for msg in client.receive_response():\n        process(msg)\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch2\u003eStep 2: GitHub MCP Server — Full Platform Integration\u003c\/h2\u003e\n\n\u003cp\u003eNâng cấp từ local Git lên \u003cstrong\u003etoàn bộ GitHub ecosystem\u003c\/strong\u003e — issues, pull requests, CI\/CD workflows, code security alerts.\u003c\/p\u003e\n\n\u003cpre\u003e\u003ccode\u003eoptions = ClaudeAgentOptions(\n    mcp_servers={\n        \"github\": {\n            \"command\": \"docker\",\n            \"args\": [\n                \"run\", \"-i\", \"--rm\",\n                \"-e\", \"GITHUB_PERSONAL_ACCESS_TOKEN\",\n                \"ghcr.io\/github\/github-mcp-server\"\n            ],\n            \"env\": {\n                \"GITHUB_PERSONAL_ACCESS_TOKEN\": os.getenv(\"GITHUB_TOKEN\")\n            }\n        }\n    },\n    allowed_tools=[\"mcp__github__*\"]\n)\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eGitHub MCP server cung cấp \u003cstrong\u003ehơn 100 tools\u003c\/strong\u003e — quản lý issues, PRs, monitor CI\/CD, analyze security alerts. Hoạt động với cả public và private repos.\u003c\/p\u003e\n\n\u003ch2\u003eReal Use Case: Observability Agent\u003c\/h2\u003e\n\n\u003cp\u003eKết hợp Git + GitHub MCP để tạo \u003cstrong\u003eself-healing observability system\u003c\/strong\u003e:\u003c\/p\u003e\n\n\u003col\u003e\n  \u003cli\u003e\n\u003cstrong\u003eMonitor\u003c\/strong\u003e GitHub Actions workflows tự động\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eDetect\u003c\/strong\u003e failures — phân biệt real failures vs security restrictions\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eAnalyze\u003c\/strong\u003e test failures chi tiết\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReport\u003c\/strong\u003e actionable insights cho team\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003ch3\u003eModular Architecture\u003c\/h3\u003e\n\n\u003cpre\u003e\u003ccode\u003e# observability_agent\/agent.py\nfrom claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions\n\nasync def send_query(prompt, continue_conversation=False):\n    options = ClaudeAgentOptions(\n        model=\"claude-sonnet-4-6\",\n        system_prompt=\"Bạn là observability engineer...\",\n        mcp_servers={\"github\": github_config},\n        allowed_tools=[\"mcp__github__*\"]\n    )\n    async with ClaudeSDKClient(options=options) as client:\n        await client.query(prompt)\n        async for msg in client.receive_response():\n            yield msg\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eModule hóa cho phép reuse — gọi \u003ccode\u003esend_query()\u003c\/code\u003e từ bất kỳ đâu.\u003c\/p\u003e\n\n\u003ch3\u003eMulti-turn investigations\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e# Turn 1: Kiểm tra CI\/CD status\nawait send_query(\"Check GitHub Actions cho repo X — có failures không?\")\n\n# Turn 2: Drill down (giữ context)\nawait send_query(\n    \"Phân tích chi tiết test failures\",\n    continue_conversation=True\n)\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch2\u003eKết hợp tất cả\u003c\/h2\u003e\n\n\u003cp\u003eQua 3 notebooks, chúng ta đã xây dựng nền tảng vững cho production agents:\u003c\/p\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n\u003cth\u003eNotebook\u003c\/th\u003e\n\u003cth\u003eĐã học\u003c\/th\u003e\n\u003c\/tr\u003e\n  \u003c\/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cstrong\u003e00 - Research Agent\u003c\/strong\u003e\u003c\/td\u003e\n      \u003ctd\u003equery(), ClaudeSDKClient, WebSearch, basic loops\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cstrong\u003e01 - Chief of Staff\u003c\/strong\u003e\u003c\/td\u003e\n      \u003ctd\u003eCLAUDE.md, output styles, plan mode, subagents, hooks\u003c\/td\u003e\n    \u003c\/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cstrong\u003e02 - Observability\u003c\/strong\u003e\u003c\/td\u003e\n      \u003ctd\u003eMCP servers, external integrations, workflow automation\u003c\/td\u003e\n    \u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\n\n\u003cp\u003ePatterns này là foundation cho production-ready agentic systems có khả năng handle real-world complexity trong khi maintain governance và observability.\u003c\/p\u003e\n\n\u003cp\u003eBước tiếp theo: Đọc \u003ca href=\"\/en\/collections\/nang-cao\"\u003eSRE Agent\u003c\/a\u003e để học cách cho agent \u003cstrong\u003ewrite access an toàn\u003c\/strong\u003e vào infrastructure, hoặc \u003ca href=\"\/en\/collections\/nang-cao\"\u003eMigration từ OpenAI\u003c\/a\u003e nếu đang chuyển đổi SDK.\u003c\/p\u003e\n","brand":"Minh Tuấn","offers":[{"title":"Default Title","offer_id":47721724018900,"sku":null,"price":0.0,"currency_code":"VND","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0821\/0264\/9044\/files\/observability-agent-tich-h_p-mcp-va-giam-sat-h_-th_ng-v_i-claude-sdk.jpg?v=1774521644","url":"https:\/\/claude.vn\/en\/products\/observability-agent-tich-h%e1%bb%a3p-mcp-va-giam-sat-h%e1%bb%87-th%e1%bb%91ng-v%e1%bb%9bi-claude-sdk","provider":"CLAUDE.VN","version":"1.0","type":"link"}