项目简介

'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服务器实例,确保并发客户端之间的数据隔离。

安装步骤

  1. 环境准备: 确保您的系统已安装Node.js 18+ 和 pnpm (推荐) 或 npm。
  2. 克隆仓库:
    git clone https://github.com/aharvard/mcp_aharvard.git
    cd mcp_aharvard
  3. 安装依赖:
    pnpm install
    # 或 npm install
  4. 启动开发服务器:
    pnpm dev
    # 或 npm run dev
    项目将在 'http://localhost:3000' 启动,您可以在浏览器中查看MCP-UI的演示页面。
  5. 部署到生产环境 (可选):
    pnpm build
    # 或 npm run build
    构建后的文件可直接部署到Netlify。

服务器配置

要将此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向客户端返回交互式的用户界面。

信息

分类

开发者工具