使用说明
MCP 服务器与客户端示例
构建一个具备AI功能的模型上下文协议(MCP)服务器和客户端的实际示例,用于管理用户数据。
这是关于什么的?
这个项目展示了如何构建一个MCP服务器,该服务器能够提供资源、工具和提示,并配有一个客户端,该客户端能够使用谷歌的Gemini人工智能与这些资源、工具和提示进行交互。可以将其视为连接AI模型和您应用程序逻辑之间的桥梁。
项目结构
服务器(server.ts)
服务器提供了三大主要功能:
资源 - 只读数据端点
users://all- 从数据库中获取所有用户users://{userId}/profile- 获取特定用户的资料
工具 - 人工智能可以执行的操作
create-user- 使用提供的详细信息创建一个新用户create-random-user- 生成并创建一个使用AI生成的虚假数据的用户
提示 - 人工智能交互模板
generate-fake-user- 根据姓名生成虚假用户数据的模板
客户端(client.ts)
一个交互式的命令行界面(CLI),让您能够:
- 查询 - 提出问题并让AI使用工具来帮助
- 工具 - 手动执行服务器工具
- 资源 - 浏览并获取资源数据
- 提示 - 运行提示模板
入门指南
先决条件
- 已安装 Node.js
- 一个谷歌Gemini API密钥
设置
- 安装依赖项:
npm install
- 创建一个
.env文件:
GEMINI_API_KEY=your_api_key_here
跑步
启动客户端(它将自动连接到服务器):
npm run server:inspect
它是如何工作的
魔法通过模型上下文协议实现:
- 服务器 注册资源、工具和提示
- 客户 通过stdio传输连接
- 人工智能模型 (Gemini) 可以调用工具来执行操作
- 你 通过友好的命令行界面(CLI)菜单进行交互
当你提出问题时,人工智能能够智能地决定使用哪种工具。例如,询问“创建一个名为John的用户”可能会触发 create-user 工具自动地。
示例交互
手动创建用户:
Select "Tools" → "Create User" → Enter details
基于AI的查询:
Select "Query" → "Create 3 random users for me"
AI将会致电 create-random-user 为你三次!
获取数据中:
Select "Resources" → "Users" → See all users
技术栈
- MCP SDK(MCP软件开发工具包) - 模型上下文协议实现
- Google AI SDK(软件开发工具包) - 双子座(Gemini)集成
- 询问者;探究者 - 交互式命令行界面提示
- 佐德 - 模式验证
- TypeScript - 类型安全
酷炫的部分
服务器可以通过(某种方式)请求AI生成内容(如模拟用户数据) sampling/createMessage 终端点。这形成了一个简洁的循环,使您的服务器能够按需利用人工智能功能。
注
这是一个学习示例。在生产环境中,你希望:
- 使用适当的数据库,而非JSON文件
- 错误处理和验证
- 身份验证和授权
- 限速
