
MCP Server for ArangoDB

2025.02.17
0
TypeScript数据库服务开发工具数据库
ravenwits_mcp-server-arangodb 是一个基于 TypeScript 的 MCP(Model Context Protocol)服务器,专为 ArangoDB 设计。它提供了与 ArangoDB 数据库交互的核心功能,包括执行 AQL 查询、插入、更新、删除文档,以及备份数据库等操作。该服务器可以与 Claude 应用和 VSCode 的 Cline 扩展无缝集成,支持通过 MCP 工具进行数据库操作。
View on GitHub
Overview
基本能力
产品定位
ravenwits_mcp-server-arangodb 是一个专为 ArangoDB 设计的 MCP 服务器,旨在通过 MCP 协议提供数据库交互能力。
核心功能
- arango_query:执行 AQL 查询,支持参数化查询,返回 JSON 格式的查询结果。
- arango_insert:向集合中插入文档,自动生成文档键(如果未提供),返回创建的文档元数据。
- arango_update:更新现有文档,返回更新后的文档元数据。
- arango_remove:从集合中删除文档,返回删除的文档元数据。
- arango_backup:将所有集合备份到 JSON 文件,支持数据备份和迁移。
- arango_list_collections:列出数据库中的所有集合,返回集合信息数组。
适用场景
- 需要与 ArangoDB 数据库交互的应用开发。
- 数据库备份和迁移。
- 通过 Claude 应用或 VSCode 扩展进行数据库操作。
工具列表
- arango_query:执行 AQL 查询。
- arango_insert:插入文档到集合。
- arango_update:更新集合中的文档。
- arango_remove:从集合中删除文档。
- arango_backup:备份数据库集合到 JSON 文件。
- arango_list_collections:列出数据库中的所有集合。
常见问题解答
- 调试困难:由于 MCP 服务器通过 stdio 通信,调试可能较为困难。推荐使用 MCP Inspector 进行开发调试。
使用教程
使用依赖
安装依赖:
npm run build
开发时自动重建:
npm run watch
安装教程
- 与 Claude Desktop 集成:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
-
Windows:
%APPDATA%/Claude/claude_desktop_config.json
-
与 Cline VSCode 扩展集成:
- MacOS:
~/Library/Application Support/Code/User/globalStorage/cline.cline/config.json
- Windows:
%APPDATA%/Code/User/globalStorage/cline.cline/config.json
添加以下配置到 mcpServers
部分:
{
"mcpServers": {
"arango": {
"command": "node",
"args": ["/path/to/arango-server/build/index.js"],
"env": {
"ARANGO_URL": "your_database_url",
"ARANGO_DATABASE": "your_database_name",
"ARANGO_USERNAME": "your_username",
"ARANGO_PASSWORD": "your_password"
}
}
}
}
环境变量
ARANGO_URL
:ArangoDB 服务器 URL(默认端口 8529)。ARANGO_DATABASE
:数据库名称。ARANGO_USERNAME
:数据库用户名。ARANGO_PASSWORD
:数据库密码。
调试方式
使用 MCP Inspector 进行调试:
npm run inspector
示例用法
- 查询所有用户:
{
"query": "FOR user IN users RETURN user"
}
- 插入新文档:
{
"collection": "users",
"document": {
"name": "John Doe",
"email": "[email protected]"
}
}
- 更新文档:
{
"collection": "users",
"key": "123456",
"update": {
"name": "Jane Doe"
}
}
- 删除文档:
{
"collection": "users",
"key": "123456"
}
- 列出所有集合:
{}
- 备份数据库集合:
{
"outputDir": "./backup",
"collection": "users",
"docLimit": 1000
}