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

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

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

什么是 MCP?

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

MCP 架構(gòu)

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

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

圖片圖片

MCP Client

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

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

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

MCP Server

MCP server 是 MCP 架構(gòu)中的關(guān)鍵組件,它可以提供 3 種主要類型的功能:

資源(Resources):類似文件的數(shù)據(jù),可以被客戶端讀取,如 API 響應(yīng)或文件內(nèi)容。

工具(Tools):可以被 LLM 調(diào)用的函數(shù)(需要用戶批準(zhǔn))。

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

這些功能使 MCP server 能夠?yàn)?AI 應(yīng)用提供豐富的上下文信息和操作能力,從而增強(qiáng) LLM 的實(shí)用性和靈活性。

你可以在 MCP Servers Repository 和 Awesome MCP Servers 這兩個 repo 中找到許多由社區(qū)實(shí)現(xiàn)的 MCP server。使用 TypeScript 編寫的 MCP server 可以通過 npx 命令來運(yùn)行,使用 Python 編寫的 MCP server 可以通過 uvx 命令來運(yùn)行。

使用 Claude Desktop 通過 PostgreSQL MCP Server 查詢數(shù)據(jù)庫信息

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

準(zhǔn)備 PostgreSQL 數(shù)據(jù)

首先使用 Docker 啟動 PostgreSQL 服務(wù)。

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

在 PostgreSQL 中創(chuàng)建數(shù)據(jù)庫和表,并插入數(shù)據(jù)。

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

-- 創(chuàng)建數(shù)據(jù)庫
CREATEDATABASE shopdb;

-- 連接到新創(chuàng)建的數(shù)據(jù)庫
\c shopdb;

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

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

-- 插入示例數(shù)據(jù)
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 的連接信息,具體內(nèi)容可以參考:For Claude Desktop Users。最終是在 claude_desktop_config.json 文件中添加如下內(nèi)容:

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

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

圖片圖片

根據(jù) PostgreSQL 的數(shù)據(jù)進(jìn)行提問

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

圖片圖片

點(diǎn)擊 Allow 后,Claude 成功返回了結(jié)果。

圖片圖片

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

從下面的輸出可以發(fā)現(xiàn) Claude 一開始是不知道數(shù)據(jù)庫中的表結(jié)構(gòu)的,因此先發(fā)送請求分別確定 orders 表和 users 表中相應(yīng)的字段,然后再對兩張表進(jìn)行 join 查詢。

圖片圖片

點(diǎn)擊 View Result from query from postgres 可以看到 Claude Desktop 向 MCP server 發(fā)送的請求以及得到的響應(yīng),說明這個結(jié)果確實(shí)是從 PostgreSQL 數(shù)據(jù)庫中查詢得到的。

圖片圖片

你也可以復(fù)制這條 SQL 語句到數(shù)據(jù)庫中查詢進(jìn)行確認(rèn)。

圖片圖片

總結(jié)

本文帶領(lǐng)讀者快速入門了 MCP(模型上下文協(xié)議),介紹了其架構(gòu)、核心概念以及實(shí)際應(yīng)用場景。通過演示 Claude Desktop 結(jié)合 PostgreSQL MCP Server 查詢數(shù)據(jù)庫的場景,展示了 MCP 如何增強(qiáng) LLM 與外部數(shù)據(jù)源的交互能力。后續(xù)文章還會繼續(xù)分享 MCP server 和 MCP client 開發(fā)的相關(guān)內(nèi)容,歡迎持續(xù)關(guān)注。

參考資料

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

2025-03-18 09:10:00

MCPAI模型上下文協(xié)議

2025-04-07 05:01:00

MCP上下文協(xié)議LLM?

2025-03-18 08:14:05

2022-05-16 10:49:28

網(wǎng)絡(luò)協(xié)議數(shù)據(jù)

2025-03-18 10:34:33

2025-05-20 02:11:00

2021-01-26 05:19:56

語言Go Context

2025-05-08 07:38:36

模型上下文協(xié)議MCPAI模型

2025-03-26 03:00:00

MCPAI應(yīng)用

2025-04-01 08:38:25

模型上下文協(xié)議MCPLLM

2022-05-11 11:54:55

Http傳送協(xié)議

2021-05-29 10:11:00

Kafa數(shù)據(jù)業(yè)務(wù)

2024-11-26 11:58:26

模型開源

2022-02-24 07:34:10

SSL協(xié)議加密

2024-10-08 08:52:59

2025-03-04 08:42:19

2017-05-11 14:00:02

Flask請求上下文應(yīng)用上下文

2024-03-14 08:11:45

模型RoPELlama

2023-12-06 16:28:56

2023-05-05 07:41:42

執(zhí)行上下文JavaScript
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成人免费视频7777777 | 日韩av在线免费 | 成人片免费看 | 成年无码av片在线 | 久久机热 | 自拍在线 | 黄色免费网址大全 | 黄色大全免费看 | 久久久久久久久久久国产 | 性色在线 | www.天天干.com | 国产精品国产精品国产专区不片 | 国产在线不卡视频 | 免费黄色成人 | 欧洲免费视频 | 欧美日韩福利视频 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 国产一区二区精品 | 国产福利视频导航 | 激情av免费看| 国产精品久久久久久婷婷天堂 | 午夜在线精品 | 国产亚洲人成a在线v网站 | 97精品一区二区 | 99爱在线观看 | 一区二区三区久久久 | 日韩av一区二区在线观看 | 久久久妇女国产精品影视 | 亚洲一区二区三区免费观看 | 91精品久久久久久久 | 国产精品久久久久一区二区三区 | 日韩一二区 | 久久久久国产 | 国产91综合一区在线观看 | 日本特黄a级高清免费大片 特黄色一级毛片 | 国产超碰人人爽人人做人人爱 | 成人精品视频在线观看 | 国产伦精品一区二区三区高清 | 午夜影院| 日本精品免费在线观看 | 在线观看免费av网 |