项目简介

Saiku (細工) 是一个旨在创建强大、智能的AI Agent的项目,其核心架构基于 Model Context Protocol (MCP)。该仓库是 Saiku 项目的 MCP 服务器端实现,使用 Node.js 构建,能够托管和管理资源,注册和执行工具,以及定义和渲染Prompt模板,从而为LLM客户端提供安全、可扩展的上下文服务框架。

主要功能点

  • 资源 (Resources) 管理: 托管和管理各种资源,例如文件系统、配置信息和 Agent 内存等,并提供标准化的数据访问能力。
  • 工具 (Tools) 注册与执行: 支持注册和执行外部工具,扩展 LLM 的能力边界,例如代码执行、Shell 命令、HTTP 请求和 Git 操作等。
  • Prompt 模板 (Prompts) 定义与渲染: 允许定义和管理 Prompt 模板,支持定制化的 LLM 交互模式。
  • 基于 MCP 协议: 完全遵循 Model Context Protocol 标准,确保与任何兼容 MCP 协议的客户端进行无缝通信。
  • 多种传输协议支持: 通过 Stdio 传输协议与客户端通信,保证稳定可靠的连接。
  • 可扩展性: 模块化的设计,易于扩展新的工具和资源处理能力。
  • 环境配置: 支持通过 '.env' 文件或环境变量进行灵活配置。

安装步骤

  1. 克隆仓库
    git clone https://github.com/nooqta/saiku.git
    cd saiku
  2. 安装依赖
    npm install
  3. 构建项目
    npm run build

服务器配置

MCP 服务器配置主要涉及服务器的启动命令及其参数。对于 Saiku MCP 服务器,客户端需要配置以下信息以建立连接。由于 Saiku MCP 服务器默认使用 Stdio 传输协议,因此配置相对简单。

{
  "servers": [
    {
      "serverName": "saiku-mcp-server",
      "command": "node",
      "args": [
        "dist/mcp/server-standalone.js",
        "--stdio"
      ],
      "env": {},
      "disabled": false,
      "autoApprove": []
    }
  ]
}

参数注释:

  • 'serverName': 服务器名称,客户端用于标识和管理不同的 MCP 服务器连接,可以自定义。例如 '"saiku-mcp-server"'。
  • 'command': 启动 MCP 服务器的命令。对于 Saiku MCP 服务器,通常为 '"node"',表示使用 Node.js 运行时环境。
  • 'args': 启动命令的参数列表。
    • '"dist/mcp/server-standalone.js"': 指定 Saiku MCP 服务器的入口文件路径。'dist' 目录表明运行的是已构建的项目,如果是本地开发环境,可能需要调整为 '"src/mcp/server-standalone.ts"' 并使用 'ts-node' 或 'tsx' 运行。
    • '"--stdio"': 关键参数,指定 Saiku MCP 服务器使用 Stdio (标准输入输出) 传输协议,这是与 MCP 客户端通信的基础。
  • 'env': 环境变量配置,允许为 MCP 服务器进程设置额外的环境变量。当前示例配置为空对象 '{}',表示不设置额外的环境变量。如有需要,可以在此处添加键值对,例如 '{ "MCP_PORT": "3333" }'。
  • 'disabled': 布尔值,用于启用或禁用此服务器配置。'false' 表示启用,'true' 表示禁用。
  • 'autoApprove': 用于配置工具或资源的自动批准列表。当前示例配置为空数组 '[]',表示不自动批准任何工具或资源。

注意:

  • 确保 Node.js 环境已正确安装,并且 'node' 命令在系统 PATH 环境变量中可访问。
  • 配置文件路径 'dist/mcp/server-standalone.js' 基于项目构建后的输出目录,如果直接运行源代码,请调整为相应的入口文件路径。
  • '"--stdio"' 参数对于基于 Stdio 传输协议的 MCP 客户端至关重要,务必正确配置。

基本使用方法

  1. 启动 Saiku MCP 服务器: 在仓库根目录下,执行命令 'npm start -- serve' 可以启动 Saiku MCP 服务器以及一个基于 Next.js 的 Web UI 界面,用于与 Agent 交互。但是,作为独立的 MCP 服务器使用,通常只需要运行 'dist/mcp/server-standalone.js'。
  2. 配置 MCP 客户端: 在 MCP 客户端 (例如,另一个 Saiku 项目或者任何兼容 MCP 协议的客户端应用) 中,根据上述 服务器配置 的说明,配置 Saiku MCP 服务器的连接信息。
  3. 连接与交互: 启动 MCP 客户端,客户端将根据配置信息连接到 Saiku MCP 服务器。连接成功后,客户端即可通过 MCP 协议与服务器进行通信,例如列取可用工具、调用工具、读取资源和获取 Prompt 等操作,从而利用 Saiku MCP 服务器提供的上下文服务能力。
  4. 使用示例: 客户端成功连接后,可以发送符合 MCP 协议的 JSON-RPC 请求到服务器,例如调用 'listTools' 方法获取工具列表,或者调用 'callTool' 方法执行特定的工具。服务器会处理这些请求,并返回符合 MCP 协议的 JSON-RPC 响应。

信息

分类

AI与计算