第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

構(gòu)建MCP服務(wù)器:第一部分——資源入門

標(biāo)簽:
Python 云計(jì)算 容器

Image of an AI bot, putting on a knowledge enhancing visor with heads-up information display

这是用AI程序生成的图片。

这个故事是由多个AI助手帮忙写的。

搭建MCP服务器:第1部分 — 资源入门篇
模型上下文协议是什么?

模型上下文协议(MCP,详情请参阅介绍)是一种标准化的方式,允许像Claude这样的大型语言模型(LLM)安全地与外部数据和功能进行交互。可以把它想象成一个抬头显示器或人工智能的USB端口——它提供了一个通用接口,让任何兼容MCP的大型语言模型都能连接到你的数据和工具上。

MCP 提供了一个集中的协议,简化了即插即用的 AI 服务开发。与其他集成方法不同,这些方法可能需要为每个 AI 模型进行自定义实现,MCP 提供了一种标准化的方法,可以适用于各种不同的大语言模型。

没有像MCP这样的接口,LLM们只能使用它们自带的功能和训练数据。有了MCP,它们就能变得更强,比如做更多事情。

  • 读取文件和数据库
  • 调用API
  • 使用本地工具
  • 等等

所有这些都在用户同意下进行,既强大又安全,保证了用户体验。

在这个教程里,我们将从[MCP: 资源](MCP: 资源)的基础内容开始。

MCP资源是什么?

资源是MCP用来向LLMs提供只读数据的一种方法。资源可以是任何可读的内容,例如:

  • 您计算机上的文件夹和文件
  • 数据库记录
  • API 返回的数据
  • 应用数据
  • 系统详情

每个资源包括:

  • 一个唯一的URI地址(如 file:///example.txtdatabase://users/123
  • 显示名
  • 可选的元数据信息(描述、MIME类型)
  • 内容(文本或二进制内容)
要为什么用资源?

资源让你能够以规范的方式将数据展示给大模型。这里有一些实际的例子:

文档站
    // 公开公司的文档如下  
    "docs://api/reference" -> API 参考  
    "docs://guides/getting-started" -> 入门指南

用户:“你能解释一下我们的API限流政策吗?”
小助手:“让我查一下文档……根据文档说明,每分钟最多允许100个请求。”

日志分析系统
    "logs://system/today" -> 今日的系统日志  
    "logs://errors/recent" -> 最近的错误信息

用户:“今天我们系统出啥问题了?”
AI助理:“看一下今天的日志,我发现今天出了三个严重错误…”

客户数据服务器
    "customers://profiles/summary" -> 客户概况  
    "customers://feedback/recent" -> 最近的反馈

用户:“最近客户反馈的整体情绪怎么样?”
AI助理:“最近收到的反馈大部分是正面的,但...”

开始吧

首先,创建一个新的目录并启动一个TypeScript项目:

    创建一个名为hello-mcp的目录  
    进入hello-mcp目录  
    使用npm初始化项目并自动确认  
    安装@modelcontextprotocol/sdk依赖包  
    安装typescript和@types/node作为开发依赖

在你喜欢的IDE中打开目录。

让我们打开 package.json 文件并做一些修改。删除那行写有 "main": "index.js" 的代码。在原来的位置添加一行,内容为 "type": "module"。最后,在 "scripts" 下面添加一个名为 "build" 的脚本,并设置其值为 "tsc"

{
  "name": "hello-mcp",
  "version": "1.0.0",
  "type": "module",
  "scripts": {
    "build": "tsc",
    "test": "echo \"Error: no test specified\" && exit 1" // 测试:未指定任何测试,将会报错并退出
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": "", // 描述:暂时没有描述信息
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.1.0"
  },
  "devDependencies": {
    "@types/node": "^22.10.5",
    "typescript": "^5.7.2"
  }
}

最后,新建一个名为 tsconfig.json 的文件,并添加如下所示的代码:

{
  "compilerOptions": {
    "目标版本": "ES2022",
    "模块类型": "Node16",
    "模块解析方式": "Node16",
    "输出目录": "./build",
    "源代码根目录": "./src",
    "严格模式": "启用",
    "启用 esModule 互操作性": true,
    "跳过库检查": true,
    "强制文件名大小写一致性": true
  },
  "包含路径": ["src/**/*"]
}

环境现在已经准备好了,现在可以开始写代码了。

让我们开始创建你的第一个资源站吧

src/index.ts 文件中创建一个新的索引文件(index.ts),并添加以下代码:

    import { Server } from "@modelcontextprotocol/sdk/server/index.js";  
    import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";  
    import {  
      ListResourcesRequestSchema,  
      ReadResourceRequestSchema,  
    } from "@modelcontextprotocol/sdk/types.js";  

    // 初始化服务器资源能力  
    const server = new Server(  
      {  
        name: "hello-mcp",  
        version: "1.0.0",  
      },  
      {  
        capabilities: {  
          resources: {}, // 启用资源  
        },  
      }  
    );  
    // 当客户端请求时列出可用资源  
    server.setRequestHandler(ListResourcesRequestSchema, async () => {  
      return {  
        resources: [  
          {  
            uri: "hello://world",  
            name: "Hello World 消息资源",  
            description: "简单的问候",  
            mimeType: "text/plain",  
          },  
        ],  
      };  
    });  
    // 当客户端请求时返回资源内容  
    server.setRequestHandler(ReadResourceRequestSchema, async (request) => {  
      if (request.params.uri === "hello://world") {  
        return {  
          contents: [  
            {  
              uri: "hello://world",  
              text: "你好,世界!这是我的第一个MCP资源。",  
            },  
          ],  
        };  
      }  
      throw new Error("资源不存在");  
    });  
    // 使用标准输入输出传输启动服务器  
    const transport = new StdioServerTransport();  
    await server.connect(transport);  
    console.info('{"jsonrpc": "2.0", "method": "log", "params": { "message": "服务器正在运行..." }}');
读懂代码

这个简单的服务器展示了MCP资源的关键点。

服务器设置
  • 我们创建一个名为 [name] 的版本 [version] 的服务器实例
  • 我们启用资源功能
  • 其他功能,比如提示和工具,我们会稍后详细介绍
资源列表
  • ListResourcesRequestSchema处理器告诉客户端有哪些可用资源
  • 每个资源项都有uriname,以及可选的description/mimeType
  • 客户端用这个来发现可用资源
阅读材料
  • ReadResourceRequestSchema处理器返回资源内容
  • 它会根据给定的URI来获取对应的内容。
  • 内容包含URI和实际的数据。
交通
  • 我们使用stdio传输方式进行本地通信
  • 这在桌面MCP实现中是标准做法
瑞典符号# 测试你的MCP服务器

有几种方法可以测试你的MCP服务器。例如,可以使用Claude Desktop,还可以在开发时使用MCP Inspector工具来测试所有功能。

设置 Claude 桌面

设置Claude Desktop中的MCP服务器端的步骤如下:

还没装桌面版Claude吗?那就赶紧装上吧。

2: 打开Claude,然后进入设置菜单:

View of Claude Desktop menu with “Settings” highlighted

进入“开发工具”选项卡。

View of Claude desktop settings menu on the “Developer” tab

4: 你将看到如下当前设置的MCP服务器列表,

点击“编辑配置”按钮,以在您的文件资源管理器中显示配置文件:

A view of the local file explorer showing the location of claude_desktop_config.json, selected

6: 打开配置文件,在你的默认编辑器中以便添加你的MCP服务器配置。

View of the opened claude_desktop_config.json file in an IDE with hello-mcp added as one of the mcpServers

7: 在你的配置里添加以下内容:

{
  "mcpServers": {
    "hello-mcp": {
      "command": "command",
      "args": ["/你的绝对路径/到/hello-mcp/build/index.js"]
    }
  }
}

8: 构建并运行程序:

    npx tsc

此命令用于运行TypeScript编译器,将TypeScript代码编译成JavaScript代码。

9: 重启克劳德桌面版

10: 当你开始和Claude聊天时,选择MCP资源连接选项:

Claude

View of Claude Desktop chat window with an arrow pointing at the MCP connection button

11: 然后选择你的资源:

View of the MCP model, modal, with the “Choose and integration” drop down open and an arrow pointing at the Hello World Message resource.

您的资源会以附件的形式出现:

View of the Claude Desktop chat box, with an arrow pointing toward the “Hello World Message” attachment at the bottom left.

使用 MCP 工具

MCP Inspector(MCP检查器)(https://github.com/modelcontextprotocol/inspector)是一个开发工具,这个工具能帮助你测试所有MCP的功能。

检查器提供了一个用户界面,可以在这里。

  • 测试MCP的所有功能(资源、提示和工具)
  • 查看可用资源及其内容
  • 调试服务器的响应
  • 验证您的实现是否按预期运作

你可以试试比如使用MCP Inspector来测试新服务器。

1: 打开Inspector

运行 npx @modelcontextprotocol/inspector node build/index.js 命令

点击左侧“环境变量”列表中的“配置”按钮

3: 首先你应该会看到“资源”标签页,在这里你可以查看你的问候语资源。点击“列出资源”按钮,你可以查看自己创建的资源。

当你点击问候资源后,可以看到它的内容

你会看到我们设计的那些相同的回复:

  • 资源列表中显示我们的资源名称叫做:“Hello World Message”
  • 读取该资源会返回:“Hello, World! This is my first MCP resource。”
下一步会是什么呢?

第二部分,我们将要做的事是:(点击这里阅读)。

  • 使用资源模板来添加动态资源
  • 通过将代码拆分到单独的文件中来更好地组织代码
  • 学习如何高效地管理多个资源
  • 学习高级资源模式和最佳实践方法

接下来的两部分将涵盖提示和工具,完整你的MCP服务器工具包。更多详情,可以查看这里和这里。

参考来源和阅读材料:
點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消