Tạo Máy chủ MCP cho Claude Code — hướng dẫn thực tế, cập nhật từng bước

CometAPI
AnnaNov 22, 2025
Tạo Máy chủ MCP cho Claude Code — hướng dẫn thực tế, cập nhật từng bước

Giao thức ngữ cảnh mô hình (MCP) là một tiêu chuẩn mở cho phép các mô hình như Anthropic Claude và các công cụ dành cho nhà phát triển như Mã Claude gọi các công cụ, nguồn dữ liệu và lời nhắc bên ngoài theo cách an toàn và chuẩn mực.

Hướng dẫn này sẽ hướng dẫn bạn cách xây dựng máy chủ MCP của riêng mình từ đầu, cho phép Claude Code truy cập các tính năng tùy chỉnh và do đó mở rộng đáng kể chức năng của máy chủ này vượt xa các tính năng tích hợp sẵn.

Giao thức ngữ cảnh mô hình (MCP) là gì?

MCP (Giao thức ngữ cảnh mô hình) là một đặc điểm kỹ thuật mở Được thiết kế để chuẩn hóa cách các máy khách mô hình ngôn ngữ (như Claude, Claude Code hoặc các giao diện người dùng LLM khác) kết nối với máy chủ công cụ và nguồn dữ liệu. Hãy coi MCP như một "cổng USB-C cho LLM": nó định nghĩa một lược đồ vận chuyển/JSON-RPC và là một cách chung để máy chủ xuất bản ba loại khả năng:

  • Trung Tâm Tài Liệu — dữ liệu dạng tệp hoặc tài liệu mà máy khách có thể đọc (ví dụ: hàng cơ sở dữ liệu, tệp văn bản, dữ liệu JSON).
  • CÔNG CỤ — các hàm có thể gọi mà mô hình có thể yêu cầu máy chủ thực hiện (với sự chấp thuận của người dùng).
  • Prompt — các mẫu nhắc nhở có thể tái sử dụng hoặc quy trình làm việc mà mô hình/khách hàng có thể gọi.

MCP hỗ trợ nhiều giao thức truyền tải (stdio, HTTP, SSE) và cung cấp lược đồ, SDK và máy chủ mẫu để bạn không phải tự mình phát minh ra định dạng dây. Giao thức được duy trì công khai (spec + SDK) và có hướng dẫn sử dụng cùng thư viện máy chủ mẫu để đẩy nhanh quá trình áp dụng.

MCP được thiết kế như thế nào?

Kiến trúc của MCP được thiết kế đơn giản và theo dạng mô-đun: các thành phần cốt lõi là MCP máy chủ, MCP khách hàngGiao thông vận tải mang các thông điệp được đóng khung JSON-RPC giữa chúng. Dưới đây là các thành phần chính bạn sẽ tương tác khi xây dựng máy chủ cho Claude Code (hoặc các máy khách MCP khác).

Máy chủ, máy khách và giao thức

  • Máy chủ MCP — Một dịch vụ mà xuất bản công cụ, tài nguyên và lời nhắc. Công cụ có thể thực hiện các tác dụng phụ hoặc truy xuất dữ liệu; tài nguyên hiển thị nội dung chỉ đọc; lời nhắc là các mẫu lời nhắc có thể tái sử dụng mà máy khách có thể yêu cầu mô hình lấy mẫu.
  • Máy khách MCP (máy chủ) — Thường là một phần của máy chủ LLM (ví dụ: Claude Code, plugin VS Code, trình duyệt khách). Nó khám phá các máy chủ khả dụng, trình bày mô tả công cụ cho mô hình và định tuyến các lệnh gọi do mô hình khởi tạo đến máy chủ.
  • Nghị định thư — Các thông báo được mã hóa dưới dạng JSON-RPC; thông số kỹ thuật xác định các sự kiện vòng đời, khám phá công cụ, gọi, hoàn thành/lấy mẫu và cách kết quả có cấu trúc được truyền trở lại máy khách và mô hình.

Mẫu giao tiếp (điều gì xảy ra khi sử dụng một công cụ)

  1. Máy khách gửi tin nhắn của người dùng tới mô hình.
  2. Mô hình phân tích ngữ cảnh và quyết định gọi một công cụ được MCP cung cấp (hoặc nhiều công cụ).
  3. Máy khách chuyển tiếp lệnh gọi công cụ đến máy chủ MCP qua phương thức vận chuyển đã chọn.
  4. Máy chủ thực thi công cụ và trả về kết quả.
  5. Mô hình nhận đầu ra của công cụ và soạn câu trả lời cuối cùng cho người dùng.

Nguyên thủy triển khai

  • JSON-RPC tin nhắn tuân theo lược đồ MCP.
  • Định nghĩa công cụ được công bố trong phản hồi khám phá của máy chủ để máy khách có thể trình bày chúng trong UI.
  • Trung Tâm Tài Liệu được tham chiếu bởi @source:path cú pháp của khách hàng (ví dụ, @postgres:...), cho phép các mô hình tham chiếu đến nội dung bên ngoài mà không cần đưa dữ liệu lớn vào lời nhắc.

Tại sao nên tích hợp Claude Code với máy chủ MCP?

Claude Code là dịch vụ của Anthropic tập trung vào quy trình làm việc tập trung vào mã và nhà phát triển (tích hợp trình soạn thảo/IDE, hiểu mã, v.v.). Việc triển khai các công cụ nội bộ (tìm kiếm nguồn, trình chạy CI, hệ thống ticket, sổ đăng ký riêng) thông qua máy chủ MCP cho phép Claude Code gọi chúng là công cụ hạng nhất bên trong các cuộc trò chuyện mã hóa và luồng tác nhân.

Việc tích hợp Claude Code với máy chủ MCP mở ra các khả năng thực tế, liên quan đến sản xuất cho tác nhân mã hóa:

1. Hãy để mô hình hành động trên các hệ thống thực tế

Claude Code có thể yêu cầu máy chủ MCP truy vấn trình theo dõi sự cố, chạy truy vấn cơ sở dữ liệu, đọc tài liệu lớn hoặc tạo PR GitHub — cho phép tự động hóa toàn diện ngay trong phiên lập trình. Điều này được hỗ trợ rõ ràng bởi tài liệu Claude Code (ví dụ: truy vấn Postgres, Sentry hoặc tạo PR).

2. Giảm tải dữ liệu lớn và logic chuyên biệt

Thay vì nhúng mọi nguồn dữ liệu vào dấu nhắc (tiêu tốn token), bạn xuất bản dữ liệu và công cụ thông qua MCP. Mô hình gọi công cụ, nhận phản hồi có cấu trúc và suy luận dựa trên phản hồi đó — điều này giúp giảm thiểu việc sử dụng token và cho phép máy chủ xử lý khối lượng công việc lớn (truy vấn DB, đọc tệp dài, xác thực).

3. An ninh và quản trị

MCP tập trung kiểm soát truy cập và kiểm tra ở lớp máy chủ, cho phép các tổ chức lập danh sách trắng các máy chủ được phê duyệt, kiểm soát các công cụ khả dụng và giới hạn đầu ra. Claude Code cũng hỗ trợ cấu hình MCP cho doanh nghiệp và cấp phép theo phạm vi.

4. Khả năng tái sử dụng và hệ sinh thái

Máy chủ MCP có thể tái sử dụng trên nhiều máy khách và nhóm. Chỉ cần xây dựng một lần và nhiều máy khách Claude/LLM có thể sử dụng cùng một dịch vụ (hoặc hoán đổi triển khai).

Bạn cần gì trước khi bắt đầu?

Yêu cầu tối thiểu

  • Một máy phát triển với Trăn 3.10+ (chúng tôi sẽ sử dụng Python trong ví dụ). Ngoài ra, Node/các ngôn ngữ khác cũng được MCP SDK hỗ trợ.
  • uv (Công cụ của Astral) hoặc trình chạy tương đương để chạy máy chủ MCP stdio (hướng dẫn MCP sử dụng uv). Các bước cài đặt được hiển thị bên dưới.
  • Claude Code đã được cài đặt hoặc truy cập vào máy khách Claude (máy tính để bàn hoặc CLI) để đăng ký và kiểm tra máy chủ của bạn; hoặc bất kỳ máy khách nào hỗ trợ MCP. Claude Code hỗ trợ HTTP, SSE và máy chủ stdio cục bộ.
  • Ghi chú bảo mật: Chỉ thêm máy chủ MCP đáng tin cậy vào Claude Code trong cài đặt nhóm hoặc doanh nghiệp — MCP cấp cho máy chủ quyền truy cập vào dữ liệu nhạy cảm và có nguy cơ bị tấn công ngay lập tức nếu máy chủ trả về nội dung độc hại.

Cách cài đặt và xác minh Claude Code CLI

Đây là Hướng dẫn cài đặt và sử dụng Claude Code.

1) Tóm tắt nhanh — phương pháp cài đặt được đề xuất

Sử dụng trình cài đặt gốc (khuyến nghị) hoặc Homebrew trên macOS/Linux. NPM khả dụng nếu bạn cần cài đặt dựa trên Node. Windows có trình cài đặt PowerShell/CMD. Nguồn: tài liệu chính thức của Claude Code & GitHub.


2) Điều kiện tiên quyết

  • macOS 10.15+, Ubuntu 20.04+/Debian 10+ hoặc Windows 10+ (khuyến nghị WSL trên Windows).
  • Node.js 18+ chỉ yêu cầu cho phương pháp cài đặt NPM.

3) Lệnh cài đặt (chọn một)

Bản địa (khuyến nghị — không phụ thuộc vào Node), macOS / Linux / WSL:

curl -fsSL https://claude.ai/install.sh | bash
# optional: install latest explicitly

curl -fsSL https://claude.ai/install.sh | bash -s latest
# or install a specific version

curl -fsSL https://claude.ai/install.sh | bash -s 1.0.58

Windows PowerShell:

irm https://claude.ai/install.ps1 | iex
# or for latest: & (::Create((irm https://claude.ai/install.ps1))) latest

(Đây là các tập lệnh cài đặt gốc chính thức).

NPM (nếu bạn muốn cài đặt toàn cầu dựa trên Node):

# requires Node.js 18+

npm install -g @anthropic-ai/claude-code

Đừng sử dụng sudo npm install -g — cảnh báo về việc cài đặt sudo toàn cục (vấn đề về quyền/bảo mật). Nếu bạn gặp lỗi quyền, hãy sử dụng nvm hoặc sửa tiền tố toàn cục npm của bạn thay vì sử dụng sudo.

4) Xác minh tệp nhị phân đã được cài đặt (kiểm tra cơ bản)

Chạy các lệnh sau ngay sau khi cài đặt:

# is the command on PATH?

which claude

# version (or -v)

claude --version
# or

claude -v

# help (sanity check)

claude --help

Kỳ vọng: which hiển thị một đường dẫn (ví dụ /usr/local/bin/claude or ~/.nvm/.../bin/claude) Và claude --version in ra một chuỗi giống như semver. Cả tài liệu và README đều hiển thị claude là điểm vào CLI chính.


5) Xác minh tình trạng cài đặt và cấu hình (kiểm tra được khuyến nghị)

a) claude doctor,Chạy:

claude doctor

Chẩn đoán tích hợp này kiểm tra loại cài đặt của bạn, các vấn đề phổ biến (như vấn đề về quyền npm), các phụ thuộc như ripgrepvà đề xuất các bản sửa lỗi. Các tài liệu khuyến nghị rõ ràng việc chạy claude doctor sau khi cài đặt.

b) Chạy thử nghiệm khói (không tương tác)

Từ thư mục dự án của bạn:

cd /path/to/your/project
claude -p "Explain this project in 3 sentences"

Điều này sử dụng in chế độ (-p) để gửi một lời nhắc duy nhất rồi thoát; thích hợp cho CI hoặc kiểm tra chức năng nhanh.

c) Xác minh xác thực (đảm bảo CLI có thể tiếp cận Anthropic)

Claude Code hỗ trợ nhiều luồng xác thực (Console OAuth, khóa API, tích hợp nhà cung cấp). Các kiểm tra phổ biến:

  1. Nếu sử dụng khóa API (CI / headless / local env var):
export ANTHROPIC_API_KEY="sk-..."
# then

claude auth status
claude auth whoami    # or `claude auth whoami` / `claude whoami` depending on version

Bạn có thể sử dụng Sao chổiAPIKhóa API để sử dụng Claude Code, Sử dụng API của Claude thông qua CometAPI sẽ giúp bạn được giảm giá 20%.

  1. Nếu bạn sử dụng OAuth thông qua bảng điều khiển - chạy:
claude auth status
claude auth whoami

Bạn sẽ thấy thông tin tài khoản/gói hoặc xác nhận rằng bạn đã được xác thực.

Chuẩn bị môi trường từng bước

Dưới đây là các bước cụ thể để chuẩn bị hai ngăn xếp nhà phát triển phổ biến (TypeScript và Python), sau đó là các bước kiểm tra nhanh để đảm bảo mọi thứ hoạt động.

H3 — A. Thiết lập TypeScript / Node (đường dẫn nhanh nhất)

  1. Tạo dự án và cài đặt SDK:
mkdir mcp-demo && cd mcp-demo
npm init -y
npm install @modelcontextprotocol/sdk express zod
npm install --save-dev typescript tsx @types/node @types/express
  1. Tạo server.ts. (Chúng tôi cung cấp ví dụ đầy đủ trong phần “Cách xây dựng nhanh chóng…”.)
  2. Chạy:
npx -y tsx server.ts
  1. Kiểm tra tại địa phương với Thanh tra MCP hoặc thêm vào Mã Claude:
npx @modelcontextprotocol/inspector
# or (for Claude Code)

claude mcp add --transport http my-server http://localhost:3000/mcp

(Lệnh Inspector và Claude cho phép bạn xác thực khám phá và gọi các công cụ.)

Làm thế nào để nhanh chóng xây dựng máy chủ MCP cho Claude Code?

danh sách kiểm tra nhanh

  1. Khởi động máy chủ của bạn (khuyến nghị Streamable HTTP): node server.ts or uvicorn server:app.

  2. Từ máy dev của bạn, hãy:

  • Sử dụng Thanh tra MCP để xác thực (npx @modelcontextprotocol/inspector) và xác nhận tools/listresources/list; Hoặc
  • Thêm máy chủ vào Claude Code: claude mcp add --transport http <name> http://<host>:<port>/mcp (hoặc theo luồng giao diện người dùng web nếu máy khách của bạn hỗ trợ MCP từ xa).

Nếu bạn dự định sử dụng trình kết nối Messages API của Anthropic cho MCP từ xa (không có máy khách riêng), hãy đọc tài liệu Claude — có thể cần có tiêu đề beta (kiểm tra tài liệu để biết tiêu đề chính xác và trạng thái hỗ trợ hiện tại).

Dưới đây là hai ví dụ máy chủ hoàn chỉnh nhưng gọn nhẹ mà bạn có thể sao chép, chạy và kết nối với Claude Code (hoặc MCP Inspector). Ví dụ TypeScript sử dụng Express + TypeScript SDK; ví dụ Python minh họa cách gắn kết FastAPI.

Lưu ý: mã bên dưới tuân theo các ví dụ SDK công khai và cố ý tối giản để rõ ràng hơn. Đối với phiên bản sản xuất, hãy thêm xác thực, ghi nhật ký, giới hạn tốc độ và xác thực đầu vào ngoài các cài đặt mặc định của SDK.


Ví dụ 1: TypeScript + Express (Streamable HTTP)

Tạo server.ts (hoàn thành):

// server.ts
import express from "express";
import * as z from "zod/v4";
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";

const server = new McpServer({ name: "claude-code-demo", version: "0.1.0" });

// Register a simple tool: add two numbers
server.registerTool(
  "add",
  {
    title: "Add",
    description: "Add two numbers a and b",
    inputSchema: { a: z.number(), b: z.number() },
    outputSchema: { result: z.number() }
  },
  async ({ a, b }) => {
    const output = { result: a + b };
    return {
      content: ,
      structuredContent: output
    };
  }
);

// Register a resource: greet user (dynamic)
server.registerResource(
  "greeting",
  new ResourceTemplate("greeting://{name}", { list: undefined }),
  { title: "Greeting", description: "Return a greeting for the name" },
  async (uri, params) => {
    return {
      contents: 
    };
  }
);

// Express + Streamable HTTP transport
const app = express();
app.use(express.json());

app.post("/mcp", async (req, res) => {
  const transport = new StreamableHTTPServerTransport({ enableJsonResponse: true });
  // Close transport when connection closes
  res.on("close", () => transport.close());
  await server.connect(transport);
  await transport.handleRequest(req, res, req.body);
});

const port = parseInt(process.env.PORT || "3000", 10);
app.listen(port, () => console.log(`MCP server listening: http://localhost:${port}/mcp`));

Chạy:

npm install
npx -y tsx server.ts

Sau đó kết nối trong Claude Code (ví dụ):

# Add the remote server to your Claude Code MCP list (local dev)

claude mcp add --transport http my-demo http://localhost:3000/mcp

Ví dụ này được chuyển thể từ TypeScript SDK Quick Start chính thức và trình bày cách đăng ký các công cụ và tài nguyên, sau đó hiển thị chúng qua Streamable HTTP.


Ví dụ 2: Python + FastAPI (FastMCP + Streamable HTTP)

Tạo server.py (hoàn thành):

# server.py

from fastapi import FastAPI
from mcp.server.fastmcp import FastMCP

app = FastAPI()
mcp = FastMCP("claude-python-demo", stateless_http=True)

# tool: simple sum

@mcp.tool()
def add(a: int, b: int) -> dict:
    """Add two integers"""
    return {"result": a + b}

# resource: simple greeting resource template

@mcp.resource("greeting://{name}")
def greeting(name: str):
    return {"contents": }

# mount the streamable-http MCP endpoint (FastMCP exposes an ASGI app)

app.mount("/mcp", mcp.streamable_http_app())

# optional endpoint to demonstrate other API routes

@app.get("/")
async def root():
    return {"status": "OK"}

Chạy:

uvicorn server:app --reload --port 8000

Kết nối với Thanh tra:

npx @modelcontextprotocol/inspector
# In Inspector select Streamable HTTP and enter http://localhost:8000/mcp

Các ví dụ về Python SDK và tiện ích FastMCP giúp việc đăng ký trở nên dễ dàng @mcp.tool()@mcp.resource() các chức năng được trang trí mà LLM có thể khám phá và gọi.


Claude Code thực sự gọi các công cụ của bạn là gì?

Khi một LLM quyết định sử dụng một công cụ, máy khách sẽ gửi một lệnh gọi JSON-RPC đến máy chủ MCP. Máy chủ sẽ thực thi công cụ được yêu cầu (ví dụ: truy vấn cơ sở dữ liệu, chạy thử nghiệm hoặc gọi API bên ngoài) và trả về nội dung có cấu trúcnội dung trình bày được. Sau đó, máy khách (Claude Code) có thể đưa đầu ra có cấu trúc vào ngữ cảnh của mô hình để mô hình có thể tiếp tục suy luận với dữ liệu đáng tin cậy đó — chứ không chỉ đầu ra văn bản của máy chủ. SDK TypeScript hỗ trợ đăng ký inputSchemaoutputSchema (zod) do đó các đối số và đầu ra được xác thực và được nhập bằng máy.


Bạn nên sử dụng công cụ kiểm tra và gỡ lỗi nào?

Thanh tra MCP

Thanh tra MCP là công cụ phát triển trực quan chính thức để kiểm tra máy chủ MCP. Nó cho phép bạn kết nối với máy chủ (stdio, SSE hoặc streamable-HTTP), liệt kê các công cụ, gọi chúng theo cách thủ công và kiểm tra vòng đời của các thông báo JSON-RPC — vô cùng hữu ích trong quá trình phát triển. Hãy bắt đầu thông qua npx @modelcontextprotocol/inspector.

Kiểm tra cục bộ so với kiểm tra từ xa

  • Địa phương (stdio) — chu kỳ lặp lại nhanh cho ứng dụng máy tính để bàn và gỡ lỗi ngoại tuyến.
  • HTTP có thể phát trực tuyến — kiểm tra với Thanh tra hoặc kết nối với Claude Code bằng cách sử dụng claude mcp add CLI hoặc trình kết nối MCP trong Messages API để kiểm tra từ xa. Hãy đảm bảo cung cấp mọi tiêu đề xác thực cần thiết cho máy chủ của bạn.

Kết luận

MCP là cầu nối thiết thực giữa các LLM hiện đại và các hệ thống thực sự lưu trữ dữ liệu và thực hiện các hành động. Đối với quy trình làm việc mã, việc tích hợp Claude Code với máy chủ MCP cung cấp cho mô hình quyền truy cập có cấu trúc và có thể kiểm tra vào các kho lưu trữ, CI, trình theo dõi sự cố và công cụ tùy chỉnh—mang lại khả năng tự động hóa chính xác hơn và giảm thiểu các tác dụng phụ. Với các SDK chính thức trong TypeScript và Python, Streamable HTTP để lưu trữ từ xa và các công cụ như MCP Inspector, bạn có thể xây dựng một máy chủ tối thiểu chỉ trong vài phút và lặp lại quá trình triển khai sản xuất.

Các nhà phát triển có thể truy cập Claude Sonnet 4.5 API và Claude Opus 4.1 API v.v. thông qua CometAPI, phiên bản mẫu mới nhất luôn được cập nhật trên trang web chính thức. Để bắt đầu, hãy khám phá các khả năng của mô hình trong Sân chơi và tham khảo ý kiến Hướng dẫn API để biết hướng dẫn chi tiết. Trước khi truy cập, vui lòng đảm bảo bạn đã đăng nhập vào CometAPI và lấy được khóa API. Sao chổiAPI cung cấp mức giá thấp hơn nhiều so với giá chính thức để giúp bạn tích hợp.

Sẵn sàng chưa?→ Đăng ký CometAPI ngay hôm nay !

Nếu bạn muốn biết thêm mẹo, hướng dẫn và tin tức về AI, hãy theo dõi chúng tôi trên VKX và Discord!

Đọc thêm

500+ Mô hình trong Một API

Giảm giá lên đến 20%