- vừa được xem lúc

FastAPI MCP là gì? Tích hợp AI dễ dàng cho các API FastAPI của bạn

0 0 5

Người đăng: Vinh Phạm

Theo Viblo Asia

Hôm nay, chúng ta hãy cùng khám phá một công cụ cực kỳ thực tiễn — FastAPI MCP. Nếu bạn đang xây dựng API bằng FastAPI và muốn các endpoint của bạn có thể được AI (như GPT, Claude, v.v.) truy cập trực tiếp, thì hướng dẫn này dành cho bạn.

FastAPI MCP là gì?

Nói đơn giản, FastAPI MCP là một giải pháp không cần cấu hình cho phép tự động mở các endpoint FastAPI của bạn dưới dạng các công cụ Model Context Protocol (MCP). Với khả năng tương thích MCP, các mô hình AI có thể tương tác trực tiếp với API của bạn một cách liền mạch và chuẩn hóa.

Về bản chất, FastAPI MCP hoạt động như một cầu nối: nó giúp các API của bạn có thể được AI khám phá và gọi tới. Hãy tưởng tượng Claude hoặc GPT có thể — thông qua các công cụ như Cursor hoặc Claude Desktop — lấy dữ liệu, xử lý thông tin, hoặc kích hoạt các logic nghiệp vụ chỉ bằng cách gọi các endpoint API của bạn. Không chỉ mạnh mẽ, mà còn rất thú vị! image.png

Tại sao nên dùng FastAPI MCP?

Khi phát triển ứng dụng tích hợp AI, ngày càng phổ biến việc các mô hình ngôn ngữ lớn (LLM) cần tương tác với các dịch vụ bên ngoài, chẳng hạn như:

  • Truy vấn cơ sở dữ liệu
  • Gọi các dịch vụ tính toán
  • Truy cập các công cụ nội bộ
  • ...và nhiều hơn nữa

Trước đây, bạn cần xây dựng các endpoint tùy chỉnh hoặc viết các adapter riêng cho từng tích hợp AI. Với FastAPI MCP, chỉ với vài dòng code, bạn có thể biến API hiện có của mình thành giao diện sẵn sàng cho AI — tiết kiệm rất nhiều thời gian và công sức.

Hướng dẫn từng bước: Bắt đầu với FastAPI MCP trên máy cục bộ

Bước 1: Chuẩn bị môi trường Python

Trước tiên, hãy đảm bảo bạn đã cài Python (khuyến nghị từ phiên bản 3.10 trở lên). Kiểm tra phiên bản bằng cách chạy:

python --version
# or
python3 --version

Nếu bạn thấy một phiên bản phù hợp (như Python 3.10.x), môi trường đã sẵn sàng. image.png

Bước 2: Cài đặt các gói cần thiết

Cài đặt FastAPI, Uvicorn và FastAPI MCP:

pip install fastapi uvicorn fastapi-mcp

Bước 3: Tạo ứng dụng FastAPI đơn giản

Để đảm bảo tính tương thích và tối giản cấu hình, hãy bắt đầu với một ví dụ cơ bản. Tạo file mới main.py và thêm nội dung sau:

from fastapi import FastAPI
from fastapi_mcp import FastApiMCP app = FastAPI(title="Simple API") @app.get("/hello", operation_id="say_hello")
async def hello(): """A simple greeting endpoint""" return {"message": "Hello World"} # Expose MCP server
mcp = FastApiMCP(app, name="Simple MCP Service")
mcp.mount() if __name__ == "__main__": import uvicorn uvicorn.run(app, host="127.0.0.1", port=8000)

Ví dụ này gồm một endpoint /hello trả về lời chào.

Bước 4: Chạy và kiểm tra ứng dụng

Khởi động server:

python main.py

hoặc

uvicorn main:app --reload

Bạn sẽ thấy ứng dụng FastAPI chạy tại http://127.0.0.1:8000. image.png

Bước 5: Khám phá endpoint MCP

Mở trình duyệt và truy cập http://127.0.0.1:8000/mcp.

Lưu ý: Khác với REST API thông thường, endpoint MCP sử dụng Server-Sent Events (SSE), nên bạn sẽ thấy nội dung như:

event: endpoint
data: /mcp/messages/?session_id=a543519a5f3848febfd4f40b5ad3b5c7

Điều đó có nghĩa là MCP server đã sẵn sàng nhận kết nối từ các client AI. image.png

Kết nối FastAPI MCP với AI Client

Giả sử bạn muốn kết nối FastAPI MCP với client như Cursor, có hai cách:

Cách 1: Kết nối qua SSE (Server-Sent Events)

Hầu hết các client MCP hiện đại (Claude Desktop, Cursor, Windsurf, v.v.) hỗ trợ SSE. Cấu hình như sau:

{ "mcpServers": { "fastapi-mcp": { "url": "http://localhost:8000/mcp" } }
}

Ví dụ, trong Cursor, vào Settings → "MCP" → "Add new global MCP server" và thêm config trên vào mcp.json. image.png

Khi FastAPI MCP server đang chạy, IDE AI sẽ tự động phát hiện và kích hoạt các chức năng mới. image.png

Cách 2: Dùng mcp-remote làm cầu nối

Nếu bạn cần hỗ trợ xác thực hoặc client MCP của bạn không hỗ trợ SSE, bạn có thể sử dụng mcp-remote:

{ "mcpServers": { "fastapi-mcp": { "command": "npx", "args": [ "mcp-remote", "http://localhost:8000/mcp", "8080" ] } }
}

Thực tế: FastAPI MCP hoạt động ra sao?

Sau khi kết nối, bạn có thể yêu cầu trong AI IDE (ví dụ tại tab Agent của Cursor):

"Gọi endpoint /hello cho tôi."

AI sẽ chạy công cụ MCP và trả lại kết quả endpoint giống như một lập trình viên thật sự. image.png

Các mẹo nâng cao

Chỉ định endpoint được expose

Không phải endpoint nào cũng nên để AI truy cập. FastAPI MCP hỗ trợ kiểm soát:

# Only expose specific operations
mcp = FastApiMCP(app, include_operations=["say_hello", "get_user_info"]) # Exclude certain operations
mcp = FastApiMCP(app, exclude_operations=["delete_user", "update_settings"]) # Expose only endpoints with specific tags
mcp = FastApiMCP(app, include_tags=["public", "read_only"]) # Exclude endpoints with specific tags
mcp = FastApiMCP(app, exclude_tags=["admin", "sensitive"])

Thêm xác thực

Để bảo vệ endpoint MCP, bạn có thể thêm xác thực API key:

from fastapi import FastAPI, Depends, Security
from fastapi.security import APIKeyHeader api_key_header = APIKeyHeader(name="X-API-Key") async def verify_api_key(api_key: str = Security(api_key_header)): if api_key != "your-secret-key": raise HTTPException(status_code=403, detail="Invalid API key") return api_key mcp = FastApiMCP(app, mcp_dependencies=[Depends(verify_api_key)])
mcp.mount()

Bây giờ, mọi lệnh gọi MCP đều yêu cầu khóa API hợp lệ trong header yêu cầu.

Xử lý phản hồi tùy chỉnh

Bạn có thể thêm metadata vào phản hồi gửi tới AI:

async def response_processor(request, response, response_data): response_data["processed_by"] = "custom_processor" response_data["timestamp"] = datetime.now().isoformat() return response_data mcp = FastApiMCP(app, response_processor=response_processor)
mcp.mount()

Tách riêng triển khai MCP server

Bạn có thể host MCP server tách biệt với API chính:

# api_app.py
from fastapi import FastAPI
api_app = FastAPI() # mcp_app.py
from fastapi import FastAPI
from fastapi_mcp import FastApiMCP
from api_app import api_app mcp_app = FastAPI()
mcp = FastApiMCP(api_app)
mcp.mount(mcp_app)

Sau đó triển khai api_appmcp_app độc lập theo nhu cầu.

Các lưu ý bảo mật

Khi dùng FastAPI MCP:

  • Chỉ expose các endpoint an toàn, chỉ đọc (read-only).
  • Thêm xác thực nếu cần.
  • Dùng Pydantic models để kiểm soát dữ liệu đầu vào.
  • Lọc/masking dữ liệu nhạy cảm trong phản hồi.

Kết luận

Bắt đầu với FastAPI MCP cực kỳ đơn giản. Chỉ với vài thao tác, bạn có thể biến API hiện tại thành giao diện tương tác với AI mà không cần viết lại code hay xây dựng adapter tùy chỉnh.

Tóm lại các bước:

  • Chuẩn bị môi trường Python
  • Cài đặt fastapi, uvicorn, fastapi-mcp
  • Tạo ứng dụng FastAPI
  • Thêm hỗ trợ MCP chỉ với vài dòng code
  • Kết nối và kiểm thử từ IDE hoặc công cụ AI yêu thích

Để khám phá thêm nhiều tính năng mới nhất, bạn có thể tham khảo tài liệu chính thức FastAPI MCP trên GitHub: https://github.com/tadata-org/fastapi_mcp

Cảm ơn các bạn đã theo dõi!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Model Context Protocol: Giao thức ngữ cảnh cho mô hình AI hiện đại

Trong thời đại trí tuệ nhân tạo (AI) phát triển mạnh mẽ, việc tối ưu hóa cách các mô hình xử lý thông tin ngữ cảnh trở thành yếu tố then chốt để nâng cao hiệu suất và trải nghiệm người dùng. Một khái

0 0 10

- vừa được xem lúc

Model Context Protocol: Bí quyết đằng sau các công cụ AI thông minh

Bạn có bao giờ tự hỏi làm sao các công cụ như Cursor có thể nhớ được bạn đang làm gì trên nhiều file, tab, thậm chí là toàn bộ dự án—mà không xâm phạm quyền riêng tư hay gây rối mọi thứ? Bí mật nằm ở

0 0 8

- vừa được xem lúc

So sánh MCP và A2A: Hai Giao thức Quan trọng Cho Tương Lai AI

Trong bối cảnh AI đang bùng nổ với các mô hình ngôn ngữ lớn (LLMs) và các Autonomous agents, việc giao tiếp giữa các hệ thống (cả nội bộ lẫn bên ngoài) trở nên cần thiết hơn bao giờ hết. Hai giao thức

0 0 9

- vừa được xem lúc

MCP+Database: Một Phương Pháp Mới với Hiệu Quả Truy Xuất Tốt Hơn RAG!

Trong những năm gần đây, Mô Hình Ngôn Ngữ Lớn (LLMs) đã thể hiện những khả năng ấn tượng trong các tác vụ xử lý ngôn ngữ tự nhiên. Tuy nhiên, những hạn chế của các mô hình này, chẳng hạn như kiến thức

0 0 7

- vừa được xem lúc

Giới thiệu về Model Context Protocol (MCP)

Trong kỷ nguyên bùng nổ của trí tuệ nhân tạo, chúng ta đã chứng kiến những bước tiến vượt bậc về khả năng suy luận và chất lượng của các mô hình ngôn ngữ lớn (LLM). Tuy nhiên, có một vấn đề vẫn luôn t

0 0 6

- vừa được xem lúc

A2A vs MCP: Kết nối các Tác nhân và Công cụ AI

Hệ sinh thái AI đang trở nên sôi động với các tiêu chuẩn mới về cách các mô hình, công cụ và tác nhân kết nối với nhau. Hai “tay chơi” mới nổi bật là Giao thức A2A (Agent-to-Agent) của Google và Giao

0 0 2