使用说明
项目简介
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) 进行安装,步骤简洁方便:
-
确保已安装 Homebrew: 如果您的 macOS 或 Linux 系统上没有安装 Homebrew,请先访问 https://brew.sh/ 按照指引进行安装。
-
添加仓库 tap: 在终端中执行以下命令,添加 'rioriost/age-mcp-server' 仓库:
brew tap rioriost/age-mcp-server -
安装 age-mcp-server: 执行以下命令安装 'age-mcp-server':
brew install age-mcp-server安装完成后,'age-mcp-server' 命令将被添加到您的系统路径中。
服务器配置
MCP 服务器需要配置在 MCP 客户端中,例如 Claude 或 Visual Studio Code。客户端需要知道如何启动和连接到 MCP 服务器。以下是针对 Claude 桌面客户端的配置示例 (macOS 环境,Homebrew 安装):
-
找到 Claude 配置文件: macOS 系统中,'claude_desktop_config.json' 文件通常位于 '~/Library/Application Support/Claude/' 目录。
-
编辑配置文件: 打开 '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': 数据库密码。请替换为实际密码。 请注意安全保管您的数据库密码。
- '"--pg-con-str"': PostgreSQL 数据库连接字符串,用于连接到您的 Apache AGE 数据库实例。
更安全的密码管理:
为了更安全地管理密码,您可以不直接在配置文件中写入密码,而是设置 'PGPASSWORD' 环境变量,或者使用 Azure CLI 认证 (如果您的 PostgreSQL 数据库在 Azure 上)。具体方法请参考仓库 README 文档的 "Usage with Claude" -> "If you need to hide the password or to use Entra ID" 部分。
-
重启 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' 参数。请谨慎启用写入操作,并确保您了解潜在的安全风险。
信息
分类
数据库与文件