项目简介

'template-docs-chatbot' 是一个全面的单体仓库模板,用于构建基于 Mastra 框架的文档问答机器人。它将架构清晰地划分为独立的MCP服务器、代理(Agent)和前端应用。其中,MCP服务器作为核心后端,负责托管和暴露文档相关的工具和数据,供代理或其他LLM客户端调用。

主要功能点

  • MCP服务器功能: 作为核心后端,通过HTTP/SSE协议提供结构化的文档查询工具。它能够响应客户端的工具列表请求,并执行具体的功能调用(如查询特定函数的详细信息)。
  • 工具托管与管理: 托管 'docsTool' 工具,该工具能获取Kepler项目函数的详细文档,包括参数、描述和使用提示。数据来源于内部的 'functions.json' 文件。
  • 模块化与可扩展性: MCP服务器独立部署,可以被多个代理或前端应用复用和扩展,提高了系统的灵活性和可伸缩性。

安装步骤

  1. 安装依赖: 在项目根目录下,打开终端运行:
    pnpm install
  2. 设置环境变量: 复制示例环境变量文件:
    cp apps/mcp-server/.env.example apps/mcp-server/.env
    cp apps/agent/.env.example apps/agent/.env
  3. 配置OpenAI API Key (可选,仅当需要运行Agent时): 在 'apps/agent/.env' 文件中添加您的OpenAI API Key:
    OPENAI_API_KEY=your_openai_api_key_here
  4. 启动开发服务器: 要启动MCP服务器,可以在项目根目录下运行:
    pnpm dev:mcp
    MCP服务器默认运行在端口 '4111'。

服务器配置 (面向MCP客户端)

此MCP服务器是独立运行的,MCP客户端(例如本仓库中的'apps/agent')通过HTTP/SSE协议连接。MCP客户端需要配置此服务器的访问地址(URL)以建立连接。以下是基于本仓库'apps/agent'中MCP客户端配置方式的示例说明:

{
  "servers": {
    "localTools": {
      "url": "http://localhost:4111/mcp",
      "description": "本地文档MCP服务器,提供Kepler项目文档工具。"
    }
  }
}
  • 'servers': 这是一个JSON对象,用于定义MCP客户端可以连接的MCP服务器列表。每个键(例如'localTools')代表一个服务器的逻辑名称。
  • 'localTools': 此处是为本特定MCP服务器定义的连接标识符,你可以根据实际用途为你的MCP客户端修改此名称。
  • 'url': 这是MCP服务器的入口点URL。当服务器在本地运行时,默认地址是 'http://localhost:4111/mcp'。MCP客户端将通过此URL发起JSON-RPC请求。
  • 'description': 对该MCP服务器提供功能的简要描述,方便理解其用途。

基本使用方法

  • 检查服务器状态:
    curl http://localhost:4111/mcp
  • 请求工具列表:
    curl -X POST http://localhost:4111/mcp/message \
      -H "Content-Type: application/json" \
      -d '{"method": "tools/list"}'
  • 调用 'docsTool' 获取函数信息 (例如获取 'getPlanetaryData'):
    curl -X POST http://localhost:4111/mcp/message \
      -H "Content-Type: application/json" \
      -d '{"method": "tool_call", "tool": "docsTool", "input": {"functionName": "getPlanetaryData"}}'

信息

分类

AI与计算