项目简介

Gandalf 是一个基于 Model Context Protocol (MCP) 的服务器,旨在为AI辅助开发工具(如 Cursor、Claude Code)提供智能上下文。它通过聚合、过滤和管理用户在这些工具中的对话历史,帮助大型语言模型(LLM)更准确地理解开发者的意图和项目背景。Gandalf 遵循 MCP 2025-06-18 协议,通过 JSON-RPC 与 MCP 客户端通信,提供工具调用、信息查询等功能。

主要功能点

  • MCP 协议合规: 完全符合 Model Context Protocol 规范,使用 JSON-RPC 进行通信。
  • 工具注册与管理: 动态注册和管理各种工具,供 LLM 客户端调用。
  • 对话聚合: 自动检测并整合来自 Cursor 和 Claude Code 等开发工具的对话数据库。
  • 智能上下文提取: 支持基于关键词的对话搜索和过滤,帮助 AI 快速定位相关信息。
  • CLI 管理: 提供命令行接口,方便用户启动、停止、检查服务器状态以及管理工具注册。
  • 零配置: 智能默认设置,开箱即用,支持跨平台运行。

安装步骤

  1. 准备环境:

    • 确保已安装 Python 3.10 或更高版本。
    • 确保已安装 Git。
    • 推荐使用支持 MCP 协议的集成开发环境 (IDE),如 Cursor 或 Claude Code。
  2. 克隆仓库:

    git clone https://github.com/bluekornchips/gandalf.git
    cd gandalf
  3. 安装和配置: 运行安装脚本,它将自动检测开发工具并设置 Gandalf 注册表。

    ./gandalf.sh --install

服务器配置

MCP 客户端需要配置服务器的启动命令和参数才能建立连接。以下是针对 Gandalf MCP 服务器的配置信息(JSON 格式):

{
  "serverName": "Gandalf",
  "command": "./gandalf.sh",
  "args": ["--server", "start"],
  "description": "启动 Gandalf MCP 服务器,聚合开发工具对话历史。",
  "protocolVersion": "2025-06-18"
}
  • 'serverName': 服务器的名称,此处为 "Gandalf"。
  • 'command': 启动服务器的主命令,指向仓库根目录下的 'gandalf.sh' 脚本。
  • 'args': 传递给命令的参数,'--server start' 用于启动 MCP 服务器。
  • 'description': 对服务器功能的简要描述。
  • 'protocolVersion': 服务器支持的 MCP 协议版本。

基本使用方法

安装并启动服务器后,您可以通过 MCP 客户端调用 Gandalf 提供的工具。

  1. 启动服务器: 在您的终端中执行以下命令来启动 Gandalf 服务器:

    ./gandalf.sh --server start
  2. 测试服务器连接(通过 MCP 客户端调用 'echo' 工具): 在您的 MCP 客户端中,您可以调用 'echo' 工具来测试服务器是否正常响应。例如,如果您的客户端支持类似概念,可以这样调用:

    # 客户端逻辑表示,非实际代码:
    call_tool("echo", {"message": "Hello, Gandalf!"})

    服务器将返回一个 'ToolResult',其中包含类似 "Echo: Hello, Gandalf!" 的文本。

  3. 获取服务器信息(通过 MCP 客户端调用 'get_server_info' 工具): 要了解 Gandalf 服务器的详细信息,可以在客户端中调用 'get_server_info' 工具:

    # 客户端逻辑表示:
    call_tool("get_server_info", {})

    服务器将返回一个 'ToolResult',其中包含服务器的名称、版本、描述和能力等信息。

  4. 回忆对话历史(通过 MCP 客户端调用 'recall_conversations' 工具): 这是 Gandalf 的核心功能,用于获取聚合的对话上下文。您可以带或不带参数调用此工具:

    # 客户端逻辑表示:
    # 获取所有可用的对话历史(默认数量限制)
    call_tool("recall_conversations", {})
    
    # 带有关键词搜索和限制的结果数量:
    call_tool("recall_conversations", {"keywords": "python debugging", "limit": 10})
    
    # 仅包含用户提示,不包含 AI 生成内容:
    call_tool("recall_conversations", {"include_prompts": true, "include_generations": false})

    服务器将返回 JSON 格式的聚合对话历史和相关元数据。

  5. 停止服务器: 在终端中执行以下命令来停止 Gandalf 服务器:

    ./gandalf.sh --server stop

信息

分类

开发者工具