MCP Server for ArangoDB

MCP Server for ArangoDB

site icon
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

安装教程

  1. 与 Claude Desktop 集成
  2. MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
  3. Windows:%APPDATA%/Claude/claude_desktop_config.json

  4. 与 Cline VSCode 扩展集成

  5. MacOS:~/Library/Application Support/Code/User/globalStorage/cline.cline/config.json
  6. 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
}

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。