项目简介

本项目 'agentic' 提供了一组示例,展示了如何构建基于 Model Context Protocol (MCP) 的服务器。MCP 服务器旨在为大型语言模型 (LLM) 客户端提供上下文信息和工具能力。本项目重点演示了使用 Stdio 和 SSE 两种传输协议的 MCP 服务器实现,并提供了相应的客户端示例。

主要功能点

  • MCP 服务器实现: 提供了基于 '@modelcontextprotocol/sdk' 构建的 MCP 服务器代码。
  • Stdio 传输: 实现了通过标准输入/输出 (Stdio) 协议与客户端通信的 MCP 服务器 ('src/mcp/stdio/server.ts')。
  • SSE 传输: 实现了通过服务器发送事件 (SSE) 协议与客户端通信的 MCP 服务器 ('src/mcp/sse/server.ts')。
  • 工具注册与执行: 演示了如何在 MCP 服务器上注册工具 (例如 'get-pokemon', 'find-product'),并由客户端 LLM 调用执行。
  • 客户端示例: 提供了使用 'ai' SDK 客户端库连接和调用 MCP 服务器的示例代码 ('src/mcp/stdio/client.ts', 'src/mcp/sse/client.ts')。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/xmlking/agentic
    cd agentic
  2. 安装依赖:

    npm install
  3. 构建项目:

    npm run build

服务器配置

Stdio 服务器配置 (用于 MCP 客户端 'src/mcp/stdio/client.ts'):

{
  "server name": "pokemon",
  "transport": {
    "type": "stdio",
    "command": "node",
    "args": ["dist/mcp/stdio/server.js"]
  }
}
  • 'server name': MCP 服务器的名称,这里是 "pokemon"。
  • 'transport.type': 传输协议类型,这里是 "stdio"。
  • 'transport.command': 启动服务器的命令,使用 'node' 解释器。
  • 'transport.args': 传递给 'node' 命令的参数,指向编译后的 Stdio 服务器 JavaScript 文件。

SSE 服务器配置 (用于 MCP 客户端 'src/mcp/sse/client.ts'):

{
  "server name": "example-server",
  "transport": {
    "type": "sse",
    "url": "http://localhost:8080/sse"
  }
}
  • 'server name': MCP 服务器的名称,这里是 "example-server"。
  • 'transport.type': 传输协议类型,这里是 "sse"。
  • 'transport.url': SSE 服务器的 URL 地址,客户端将连接到此地址。

基本使用方法

  1. 启动 Stdio 服务器: 打开终端,导航到项目根目录,运行命令 'node dist/mcp/stdio/server.js'。

  2. 启动 SSE 服务器: 打开另一个终端,导航到项目根目录,运行命令 'node dist/mcp/sse/server.js'。 请确保已完成项目构建 ('npm run build')。

  3. 运行客户端示例:

    • 在新的终端中,运行 'node dist/mcp/stdio/client.js' 以测试 Stdio 客户端与服务器的交互。
    • 或者,运行 'node dist/mcp/sse/client.js' 以测试 SSE 客户端与服务器的交互。

    请确保在运行客户端之前,相应的服务器已成功启动。客户端的输出将在终端中显示 LLM 的最终答案和工具调用步骤。

信息

分类

AI与计算