Skip to main content
Glama
da-okazaki
by da-okazaki

MCP Neo4j 서버

대장간 배지

Neo4j 그래프 데이터베이스와 Claude Desktop 간의 통합을 제공하는 MCP 서버로, 자연어 상호작용을 통해 그래프 데이터베이스 작업이 가능합니다.

빠른 시작

npx를 사용하여 이 MCP 서버를 직접 실행할 수 있습니다.

지엑스피1

또는 Claude Desktop 구성에 추가하세요.

{
  "mcpServers": {
    "neo4j": {
      "command": "npx",
      "args": ["@alanse/mcp-neo4j-server"],
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USERNAME": "neo4j",
        "NEO4J_PASSWORD": "your-password"
      }
    }
  }
}

Related MCP server: Notion MCP Server

특징

이 서버는 Neo4j 데이터베이스와 상호 작용하기 위한 도구를 제공합니다.

도구

  • execute_query : Neo4j 데이터베이스에서 Cypher 쿼리를 실행합니다.

    • 모든 유형의 Cypher 쿼리(READ, CREATE, UPDATE, DELETE)를 지원합니다.

    • 구조화된 형식으로 쿼리 결과를 반환합니다.

    • 주입 공격을 방지하기 위해 매개변수를 전달할 수 있습니다.

  • create_node : 그래프 데이터베이스에 새 노드를 생성합니다.

    • 노드 레이블 및 속성 지정

    • 내부 ID와 함께 생성된 노드를 반환합니다.

    • 속성에 대한 모든 Neo4j 데이터 유형을 지원합니다.

  • create_relationship : 두 개의 기존 노드 간의 관계를 생성합니다.

    • 관계 유형 및 방향 정의

    • 관계에 속성 추가

    • 소스 및 대상 노드에 대한 노드 ID가 필요합니다.

설치

Smithery를 통해 설치

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

npx -y @smithery/cli install @alanse/mcp-neo4j-server --client claude

개발을 위해

  1. 저장소를 복제합니다.

git clone https://github.com/da-okazaki/mcp-neo4j-server.git
cd mcp-neo4j-server
  1. 종속성 설치:

npm install
  1. 프로젝트를 빌드하세요:

npm run build

구성

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

  • NEO4J_URI : Neo4j 데이터베이스 URI(기본값: bolt://localhost:7687)

  • NEO4J_USERNAME : Neo4j 사용자 이름(기본값: neo4j)

  • NEO4J_PASSWORD : Neo4j 비밀번호 (필수)

사용 예

자연어를 사용하여 Neo4j 데이터베이스와 상호 작용하는 방법의 예는 다음과 같습니다.

데이터 쿼리

다음과 같은 질문을 할 수 있습니다.

  • "영업부서의 모든 직원을 보여주세요"

  • "가장 나이 많은 고객 5명을 찾으세요"

  • "지난 달에 3개 이상의 제품을 구매한 사람은 누구입니까?"

예:

User: "Show me all employees in the Sales department"

Claude: Let me query the database for Sales department employees.

[Executes query internally: MATCH (e:Employee)-[:WORKS_IN]->(d:Department {name: 'Sales'}) RETURN e.name, e.position]

Result:
- John Smith (Sales Manager)
- Sarah Johnson (Sales Representative)
- Mike Brown (Account Executive)

데이터 생성

다음과 같은 지시를 내릴 수 있습니다.

  • "30세인 John Doe라는 새로운 사람을 추가하세요"

  • "가격이 24.99달러인 '프리미엄 커피'라는 제품을 만들어 보세요."

  • "연구개발"이라는 새로운 부서를 추가하세요.

예:

User: "Add a new person named John Doe who is 30 years old"

Claude: I'll create a new Person node with the provided information.

[Creates node internally with label 'Person' and properties {name: 'John Doe', age: 30}]

Result: Created new person node with ID: 123

관계 만들기

다음과 같은 관계를 요청할 수 있습니다.

  • "존 도우와 제인 스미스를 친구로 만드세요"

  • "제품 A를 제품 B의 구성요소로 설정"

  • "John Doe를 영업 부서에 배정하세요"

예:

User: "Make John Doe friends with Jane Smith"

Claude: I'll create a friendship relationship between these two people.

[Creates relationship internally: MATCH (a:Person {name: 'John Doe'}), (b:Person {name: 'Jane Smith'})
CREATE (a)-[:FRIENDS_WITH {since: '2024-01-05'}]->(b)]

Result: Created friendship relationship between John Doe and Jane Smith

복잡한 작업

자연어로 더 복잡한 작업을 수행할 수 있습니다.

  • "뉴욕에 거주하는 고객이 구매한 모든 제품을 찾으세요"

  • "John Doe의 친구의 친구를 보여주세요"

  • "각 부서 직원들의 평균 연령을 계산하세요"

예:

User: "Find all products purchased by customers who live in New York"

Claude: I'll query the database for this information.

[Executes query internally:
MATCH (c:Customer {city: 'New York'})-[:PURCHASED]->(p:Product)
RETURN c.name, collect(p.name) as products]

Result:
- Alice Wilson: [Premium Coffee, Tea Set, Cookies]
- Bob Miller: [Premium Coffee, Water Bottle]

테스트

테스트 모음을 실행합니다.

npm test

특허

MIT

Available Tools

3 tools
create_nodeB

Create a new node in Neo4j

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYesNode label
propertiesYesNode properties

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so description must disclose behavioral traits; but it only states the action without mentioning side effects, permissions, constraints, or return value.

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

Conciseness4/5

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

Single sentence is concise and front-loaded, but more context could be added without sacrificing 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 tool's complexity (2 params, no output schema, no annotations), the description is too minimal; it lacks details on behavior, error handling, and return values.

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 coverage is 100% with descriptions for 'label' and 'properties'; the description adds no extra meaning beyond the schema.

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

Purpose5/5

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

The description 'Create a new node in Neo4j' uses a specific verb and resource, clearly distinguishing it from sibling tools like create_relationship and execute_query.

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?

No guidance on when to use this tool versus alternatives, no when-not-to-use or prerequisites provided.

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

create_relationshipB

Create a relationship between two nodes

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesRelationship type
toNodeIdYesID of the target node
fromNodeIdYesID of the source node
propertiesNoRelationship properties

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It only states the action without revealing constraints, failure conditions, or required privileges.

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

Conciseness4/5

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

Single sentence is very concise, but lacks necessary detail. However, it is not verbose, so it earns a high score for conciseness.

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 4 parameters including a nested object and no output schema, the description is too brief. It should explain directionality, required type, and optional properties.

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 covers 100% of parameters, so baseline is 3. Description adds no additional meaning beyond the schema, such as explaining relationship direction or properties usage.

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

Purpose5/5

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

Description clearly states verb 'Create' and resource 'relationship between two nodes', which is specific and distinct from sibling tools that create nodes or execute 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?

No guidance on when to use this tool vs alternatives like execute_query for creating relationships. No mention of prerequisites or when not to use it.

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

execute_queryC

Execute a Cypher query on Neo4j database

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesCypher query to execute
paramsNoQuery parameters

TDQS

C2.7/5.0
Behavior1/5

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

With no annotations, the description must disclose behavioral traits but fails to do so. It omits information about side effects (e.g., mutation vs read), error behavior, or required permissions.

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

Conciseness4/5

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

The description is a single, clear sentence with no extraneous words. It is efficient but could be slightly expanded without losing conciseness.

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 lack of output schema and annotations, the description is incomplete. It does not explain return values, error handling, or important behavioral context for a general query executor.

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 baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions.

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 'Execute' and the resource 'a Cypher query on Neo4j database'. It distinguishes from sibling tools (create_node, create_relationship) by indicating general query execution rather than specific node/relationship creation.

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?

No guidance is provided on when to use this tool versus the siblings. The description does not mention context or exclusions, leaving the agent without direction for tool selection.

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. 3 tool updatesv1.0.1
    • First observedcreate_node
    • First observedcreate_relationship
    • First observedexecute_query

TDQS

B3.3/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct operation: creating nodes, creating relationships, and executing arbitrary queries. There is no overlap.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case: create_node, create_relationship, execute_query.

Tool Count4/5

With 3 tools, the server is slightly small but still reasonable for a focused database interface. The tools cover essential create and query operations.

Completeness3/5

The server lacks direct update and delete operations on nodes/relationships. While execute_query can handle these via Cypher, it creates a dependency on raw queries, which is a notable gap.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A server that enables interaction with PostgreSQL, MySQL, MariaDB, or SQLite databases through Claude Desktop using natural language queries.
    1
    -
  • A
    license
    B
    quality
    F
    maintenance
    This server enables natural language interaction between a user and their Kuzu databases using clients like Claude Desktop or Cursor, allowing LLMs to retrieve the database schema, execute Cypher queries, create nodes, and establish relationships in the graph database.
    2
    42
    MIT