Skip to main content
Glama
ravenwits

MCP Server for ArangoDB

by ravenwits

ArangoDB용 MCP 서버

대장간 배지

ArangoDB용 모델 컨텍스트 프로토콜 서버

ArangoDB를 통해 데이터베이스 상호작용 기능을 제공하는 TypeScript 기반 MCP 서버입니다. 핵심 데이터베이스 작업을 구현하고 MCP 도구를 통해 ArangoDB와 원활하게 통합할 수 있습니다. Claude 앱과 함께 사용할 수 있으며, Cline처럼 MCP와 호환되는 VSCode 확장 프로그램도 사용할 수 있습니다!

특징

도구

  • arango_query - AQL 쿼리 실행

    • 필수 매개변수로 AQL 쿼리 문자열을 사용합니다.

    • 매개변수화된 쿼리에 대한 바인드 변수를 선택적으로 허용합니다.

    • 쿼리 결과를 JSON으로 반환합니다.

  • arango_insert - 컬렉션에 문서 삽입

    • 필수 매개변수로 컬렉션 이름과 문서 객체를 사용합니다.

    • 제공되지 않으면 자동으로 문서 키가 생성됩니다.

    • 생성된 문서 메타데이터를 반환합니다.

  • arango_update - 기존 문서 업데이트

    • 필수 매개변수로 컬렉션 이름, 문서 키 및 업데이트 객체를 사용합니다.

    • 업데이트된 문서 메타데이터를 반환합니다.

  • arango_remove - 컬렉션에서 문서 제거

    • 필수 매개변수로 컬렉션 이름과 문서 키를 사용합니다.

    • 제거된 문서 메타데이터를 반환합니다.

  • arango_backup - 모든 컬렉션을 JSON 파일로 백업

    • 출력 디렉토리 경로를 필수 매개변수로 사용합니다.

    • 현재 데이터를 사용하여 각 컬렉션에 대한 JSON 파일을 생성합니다.

    • 데이터 백업 및 마이그레이션 목적으로 유용합니다.

  • arango_list_collections - 데이터베이스의 모든 컬렉션을 나열합니다.

    • 이름, ID, 유형을 포함한 컬렉션 정보 배열을 반환합니다.

  • arango_create_collection - 데이터베이스에 새 컬렉션을 만듭니다.

    • 필수 매개변수로 컬렉션 이름을 사용합니다.

    • 선택적으로 컬렉션 유형(문서 또는 에지 컬렉션)을 지정합니다.

    • 쓰기 작업에 대한 waitForSync 동작 구성

    • 이름, 유형, 상태를 포함한 컬렉션 정보를 반환합니다.

Related MCP server: SQL MCP Server

설치

NPM을 통해 설치

NPM을 통해 arango-server 전역적으로 설치하려면 다음 명령을 실행하세요.

지엑스피1

NPX를 통해 실행

설치 없이 arango-server 직접 실행하려면 다음 명령을 사용하세요.

npx arango-server

VSCode 에이전트 구성

VSCode Copilot 에이전트와 함께 arango-server 사용하려면 최소 VSCode 1.99.0이 설치되어 있어야 하며 다음 단계를 따라야 합니다.

  1. MCP 구성 파일을 생성하거나 편집합니다 .

    • 작업 공간별 구성 : 작업 공간에서 .vscode/mcp.json 파일을 만들거나 편집합니다.

    • 사용자별 구성 : 선택적으로, VS Code 사용자 설정의 설정(mcp) 에서 서버를 지정하여 모든 작업 공간에서 MCP 서버를 활성화합니다.

      팁: 구성 파일을 설정하는 방법에 대한 자세한 내용은 여기에서 VSCode의 MCP 구성 설명서를 참조하세요.

  2. 다음 구성을 추가합니다 .

    {
        "servers": {
            "arango-mcp": {
                "type": "stdio",
                "command": "npx",
                "args": ["arango-server"],
                "env": {
                    "ARANGO_URL": "http://localhost:8529",
                    "ARANGO_DB": "v20",
                    "ARANGO_USERNAME": "app",
                    "ARANGO_PASSWORD": "75Sab@MYa3Dj8Fc"
                }
            }
        }
    }
  3. MCP 서버를 시작합니다 .

    • VSCode에서 명령 팔레트를 엽니다( Ctrl+Shift+P 또는 Mac에서는 Cmd+Shift+P ).

    • MCP: Start Server 명령을 실행하고 목록에서 arango-mcp 선택합니다.

  4. 서버를 확인하세요 :

    • VSCode에서 채팅 보기를 열고 에이전트 모드로 전환합니다.

    • Tools 버튼을 사용하여 arango-server 도구를 사용할 수 있는지 확인하세요.

Smithery를 통해 설치

Smithery를 통해 Claude Desktop에 ArangoDB를 자동으로 설치하려면:

npx -y @smithery/cli install @ravenwits/mcp-server-arangodb --client claude

Claude Desktop과 함께 사용하려면

이동: Settings > Developer > Edit Config 또는

  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • 윈도우: %APPDATA%/Claude/claude_desktop_config.json

Cline VSCode 확장 프로그램과 함께 사용하려면

이동: Cline Extension > MCP Servers > Edit Configuration 또는

  • MacOS: ~/Library/Application Support/Code/User/globalStorage/cline.cline/config.json

  • 윈도우: %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_DB": "your_database_name",
				"ARANGO_USERNAME": "your_username",
				"ARANGO_PASSWORD": "your_password"
			}
		}
	}
}

환경 변수

서버에는 다음과 같은 환경 변수가 필요합니다.

  • ARANGO_URL - ArangoDB 서버 URL(참고: 8529는 로컬 개발을 위한 ArangoDB의 기본 포트입니다)

  • ARANGO_DB - 데이터베이스 이름

  • ARANGO_USERNAME - 데이터베이스 사용자

  • ARANGO_PASSWORD - 데이터베이스 비밀번호

용법

의미 있는 프롬프트를 제공하면 클로드가 적절한 기능을 실행하려고 할 것입니다.

몇 가지 예시 프롬프트:

  • "데이터베이스의 모든 컬렉션을 나열합니다"

  • "모든 사용자 쿼리"

  • "이름이 'John Doe'인 새 문서를 삽입하고 ' john@example.com '을 'users' 컬렉션으로 이메일로 보냅니다."

  • "키 '123456' 또는 이름 'Jane Doe'로 문서를 업데이트하여 나이를 48세로 변경하세요."

  • "'제품'이라는 이름의 새 컬렉션을 만듭니다."

Claude 앱과 함께 사용

Claude App과 함께 ArangoDB MCP 서버를 사용하는 데모

Cline VSCode 확장을 사용한 Uasge

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": "document", // "document" or "edge" (optional, defaults to "document")
  "waitForSync": false // Optional, defaults to false
}

참고: 이 서버는 데이터베이스 구조에 구애받지 않으며 ArangoDB의 문서 및 에지 컬렉션 모델을 따르는 한 모든 컬렉션 이름이나 구조로 작업할 수 있습니다.

부인 성명

개발용으로만 사용 가능

이 도구는 로컬 개발 환경 전용으로 설계되었습니다. 기술적으로는 프로덕션 데이터베이스에 연결할 수 있지만, 심각한 보안 위험을 초래할 수 있으므로 권장하지 않습니다. 저희는 관심사 분리(Separation of Concerns)를 유지하고 프로덕션 데이터를 보호하기 위해 개발 데이터베이스에만 이 도구를 사용합니다.

개발

  1. 저장소를 복제합니다

  2. 종속성 설치:

    npm run build
  3. 자동 재빌드를 사용한 개발의 경우:

    npm run watch

디버깅

MCP 서버는 stdio를 통해 통신하므로 디버깅이 어려울 수 있습니다. 개발 시 MCP Inspector를 사용하여 디버깅하는 것이 좋습니다.

npm run inspector

검사기는 브라우저에서 디버깅 도구에 액세스할 수 있는 URL을 제공합니다.

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

Available Tools

7 tools
arango_backupB
Read-only

Backup collections to JSON files.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputDirYesAn absolute directory path to store backup files./backup
collectionNoCollection name to backup. If not provided, backs up all collections.
docLimitNoLimit the number of documents to backup. If not provided, backs up all documents.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, indicating a safe read operation. The description adds context about creating backup files (output behavior) but doesn't detail side effects like file system changes, performance impact, or error handling. With annotations covering safety, it adds some value but lacks rich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a backup tool with readOnlyHint annotation and no output schema, the description is minimally adequate. It covers the core action but lacks details on output format, error scenarios, or integration with sibling tools. Given the complexity and annotation coverage, it's complete enough but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are fully documented in the schema. The description mentions 'collections' and 'JSON files' but doesn't add syntax, format, or usage details beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Backup') and target ('collections to JSON files'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'arango_list_collections' or 'arango_query' which might also involve collection data retrieval, though the backup purpose is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing considerations, or compare it to sibling tools like 'arango_query' for data extraction. Usage is implied by the name but not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arango_create_collectionB
Destructive

Create a new collection in the database

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the collection to create
typeNoType of collection to create ("document" or "edge")document
waitForSyncNoIf true, wait for data to be synchronized to disk before returning

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide destructiveHint=true, indicating this is a mutation operation. The description adds minimal context by implying a write action ('Create'), but doesn't elaborate on behavioral aspects like permissions required, idempotency, error handling, or system impact beyond what annotations cover. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it easy to parse quickly while conveying the essential action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive creation tool with no output schema, the description is minimally adequate. It covers the basic action but lacks details on return values, error conditions, or integration with sibling tools. Given the annotations handle safety profiling, the description meets a bare minimum but doesn't provide rich contextual guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all parameters (name, type, waitForSync) well-documented in the schema. The description adds no additional meaning about parameters, such as explaining collection naming rules, implications of 'document' vs 'edge' types, or performance effects of waitForSync. Baseline score of 3 is appropriate given the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and resource ('new collection in the database'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from siblings like 'arango_list_collections' (which lists rather than creates) or 'arango_insert' (which inserts data rather than creating structures), missing full sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing database access), compare to siblings like 'arango_list_collections' for checking existing collections, or specify scenarios where collection creation is appropriate versus other operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arango_insertB
Destructive

Insert a document into a collection

ParametersJSON Schema
NameRequiredDescriptionDefault
collectionYesCollection name
documentYesDocument to insert

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide destructiveHint=true, indicating this is a write operation. The description adds minimal context by specifying 'Insert a document,' which aligns with the destructive nature but doesn't elaborate on behavioral traits like error handling, permissions needed, or idempotency. It neither contradicts nor significantly enriches the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with zero waste, front-loading the core action. It's appropriately sized for a simple tool, avoiding unnecessary elaboration while clearly stating the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple insertion with 2 parameters), annotations cover destructive behavior, and schema fully documents inputs. However, without an output schema, the description doesn't explain return values or success/failure responses, leaving gaps in completeness for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear parameter descriptions in the schema. The description doesn't add meaning beyond the schema, such as explaining document structure constraints or collection naming rules. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Insert') and target ('a document into a collection'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like arango_update or arango_remove, which also modify collections, leaving room for improvement in distinguishing its specific role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives like arango_update or arango_remove, nor does it mention prerequisites such as collection existence. It lacks explicit context for usage decisions, relying solely on the tool name and basic purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arango_list_collectionsB
Read-only

List all collections in the database

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, which the description aligns with by implying a read operation ('List'). The description adds minimal behavioral context beyond this, such as not specifying if it returns system collections or pagination details. No contradiction exists, but with annotations covering safety, the description offers limited extra value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It front-loads the essential information ('List all collections'), making it highly efficient and easy to parse, which is ideal for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with annotations, the description is minimally adequate. However, it lacks output details (no schema provided) and doesn't address potential complexities like collection types or ordering. It meets basic needs but could be more informative given the tool's role among siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately omits parameter details, focusing on the tool's purpose without redundancy. A baseline of 4 is applied since no parameters exist to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and resource ('all collections in the database'), making the tool's purpose immediately understandable. However, it doesn't explicitly differentiate from siblings like 'arango_query' which might also list collections, though the verb 'List' suggests a straightforward retrieval operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, compare to siblings like 'arango_query' for more complex queries, or specify contexts where listing collections is appropriate, leaving usage decisions ambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arango_queryC

Execute an AQL query

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesAQL query string
bindVarsNoQuery bind variables

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint: false, implying potential mutations, but the description doesn't disclose behavioral traits beyond this. It doesn't explain that AQL queries can be read-only or include writes, what permissions are needed, potential side effects, or error handling. With annotations covering only the read/write hint, the description adds minimal context, leaving significant gaps in understanding the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence, 'Execute an AQL query', which is front-loaded and wastes no words. Every part of the sentence is necessary to convey the core purpose, making it efficient and well-structured for its brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of executing arbitrary AQL queries, the lack of output schema, and minimal annotations, the description is incomplete. It doesn't explain return values, error cases, or how results are structured, which is critical for a query tool. With no output schema and only basic annotations, the description should provide more context to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear documentation for 'query' and 'bindVars' parameters. The description adds no additional meaning beyond what the schema provides, such as examples of AQL syntax or how bindVars are used. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Execute an AQL query' states the action (execute) and resource (AQL query), making the purpose clear. However, it doesn't differentiate from sibling tools like arango_insert or arango_update, which also execute database operations but with different intents. The description is vague about what type of execution this involves (e.g., read vs. write queries).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that this is for arbitrary AQL queries, while siblings like arango_insert or arango_update are for specific operations, or that it might be preferred for complex queries. There are no explicit when/when-not instructions or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arango_removeB
Destructive

Remove a document from a collection

ParametersJSON Schema
NameRequiredDescriptionDefault
collectionYesCollection name
keyYesDocument key

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare 'destructiveHint: true', indicating this is a destructive operation. The description adds minimal value by confirming it's a removal action, but it does not disclose additional behavioral traits such as whether the removal is permanent, if it requires specific permissions, or what happens on failure (e.g., error handling). With annotations covering the destructive nature, a baseline score is appropriate, as the description provides some context but not rich behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence ('Remove a document from a collection') that efficiently conveys the core action without unnecessary words. It is front-loaded and wastes no space, making it easy for an agent to parse quickly and understand the tool's intent at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a destructive operation with 2 parameters), the annotations cover the destructive hint, but there is no output schema to explain return values. The description is minimal and does not address what the tool returns (e.g., success confirmation, error details) or other contextual aspects like rate limits or side effects. It is adequate as a basic description but lacks completeness for effective agent use without additional inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, clearly documenting both parameters ('collection' and 'key') with their types and purposes. The description does not add any semantic details beyond what the schema provides, such as examples or constraints (e.g., format of the key). Since the schema does the heavy lifting, a baseline score of 3 is justified, as the description neither compensates nor enhances parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove') and the resource ('a document from a collection'), making the purpose immediately understandable. However, it does not differentiate this tool from its sibling 'arango_update' (which might also modify documents) or specify what type of removal occurs (e.g., permanent deletion vs. soft delete), leaving room for improvement in sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'arango_update' for modifying documents or 'arango_query' for retrieving them. It lacks context about prerequisites (e.g., needing an existing document key) or exclusions, leaving the agent to infer usage from the tool name and parameters alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

arango_updateB
Destructive

Update a document in a collection

ParametersJSON Schema
NameRequiredDescriptionDefault
collectionYesCollection name
keyYesDocument key
updateYesUpdate object

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, indicating this is a mutation operation. The description adds minimal context by specifying it updates a document, but doesn't elaborate on behavioral traits like whether updates are partial/complete, if it returns the updated document, error handling, or permissions required. With annotations covering the destructive nature, it earns a baseline score for not contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action, making it easy to parse quickly, which is ideal for conciseness in tool descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (mutation with 3 params, no output schema) and annotations only covering destructiveness, the description is incomplete. It lacks details on return values, error cases, or how it differs from siblings, leaving gaps for an agent to understand full usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all three parameters (collection, key, update). The description adds no additional meaning beyond what's in the schema, such as examples or constraints on the update object. This meets the baseline for high schema coverage without extra param info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Update') and resource ('a document in a collection'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like arango_insert or arango_remove, which also operate on documents, so it misses full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing document key), exclusions, or comparisons to siblings like arango_insert (for creation) or arango_remove (for deletion), leaving the agent with no contextual usage cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updates
    • First observedarango_backup
    • First observedarango_create_collection
    • First observedarango_insert
    • First observedarango_list_collections
    • First observedarango_query
    • First observedarango_remove
    • First observedarango_update

TDQS

A3.5/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific operations in ArangoDB: backup, collection creation, document insertion, listing collections, query execution, document removal, and document update. There is no overlap or ambiguity between these functions.

Naming Consistency5/5

All tools follow a consistent 'arango_verb_noun' pattern with snake_case, such as arango_backup, arango_create_collection, and arango_query. This predictable naming makes it easy to understand and navigate the tool set.

Tool Count5/5

With 7 tools, this server is well-scoped for database operations, covering essential CRUD actions, querying, and backup. Each tool earns its place without feeling too sparse or bloated.

Completeness4/5

The tool set provides strong coverage for core database operations, including CRUD for documents, collection management, and querying. A minor gap is the lack of tools for more advanced features like index management or user administration, but agents can handle basic workflows effectively.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    A TypeScript-based MCP server that enables AI assistants to interact with CouchDB databases through a simple interface, providing tools for creating, reading, and querying databases and documents.
    5
    5
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A TypeScript implementation of a Model Context Protocol server that enables language models to securely query PostgreSQL databases, including those behind SSH bastion tunnels.
    10 npm
    1
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A TypeScript implementation of a Model Context Protocol server that uses Server-Sent Events for real-time communication and Bearer Token authentication to enable secure interaction with LLM clients like Claude Desktop.
    -