MCP Neo4j Server

Integre o banco de dados gráfico Neo4j com clientes por meio de interações em linguagem natural.

Documentação

MCP Neo4j Server

smithery badge

Um servidor MCP que fornece integração entre o banco de dados de grafos Neo4j e o Claude Desktop, permitindo operações de banco de dados de grafos por meio de interações em linguagem natural.

Neo4j Server MCP server

Início Rápido

Você pode executar este servidor MCP diretamente usando npx:

npx @alanse/mcp-neo4j

Ou adicione-o à configuração do Claude Desktop:

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

Recursos

Este servidor fornece ferramentas para interagir com um banco de dados Neo4j:

Suporte ao Neo4j Enterprise

Este servidor agora suporta a conexão a bancos de dados específicos no Neo4j Enterprise Edition. Por padrão, ele se conecta ao banco de dados "neo4j", mas você pode especificar um banco de dados diferente usando a variável de ambiente NEO4J_DATABASE.

Ferramentas

  • execute_query: Executa consultas Cypher no banco de dados Neo4j

    • Suporta todos os tipos de consultas Cypher (READ, CREATE, UPDATE, DELETE)
    • Retorna os resultados da consulta em um formato estruturado
    • Parâmetros podem ser passados para prevenir ataques de injeção
  • create_node: Cria um novo nó no banco de dados de grafos

    • Especifique rótulos e propriedades do nó
    • Retorna o nó criado com seu ID interno
    • Suporta todos os tipos de dados do Neo4j para propriedades
  • create_relationship: Cria um relacionamento entre dois nós existentes

    • Defina o tipo e a direção do relacionamento
    • Adicione propriedades aos relacionamentos
    • Requer IDs de nó para os nós de origem e destino

Instalação

Instalando via Smithery

Para instalar o MCP Neo4j Server para Claude Desktop automaticamente via Smithery:

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

Para Desenvolvimento

  1. Clone o repositório:
git clone https://github.com/da-okazaki/mcp-neo4j-server.git
cd mcp-neo4j-server
  1. Instale as dependências:
npm install
  1. Compile o projeto:
npm run build

Configuração

O servidor requer as seguintes variáveis de ambiente:

  • NEO4J_URI: URI do banco de dados Neo4j (padrão: bolt://localhost:7687)
  • NEO4J_USERNAME: Nome de usuário do Neo4j (padrão: neo4j)
  • NEO4J_PASSWORD: Senha do Neo4j (obrigatória)
  • NEO4J_DATABASE: Nome do banco de dados Neo4j (padrão: neo4j) - Use isso para conectar a um banco de dados específico no Neo4j Enterprise

Exemplos de Uso

Aqui estão exemplos de como você pode interagir com o banco de dados Neo4j usando linguagem natural:

Conectando a um Banco de Dados Específico

Para usuários do Neo4j Enterprise com múltiplos bancos de dados, você pode especificar a qual banco de dados conectar:

{
  "env": {
    "NEO4J_URI": "bolt://localhost:7687",
    "NEO4J_USERNAME": "neo4j",
    "NEO4J_PASSWORD": "your-password",
    "NEO4J_DATABASE": "myCustomDatabase"
  }
}

Isso conectará ao banco de dados "myCustomDatabase" em vez do banco de dados padrão "neo4j".

Consultando Dados

Você pode fazer perguntas como:

  • "Mostre-me todos os funcionários do departamento de Vendas"
  • "Encontre os 5 clientes mais antigos"
  • "Quem comprou mais de 3 produtos no último mês?"

Exemplo:

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)

Criando Dados

Você pode dar instruções como:

  • "Adicione uma nova pessoa chamada João Silva com 30 anos"
  • "Crie um produto chamado 'Café Premium' com preço $24.99"
  • "Adicione um novo departamento chamado 'Pesquisa e Desenvolvimento'"

Exemplo:

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

Criando Relacionamentos

Você pode solicitar relacionamentos como:

  • "Faça João Silva amigo de Maria Souza"
  • "Defina o Produto A como um componente do Produto B"
  • "Atribua João Silva ao departamento de Vendas"

Exemplo:

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

Operações Complexas

Você pode realizar operações mais complexas com linguagem natural:

  • "Encontre todos os produtos comprados por clientes que moram em Nova York"
  • "Mostre-me amigos dos amigos de João Silva"
  • "Calcule a idade média dos funcionários em cada departamento"

Exemplo:

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]

Testes

Execute a suíte de testes:

npm test

Licença

MIT