Servidor MCP Neo4j
Un servidor MCP que proporciona integración entre la base de datos de gráficos Neo4j y Claude Desktop, lo que permite operaciones de base de datos de gráficos a través de interacciones de lenguaje natural.
Inicio rápido
Puede ejecutar este servidor MCP directamente usando npx:
npx @alanse/mcp-neo4jO agréguelo a su configuración de 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: Code Analysis MCP Server
Características
Este servidor proporciona herramientas para interactuar con una base de datos Neo4j:
Herramientas
execute_query: Ejecuta consultas Cypher en la base de datos Neo4jAdmite todos los tipos de consultas Cypher (LECTURA, CREAR, ACTUALIZAR, ELIMINAR)
Devuelve los resultados de la consulta en un formato estructurado
Se pueden pasar parámetros para evitar ataques de inyección.
create_node: Crea un nuevo nodo en la base de datos del gráficoEspecificar etiquetas y propiedades de nodos
Devuelve el nodo creado con su ID interno
Admite todos los tipos de datos Neo4j para propiedades
create_relationship: Crea una relación entre dos nodos existentesDefinir el tipo y la dirección de la relación
Agregar propiedades a las relaciones
Requiere identificadores de nodo para los nodos de origen y destino
Instalación
Instalación mediante herrería
Para instalar MCP Neo4j Server para Claude Desktop automáticamente a través de Smithery :
npx -y @smithery/cli install @alanse/mcp-neo4j-server --client claudePara el desarrollo
Clonar el repositorio:
git clone https://github.com/da-okazaki/mcp-neo4j-server.git
cd mcp-neo4j-serverInstalar dependencias:
npm installConstruir el proyecto:
npm run buildConfiguración
El servidor requiere las siguientes variables de entorno:
NEO4J_URI: URI de la base de datos Neo4j (predeterminado: bolt://localhost:7687)NEO4J_USERNAME: nombre de usuario de Neo4j (predeterminado: neo4j)NEO4J_PASSWORD: Contraseña de Neo4j (obligatoria)
Ejemplos de uso
A continuación se muestran ejemplos de cómo puedes interactuar con la base de datos Neo4j utilizando lenguaje natural:
Consulta de datos
Puedes hacer preguntas como:
"Muéstrame todos los empleados del departamento de Ventas"
Encuentra a los 5 clientes más antiguos
¿Quién ha comprado más de 3 productos en el último mes?
Ejemplo:
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)Creando datos
Puedes dar instrucciones como:
"Agregar una nueva persona llamada John Doe que tenga 30 años"
Crear un producto llamado 'Café Premium' con un precio de $24.99.
"Añadir un nuevo departamento llamado 'Investigación y Desarrollo'"
Ejemplo:
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: 123Creando relaciones
Puedes solicitar relaciones como:
"Haz que John Doe se haga amigo de Jane Smith"
"Establecer el Producto A como componente del Producto B"
"Asignar a John Doe al departamento de Ventas"
Ejemplo:
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 SmithOperaciones complejas
Puedes realizar operaciones más complejas con lenguaje natural:
Encuentra todos los productos adquiridos por clientes que viven en Nueva York.
"Muéstrame los amigos de los amigos de John Doe"
Calcular la edad media de los empleados de cada departamento.
Ejemplo:
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]Pruebas
Ejecute el conjunto de pruebas:
npm testLicencia
Instituto Tecnológico de Massachusetts (MIT)