0
0
Lập trình
Admin Team
Admin Teamtechmely

Khắc Phục Lỗi Kết Nối Từ Xa của Claude với Máy Chủ MCP

Đăng vào 7 tháng trước

• 5 phút đọc

Giới Thiệu

Trong tháng 5 vừa qua, tôi rất vui khi biết rằng Anthropic đã công bố khả năng tích hợp các máy chủ từ xa vào Claude. Việc kết nối đến các máy chủ MCP (Model Context Protocol) không chỉ giới hạn trong môi trường cục bộ là một bước tiến lớn. Các hệ thống AI như Claude giờ đây không còn bị giới hạn bởi dữ liệu đào tạo cũ. Chúng có thể kéo vào bối cảnh mới nhất và sử dụng các công cụ được cung cấp bởi các tích hợp này (máy chủ MCP).

Chẩn Đoán Lỗi Kết Nối Ban Đầu

Thêm máy chủ MCP vào Claude trên desktop khá đơn giản, vì vậy tôi đã bắt đầu ngay. Tôi đã có một máy chủ MCP từ xa đang chạy và một vài ví dụ từ các công ty khác mà tôi muốn thử nghiệm. Sau khi khởi động lại Claude, tôi thấy thông báo lỗi cho biết rằng nó không thể kết nối với máy chủ Cloudflare. Tôi đã kiểm tra lại cấu hình của mình, mọi thứ đều đúng, vì vậy tôi đã truy cập tài liệu khắc phục sự cố.

json Copy
"cloudflare-docs": {
    "command": "npx",
    "args": [
        "mcp-remote",
        "https://docs.mcp.cloudflare.com/sse"
    ]
}

Kiểm Tra Nhật Ký của Claude Desktop

Tôi đã đi qua danh sách kiểm tra gỡ lỗi trong tài liệu MCP. Trình kiểm tra MCP xác nhận rằng máy chủ Cloudflare đang hoạt động. Tiếp theo, tôi kiểm tra nhật ký của Claude:

bash Copy
tail -n 20 -F ~/Library/Logs/Claude/mcp*.log

Tôi đã nhanh chóng nhận thấy rằng tôi gặp vấn đề khi nhập một thứ gì đó từ node:fs/promises.

javascript Copy
file:///Users/kyle/.npm/_npx/705d23756ff7dacc/node_modules/open/index.js:7
import fs, {constants as fsConstants} from 'node:fs/promises';
                ^^^^^^^^^
SyntaxError: The requested module 'node:fs/promises' does not provide an export named 'constants'

Tôi nhận thấy rằng điều này đến từ thư mục .npm/_npx, vì vậy tôi đã tự hỏi về phiên bản Node của mình. Tôi đã đang sử dụng phiên bản Node mới nhất (22.15.0) và npm cũng đã được cập nhật, nhưng tôi vẫn thực hiện nâng cấp:

bash Copy
npm install -g npm@latest

Sau đó, tôi đã làm sạch bộ nhớ cache:

bash Copy
npm cache clean --force

Sau khi cài đặt lại và làm sạch, tôi đã khởi động lại Claude Desktop và máy chủ đã kết nối! Thật tuyệt vời! Tôi có thể hỏi Claude về các workers, các đối tượng bền vững, bất cứ điều gì tôi cần, và tôi sẽ nhận được thông tin mới nhất.

Gặp Lỗi TransformStream

Khi tôi cố gắng thêm một máy chủ khác, kết nối lại thất bại. Các nhật ký cho thấy một lỗi khác trong gói mcp-remote:

javascript Copy
file:///Users/kyle/.npm/_npx/705d23756ff7dacc/node_modules/mcp-remote/dist/chunk-YJSTSVFG.js:6264
var EventSourceParserStream = class extends TransformStream {
                              ^

ReferenceError: TransformStream is not defined

Điều này thật kỳ lạ vì gói mcp-remote không sử dụng chức năng TransformStream. Đây là một tiêu chuẩn của trình duyệt chưa được triển khai trong Node.js. Tôi đã kiểm tra lại và thấy rằng phiên bản node và npm của tôi vẫn đang được cập nhật. Điều này khiến tôi nghĩ rằng Claude đang gọi một phiên bản Node mà tôi chưa sử dụng trong một thời gian dài.

Đảm Bảo Claude Sử Dụng Đúng Node Binary

Kiểm tra trên internet, tôi đã tìm thấy một chủ đề vấn đề trên GitHub xác nhận nghi ngờ của mình. Rõ ràng là nvm không phải lúc nào cũng hoạt động tốt với các ứng dụng host như Claude Desktop. Chủ đề này đã cung cấp một số cách giải quyết.

Một cách sửa lỗi đáng tin cậy là chỉ định trực tiếp đến Node binary thay vì sử dụng npx:

json Copy
{  
  "mcpServers": {
    "YOUR SERVER NAME": {
      "command": "/Users/username/.nvm/versions/node/v22.15.0/bin/node",
      "args": [
        "mcp-remote",
        "PATH TO THE MCP SERVER YOU'RE USING"
      ]
    }
  }
}

Bạn cũng có thể giữ npx làm lệnh và đặt PATH một cách rõ ràng:

json Copy
{  
  "mcpServers": {
    "YOUR SERVER NAME": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "PATH TO THE MCP SERVER YOU'RE USING"
      ],
      "env": {
      "PATH": "/Users/username/.nvm/versions/node/v20.15.0/bin:/bin"
    }
    }
  }
}

Một lựa chọn khác là gỡ bỏ các phiên bản Node cũ dưới 18.20.4 khỏi hệ thống của bạn. Điều này có thể không phù hợp với tất cả mọi người nhưng đảm bảo rằng Claude Desktop luôn sử dụng một phiên bản Node tương thích.

Mẹo và Thực Hành Tốt

  • Luôn cập nhật Node và npm: Đảm bảo rằng bạn luôn đang dùng phiên bản mới nhất để tránh các lỗi không mong muốn.
  • Kiểm tra nhật ký thường xuyên: Nhật ký cung cấp thông tin hữu ích về các sự cố xảy ra trong quá trình kết nối.
  • Xem xét các giải pháp thay thế: Nếu bạn gặp phải vấn đề với nvm, hãy thử sử dụng Docker hoặc cài đặt Node trực tiếp mà không cần nvm.

Các Lỗi Thường Gặp

  1. Lỗi kết nối tới máy chủ: Kiểm tra lại cấu hình mạng và đảm bảo máy chủ đang chạy.
  2. Lỗi phiên bản Node không tương thích: Đảm bảo rằng bạn đang sử dụng phiên bản Node phù hợp với gói mà bạn đang làm việc.
  3. Lỗi khi nhập module: Kiểm tra lại cách nhập và các phụ thuộc của module trong dự án.

Kết Luận

Hy vọng bài viết này đã cung cấp thêm thông tin về cách gỡ lỗi các máy chủ MCP từ xa với Claude Desktop. Các vấn đề của tôi đã được giải quyết bằng cách đảm bảo Claude luôn chạy đúng Node binary. Những mẹo này sẽ giúp bạn tránh các sự cố về phiên bản và giúp các tích hợp của bạn hoạt động trơn tru hơn. Nếu bạn muốn khám phá thêm các ví dụ về máy chủ MCP, hãy tham khảo bài viết về Ngày Demo của Cloudflare và 13 máy chủ bạn có thể sử dụng ngay hôm nay.

Bạn đã gặp phải các vấn đề tương tự với máy chủ MCP chưa? Tôi rất muốn nghe về trải nghiệm của bạn trong phần bình luận!

Để xem thêm nội dung tương tự, hãy truy cập kyle.czajkowski.tech.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào