使用说明
模型上下文协议(MCP)——软件开发与测试社区聚会 @ Vivid Planet
此仓库作为Vivid Planet软件工艺与测试社区聚会中MCP(可能指某种会议或课程)环节的基础。
主要目标
构建一个聊天机器人,帮助您查找并预订酒店房间
先决条件
第一步:设置
设置服务器
-
导航至
server文件夹 -
安装依赖项:
npm install -
使用模拟数据设置数据库:
npm run fixtures -
启动开发服务器:
npm run dev -
如果它起作用了,你应该能看到输出结果
🚀 Application is running on: http://localhost:3000
(可选,推荐)设置Postman
你可以使用Postman来测试你的MCP服务器以及你所实现的工具。
-
安装 邮递员 (用于测试MCP服务器)
-
启动Postman并将其连接到MCP服务器
- 创建一个免费账户(MCP 仅对注册用户开放)
- 点击左上角的“新建”
- 在对话框中选择“MCP”
- 选择“HTTP”(而非“STDIO”)并输入
http://localhost:3000/mcp作为URL - 点击“连接”
-
现在你应该能看到MCP服务器上可用的工具列表(目前仅
get_room_details)
设置客户端
-
导航至
client文件夹 -
安装依赖项:
npm install -
添加OpenAI API密钥:
创建一个
.env.local文件并添加密钥:OPENAI_API_KEY=api-key-here -
启动开发服务器:
npm run dev -
打开你的浏览器并导航至
http://localhost:5173要访问聊天机器人界面。如果- 服务器正在运行
- 客户端正在运行
- OpenAI密钥是正确的
现在你应该能够与机器人聊天了。
步骤2:部署MCP服务器
-
在您喜欢的集成开发环境(例如)中打开此项目。 VSCode(Visual Studio Code))
-
查看代码库。以下是简要概述:
主要有两个文件夹:
client并且server.该 客户 是一个使用(某种技术/功能)的简单React聊天应用 LangChain 将ChatGPT连接到我们的MCP服务器。 你不需要在这里做任何更改(除了添加环境变量)
.env.local)。这个(或“该”) 服务器 这是你将进行大部分工作的场所。 它上面写着 TypeScript 并且使用了 NestJS(Nest.js) 框架。 对于MCP服务器,它使用 MCP-Nest(可译为“MCP巢”或根据具体语境调整为更贴切的名称)。
在……之内/范围内
/src文件夹,其中有两个主要文件夹:bookings并且rooms。 两个文件夹中都包含一个实体类以及(大部分为空的)服务类和工具类。 服务和工具文件是你将进行大部分工作的所在。 -
实施你认为必要的任何工具来实现主要目标(见上文)。
你还需要在很大程度上实现业务逻辑。 这应该相当简单明了,而且Copilot非常擅长帮助你。
-
你可以使用Postman来测试你的工具实现
示例场景
一些你可能需要考虑的场景:
- 根据特定条件(如客人数量、日期范围、价格范围、设施)寻找房间
- 预订房间
- 取消预订
- 修改预订(例如,更改日期、客人数量)
- 询问特定房间的详细信息(例如:设施、大小、景观)
- 一次性预订多个房间
- 根据个人偏好寻求建议(例如:“我想要一间安静且风景优美的房间”)
- 寻求更便宜的替代方案
第三步:测试并优化聊天机器人
您可以使用提供的客户端来测试聊天机器人。 测试上述场景以及你能想到的任何其他场景。
调试和优化的小贴士
为了更深入地了解正在发生的事情(如大型语言模型(LLM)正在做什么、调用了哪些工具等),你可以查看 LangSmith(注:这是一个专有名词,直接音译,若该词有特定含义或品牌名,则按其官方翻译或通用译法处理,此处仅为音译示例)。
LangSmith 是一个用于追踪和调试大型语言模型(LLM)应用程序的工具。
为此,请创建一个免费账户,并将您的LangSmith API密钥添加到 .env.local 文件在……里 client 文件夹:
LANGSMITH_API_KEY=api-key-here
然后,您可以使用LangSmith的网页界面查看这些追踪记录。
进一步的实验思路
你可以花一整个晚上来测试和优化你的工具和聊天机器人。 但如果你还想寻找更多灵感,这里有一些:
尝试将您的MCP服务器与其他客户端集成
一些示例想法:
- 使用(某工具/平台)运行本地模型 Ollama (确保模型支持工具)并使用 mcp-cli 翻译为中文是“MCP 命令行界面”或“MCP 命令行工具”,具体取决于上下文和该工具的具体用途,但通常指的是用于与 MCP(可能是一个系统、服务或平台的缩写)进行交互的命令行界面或工具 连接我们的MCP服务器(这需要Python)
- 使用 LM Studio 一个带有MCP支持的用于运行本地模型的图形用户界面(GUI)版本
- 将服务器连接到您的Github Copilot(参见 这本指南)
添加身份验证和角色
你也可以尝试为你的MCP服务器添加认证和角色。 查看 MCP Nest 文档以获取有关身份验证的更多信息:https://github.com/rekog-labs/MCP-Nest?tab=readme-ov-file#features
然后,您可以限制某些工具的使用(例如,只有经过验证的用户才能预订房间,只能取消自己的预订等)。 你也可以添加一个管理员角色,用于添加或删除房间等。
连接本地大语言模型(LLM)而非ChatGPT
(这与MCP没有直接关系,但尝试一下可能会很有趣)
你可以尝试将客户端连接到本地的大型语言模型(LLM),而不是使用远程的ChatGPT。
你可以使用 Ollama(注:Ollama是一个开源的机器学习框架,用于训练和部署机器学习模型,此处为直接音译,实际使用时可能根据上下文选择更具体的翻译或保留原名) 运行本地模型。
确保使用一个支持工具的模型(例如。 gpt-oss)。
然后你必须做出调整 mcpClient.ts 在……里 client 使用文件夹连接到您本地的模型,而不是OpenAI。
你可以使用 @langchain/ollama(这个名称在中文中可能保持原样,因为它是特定项目或库的名称,直接翻译可能无法准确传达其含义,所以通常保留原名) 为此。