Главная / Статьи

Сервер MCP Neo4j подключен к ChatGPT

Создайте сервер MCP для Neo4j, подключите к нему инструменты Cypher, зарегистрируйте его в ChatGPT и убедитесь, что запросы с правами только на чтение из чата действительно безопасно достигают графа.

Издатель: REACTAPP.TOP10 мин чтения2403 слов

Источники: How to Build and Connect a Neo4j MCP Server to ChatGPT

В этом руководстве пошагово описывается процесс создания системы, начиная с сырья и заканчивая готовым решением для задачи «Как создать и подключить сервер MCP Neo4j к ChatGPT». Основное внимание уделяется практическим шагам, четкой проверке результатов и коду, который можно просто скопировать в репозиторий без необходимости догадываться о его назначении. Для получения общего представления необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Сотрудники должны иметь возможность перезапустить шаг с известной точки контроля, не пытаясь угадать скрытое состояние системы. Рекомендуется использовать небольшие, тестируемые модули вместо обширных скриптов. При сбое шага причина должна быть связана с конкретной функцией, а не с запутанной структурой всего процесса.

Введение

В качестве введения необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Укажите названия элементов, определите критерии успеха и не допускайте молчаливого частичного выполнения задачи. Используйте ограничения и индексы перед массовым вводом данных. Уникальность по бизнес-ключам позволяет превращать последующие объединения в предсказуемые операции добавления или замены данных, а не в ситуации с дубликатами.

Хранилище Neo4j Labs против официального сервера MCP Neo4j

При сравнении репозитория Neo4j Labs и официального сервера MCP Neo4j необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии системы. Рядом с функциональными результатами следует записывать время выполнения и стоимость токенов или запросов. Отображение затрат на раннем этапе предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам. Перед массовой загрузкой данных следует использовать ограничения и индексы; наличие уникальности по бизнес-ключам превращает последующее объединение данных в предсказуемые операции обновления вместо возникновения дубликатов.

Архитектура

В части архитектуры необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь кодовый граф. Используйте ограничения и индексы перед массовым вводом данных. Обеспечение уникальности по бизнес-ключам позволяет превращать последующие объединения в предсказуемые операции добавления/обновления данных вместо возникновения дубликатов. В части архитектуры необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Предпочитайте небольшие, тестируемые единицы кода большим развернутым скриптам. При сбое шага он должен указывать на конкретную проблему, а не на сложную структуру обработки данных.

Предварительные требования

Для определения предварительных требований необходимо заранее указать входные данные, ответственного за выполнение шага и критерии завершения перед внесением изменений в код. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия результатам работы, определите критерии успеха и не допускайте молчаливого частичного завершения задачи. После первой партии данных необходимо проверить примеры из окружающей области. Инструменты типа Cypher позволяют выявить смещение меток и отсутствие свойств дешевле, чем тесты в формате полного обмена сообщениями.

Шаг 1: Проверка архитектуры Ubuntu

Для шага 1: перед изменением кода убедитесь в архитектуре Ubuntu, определите входные данные, ответственного за выполнение шага и критерии завершения. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Записывайте время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Отображение стоимости заранее предотвращает неожиданные счета при переходе с демо-среды в общедоступные среды. После первой партии данных проверьте примерный набор данных — инструменты Cypher позволяют выявить смещение меток и отсутствие свойств дешевле, чем тесты через полноценные чат-сессии.

Шаг 2: Установка официального сервера MCP Neo4j

Для второго шага: установите официальный сервер MCP Neo4j, определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, которое операторы могут проверять, не читая весь граф. Проверьте пример соседнего набора данных после первой партии. Инструменты Cypher позволяют выявить смещение меток и отсутствие свойств дешевле, чем тесты через полный цикл общения. Для второго шага: установите официальный сервер MCP Neo4j, определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Предпочитайте небольшие, тестируемые единицы кода большим скриптам. Когда шаг терпит неудачу, причина должна быть указана четко.

ответственность, а не запутанная цепочка операций.

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

Шаг 3: Изучение доступных инструментов MCP

На шаге 3 «Изучение доступных инструментов MCP» необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия элементам, определите критерии успеха и не допускайте молчаливого частичного выполнения задачи. Моделируйте узлы и связи для тех вопросов, которые вы собираетесь задать, а не для каждого существительного в документе. Редкие, типизированные связи лучше, чем плотные непонятные графы.

Шаг 4: Создание ограниченного пользователя Neo4j

Для шага 4: Создание ограниченного пользователя Neo4j — определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Записывайте время выполнения, а также стоимость токенов или запросов рядом с функциональными результатами. Отображение стоимости заранее предотвращает неожиданные счета при переходе с демо-среды в общедоступные среды. Моделируйте узлы и связи для тех вопросов, которые вы собираетесь задать, а не для каждого существительного в документе. Редкие, типизированные ребра лучше, чем плотные графы с непонятной структурой.

cypher-shell \
  -a bolt://127.0.0.1:7687 \
  -u mcp_reader \
  -p 'YOUR_PASSWORD' \
  'MATCH (n) RETURN count(n) AS node_count;'

Шаг 5: Настройка Neo4j MCP в режиме STDIO

Для шага 5: настройка Neo4j MCP в режиме STDIO, определите входные данные, ответственного за шаг и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, которое операторы могут проверять, не читая весь граф. Моделируйте узлы и связи для вопросов, которые вы будете задавать, а не для каждого существительного в документе. Редкие, типизированные ребра лучше, чем плотные загадочные графы. Для шага 5: настройка Neo4j MCP в режиме STDIO, определите входные данные, ответственного за шаг и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Предпочитайте небольшие, тестируемые единицы кода большим скриптам. Когда шаг терпит неудачу, причина должна быть четко определена.

вместо запутанной системы обработки.

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

Шаг 6: Понимание альтернативы HTTP

Для шага 6 «Понимание альтернативы HTTP» необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг, исходя из известной точки контроля, без необходимости угадывать скрытое состояние. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия создаваемым объектам, определите критерии успеха и не допускайте молчаливого частичного завершения работы. Используйте ограничения и индексы перед массовым вводом данных. Уникальность по бизнес-ключам позволяет превращать последующие объединения в предсказуемые операции добавления или замены данных, а не в ситуации дублирования.

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

Шаг 7: Установка OpenAI tunnel-client на Ubuntu

Для шага 7: установите OpenAI tunnel-client на Ubuntu, определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Записывайте время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Отображение стоимости заранее предотвращает неожиданные счета при переходе с демо-среды в общедоступные среды. Используйте ограничения и индексы перед массовым вводом данных. Уникальность по бизнес-ключам превращает последующие объединения в предсказуемые операции добавления/обновления данных вместо возникновения дубликатов.

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

Шаг 8: Создание защищенного туннеля MCP

Для шага 8: Создание защищенного туннеля MCP — определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, которое операторы могут проверять, не читая весь код. Используйте ограничения и индексы перед массовым вводом данных. Уникальность по бизнес-ключам превращает последующие объединения в предсказуемые операции добавления/обновления вместо возникновения дубликатов. Для шага 8: Создание защищенного туннеля MCP — определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Предпочитайте небольшие, тестируемые единицы кода большим скриптам. При сбое шага он должен указывать на конкретную причину.

а не сложной цепочкой операций.

Name: Neo4jMCP
Description: Private tunnel for the Neo4j MCP server
tunnel_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Шаг 9: Создание API-ключа в режиме выполнения

На шаге 9 «Создание API-ключа в режиме выполнения» необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия результатам работы, определите критерии успеха и не допускайте молчаливого частичного завершения. Проверьте пример группы данных после первой партии. Инструменты типа Cypher позволяют выявить смещение меток и отсутствие свойств дешевле, чем тесты в формате полного обмена сообщениями.

export CONTROL_PLANE_API_KEY="sk-YOUR_RUNTIME_KEY"

Шаг 10: Настройка tunnel-client для запуска Neo4j MCP

Для шага 10: чтобы настроить tunnel-client для запуска Neo4j MCP, необходимо определить входные параметры, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рядом с функциональными результатами следует записывать время выполнения и стоимость токенов или запросов. Отображение затрат на раннем этапе предотвращает неожиданные счета при переходе с демо-среды в общедоступные среды. После первой партии данных следует проверить пример района; инструменты Cypher позволяют выявить смещение меток и отсутствие свойств дешевле, чем тесты через полноценное общение.

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

Шаг 11: Проверка сетевой связности Ubuntu

Для шага 11: Проверка сетевой связности Ubuntu — определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Храните конфигурацию вне кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, которое операторы могут проверять, не читая весь код. Проверьте пример окружения после первой партии данных. Инструменты Cypher позволяют выявить смещение меток и отсутствие свойств дешевле, чем тесты общения от начала до конца. Для шага 11: Проверка сетевой связности Ubuntu — определите входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. При сбое шага он должен указывать на конкретную причину.

возможность работы, а не запутанная цепочка операций.

curl -I https://api.openai.com

Шаг 12: Создание приложения ChatGPT в режиме разработчика

Для шага 12: Создание приложения ChatGPT в режиме разработчика необходимо заранее определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия элементам, определите критерии успеха и не допускайте молчаливого частичного выполнения. Определяйте узлы и связи модели для тех вопросов, которые вы собираетесь задать, а не для каждого существительного в документе. Редкие, типизированные связи лучше, чем плотные загадочные графы.

Шаг 13: Проверка интеграции

Для шага 13: «Проверка интеграции» необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рядом с функциональными результатами следует записывать время выполнения и стоимость токенов или запросов. Отображение затрат на раннем этапе предотвращает неожиданные счета при переходе с демо-среды в общедоступные среды.

Чек-лист операционной работы

Для чек-листа операционной работы также необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии.

Документируйте одновременно успешный сценарий работы и сценарий восстановления. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не последующими улучшениями.

Проверьте пример группы данных после первой партии. Инструменты типа Cypher probes позволяют выявить смещение меток и отсутствие свойств дешевле, чем тесты общения от начала до конца.

Создавайте инструменты с узкими схемами и четкими метками побочных эффектов. Хостам необходимо знать, какие вызовы изменяют состояние, прежде чем они автоматически одобрят их.

Каждый раз, когда это позволяют бюджетные ограничения, добавляйте тест на базовую работоспособность, который проверяет критический путь в CI с использованием фикстчеров, а не реальных платных API.

Записывайте время выполнения и стоимость токенов или запросов вместе с функциональными результатами. Отображение стоимости на раннем этапе предотвращает неожиданные счета при переходе с демо-среды в общедоступные среды.

Перед тем как запускать стек, заморозьте версии, сделайте копию «золотого» варианта для критической цепочки операций и уточните шаги возврата к предыдущему состоянию. В совместных средах необходимы ограничения на частоту запросов, проверки принадлежности ресурсов и четко определенный ответственный за обновление секретов. Лучше выбирать надежность, даже если она кажется скучной, чем креативные одноразовые демонстрации.