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
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.
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
- Clone o repositório:
git clone https://github.com/da-okazaki/mcp-neo4j-server.git
cd mcp-neo4j-server
- Instale as dependências:
npm install
- 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