项目简介
本项目 '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')。
安装步骤
-
克隆仓库:
git clone https://github.com/xmlking/agentic cd agentic -
安装依赖:
npm install -
构建项目:
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 地址,客户端将连接到此地址。
基本使用方法
-
启动 Stdio 服务器: 打开终端,导航到项目根目录,运行命令 'node dist/mcp/stdio/server.js'。
-
启动 SSE 服务器: 打开另一个终端,导航到项目根目录,运行命令 'node dist/mcp/sse/server.js'。 请确保已完成项目构建 ('npm run build')。
-
运行客户端示例:
- 在新的终端中,运行 'node dist/mcp/stdio/client.js' 以测试 Stdio 客户端与服务器的交互。
- 或者,运行 'node dist/mcp/sse/client.js' 以测试 SSE 客户端与服务器的交互。
请确保在运行客户端之前,相应的服务器已成功启动。客户端的输出将在终端中显示 LLM 的最终答案和工具调用步骤。
信息
分类
AI与计算