M

MCP服务-ArangoDB

@ravenwits/mcp-server-arangodb
0 Stars 325 次浏览 ravenwits 更新于 2026-08-23

一个基于 TypeScript 的服务器,用于通过模型上下文协议与 ArangoDB 交互,支持数据库操作并可与 Claude、VSCode 扩展等工具集成,从而实现高效的数据管理。

该服务暂未提供标准配置,请参考 README 手动接入

可用工具 (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 服务器

smithery 徽章

这是一个为 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 应用程序

使用 Claude 应用程序与 ArangoDB MCP 服务器

使用 Cline VSCode 扩展

使用 Cline VSCode 扩展与 ArangoDB MCP 服务器

查询所有用户:

{
  "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 文件以获取详细信息。

相关 MCP 服务