MCP服务-ArangoDB
一个基于 TypeScript 的服务器,用于通过模型上下文协议与 ArangoDB 交互,支持数据库操作并可与 Claude、VSCode 扩展等工具集成,从而实现高效的数据管理。
可用工具 (7 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
arango_query 2 个参数 需填 1 项
Execute an AQL query
必填参数:query
arango_insert 2 个参数 需填 2 项
Insert a document into a collection
必填参数:collection、document
arango_update 3 个参数 需填 3 项
Update a document in a collection
必填参数:collection、key、update
arango_remove 2 个参数 需填 2 项
Remove a document from a collection
必填参数:collection、key
arango_backup 3 个参数 需填 1 项
Backup collections to JSON files.
必填参数:outputDir
arango_list_collections
List all collections in the database
该工具无需必填参数,直接调用即可
arango_create_collection 3 个参数 需填 1 项
Create a new collection in the database
必填参数:name
服务介绍
ArangoDB 的 MCP 服务器
这是一个为 ArangoDB 提供的 Model Context Protocol 服务器。
这是一个基于 TypeScript 的 MCP 服务器,通过 ArangoDB 提供数据库交互能力。它实现了核心数据库操作,并允许通过 MCP 工具无缝集成到 ArangoDB 中。您可以使用 Claude 应用程序以及与 mcp 类似的 VSCode 扩展(如 Cline)来使用它!
功能
工具
-
arango_query- 执行 AQL 查询- 需要提供一个 AQL 查询字符串作为必需参数
- 可选地接受绑定变量用于参数化查询
- 以 JSON 格式返回查询结果
-
arango_insert- 向集合中插入文档- 需要提供集合名称和文档对象作为必需参数
- 如果未提供,则自动生成文档键
- 返回创建的文档元数据
-
arango_update- 更新现有文档- 需要提供集合名称、文档键和更新对象作为必需参数
- 返回更新后的文档元数据
-
arango_remove- 从集合中删除文档- 需要提供集合名称和文档键作为必需参数
- 返回已删除的文档元数据
-
arango_backup- 将所有集合备份到 JSON 文件- 需要提供输出目录路径作为必需参数
- 为每个集合创建包含当前数据的 JSON 文件
- 适用于数据备份和迁移
-
arango_list_collections- 列出数据库中的所有集合- 返回包括名称、ID 和类型的集合信息数组
-
arango_create_collection- 在数据库中创建新的集合- 需要提供集合名称作为必需参数
- 可选地指定集合类型(文档或边集合)
- 配置写操作的 waitForSync 行为
- 返回集合信息,包括名称、类型和状态
数据库结构
该服务器对数据库结构无特定要求,只要它们遵循 ArangoDB 的文档和边集合模型,就可以使用任何集合名称或结构。
开发
安装依赖项:
npm run build
开发时启用自动重建:
npm run watch
安装
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 ArangoDB:
npx -y @smithery/cli install @ravenwits/mcp-server-arangodb --client claude
要与 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 是 ArangoDB 本地开发的默认端口)ARANGO_DATABASE- 数据库名称ARANGO_USERNAME- 数据库用户ARANGO_PASSWORD- 数据库密码
使用示例
你可以提供任何有意义的提示,Claude 会尝试执行相应的函数。
一些示例提示:
- "列出数据库中的所有集合"
- "查询所有用户"
- "在 'users' 集合中插入一个名为 'John Doe' 且邮箱为 'john@example.com' 的新文档"
- "更新键为 '123456' 或姓名为 'Jane Doe' 的文档,将年龄更改为 48"
- "创建一个名为 'products' 的新集合"
使用 Claude 应用程序

使用 Cline VSCode 扩展

查询所有用户:
{
"query": "FOR user IN users RETURN user"
}
插入新文档:
{
"collection": "users",
"document": {
"name": "John Doe",
"email": "john@example.com"
}
}
更新文档:
{
"collection": "users",
"key": "123456",
"update": {
"name": "Jane Doe"
}
}
删除文档:
{
"collection": "users",
"key": "123456"
}
列出所有集合:
{} // No parameters required
备份数据库集合:
{
"outputDir": "./backup" // Specify an absolute output directory path for the backup files (optional)
"collection": "users" // Specify a collection name to backup (optional) If no collection name is provided, all collections will be backed up
"docLimit": 1000 // Specify the maximum number of documents to backup per collection (optional), if not provided, all documents will be backed up (not having a limit might cause timeout for large collections)
}
创建新集合:
{
"name": "products",
"type": 2, // 2 for document collection, 3 for edge collection (optional, defaults to document collection)
"waitForSync": false // Optional, defaults to false
}
调试
由于 MCP 服务器通过 stdio 进行通信,调试可能会比较困难。我们建议在开发时使用 MCP Inspector:
npm run inspector
Inspector 将提供一个 URL,以便您在浏览器中访问调试工具。
许可证
该项目根据 MIT 许可证授权 - 请参阅 LICENSE 文件以获取详细信息。