Bỏ qua để đến nội dung

Dùng máy chủ MCP

Hướng dẫn này chỉ bạn cách kết nối một máy khách MCP bên ngoài — Claude Code, một trình soạn thảo, MCP Inspector — với máy chủ công cụ của chính Control Center.

Control Center đăng ký 110 công cụ và phục vụ chúng qua Model Context Protocol ở phiên bản giao thức 2024-11-05. Có những họ công cụ bạn có thể mong đợi nhưng lại vắng mặt: không có công cụ họp hay lịch, và không có công cụ dự án.

Bề mặt MCP dùng chung trình lắng nghe cc_server chính. Không có cổng MCP riêng.

Điểm cuối Phương thức Mục đích
/mcp POST Transport Streamable HTTP — đây là thứ mà máy khách nói
/mcp DELETE Kết thúc một phiên
/sse GET Luồng thông báo server-sent

Vậy một bản cài đặt cục bộ mặc định nằm tại http://127.0.0.1:9030/mcp.

  1. Vào Cài đặt → Máy chủ → Máy chủ MCP
  2. Đọc thẻ Máy chủ MCP — thẻ này cho biết đang chạy hay đã dừng và cổng mà nó đang lắng nghe

Bề mặt này mặc định bật trên một bản cài đặt mới, nên một máy khách loopback hoạt động mà không phải chỉnh gì trong cài đặt. Khởi động khi mở ứng dụng quyết định liệu nó có trở lại sau khi khởi động lại hay không; Bắt đầu / Dừng là các điều khiển theo phiên, không làm thay đổi tùy chọn đó.

Máy chủ mặc định bind loopback, nên điểm cuối chỉ với tới được từ máy đang chạy cc_server, trừ khi bạn khởi động nó với --bind any.

Trỏ máy khách của bạn vào điểm cuối Streamable HTTP. Hình dạng cấu hình cụ thể là việc của máy khách; URL thì giống nhau trong cả hai cách.

{
"mcpServers": {
"control-center": {
"type": "http",
"url": "http://127.0.0.1:9030/mcp"
}
}
}

Claude Code sẽ không nhận cấu hình này từ tệp .mcp.json của dự án — nó chặn các máy chủ MCP theo phạm vi dự án sau một lời nhắc phê duyệt mà lệnh claude -p phi tương tác không bao giờ trả lời. Hãy truyền cấu hình một cách tường minh:

Cửa sổ terminal
claude --mcp-config /path/to/mcp.json --strict-mcp-config

--strict-mcp-config khiến Claude chỉ dùng tệp đó, nên cùng một máy chủ không bị phát hiện thêm từ dự án rồi đăng ký hai lần.

Điểm kiểm tra: yêu cầu máy khách liệt kê các công cụ của nó. Bạn sẽ thấy các mục mcp__* bao gồm phiếu, space, bộ nhớ, đồ thị mã và đánh giá.

  1. Trong Cài đặt → Máy chủ → Máy chủ MCP, ở hàng Token xác thực, nhấn Đặt rồi dán một token
  2. Gửi token dưới dạng Authorization: Bearer <token> trong mọi yêu cầu POST /mcp

Một bề mặt không token sẽ từ chối mọi lời gọi không phải loopback bằng mã 403. Đó là thiết kế fail-closed: token chính là thứ khiến việc phục vụ ngoài máy chủ nhà trở nên khả thi ngay từ đầu.

Thay đổi token áp dụng tức thì cho bề mặt đang chạy — không cần khởi động lại.

Giới hạn mọi lời gọi trong một không gian làm việc

Phần tiêu đề “Giới hạn mọi lời gọi trong một không gian làm việc”

Mọi công cụ chạm đến dữ liệu theo phạm vi không gian làm việc đều yêu cầu workspace_id, và một lời gọi thiếu nó sẽ bị từ chối thay vì được phân giải dựa vào một không gian làm việc “hiện tại” nào đó:

{
"workspace_id": "acme",
"title": "Fix login bug",
"priority": "high"
}

Id chính là id trong URL trình duyệt hoặc ứng dụng của bạn: /workspaces/<workspace_id>/…. Ngoại lệ duy nhất là những công cụ thực sự trải khắp các không gian làm việc, chẳng hạn list_workspaces và các công cụ bảng tin — bảng tin là theo từng người dùng và một agent không có người dùng riêng, nên những công cụ đó thao tác trên bảng tin của chủ máy chủ.

Các công cụ theo phạm vi kho mã còn kiểm tra thêm rằng kho đó được liên kết với không gian làm việc ấy.

  • Chặn theo chế độ. Một lời gọi được phân giải theo chế độ của space chứa agent đang gọi, ở phía máy chủ. Một agent trong chế độ chỉ đọc không thể với tới công cụ ghi bằng cách bỏ space_id — thay vào đó, chế độ được tra từ lượt chạy đang hoạt động của nó.
  • Rào chắn hành động. Các công cụ biến đổi khai báo lớp hiệu ứng của mình và đi qua đúng chính sách mà phần còn lại của sản phẩm dùng. Xem Cấu hình rào chắn.
  • Xác nhận. Một số công cụ phá hủy tạo ra một payload xác nhận phải được phê duyệt trước khi lời gọi tiếp tục.

Toàn bộ danh mục được quảng bá trong tools/list mà không có chặn khám phá — một máy khách MCP bên ngoài từ chối gọi công cụ không nằm trong danh sách đã lưu của nó, nên việc ẩn công cụ làm chúng hỏng chứ không phải dọn dẹp chúng.

  • Kiểm tra thẻ Máy chủ MCP báo đang chạy
  • Kiểm tra cổng khớp với cổng cc_server của bạn
  • Trên Claude Code, kiểm tra bạn đã truyền --mcp-config và --strict-mcp-config

Lỗi 403 từ một máy không phải máy chủ

Phần tiêu đề “Lỗi 403 từ một máy không phải máy chủ”

Chưa cấu hình bearer token. Hãy đặt một token và gửi nó.

Một lời gọi công cụ thất bại với “Missing or invalid argument: workspace_id”

Phần tiêu đề “Một lời gọi công cụ thất bại với “Missing or invalid argument: workspace_id””

Thêm workspace_id. Không có không gian làm việc ngầm định.

Một lời gọi công cụ bị từ chối là không rõ

Phần tiêu đề “Một lời gọi công cụ bị từ chối là không rõ”

Công cụ MCP liệt kê danh mục. Hãy gọi tên đúng chính xác như nó xuất hiện ở đó.