成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一文帶你入門 MCP(模型上下文協議)

人工智能
本文帶領讀者快速入門了 MCP(模型上下文協議),介紹了其架構、核心概念以及實際應用場景。通過演示 Claude Desktop 結合 PostgreSQL MCP Server 查詢數據庫的場景,展示了 MCP 如何增強 LLM 與外部數據源的交互能力。

什么是 MCP?

MCP(Model Context Protocol,模型上下文協議) 是由 Anthropic 推出的一種開放標準,旨在統一大型語言模型(LLM)與外部數據源和工具之間的通信協議。MCP 的主要目的在于解決當前 AI 模型因數據孤島限制而無法充分發揮潛力的難題,MCP 使得 AI 應用能夠安全地訪問和操作本地及遠程數據,為 AI 應用提供了連接萬物的接口。

MCP 架構

MCP 遵循客戶端-服務器架構(client-server),其中包含以下幾個核心概念:

  • MCP 主機(MCP Hosts):發起請求的 LLM 應用程序(例如 Claude Desktop、IDE 或 AI 工具)。
  • MCP 客戶端(MCP Clients):在主機程序內部,與 MCP server 保持 1:1 的連接。
  • MCP 服務器(MCP Servers):為 MCP client 提供上下文、工具和 prompt 信息。
  • 本地資源(Local Resources):本地計算機中可供 MCP server 安全訪問的資源(例如文件、數據庫)。
  • 遠程資源(Remote Resources):MCP server 可以連接到的遠程資源(例如通過 API)。

圖片圖片

MCP Client

MCP client 充當 LLM 和 MCP server 之間的橋梁,MCP client 的工作流程如下:

  • MCP client 首先從 MCP server 獲取可用的工具列表。
  • 將用戶的查詢連同工具描述通過 function calling 一起發送給 LLM。
  • LLM 決定是否需要使用工具以及使用哪些工具。
  • 如果需要使用工具,MCP client 會通過 MCP server 執行相應的工具調用。
  • 工具調用的結果會被發送回 LLM。
  • LLM 基于所有信息生成自然語言響應。
  • 最后將響應展示給用戶。

你可以在 Example Clients 找到當前支持 MCP 協議的客戶端程序。本文將會使用 Claude Desktop 作為 MCP client,你可以在此頁面下載安裝:https://claude.ai/download 。

MCP Server

MCP server 是 MCP 架構中的關鍵組件,它可以提供 3 種主要類型的功能:

資源(Resources):類似文件的數據,可以被客戶端讀取,如 API 響應或文件內容。

工具(Tools):可以被 LLM 調用的函數(需要用戶批準)。

提示(Prompts):預先編寫的模板,幫助用戶完成特定任務。

這些功能使 MCP server 能夠為 AI 應用提供豐富的上下文信息和操作能力,從而增強 LLM 的實用性和靈活性。

你可以在 MCP Servers Repository 和 Awesome MCP Servers 這兩個 repo 中找到許多由社區實現的 MCP server。使用 TypeScript 編寫的 MCP server 可以通過 npx 命令來運行,使用 Python 編寫的 MCP server 可以通過 uvx 命令來運行。

使用 Claude Desktop 通過 PostgreSQL MCP Server 查詢數據庫信息

接下來演示通過 PostgreSQL MCP Server 使 LLM 能夠基于 PostgreSQL 中的數據來回答問題。

準備 PostgreSQL 數據

首先使用 Docker 啟動 PostgreSQL 服務。

docker run -d --name postgres \
  -e POSTGRES_PASSWORD=postgres -p 5432:5432 \
  postgres

在 PostgreSQL 中創建數據庫和表,并插入數據。

-- 登錄 PostgreSQL
docker exec -it postgres psql -U postgres

-- 創建數據庫
CREATEDATABASE shopdb;

-- 連接到新創建的數據庫
\c shopdb;

-- 創建 users 表
CREATETABLEusers (
    user_id SERIAL PRIMARY KEY,
    first_name VARCHAR(50) NOTNULL,
    last_name VARCHAR(50) NOTNULL,
    email VARCHAR(100) UNIQUENOTNULL
);

-- 創建 orders 表
CREATETABLE orders (
    order_id SERIAL PRIMARY KEY,
    order_date TIMESTAMPNOTNULL,
    total_amount DECIMAL(10, 2) NOTNULL,
    user_id INTREFERENCESusers(user_id)
);

-- 插入示例數據
INSERTINTOusers (first_name, last_name, email) VALUES
('John', 'Doe', 'john.doe@example.com'),
('Jane', 'Smith', 'jane.smith@example.com'),
('Alice', 'Johnson', 'alice.johnson@example.com');

INSERTINTO orders (order_date, total_amount, user_id) VALUES
('2025-01-05 10:30:00', 150.75, 1),
('2025-01-06 11:00:00', 200.50, 2),
('2025-01-07 12:45:00', 120.25, 1);

配置連接 PostgreSQL MCP Server

在 Claude Desktop 中配置 PostgreSQL MCP Server 的連接信息,具體內容可以參考:For Claude Desktop Users。最終是在 claude_desktop_config.json 文件中添加如下內容:

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://postgres:postgres@127.0.0.1/shopdb"
      ]
    }
  }
}

配置完畢后,重啟 Claude Desktop。一切正常的話,你應該能在輸入框的右下角看到一個錘子圖標。點擊錘子圖標,可以看到 PostgreSQL MCP Server 提供的工具信息。

圖片圖片

根據 PostgreSQL 的數據進行提問

首先來問一個簡短的問題:數據庫中有哪些表? Claude 會判斷出需要調用 MCP server 來查詢 PostgreSQL 中的數據。這里會彈出一個窗口,需要用戶授權。

圖片圖片

點擊 Allow 后,Claude 成功返回了結果。

圖片圖片

接下來我們可以增加一點難度:查詢金額最高的訂單信息。在數據庫中有兩張表 users 和 orders,要想得到完整的訂單信息,需要先去查詢 orders 表中金額最高的一條記錄,然后根據 user_id 這個外鍵再去查詢 users 表中對應的用戶信息。

從下面的輸出可以發現 Claude 一開始是不知道數據庫中的表結構的,因此先發送請求分別確定 orders 表和 users 表中相應的字段,然后再對兩張表進行 join 查詢。

圖片圖片

點擊 View Result from query from postgres 可以看到 Claude Desktop 向 MCP server 發送的請求以及得到的響應,說明這個結果確實是從 PostgreSQL 數據庫中查詢得到的。

圖片圖片

你也可以復制這條 SQL 語句到數據庫中查詢進行確認。

圖片圖片

總結

本文帶領讀者快速入門了 MCP(模型上下文協議),介紹了其架構、核心概念以及實際應用場景。通過演示 Claude Desktop 結合 PostgreSQL MCP Server 查詢數據庫的場景,展示了 MCP 如何增強 LLM 與外部數據源的交互能力。后續文章還會繼續分享 MCP server 和 MCP client 開發的相關內容,歡迎持續關注。

參考資料

  • Model Context Protocol 官方文檔:https://modelcontextprotocol.io/introduction
  • 深度解析:Anthropic MCP 協議:https://mp.weixin.qq.com/s/ASmcjW53HKokdYt1m-xyXA
責任編輯:武曉燕 來源: Se7en的架構筆記
相關推薦

2025-03-18 09:10:00

MCPAI模型上下文協議

2025-04-07 05:01:00

MCP上下文協議LLM?

2025-03-18 08:14:05

2025-05-20 02:11:00

2022-05-16 10:49:28

網絡協議數據

2025-03-26 03:00:00

MCPAI應用

2025-04-01 08:38:25

模型上下文協議MCPLLM

2021-01-26 05:19:56

語言Go Context

2025-03-18 10:34:33

2022-05-11 11:54:55

Http傳送協議

2025-05-08 07:38:36

模型上下文協議MCPAI模型

2021-05-29 10:11:00

Kafa數據業務

2022-02-24 07:34:10

SSL協議加密

2024-11-26 11:58:26

模型開源

2025-05-12 02:00:00

AI模型上下文協議

2025-03-10 18:12:22

ManusMCP沙盒越獄

2023-12-06 16:28:56

2024-10-08 08:52:59

2025-03-04 08:42:19

2023-05-05 07:41:42

執行上下文JavaScript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 草草视频在线观看 | h视频免费观看 | 人人射人人插 | 亚洲精品久久久一区二区三区 | 久久国产综合 | 99久久99| 国产一级视屏 | 精品一区二区三区在线播放 | 色综网| 黄 色 毛片免费 | 日日摸日日碰夜夜爽2015电影 | 欧洲免费视频 | 亚洲精品视频在线观看视频 | 久草青青| 日操夜操 | 国产乱码精品一区二区三区中文 | 欧美狠狠操 | 福利av在线| 日本一区二区三区在线观看 | 一本大道久久a久久精二百 欧洲一区二区三区 | 操人网站 | 亚洲网在线| 色综合欧美 | 午夜久久久 | 精品九九 | 久久久久久久久综合 | 在线视频成人 | 国产精品久久久久久二区 | 一区二区三区精品在线 | 久久手机在线视频 | 欧美一级在线 | 久久久久久一区 | 羞羞视频一区二区 | 欧美一卡二卡在线观看 | 免费黄色日本 | 日本视频一区二区 | 色免费视频| 免费观看色 | 国产美女h视频 | 亚洲系列第一页 | 国产精品久久午夜夜伦鲁鲁 |