使用说明

项目简介

Apache AGE MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 客户端提供访问和操作 Apache AGE 图数据库的能力。通过 MCP 协议,该服务器允许 LLM 客户端以标准化的方式查询图数据、获取图谱结构信息,甚至进行数据的写入操作(可选)。这使得 LLM 能够利用图数据库中的知识进行更深入的推理和更丰富的应用场景。

主要功能点

  • 资源访问 (Resources): 通过执行 Cypher 查询,允许 LLM 客户端从 Apache AGE 图数据库中检索和利用图数据作为上下文信息。
  • 工具注册和执行 (Tools): 提供一系列预定义的工具,例如:
    • 'read-age-cypher': 执行只读 Cypher 查询。
    • 'write-age-cypher': 执行写入 Cypher 查询(默认禁用,可通过配置启用)。
    • 'create-age-graph': 创建新的图。
    • 'drop-age-graph': 删除已有的图。
    • 'list-age-graphs': 列出所有图的名称。
    • 'get-age-schema': 获取图的结构信息,包括节点类型、属性和关系。
  • Prompt 模板 (Prompts): 虽然仓库信息中没有明确提及 Prompt 模板,但通过工具的定义和描述,可以推断该服务器支持根据 LLM 的请求,结合图数据库的数据,生成合适的 Prompt,从而实现可定制的 LLM 交互模式。(仓库代码中未直接体现Prompt模板功能,此处为根据MCP定义进行的合理推测

安装步骤

本仓库提供了多种安装方式,推荐使用 'brew' (Homebrew) 进行安装,步骤简洁方便:

  1. 确保已安装 Homebrew: 如果您的 macOS 或 Linux 系统上没有安装 Homebrew,请先访问 https://brew.sh/ 按照指引进行安装。

  2. 添加仓库 tap: 在终端中执行以下命令,添加 'rioriost/age-mcp-server' 仓库:

    brew tap rioriost/age-mcp-server
  3. 安装 age-mcp-server: 执行以下命令安装 'age-mcp-server':

    brew install age-mcp-server

    安装完成后,'age-mcp-server' 命令将被添加到您的系统路径中。

服务器配置

MCP 服务器需要配置在 MCP 客户端中,例如 Claude 或 Visual Studio Code。客户端需要知道如何启动和连接到 MCP 服务器。以下是针对 Claude 桌面客户端的配置示例 (macOS 环境,Homebrew 安装):

  1. 找到 Claude 配置文件: macOS 系统中,'claude_desktop_config.json' 文件通常位于 '~/Library/Application Support/Claude/' 目录。

  2. 编辑配置文件: 打开 'claude_desktop_config.json' 文件 (如果不存在则创建),并添加或修改 'mcpServers' 配置项。以下是一个配置示例,您需要根据您的 PostgreSQL 数据库连接信息进行修改:

    {
      "mcpServers": {
        "age-manager": {
          "command": "age-mcp-server",
          "args": [
            "--pg-con-str",
            "host=your_server.postgres.database.azure.com port=5432 dbname=postgres user=your_username password=your_password"
          ]
        }
      }
    }

    配置参数说明:

    • '"age-manager"': 服务器名称,可以自定义,在客户端中用于标识该服务器。
    • '"command": "age-mcp-server"': 启动 MCP 服务器的命令。由于使用 Homebrew 安装,'age-mcp-server' 命令已在系统路径中,可以直接使用。
    • '"args": [...]': 传递给 'age-mcp-server' 命令的参数列表。
      • '"--pg-con-str"': PostgreSQL 数据库连接字符串,用于连接到您的 Apache AGE 数据库实例。
        • 'host=your_server.postgres.database.azure.com': 您的 PostgreSQL 服务器地址。请替换为实际地址。
        • 'port=5432': PostgreSQL 服务器端口,默认为 5432。
        • 'dbname=postgres': 数据库名称。请替换为实际数据库名称。
        • 'user=your_username': 数据库用户名。请替换为实际用户名。
        • 'password=your_password': 数据库密码。请替换为实际密码。 请注意安全保管您的数据库密码。

    更安全的密码管理:

    为了更安全地管理密码,您可以不直接在配置文件中写入密码,而是设置 'PGPASSWORD' 环境变量,或者使用 Azure CLI 认证 (如果您的 PostgreSQL 数据库在 Azure 上)。具体方法请参考仓库 README 文档的 "Usage with Claude" -> "If you need to hide the password or to use Entra ID" 部分。

  3. 重启 Claude 客户端: 保存 'claude_desktop_config.json' 文件后,重启 Claude 桌面客户端,配置即可生效。

基本使用方法

配置完成后,您可以在 Claude 或 Visual Studio Code 等 MCP 客户端中,以自然语言指示 LLM 与 Apache AGE 图数据库进行交互。例如,您可以向 Claude 提出类似以下的问题:

  • "Show me graphs on the server" (展示服务器上的图)
  • "Show me a graph schema of FROM_AGEFREIGHTER" (展示 FROM_AGEFREIGHTER 图的结构)
  • "Pick up a customer and calculate the amount of its purchase." (查找一个客户并计算其购买总额)
  • "Find another customer buying more than Lisa" (查找另一个购买额超过 Lisa 的客户)
  • "OK. Please make a new graph named MCP_Test" (创建一个名为 MCP_Test 的新图,如果启用了写入操作)
  • "Make a node labeled 'Person' with properties, name=Rio, age=52" (创建一个标签为 'Person',属性 name=Rio, age=52 的节点,如果启用了写入操作)
  • "Can you put a relation, 'Rio WORK at Microsoft'?" (创建 'Rio WORK at Microsoft' 的关系, 如果启用了写入操作)
  • "Delete the graph, MCP_Test" (删除名为 MCP_Test 的图, 如果启用了写入操作)

LLM 将会调用 'age-mcp-server' 提供的工具,将自然语言请求转换为 Cypher 查询,并在 Apache AGE 数据库上执行,最终将结果返回给您。

注意: 默认情况下,'age-mcp-server' 禁止写入操作 (如 'create-age-graph', 'write-age-cypher' 等),以确保数据安全。如果您需要启用写入操作,需要在服务器配置的 'args' 中添加 '--allow-write' 参数。请谨慎启用写入操作,并确保您了解潜在的安全风险。

信息

分类

数据库与文件