Servidor MCP de Neo4j conectado a ChatGPT
Construya un servidor MCP de Neo4j, conecte sus herramientas Cypher, regístrelo en ChatGPT y verifique que las consultas de solo lectura desde el chat lleguen de hecho al grafo de manera segura.
Fuentes: How to Build and Connect a Neo4j MCP Server to ChatGPT
Esta guía reconstruye el proceso desde las materias primas hasta un sistema funcional para: Cómo crear y conectar un servidor MCP de Neo4j a ChatGPT. Se centra en pasos operativos, verificaciones explícitas y código que se puede insertar directamente en un repositorio sin tener que adivinar su propósito. Para obtener una visión general, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Prefiera unidades pequeñas y verificables en lugar de scripts extensos. Cuando un paso falla, el error debe indicar una única responsabilidad y no un proceso complicado.
Introducción
Como introducción, defina las entradas, el responsable de la tarea y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar la tarea a partir de un punto de control conocido sin tener que adivinar el estado oculto. Considere esta etapa como un contrato entre las entradas y los resultados validados. Asigne nombres a los artefactos, defina verificaciones de éxito y rechace las completaciones parciales silenciosas. Utilice restricciones e índices antes de realizar la ingesta masiva. La unicidad en las claves de negocio convierte las fusiones posteriores en operaciones predictibles de inserción o actualización, en lugar de situaciones de duplicados excesivos.
Repositorio de Neo4j Labs frente al servidor oficial MCP de Neo4j
Para el repositorio de Neo4j Labs frente al servidor MCP oficial de Neo4j, defina las entradas, el responsable de cada paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido, sin tener que adivinar el estado oculto. Registre los tiempos de ejecución y el costo en tokens o consultas junto con los resultados funcionales. La visibilidad temprana del costo evita facturas inesperadas cuando el proceso pasa de entornos de demostración a entornos compartidos. Utilice restricciones e índices antes de realizar la carga masiva de datos. La unicidad en las claves empresariales convierte las fusiones posteriores en operaciones de inserción/actualización predecibles, en lugar de situaciones de duplicados excesivos.
Arquitectura
En cuanto a la arquitectura, defina las entradas, el responsable de cada paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido, sin tener que adivinar el estado oculto. Mantenga la configuración fuera del código de la aplicación. Los archivos de entorno, los almacenes de datos secretos y las banderas de funcionalidad deben estar en un lugar donde los operadores puedan auditarlos sin necesidad de leer todo el sistema. Utilice restricciones e índices antes de realizar la ingesta masiva. La unicidad en las claves empresariales convierte las fusiones posteriores en operaciones de inserción o actualización predecibles, en lugar de situaciones de duplicados excesivos. En cuanto a la arquitectura, defina las entradas, el responsable de cada paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido, sin tener que adivinar el estado oculto. Prefiera unidades pequeñas y verificables en lugar de scripts extensos. Cuando un paso falla, el error debe indicar una única responsabilidad y no un proceso complejo y confuso.
Requisitos previos
Para los requisitos previos, defina las entradas, el responsable de la tarea y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar la tarea a partir de un punto de control conocido sin tener que adivinar el estado oculto. Considere esta etapa como un contrato entre las entradas y los resultados validados. Asigne nombres a los artefactos, defina verificaciones de éxito y rechace las completaciones parciales silenciosas. Inspeccione un grupo de ejemplos después del primer lote. Las pruebas Cypher detectan con mayor eficiencia los desvíos en las etiquetas y las propiedades faltantes que las pruebas de chat de extremo a extremo.
Paso 1: Verificar la arquitectura de Ubuntu
Para el Paso 1: Verifique la arquitectura de Ubuntu, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Registre los tiempos de ejecución y el costo de tokens o consultas junto con los resultados funcionales. La visibilidad temprana del costo evita facturas inesperadas cuando el proceso pasa de entornos de demostración a entornos compartidos. Inspeccione un grupo de ejemplos después del primer lote; las pruebas Cypher detectan cambios en las etiquetas y propiedades faltantes de manera más económica que las pruebas de chat de extremo a extremo.
Paso 2: Instalar el servidor oficial MCP de Neo4j
Para el Paso 2: Instale el Servidor MCP Oficial de Neo4j, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Guarde la configuración fuera del código de la aplicación. Los archivos de entorno, los almacenes de secretos y las banderas de funcionalidad deben encontrarse en un lugar donde los operadores puedan auditarlos sin necesidad de leer todo el grafo. Inspeccione un vecindario de muestra después del primer lote. Las pruebas con Cypher detectan cambios en las etiquetas y propiedades faltantes de manera más económica que las pruebas de chat de extremo a extremo. Para el Paso 2: Instale el Servidor MCP Oficial de Neo4j, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Prefiera unidades pequeñas y probables sobre scripts extensos. Cuando un paso falla, el error debe apuntar a una única corrección.
la responsabilidad en lugar de un proceso complicado.tar -xzf neo4j-mcp_Linux_x86_64.tar.gz
chmod +x neo4j-mcp
sudo mv neo4j-mcp /usr/local/bin/neo4j-mcp
neo4j-mcp --help
python3 -m venv neo4j-mcp-venv
source neo4j-mcp-venv/bin/activate
pip install neo4j-mcp-server
Paso 3: Comprender las herramientas MCP disponibles
En el Paso 3: Comprender las herramientas MCP disponibles, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Considere esta etapa como un contrato entre las entradas y los resultados validados. Asigne nombres a los artefactos, defina verificaciones de éxito y rechace las completaciones parciales silenciosas. Modele nodos y relaciones para las preguntas que hará, no para cada sustantivo del documento. Los bordes escasos y tipados son mejores que grafos densos y misteriosos.
Paso 4: Crear un usuario restringido de Neo4j
Para el paso 4: Crear un usuario restringido en Neo4j, defina los parámetros de entrada, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Registre los tiempos de ejecución y el costo en tokens o consultas junto con los resultados funcionales. Tener visibilidad del costo desde el principio evita facturas inesperadas cuando el proceso pasa de entornos de demostración a entornos compartidos. Modele nodos y relaciones para las preguntas que vaya a hacer, no para cada sustantivo del documento. Los bordes escasos y tipados son mejores que los grafos densos y misteriosos.
cypher-shell \
-a bolt://127.0.0.1:7687 \
-u mcp_reader \
-p 'YOUR_PASSWORD' \
'MATCH (n) RETURN count(n) AS node_count;'
Paso 5: Configurar Neo4j MCP en modo STDIO
Para el Paso 5: Configurar Neo4j MCP en modo STDIO, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Guarde la configuración fuera del código de la aplicación. Los archivos de entorno, los almacenes de secretos y las banderas de funcionalidad deben estar en un lugar donde los operadores puedan auditarlos sin necesidad de leer todo el grafo. Modele nodos y relaciones para las preguntas que vaya a hacer, no para cada sustantivo del documento. Los bordes escasos y tipados son mejores que los grafos densos y misteriosos. Para el Paso 5: Configurar Neo4j MCP en modo STDIO, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Prefiera unidades pequeñas y verificables sobre scripts extensos. Cuando un paso falla, el error debe apuntar a una única responsable.
en lugar de una cadena de procesos enredada.export NEO4J_URI="bolt://127.0.0.1:7687"
export NEO4J_USERNAME="mcp_reader"
export NEO4J_PASSWORD="YOUR_NEO4J_PASSWORD"
export NEO4J_DATABASE="neo4j"
export NEO4J_READ_ONLY="true"
export NEO4J_TRANSPORT_MODE="stdio"
export NEO4J_LOG_LEVEL="info"
export NEO4J_LOG_FORMAT="text"
neo4j-mcp
Paso 6: Comprender la alternativa HTTP
Para el Paso 6: Comprender la alternativa HTTP, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Trate esta etapa como un contrato entre las entradas y las salidas validadas. Asigne nombres a los artefactos, defina verificaciones de éxito y rechace las completaciones parciales silenciosas. Utilice restricciones e índices antes de la ingesta masiva. La unicidad en las claves empresariales convierte las fusiones posteriores en actualizaciones predecibles en lugar de situaciones de duplicados excesivos.
export NEO4J_URI="bolt://127.0.0.1:7687"
export NEO4J_DATABASE="neo4j"
export NEO4J_READ_ONLY="true"
export NEO4J_TRANSPORT_MODE="http"
export NEO4J_MCP_HTTP_HOST="127.0.0.1"
export NEO4J_MCP_HTTP_PORT="8000"
unset NEO4J_USERNAME
unset NEO4J_PASSWORD
neo4j-mcp
Authorization: Basic BASE64_ENCODED_USERNAME_AND_PASSWORD
echo -n "mcp_reader:YOUR_PASSWORD" | base64
Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN
Paso 7: Instalar OpenAI tunnel-client en Ubuntu
Para el paso 7: instale OpenAI tunnel-client en Ubuntu, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Registre los tiempos de ejecución y el costo en tokens o consultas junto con los resultados funcionales. La visibilidad temprana del costo evita facturas inesperadas cuando el proceso pasa de entornos de demostración a entornos compartidos. Utilice restricciones e índices antes de realizar la ingesta masiva. La unicidad en las claves empresariales convierte las fusiones posteriores en actualizaciones predecibles en lugar de situaciones de duplicados excesivos.
tunnel-client-<version>-linux-amd64.zip
tunnel-client-<version>-linux-arm64.zip
unzip tunnel-client-<version>-linux-amd64.zip
chmod +x tunnel-client
sudo mv tunnel-client /usr/local/bin/tunnel-client
tunnel-client --version
tunnel-client help quickstart
Paso 8: Crear el túnel MCP seguro
Para el Paso 8: Crear el túnel MCP seguro, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Guarde la configuración fuera del código de la aplicación. Los archivos de entorno, los almacenes de secretos y las banderas de funcionalidad deben encontrarse en un lugar que los operadores puedan auditar sin necesidad de leer todo el sistema. Utilice restricciones e índices antes de realizar la ingesta masiva. La unicidad en las claves empresariales convierte las fusiones posteriores en operaciones de inserción o actualización predecibles, en lugar de situaciones de duplicados excesivos. Para el Paso 8: Crear el túnel MCP seguro, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Prefiera unidades pequeñas y probables sobre scripts extensos. Cuando un paso falla, el error debe indicar una única responsabilidad.
en lugar de una cadena de procesos enredada.Name: Neo4jMCP
Description: Private tunnel for the Neo4j MCP server
tunnel_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Paso 9: Crear la clave API en tiempo de ejecución
Para el Paso 9: Crear la clave API en tiempo de ejecución, defina las entradas, el propietario del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Considere esta etapa como un contrato entre las entradas y las salidas validadas. Asigne nombres a los artefactos, defina verificaciones de éxito y rechace las completaciones parciales silenciosas. Inspeccione un grupo de ejemplos después del primer lote. Las pruebas Cypher detectan con mayor eficiencia los desvíos en las etiquetas y las propiedades faltantes que las pruebas de chat de extremo a extremo.
export CONTROL_PLANE_API_KEY="sk-YOUR_RUNTIME_KEY"
Paso 10: Configurar tunnel-client para iniciar Neo4j MCP
Para el Paso 10: Configure tunnel-client para ejecutar Neo4j MCP. Defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Registre los tiempos de ejecución y el costo en tokens o consultas junto con los resultados funcionales. Tener visibilidad del costo desde el principio evita facturas inesperadas cuando el proceso pasa de entornos de demostración a entornos compartidos. Inspeccione un vecindario de muestra después del primer lote; las pruebas con Cypher detectan cambios en las etiquetas y propiedades faltantes de manera más económica que las pruebas por chat de extremo a extremo.
export CONTROL_PLANE_API_KEY="sk-YOUR_RUNTIME_KEY"
export NEO4J_URI="bolt://127.0.0.1:7687"
export NEO4J_USERNAME="mcp_reader"
export NEO4J_PASSWORD="YOUR_NEO4J_PASSWORD"
export NEO4J_DATABASE="neo4j"
export NEO4J_READ_ONLY="true"
export NEO4J_TRANSPORT_MODE="stdio"
tunnel-client init \
--sample sample_mcp_stdio_local \
--profile neo4j-local \
--tunnel-id "tunnel_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
--mcp-command "/usr/local/bin/neo4j-mcp"
tunnel-client doctor \
--profile neo4j-local \
--explain
tunnel-client run --profile neo4j-local
Paso 11: Verificar la conectividad de red en Ubuntu
Para el Paso 11: Verificar la conectividad de red de Ubuntu, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Guarde la configuración fuera del código de la aplicación. Los archivos de entorno, los almacenes de secretos y las banderas de funcionalidad deben encontrarse en un lugar que los operadores puedan auditar sin necesidad de leer todo el sistema. Inspeccione un grupo de ejemplos después del primer lote. Las pruebas con Cypher detectan cambios en las etiquetas y propiedades faltantes de manera más económica que las pruebas de chat de extremo a extremo. Para el Paso 11: Verificar la conectividad de red de Ubuntu, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Prefiera unidades pequeñas y verificables en lugar de scripts extensos. Cuando un paso falla, el error debe indicar una única solución.
la viabilidad en lugar de un proceso complicado.curl -I https://api.openai.com
Paso 12: Crear la aplicación en modo desarrollador de ChatGPT
Para el Paso 12: Crear la aplicación en modo desarrollador de ChatGPT, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Considere esta etapa como un contrato entre las entradas y los resultados validados. Asigne nombres a los artefactos, defina verificaciones de éxito y rechace las completaciones parciales silenciosas. Diseñe nodos y relaciones para las preguntas que hará, no para cada sustantivo del documento. Los bordes escasos y tipados son mejores que grafos densos y misteriosos.
Paso 13: Validar la integración
Para el Paso 13: Validar la integración, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto. Registre los tiempos de ejecución y el costo de tokens o consultas junto con los resultados funcionales. Tener visibilidad del costo desde el principio evita facturas inesperadas cuando el proceso pasa de entornos de demostración a entornos compartidos.
Lista de verificación operativa
Para la lista de verificación operativa, defina las entradas, el responsable del paso y los criterios de finalización antes de modificar el código. Los operadores deben poder volver a ejecutar el paso a partir de un punto de control conocido sin tener que adivinar el estado oculto.
Dokumente tanto el camino óptimo como el de recuperación. Los intentos repetidos, los controles humanos y el manejo de mensajes no entregados forman parte del producto, no son mejoras posteriores.
Inspeccione un grupo de ejemplos después del primer lote. Las pruebas Cypher detectan cambios en las etiquetas y propiedades faltantes de manera más económica que las pruebas de chat de extremo a extremo.
Exponga herramientas con esquemas limitados y etiquetas explícitas de efectos secundarios. Los hosts necesitan saber qué llamadas modifican el estado antes de aprobarlas automáticamente.
Añada una prueba básica que ejerza el camino crítico en CI utilizando configuraciones fijas, y no APIs pagadas en tiempo real, siempre que lo permitan los presupuestos.
Registre los tiempos de ejecución y el costo de tokens o consultas junto con los resultados funcionales. Tener visibilidad del costo desde el principio evita facturas inesperadas cuando el proceso pasa de la versión de demostración a entornos compartidos.
Antes de promocionar el stack, congele las versiones, capture una transcripción de referencia para la ruta crítica y confirme los pasos de reversión. Los entornos compartidos requieren límites de velocidad, verificaciones de tenencia y un responsable claro para la rotación de secretos. Prefiera una fiabilidad sencilla a demostraciones ingeniosas pero puntuales.
Lecturas relacionadas
- WeatherSG MCP App: Herramientas Plus Mapa Interactivo en ChatGPT y Claude — Aplicación MCP en TypeScript que utiliza contratos de datos, Streamable HTTP, Cloud Run y registro de hosts para mostrar un mapa meteorológico integrado.
- MCP Desde Cero Parte 3: Conectar un Cliente a Su Servidor — Cree un cliente MCP stdio que inicie hr_server.py, llame a search_employee y devuelva los resultados, sin necesidad de iniciar el servidor manualmente.