模型上下文协议服务器与客户端示例

一个构建模型上下文协议(MCP)服务器和客户端的实用示例,通过AI功能管理用户数据。

  • by theharrshil
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 theharrshil/mcp-example

使用说明

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密钥

设置

  1. 安装依赖项:
npm install
  1. 创建一个 .env 文件:
GEMINI_API_KEY=your_api_key_here

跑步

启动客户端(它将自动连接到服务器):

npm run server:inspect

它是如何工作的

魔法通过模型上下文协议实现:

  1. 服务器 注册资源、工具和提示
  2. 客户 通过stdio传输连接
  3. 人工智能模型 (Gemini) 可以调用工具来执行操作
  4. 你 通过友好的命令行界面(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文件
  • 错误处理和验证
  • 身份验证和授权
  • 限速