使用说明
Mastra MCP服务器研讨会
此存储库包含Mastra MCP服务器研讨会的完整代码。它被构造为一个单仓库,MCP服务器和前端应用程序被分成不同的包。它演示了如何构建一个本地MCP服务器来管理markdown笔记,创建自定义工具和提示,以及构建一个带有AI代理的反应式Next.js前端来与笔记交互。
入门指南
-
安装依赖项:
pnpm install -
运行MCP服务器:
pnpm dev:mcp此命令启动Mastra MCP服务器进程。
-
运行Mastra代理:
pnpm dev:agent此命令使用代理启动Mastra服务器。 注意:这些不一起运行的原因是,在现实世界中,MCP服务器已经发布或托管,代理在启动后需要访问MCP服务器。将MCP服务器分开是一种很好的做法。
-
运行前端:
pnpm dev:web此命令启动前端应用程序。
-
打开浏览器 http://localhost:3000.
项目结构
这个项目是 pnpm monorepo。主要套餐包括:
packages/mcp-server:管理和公开笔记的MCP服务器。packages/webNext.js前端应用程序,其中包括Mastra代理。packages/notes:包含本地降价注释的目录。
MCP服务器(packages/mcp-server)
src/server.ts:MCP服务器的入口点,定义MCPServer实例,包括资源和提示处理程序。src/resources.ts:实现资源处理程序(listResources,getResourceContent)用于阅读来自packages/notes/目录。src/tools.ts:实现writeNote工具,允许代理创建和编辑注释。src/prompts.ts:实现提示处理程序(listPrompts,getPromptMessages)为斜线命令菜单供电。
Web前端(packages/web)
src/app/:Next.js应用程序。notes/page.tsx:主UI,包括注释列表、注释显示和代理面板。
src/app/api/:前端的API终结点。notes/:API列出并读取文件系统中的注释。copilotkit/:处理代理的后端请求。prompts/:API,以获取斜杠命令菜单的可用提示的列表和内容。events/:服务器发送事件(SSE)端点,用于将实时更新推送到前端。
src/components/:可重用的React组件。agent.tsx:包含CopilotChat组件及其配置。CustomChatInput.tsx:实现斜线命令菜单的聊天自定义输入组件。PromptMenu.tsx:斜线命令提示列表的UI。note-display.tsx:用于呈现选定笔记内容的组件。note-list.tsx:显示可用笔记列表的组件。
src/lib/:实用功能和挂钩。events.ts:包含eventEmitter用于MCP侦听器事件处理。utils.ts:通用实用功能。
主要特点
- 本地笔记管理:从本地目录公开markdown文件的MCP服务器(
packages/notes/)作为资源。 - 自定义代理工具:代理人配备了
writeNote直接在文件系统上创建和修改注释的工具。 - 动态提示:聊天界面中的斜线命令菜单,允许用户触发预定义的提示,如总结笔记或集思广益。
- 反应式UI前端采用Next.js和React构建,为浏览和编辑笔记提供无缝的用户体验。
- 实时MCP更新:当代理修改MCP资源时,UI会自动更新。MCP服务器向客户端发送消息。前端设置MCP侦听器处理程序,将事件中继到前端。
如何使用它
- 使用以下命令启动应用程序
pnpm dev. - 打开浏览器
http://localhost:3000. - 与右侧面板上的代理进行交互。
- 创建注释:试着问客服:“创建一个名为‘我的第一个便条’的便条,内容是‘你好,世界!’”。您应该看到注释出现在左侧的列表中。
- 编辑注释:单击新备注,然后询问客服:“在此备注中添加一个名为“下一步”的部分”。内容将实时更新。
- 使用提示:在代理聊天中,键入
/打开提示菜单。选择一个类似的提示brainstorm_ideas。然后,如果需要,代理将使用当前注释作为上下文来执行提示。