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

Quản lý MCP Hiệu Quả: Kết Nối Nhiều Máy Chủ với FastMCP

Đăng vào 2 ngày trước

• 9 phút đọc

Giới thiệu

Mô hình Giao thức Ngữ cảnh (MCP) đã cách mạng hóa cách các ứng dụng trí tuệ nhân tạo truy cập vào các công cụ và nguồn dữ liệu bên ngoài. Từ việc duyệt web với Playwright đến tìm kiếm tài liệu với Context7, các MCP cung cấp một phương pháp tiêu chuẩn hóa để mở rộng khả năng của AI vượt xa dữ liệu đào tạo của chúng.

Tuy nhiên, khi hệ sinh thái MCP phát triển, việc quản lý nhiều máy chủ trở nên phức tạp hơn. Mỗi máy chủ MCP thường yêu cầu cài đặt, cấu hình và bảo trì riêng biệt giữa các khách hàng khác nhau như Claude Desktop, Cursor hoặc Claude Code. Sự phân mảnh này tạo ra một số điểm đau:

  • Phân tán cấu hình: Mỗi khách hàng cần cấu hình máy chủ riêng biệt
  • Xung đột phụ thuộc: Các máy chủ khác nhau có thể yêu cầu các phiên bản hoặc gói Python xung đột
  • Tài nguyên dư thừa: Nhiều quy trình máy chủ tiêu tốn tài nguyên hệ thống không cần thiết
  • Gánh nặng bảo trì: Cập nhật và xử lý sự cố tăng lên trên nhiều cài đặt

Khả năng proxy của FastMCP giải quyết những thách thức này bằng cách cho phép bạn gộp nhiều máy chủ MCP lại phía sau một điểm cuối duy nhất. Kết hợp với các công cụ CLI của FastMCP, bạn có thể dễ dàng triển khai proxy hợp nhất này cho bất kỳ khách hàng MCP nào chỉ với một lệnh.

Tôi đã tạo một kho lưu trữ nhỏ trên GitHub với mã ví dụ nếu bạn muốn theo dõi. alexretana/FastMCP-Simple-Proxy-Bundling

Cảnh báo quan trọng: Mặc dù việc gộp MCP rất tiện lợi, nhưng hãy chú ý đến việc quá tải công cụ. Cung cấp quá nhiều công cụ cho một khách hàng MCP có thể làm quá tải mô hình AI và giảm hiệu suất. Bắt đầu với các công cụ thiết yếu và thêm các công cụ khác một cách chọn lọc dựa trên nhu cầu công việc cụ thể của bạn.

Cài đặt

Cài đặt FastMCP

Chúng tôi khuyên bạn nên sử dụng uv để cài đặt và quản lý FastMCP. Bạn có thể cài đặt trực tiếp với uv pip hoặc pip:

Copy
# Sử dụng uv (được khuyến nghị)
uv pip install fastmcp

# Hoặc sử dụng pip
pip install fastmcp

# Thêm như một công cụ thông qua uv (Sở thích của tôi)
uv tool install fastmcp

Cài đặt uv (Cần thiết cho tích hợp MCP Client)

Các công cụ CLI của FastMCP yêu cầu uv để quản lý phụ thuộc khi cài đặt cho các khách hàng MCP. Cài đặt uv cho nền tảng của bạn:

Windows:

Copy
# Sử dụng PowerShell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Hoặc sử dụng pip
pip install uv

macOS:

Copy
# Sử dụng Homebrew (được khuyến nghị)
brew install uv

# Hoặc sử dụng curl
curl -LsSf https://astral.sh/uv/install.sh | sh

Linux:

Copy
# Sử dụng curl
curl -LsSf https://astral.sh/uv/install.sh | sh

# Hoặc sử dụng pip
pip install uv

Xác minh cài đặt

Để xác minh rằng FastMCP đã được cài đặt đúng:

Copy
fastmcp version

Bạn sẽ thấy đầu ra như:

Copy
$ fastmcp version
FastMCP version:                           2.11.3
MCP version:                               1.12.4
Python version:                            3.12.2
Platform:            macOS-15.3.1-arm64-arm-64bit
FastMCP root path:            ~/Developer/fastmcp

Chạy với cấu hình JSON

FastMCP có thể chạy các máy chủ trực tiếp từ các tệp cấu hình JSON, giúp dễ dàng định nghĩa và triển khai các thiết lập máy chủ đa dạng. Hãy tạo một cấu hình gộp Context7 (tìm kiếm tài liệu) và Playwright (tự động hóa web) vào một điểm cuối duy nhất.

Tạo tệp có tên fastmcp.json:

Copy
{
  "$schema": "https://gofastmcp.com/public/schemas/fastmcp.json/v1.json",
  "environment": {
    "type": "uv",
    "python": ">=3.10", 
    "dependencies": [
      "fastmcp"
    ]
  },
  "deployment": {
    "transport": "sse",
    "log_level": "DEBUG"
  },
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp", "--api-key", "YOUR_API_KEY"]
    },
    "playwright": {
      "command": "npx", 
      "args": ["@playwright/mcp@latest"]
    }
  }
}

Phân tích cấu hình:

  • environment: Chỉ định phiên bản Python và phụ thuộc FastMCP
  • deployment: Đặt phương thức vận chuyển và mức độ ghi nhật ký
  • mcpServers: Định nghĩa các máy chủ backend để proxy

Thay thế YOUR_API_KEY bằng khóa API Context7 thực tế của bạn từ Upstash.

Bây giờ chạy máy chủ bằng cách sử dụng FastMCP CLI:

Copy
fastmcp run fastmcp.json --transport http --host localhost --port 53456

Lưu ý: các giá trị tôi sử dụng trong lệnh cli sẽ ghi đè các tùy chọn tôi đã chọn trong tệp fastmcp.json. Tôi đã cố tình làm cho chúng xung đột để chỉ ra điều này.

Máy chủ sẽ khởi động trên http://localhost:53456 và tự động proxy các yêu cầu đến cả máy chủ Context7 và Playwright. Bạn có thể kiểm tra bằng cách truy cập trực tiếp vào điểm cuối máy chủ hoặc tích hợp nó với các khách hàng MCP.

Mặc dù tôi không trình bày ở đây, kho GitHub cũng bao gồm một ví dụ Dockerfile nếu bạn cần hỗ trợ bắt đầu với docker hóa FastMCP.

Định nghĩa tệp Python và tính năng cài đặt CLI

Trong khi cấu hình JSON hoạt động tốt cho việc thực thi máy chủ trực tiếp, bạn có thể muốn một cách tiếp cận dựa trên Python cho các kịch bản phức tạp hơn hoặc hỗ trợ IDE tốt hơn. Hãy tạo một tệp máy chủ proxy đơn giản.

Tạo mcp-proxy.py:

Copy
from fastmcp import FastMCP

# Cấu hình máy chủ MCP của bạn
config = {
    "mcpServers": {
        "context7": {
            "command": "npx",
            "args": ["-y", "@upstash/context7-mcp", "--api-key", "YOUR_API_KEY"]
        },
        "playwright": {
            "command": "npx",
            "args": ["@playwright/mcp@latest"]
        }
    }
}

# Tạo proxy
mcp = FastMCP.as_proxy(config, name="Multi-MCP-Proxy")

Cài đặt trong Claude Code

CLI của FastMCP làm cho việc cài đặt trở nên đơn giản. Đối với Claude Code:

Copy
fastmcp install claude-code mcp-proxy.py

Lệnh này tự động cấu hình Claude Code để chạy máy chủ proxy của bạn với tất cả các phụ thuộc cần thiết được quản lý bởi uv.

Cài đặt trong Claude Desktop

Đối với cài đặt Claude Desktop:

Copy
fastmcp install claude-desktop mcp-proxy.py

Tôi đã gặp lỗi trên Claude Desktop mới được cài đặt của mình. Đó là vì nó không tìm thấy tệp claude_desktop_config.json. Bạn có thể vào Cài đặt > Tab Nhà phát triển, và nhấp vào 'Chỉnh sửa cấu hình', và nó sẽ tự động tạo một cái. Sau đó, chạy lại lệnh cài đặt fastmcp, và điều đó sẽ giải quyết vấn đề.

Lệnh cài đặt tự động cập nhật tệp cấu hình của Claude Desktop với mục máy chủ phù hợp, bao gồm quản lý phụ thuộc qua uv.

Kiểm tra cài đặt

Mở Claude Desktop (Lưu ý: bạn sẽ cần khởi động lại Claude Desktop sau khi cài đặt máy chủ FastMCP) và xác minh rằng cài đặt đã thành công bằng cách yêu cầu nó tìm kiếm tài liệu FastMCP. Thực sự tôi đã gặp rất nhiều vấn đề khi cố gắng làm điều này. Nó chạy tốt trong Claude Code, nhưng không hiểu sao tôi không thể làm cho context7 hoạt động trong Claude Desktop như vậy, chỉ có playwright. Thành thật mà nói, Claude Code hoạt động tốt hơn khi sử dụng công cụ, vì vậy bạn không nên phụ thuộc quá nhiều vào Claude Desktop khi sử dụng công cụ. Tuy nhiên, công cụ context7 khá tốt cho 'thời gian lập kế hoạch' trong phát triển tự động, vì vậy bạn có thể muốn cài đặt nó. Ngoài ra, vào thời điểm viết bài này, công cụ MCP trong Claude Desktop là một tính năng beta (nên nó có thể cải thiện và ít lỗi hơn trong tương lai), và tôi tin rằng họ đang cố gắng tập trung hơn vào việc mở rộng vì Claude Desktop có một đối tượng chung hơn (không chỉ là lập trình viên) so với Claude Code. Đó chỉ là suy đoán của tôi.

Chỉ để hoàn thành minh họa này, tôi đã tạm thời loại bỏ context7 khỏi mcp-proxy.py để cho thấy một công cụ mcp hoạt động trông như thế nào trong Claude Desktop.

Từ một cuộc trò chuyện mới, bạn có thể nhấp vào dấu cộng, và xem các máy chủ mcp nào có sẵn và các công cụ nào được hiển thị. Bạn thậm chí có thể bật/tắt bất kỳ máy chủ hoặc công cụ nào. Bạn chắc chắn nên tận dụng tính năng này.

Bây giờ, để thử nghiệm công cụ, hãy thực hiện một yêu cầu đơn giản như:
"sử dụng công cụ mcp playwright, có thể đến gofastmcp.com không?"

Phản hồi sẽ cho thấy rằng Claude đã thành công trong việc sử dụng công cụ Playwright để đến trang chủ của FastMCP.

Tóm tắt: Tạo cấu hình proxy JSON hoặc Python, chạy với fastmcp run, cài đặt cho các khách hàng với fastmcp install. Quản lý phụ thuộc tự động thông qua uv xử lý sự phức tạp.

Kết luận

Khả năng proxy của FastMCP biến đổi việc quản lý máy chủ MCP từ một cơn ác mộng cấu hình riêng lẻ thành một cách tiếp cận tập trung, hợp lý. Bằng cách gộp nhiều máy chủ lại phía sau một điểm cuối duy nhất, bạn sẽ nhận được:

  • Triển khai đơn giản: Một proxy phục vụ tất cả các công cụ MCP của bạn
  • Cấu hình đồng nhất: Nguồn thông tin duy nhất trên tất cả các khách hàng
  • Hiệu suất tài nguyên: Ít quy trình đang chạy và quản lý phụ thuộc
  • Bảo trì dễ dàng: Cập nhật cấu hình proxy một lần, lợi ích khắp nơi

Các công cụ CLI giúp tích hợp trở nên liền mạch—dù bạn thích cấu hình JSON cho sự đơn giản hay tệp Python cho tính lập trình, FastMCP tự động xử lý sự phức tạp của quản lý phụ thuộc và tích hợp khách hàng.

Khi hệ sinh thái MCP tiếp tục phát triển, mô hình proxy này sẽ trở nên ngày càng có giá trị cho các nhà phát triển muốn tận dụng nhiều công cụ chuyên biệt mà không gặp phải gánh nặng vận hành. Bắt đầu với các MCP thiết yếu nhất của bạn, kiểm tra tác động hiệu suất, và dần dần mở rộng bộ công cụ của bạn khi cần thiết.

Hãy nhớ: mục tiêu không phải là gộp mọi MCP có sẵn, mà là tạo ra một bộ sưu tập hiệu quả, được chọn lọc để nâng cao quy trình công việc AI của bạn mà không làm quá tải các mô hình cơ bản.

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