{"product_id":"hướng-dẫn-dung-mcp-với-claude-từng-bước-với-vi-dụ-github-va-slack","title":"Hướng Dẫn Dùng MCP với Claude: Từng Bước với Ví Dụ GitHub và Slack","description":"\n\u003ch2\u003eMCP là gì và tại sao nó thay đổi cách dùng Claude?\u003c\/h2\u003e\n\u003cp\u003eMỗi lần bạn hỏi Claude về codebase của mình, bạn phải copy-paste code vào chat. Mỗi lần muốn Claude check PR status, bạn phải lấy thông tin thủ công rồi paste vào. Với \u003cstrong\u003eModel Context Protocol (MCP)\u003c\/strong\u003e, những việc này không còn cần thiết.\u003c\/p\u003e\n\n\u003cp\u003eMCP là chuẩn giao thức do Anthropic phát triển, cho phép Claude kết nối trực tiếp với external tools và data sources. Thay vì bạn \"mang thông tin đến Claude,\" Claude tự lấy thông tin cần thiết khi cần.\u003c\/p\u003e\n\n\u003cp\u003eCodecademy mô tả MCP như \"OpenAPI cho AI tools\" — tương tự cách OpenAPI chuẩn hóa HTTP APIs, MCP chuẩn hóa cách AI interact với external systems.\u003c\/p\u003e\n\n\u003ch2\u003eKiến trúc MCP trong 4 thành phần\u003c\/h2\u003e\n\n\u003ch3\u003e1. Host Application\u003c\/h3\u003e\n\u003cp\u003eỨng dụng chính mà người dùng interact: Claude Desktop App, Cursor IDE, VS Code với extension. Host là nơi người dùng đặt câu hỏi và nhận kết quả.\u003c\/p\u003e\n\n\u003ch3\u003e2. MCP Client\u003c\/h3\u003e\n\u003cp\u003eConnector bên trong host, quản lý kết nối và giao tiếp với MCP servers. Người dùng không interact trực tiếp với client — nó hoạt động transparent trong background.\u003c\/p\u003e\n\n\u003ch3\u003e3. MCP Server\u003c\/h3\u003e\n\u003cp\u003eExpose tools và resources cho Claude sử dụng. Mỗi integration có một MCP server riêng: GitHub server expose GitHub API tools, Slack server expose Slack messaging tools, v.v.\u003c\/p\u003e\n\n\u003ch3\u003e4. External Resources\u003c\/h3\u003e\n\u003cp\u003eActual data sources: GitHub repos, Slack workspaces, databases, APIs. MCP server là \"translator\" giữa Claude và những systems này.\u003c\/p\u003e\n\n\u003ch2\u003eTutorial 1: Kết nối GitHub MCP\u003c\/h2\u003e\n\n\u003ch3\u003eBước 1: Tạo GitHub Personal Access Token\u003c\/h3\u003e\n\u003col\u003e\n  \u003cli\u003eĐăng nhập GitHub → Settings\u003c\/li\u003e\n  \u003cli\u003eDeveloper Settings → Personal access tokens → Tokens (classic)\u003c\/li\u003e\n  \u003cli\u003eGenerate new token với scopes: \u003ccode\u003erepo\u003c\/code\u003e, \u003ccode\u003eread:user\u003c\/code\u003e\n\u003c\/li\u003e\n  \u003cli\u003eCopy token (chỉ hiển thị một lần)\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003ch3\u003eBước 2: Cấu hình Claude Desktop\u003c\/h3\u003e\n\u003col\u003e\n  \u003cli\u003eMở Claude Desktop App\u003c\/li\u003e\n  \u003cli\u003eVào Settings → Developer tab\u003c\/li\u003e\n  \u003cli\u003eClick \"Edit Config\" để mở file JSON\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003ch3\u003eBước 3: Thêm GitHub server configuration\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e{\n  \"mcpServers\": {\n    \"github\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol\/server-github\"],\n      \"env\": {\n        \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"your_token_here\"\n      }\n    }\n  }\n}\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eBước 4: Restart Claude Desktop\u003c\/h3\u003e\n\u003cp\u003eĐóng hoàn toàn và mở lại Claude Desktop. MCP server sẽ khởi động tự động.\u003c\/p\u003e\n\n\u003ch3\u003eKết quả: Những gì bạn có thể làm ngay\u003c\/h3\u003e\n\u003cp\u003eSau khi setup GitHub MCP, bạn có thể:\u003c\/p\u003e\n\u003cul\u003e\n  \u003cli\u003e\"List all open PRs trong repo my-project\"\u003c\/li\u003e\n  \u003cli\u003e\"Show me the failing CI checks for PR #42\"\u003c\/li\u003e\n  \u003cli\u003e\"Create a new branch called feature\/user-auth from main\"\u003c\/li\u003e\n  \u003cli\u003e\"Commit these changes với message 'Fix null pointer exception'\"\u003c\/li\u003e\n  \u003cli\u003e\"Merge PR #38 sau khi tất cả checks pass\"\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eTất cả bằng natural language — không cần nhớ git commands hay GitHub CLI syntax.\u003c\/p\u003e\n\n\u003ch2\u003eTutorial 2: Kết nối Slack MCP\u003c\/h2\u003e\n\n\u003ch3\u003eBước 1: Tạo Slack App\u003c\/h3\u003e\n\u003col\u003e\n  \u003cli\u003eVào api.slack.com\/apps → Create New App\u003c\/li\u003e\n  \u003cli\u003eChọn \"From scratch,\" đặt tên app\u003c\/li\u003e\n  \u003cli\u003eSelect workspace\u003c\/li\u003e\n  \u003cli\u003eVào \"OAuth \u0026amp; Permissions\" → Bot Token Scopes: thêm \u003ccode\u003echat:write\u003c\/code\u003e, \u003ccode\u003echannels:read\u003c\/code\u003e, \u003ccode\u003echannels:history\u003c\/code\u003e\n\u003c\/li\u003e\n  \u003cli\u003eInstall app vào workspace → copy Bot User OAuth Token\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003ch3\u003eBước 2: Lấy Workspace ID và Channel ID\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eWorkspace ID:\u003c\/strong\u003e Nhìn vào URL Slack workspace: \u003ccode\u003eapp.slack.com\/client\/TXXXXXXXX\/\u003c\/code\u003e — chuỗi bắt đầu bằng T là Workspace ID\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eChannel ID:\u003c\/strong\u003e Mở channel → More → Copy Link → URL chứa channel ID (bắt đầu bằng C)\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eBước 3: Thêm vào config file\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e{\n  \"mcpServers\": {\n    \"github\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol\/server-github\"],\n      \"env\": {\n        \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"your_github_token\"\n      }\n    },\n    \"slack\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol\/server-slack\"],\n      \"env\": {\n        \"SLACK_BOT_TOKEN\": \"xoxb-your-bot-token\",\n        \"SLACK_TEAM_ID\": \"TXXXXXXXX\"\n      }\n    }\n  }\n}\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eRestart và verify\u003c\/h3\u003e\n\u003cp\u003eSau khi restart, thử prompt: \"Post 'Good morning team!' vào channel #general\" — nếu Slack nhận được message, setup thành công.\u003c\/p\u003e\n\n\u003ch2\u003eWorkflow thực tế: GitHub + Slack kết hợp\u003c\/h2\u003e\n\u003cp\u003ePower thực sự của MCP là combine multiple servers. Ví dụ workflow tự động hóa:\u003c\/p\u003e\n\n\u003cp\u003e\u003cstrong\u003ePrompt đơn:\u003c\/strong\u003e \"Check PR #45 trong repo backend-service. Nếu tất cả CI checks pass, post summary vào channel #dev-updates trên Slack.\"\u003c\/p\u003e\n\n\u003cp\u003eClaude tự động:\u003c\/p\u003e\n\u003col\u003e\n  \u003cli\u003eGọi GitHub MCP để fetch PR #45 và CI status\u003c\/li\u003e\n  \u003cli\u003eVerify tất cả checks pass\u003c\/li\u003e\n  \u003cli\u003eFormat PR summary (title, changes, author)\u003c\/li\u003e\n  \u003cli\u003eGọi Slack MCP để post message vào #dev-updates\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003cp\u003eKhông cần bạn làm gì thêm. Đây là automation không cần viết script.\u003c\/p\u003e\n\n\u003ch2\u003eMCP Servers phổ biến khác\u003c\/h2\u003e\n\n\u003ch3\u003eSupabase MCP\u003c\/h3\u003e\n\u003cp\u003eQuản lý database bằng natural language:\u003c\/p\u003e\n\u003cul\u003e\n  \u003cli\u003e\"Tạo table users với fields: id, email, created_at\"\u003c\/li\u003e\n  \u003cli\u003e\"Query 10 users đăng ký trong tuần này\"\u003c\/li\u003e\n  \u003cli\u003e\"Deploy edge function này lên production\"\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eSupabase MCP có security feature đặc biệt: SQL result wrapper ngăn LLM follow malicious commands ẩn trong data.\u003c\/p\u003e\n\n\u003ch3\u003ePostgreSQL MCP\u003c\/h3\u003e\n\u003cp\u003eRead-only hoặc read-write access cho PostgreSQL databases. Ideal cho data analysis workflows: \"Show me revenue by customer segment for last quarter.\"\u003c\/p\u003e\n\n\u003ch3\u003eGoogle Drive MCP\u003c\/h3\u003e\n\u003cp\u003eSearch, read, và create documents: \"Find all spreadsheets modified this week,\" \"Create a Google Doc với nội dung này.\"\u003c\/p\u003e\n\n\u003ch3\u003ePuppeteer MCP\u003c\/h3\u003e\n\u003cp\u003eBrowser automation: \"Screenshot homepage của competitor.com,\" \"Extract pricing từ trang này.\"\u003c\/p\u003e\n\n\u003ch2\u003eSecurity Best Practices\u003c\/h2\u003e\n\u003cp\u003eMCP là công cụ mạnh — và với great power comes great responsibility:\u003c\/p\u003e\n\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eMinimal permissions:\u003c\/strong\u003e Chỉ grant scopes bạn thực sự cần. Read-only nếu không cần write\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eSeparate tokens:\u003c\/strong\u003e Dùng dedicated token cho MCP, không share với other applications\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReview actions:\u003c\/strong\u003e Với destructive operations (delete, modify production data), luôn review trước khi confirm\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRotate tokens thường xuyên:\u003c\/strong\u003e Nếu token bị lộ, revoke ngay và tạo mới\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003eLưu ý: Nghiên cứu 2025 phát hiện ~2,000 MCP servers public không có authentication. Với production use, luôn setup authentication cho MCP servers của bạn.\u003c\/p\u003e\n\n\u003ch2\u003eTroubleshooting phổ biến\u003c\/h2\u003e\n\n\u003ctable\u003e\n  \u003cthead\u003e\n    \u003ctr\u003e\n\u003cth\u003eVấn đề\u003c\/th\u003e\n\u003cth\u003eGiải pháp\u003c\/th\u003e\n\u003c\/tr\u003e\n  \u003c\/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n\u003ctd\u003eMCP server không khởi động\u003c\/td\u003e\n\u003ctd\u003eCheck console logs trong Claude Desktop, verify npx available trong PATH\u003c\/td\u003e\n\u003c\/tr\u003e\n    \u003ctr\u003e\n\u003ctd\u003ePermission denied\u003c\/td\u003e\n\u003ctd\u003eCheck token scopes — grant scopes phù hợp\u003c\/td\u003e\n\u003c\/tr\u003e\n    \u003ctr\u003e\n\u003ctd\u003eTimeout lỗi\u003c\/td\u003e\n\u003ctd\u003eNetwork issue hoặc rate limiting — retry sau vài phút\u003c\/td\u003e\n\u003c\/tr\u003e\n    \u003ctr\u003e\n\u003ctd\u003eConfig không được apply\u003c\/td\u003e\n\u003ctd\u003eĐảm bảo restart hoàn toàn (quit, không chỉ close window)\u003c\/td\u003e\n\u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\n\n\u003cp\u003eXem thêm về MCP ecosystem tại \u003ca href=\"\/products\/ai-agent-t%C6%B0%C6%A1ng-lai-c%E1%BB%A7a-t%E1%BB%B1-d%E1%BB%99ng-hoa-quy-trinh-lam-vi%E1%BB%87c\"\u003eAI Agent: Tương lai của tự động hóa quy trình\u003c\/a\u003e và \u003ca href=\"\/products\/building-effective-agents-v%E1%BB%9Bi-claude-h%C6%B0%E1%BB%9Bng-d%E1%BA%ABn-ki%E1%BA%BFn-truc\"\u003eBuilding Effective Agents với Claude\u003c\/a\u003e.\u003c\/p\u003e\n\n\u003ch2\u003eXây Dựng MCP Server Của Riêng Bạn\u003c\/h2\u003e\n\u003cp\u003eNếu bạn có internal tool hoặc database cần kết nối với Claude, bạn có thể xây MCP server của riêng mình. SDK available cho Python và TypeScript\/Node.js.\u003c\/p\u003e\n\n\u003ch3\u003eCấu trúc cơ bản (TypeScript)\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003eimport { Server } from '@modelcontextprotocol\/sdk\/server\/index.js';\nimport { StdioServerTransport } from '@modelcontextprotocol\/sdk\/server\/stdio.js';\n\nconst server = new Server({ name: 'my-internal-tool', version: '1.0.0' });\n\nserver.setRequestHandler('tools\/list', async () =\u0026gt; ({\n  tools: [{\n    name: 'get_customer_data',\n    description: 'Get customer info by ID',\n    inputSchema: {\n      type: 'object',\n      properties: { customer_id: { type: 'string' } },\n      required: ['customer_id']\n    }\n  }]\n}));\n\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eMột khi kết nối, bạn hỏi Claude: \"Get customer data for ID 12345\" → Claude gọi tool, lấy data từ database của bạn, và trả lời với thông tin thực.\u003c\/p\u003e\n\n\u003ch2\u003eMCP Best Practices Cho Production\u003c\/h2\u003e\n\n\u003ch3\u003eLogging và Monitoring\u003c\/h3\u003e\n\u003cp\u003eProduction MCP servers nên log tất cả tool invocations:\u003c\/p\u003e\n\u003cul\u003e\n  \u003cli\u003eTool name, input parameters, timestamp\u003c\/li\u003e\n  \u003cli\u003eResponse time và success\/failure\u003c\/li\u003e\n  \u003cli\u003eUser hoặc session identifier\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eLogs này giúp debug khi Claude làm gì đó unexpected và provide audit trail cho compliance.\u003c\/p\u003e\n\n\u003ch3\u003eRate Limiting\u003c\/h3\u003e\n\u003cp\u003eMCP servers có thể bị gọi nhiều lần trong một conversation. Implement rate limiting để:\u003c\/p\u003e\n\u003cul\u003e\n  \u003cli\u003eProtect backend systems khỏi overload\u003c\/li\u003e\n  \u003cli\u003ePrevent accidental data modification loops\u003c\/li\u003e\n  \u003cli\u003eControl costs nếu tool calls charge money (API calls)\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eGraceful Error Handling\u003c\/h3\u003e\n\u003cp\u003eKhi tool fail, trả về descriptive error message — không phải stack trace raw. Claude có thể đọc error message và tự adjust approach:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e\/\/ Good error response:\n{ \"error\": \"Customer ID 12345 not found in database\" }\n\n\/\/ Bad error response:\n{ \"error\": \"TypeError: Cannot read property 'email' of undefined at line 45...\" }\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eVersioning\u003c\/h3\u003e\n\u003cp\u003eMCP servers nên version tools explicitly. Khi update tool behavior, bump version và maintain backward compatibility trong ít nhất một version cycle.\u003c\/p\u003e\n\n\u003ch2\u003eKịch Bản Thực Tế: Developer Workflow Tự Động\u003c\/h2\u003e\n\n\u003ch3\u003eMorning Standup Automation\u003c\/h3\u003e\n\u003cp\u003eSetup: GitHub MCP + Jira MCP + Slack MCP\u003c\/p\u003e\n\n\u003cp\u003eSingle morning prompt:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e\"Generate daily standup update:\n1. What I did yesterday: Get my GitHub commits from yesterday\n2. What I'm doing today: Get my assigned Jira tickets (In Progress)\n3. Any blockers: Get PRs waiting for my review more than 24h\nPost formatted summary to #standup channel\"\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eTiết kiệm 10-15 phút mỗi sáng, và standup updates consistently formatted.\u003c\/p\u003e\n\n\u003ch3\u003ePR Review Reminder Workflow\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\"Check all open PRs in repos [list repos].\nFind PRs where:\n- Waiting for review more than 48 hours\n- Author is someone on my team\nPost Slack message to each author with PR link and age\"\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003eRelease Notes Generator\u003c\/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\"Generate release notes for version 2.4.0:\n1. Get all merged PRs since last release tag (v2.3.0)\n2. Categorize: Features, Bug Fixes, Breaking Changes\n3. Format as markdown changelog\n4. Create GitHub release draft with these notes\"\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch2\u003eMCP Patterns: Thiết Kế Tốt và Không Tốt\u003c\/h2\u003e\n\n\u003ch3\u003ePattern Tốt: Granular Tools\u003c\/h3\u003e\n\u003cp\u003eThiết kế tools nhỏ và focused:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e\/\/ Tốt\nget_user_by_email(email)\nupdate_user_role(user_id, role)\ndelete_user(user_id)\n\n\/\/ Không tốt (quá broad)\nmanage_users(action, params)\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cp\u003eGranular tools: Claude có thể chọn đúng tool, và permission model rõ ràng hơn (có thể grant get_user mà không grant delete_user).\u003c\/p\u003e\n\n\u003ch3\u003ePattern Tốt: Descriptive Tool Descriptions\u003c\/h3\u003e\n\u003cp\u003eTool description là \"system prompt\" cho tool — càng clear càng tốt:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e\/\/ Tốt\nname: \"get_recent_errors\",\ndescription: \"Retrieve the 10 most recent error logs from production.\n              Returns: array of {timestamp, level, message, stack_trace}.\n              Use this when user asks about recent errors or production issues.\"\n\n\/\/ Không tốt\nname: \"get_errors\",\ndescription: \"Get errors\"\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003ch3\u003ePattern Tốt: Idempotent Read Operations\u003c\/h3\u003e\n\u003cp\u003eTools chỉ đọc data không cần confirmation. Tools modify data (write, delete) nên có confirmation step hoặc dry-run option.\u003c\/p\u003e\n\n\u003ch2\u003eCộng Đồng MCP: Tham Gia và Đóng Góp\u003c\/h2\u003e\n\n\u003ch3\u003eTìm MCP Servers\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eGitHub:\u003c\/strong\u003e github.com\/modelcontextprotocol\/servers — official repository\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eawesome-mcp-servers:\u003c\/strong\u003e Community-curated list trên GitHub\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eMCP Hub:\u003c\/strong\u003e Third-party directories đang nổi lên\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eĐóng góp\u003c\/h3\u003e\n\u003cp\u003eMCP là open-source — nếu bạn build MCP server cho internal tool và có thể public, community sẽ rất appreciate:\u003c\/p\u003e\n\u003col\u003e\n  \u003cli\u003eGeneralize server để work với các deployments khác\u003c\/li\u003e\n  \u003cli\u003eAdd documentation và examples\u003c\/li\u003e\n  \u003cli\u003eSubmit PR hoặc create public repo với README rõ ràng\u003c\/li\u003e\n  \u003cli\u003eShare trong MCP community channels\u003c\/li\u003e\n\u003c\/ol\u003e\n\n\u003cp\u003eDeveloper Việt Nam có opportunity đóng góp MCP servers cho Vietnamese-specific services: VNPay, Momo, VNPT, FPT services — những integrations mà global community chưa có.\u003c\/p\u003e\n\n\u003ch2\u003eNguồn tham khảo\u003c\/h2\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003ca href=\"https:\/\/www.codecademy.com\/article\/how-to-use-model-context-protocol-mcp-with-claude-step-by-step-guide-with-examples\" target=\"_blank\" rel=\"noopener\"\u003eCodecademy — How to Use MCP with Claude: Step-by-Step Guide\u003c\/a\u003e\u003c\/li\u003e\n  \u003cli\u003e\u003ca href=\"https:\/\/www.anthropic.com\/news\/model-context-protocol\" target=\"_blank\" rel=\"noopener\"\u003eAnthropic — Introducing the Model Context Protocol (Nov 2024)\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n","brand":"Minh Tuấn","offers":[{"title":"Default Title","offer_id":66959056404525,"sku":null,"price":0.0,"currency_code":"VND","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0763\/9531\/5245\/files\/h_ng-d_n-dung-mcp-v_i-claude-t_ng-b_c-v_i-vi-d_-github-va-slack.jpg?v=1782892368","url":"https:\/\/claudeae.com\/products\/h%c6%b0%e1%bb%9bng-d%e1%ba%abn-dung-mcp-v%e1%bb%9bi-claude-t%e1%bb%abng-b%c6%b0%e1%bb%9bc-v%e1%bb%9bi-vi-d%e1%bb%a5-github-va-slack","provider":"Claude.vn","version":"1.0","type":"link"}