项目简介
'mcp_aharvard' 是一个功能完备的MCP服务器实现,旨在通过Netlify Serverless Functions和Express.js向LLM客户端(如Goose)提供丰富的MCP-UI交互式组件和工具。它作为一个可视化沙箱,展示了如何构建能够响应动态UI、调用外部API并管理上下文的代理应用。
主要功能点
- 多功能工具集: 提供了多种工具,包括获取实时天气数据、交互式飞机座位选择、展示各种MCP-UI消息动作(如工具调用、Prompt发送、链接、意图触发、通知)以及心情导向的旅行规划等。
- MCP-UI集成: 支持'rawHtml'、'externalUrl'和'remoteDom'等多种MCP-UI资源类型,允许LLM客户端渲染复杂的交互式用户界面。
- 资源和上下文管理: 通过MCP协议标准化地向LLM客户端提供数据资源和功能。
- JSON-RPC通信: 使用JSON-RPC协议处理来自MCP客户端的请求。
- 无服务器架构: 利用Netlify Serverless Functions部署,确保了高可用性和可伸缩性,无需管理底层基础设施。
- 会话隔离: 每个请求都会创建一个独立的MCP服务器实例,确保并发客户端之间的数据隔离。
安装步骤
- 环境准备: 确保您的系统已安装Node.js 18+ 和 pnpm (推荐) 或 npm。
- 克隆仓库:
git clone https://github.com/aharvard/mcp_aharvard.git cd mcp_aharvard - 安装依赖:
pnpm install # 或 npm install - 启动开发服务器:
项目将在 'http://localhost:3000' 启动,您可以在浏览器中查看MCP-UI的演示页面。pnpm dev # 或 npm run dev - 部署到生产环境 (可选):
构建后的文件可直接部署到Netlify。pnpm build # 或 npm run build
服务器配置
要将此MCP服务器与您的MCP客户端(例如Goose)连接,您需要提供服务器的端点和相关信息。以下是用于MCP客户端的配置示例(假设您已将服务器部署到 'https://mcp-aharvard.netlify.app/mcp'):
{ "mcpServers": { "mcp-aharvard-demo": { "name": "MCP-UI Demos", "description": "一个用于演示MCP-UI组件和交互的服务器。", "transport": "http", "endpoint": "https://mcp-aharvard.netlify.app/mcp" } } }
- 'name': 服务器的显示名称。
- 'description': 服务器的简要描述。
- 'transport': 传输协议类型,此处为 'http'。
- 'endpoint': MCP服务器的公开URL地址,LLM客户端将通过此地址发送请求。
请注意:
- 实际部署时,'endpoint' 应替换为您的Netlify部署地址或自定义域名。
- 此配置为客户端使用,MCP服务器本身无需此JSON配置。
基本使用方法
一旦MCP客户端连接到此服务器,您就可以通过客户端与服务器提供的工具进行交互:
- 获取天气: 向LLM客户端提问,例如 "What's the weather in Tokyo in Celsius?" (东京天气如何?用摄氏度表示?)
- 预订座位: 向LLM客户端提问,例如 "Pick a seat for my flight from San Francisco to New York." (帮我预订从旧金山到纽约的航班座位。)
- 查看MCP-UI动作演示: 询问LLM客户端 "Show me the MCP UI Actions demo." (展示MCP UI动作演示。)
- 旅行规划: 询问LLM客户端 "Plan a trip for me based on my mood." (根据我的心情帮我规划一次旅行。)
这些交互将触发MCP服务器上的相应工具,并通过MCP-UI向客户端返回交互式的用户界面。
信息
分类
开发者工具