mcp-chat
mcp-chat
Сводка по реализации MCP-сервера чат-бота на базе Neo4j.
Принципы создания MCP-сервера
Проектирование инструментов — проектируйте поведение модели, а не API
Не зеркалируйте REST API. Группируйте не по одному инструменту на эндпоинт, а по единицам работы, которые будет выполнять модель.
Инструментов должно быть мало, описания — длинными. Описание — это документ, содержащий информацию о том, когда использовать/не использовать инструмент, примеры аргументов и формат возвращаемых данных. Описание и есть промпт.
Проектируйте вывод с учетом токенового бюджета. Вместо сырого дампа JSON форматируйте данные в удобном для модели виде, для больших результатов используйте аргументы
limit+ пагинация.
Стандартный шаблон структуры
Разделение транспорта — для локального использования stdio, для удаленного — Streamable HTTP. Разделение логики сервера и транспорта упрощает поддержку обоих вариантов.
Валидация входных данных через схему — TS SDK использует схемы zod для объявления аргументов инструментов. Не пишите валидацию вручную.
Ошибки возвращайте не через throw, а через результат с
isError: true. В сообщении указывайте причину и способ решения, чтобы модель могла прочитать сообщение об ошибке и повторить попытку.В stdio stdout — это протокольный канал. Логи обязательно выводите в stderr. Один
console.logможет убить сервер.Опасные операции блокируйте кодом, а не промптом. Например, в инструменте только для чтения — запрет на запись, принудительное внедрение
LIMIT.
Рабочий процесс разработки
Ручное тестирование с MCP Inspector —
npx @modelcontextprotocol/inspector node dist/index.jsПроверка сценариев выбора инструментов на реальной модели — если модель выбирает неправильный инструмент, исправляйте описание, а не код.
Бизнес-логику (валидаторы запросов, форматтеры) проверяйте юнит-тестами, не связанными с MCP.
Related MCP server: Neo4j GraphRAG MCP Server
4 способа реализации
1. Использование официального MCP-сервера Neo4j как есть
Подключение через настройку официального MCP-сервера от Neo4j.
mcp-neo4j-cypher— предоставляет инструменты (get_schema,read_cypher,write_cypher), позволяющие LLM запрашивать схему и самостоятельно генерировать и выполнять Cypher.mcp-neo4j-memory— сервер для долговременной памяти, сохраняющий сущности и отношения из диалога в виде графа знаний.
Категория | Содержание |
Преимущества | Можно начать сразу, только с настройкой, без кода |
Недостатки | LLM выполняет произвольные Cypher-запросы, что снижает точность на сложных схемах, а открытие прав на запись опасно |
Когда подходит | Прототипы, внутренние инструменты |
2. Собственный MCP-сервер по принципу Text2Cypher
Создание собственного MCP-сервера, где инструмент имеет универсальную структуру «естественно-языковой запрос → генерация Cypher → выполнение». Похож на официальный сервер, но позволяет напрямую контролировать:
Внедрение описания схемы (предоставление структуры графа в промпте)
Валидацию запросов (принудительное только чтение, принудительный
LIMIT)Форматирование результатов
Категория | Содержание |
Преимущества | Гибкие запросы + возможность самостоятельно проектировать механизмы безопасности |
Недостатки | Точность генерации Cypher по-прежнему зависит от LLM |
Когда подходит | Когда схема часто меняется или типы вопросов трудно предсказать |
3. Специализированные предметно-ориентированные инструменты
Подход, при котором LLM не доверяется генерация Cypher, а заранее определяются инструменты, соответствующие предметной области. Внутри каждого инструмента выполняются только параметризованные Cypher-запросы.
search_person(name) → 파라미터화된 Cypher 실행
get_relationships(id, depth) → 파라미터화된 Cypher 실행
find_path(from, to) → shortestPath 쿼리 실행Категория | Содержание |
Преимущества | Запросы всегда точны и безопасны (инъекция невозможна), скорость ответа и расход токенов предсказуемы |
Недостатки | При изменении схемы требуется доработка инструментов, существуют начальные затраты на разработку |
Когда подходит | Продуктовые чат-боты (самый распространенный выбор) |
4. Подход GraphRAG
Подход, при котором используется один инструмент retrieve(query), выполняющий поиск по векторному индексу Neo4j, а затем расширяющий контекст за счет графа (соседние узлы, отношения) на основе найденных узлов.
retrieve(query)
1. query 임베딩 → 벡터 인덱스 유사도 검색
2. 매칭된 노드에서 그래프 확장 (이웃 노드, 관계 수집)
3. 수집된 서브그래프를 컨텍스트로 반환Категория | Содержание |
Преимущества | Высокое качество поиска в QA на основе документов/знаний |
Недостатки | Требуется дополнительное создание пайплайна эмбеддингов |
Когда подходит | Чат-боты для QA на основе документов и знаний |
Рекомендуемая комбинация
На практике распространенным шаблоном является гибрид 2 + 3. Часто задаваемые вопросы обрабатываются предметно-ориентированными инструментами, а для остальных используется Text2Cypher только для чтения в качестве запасного варианта.
Справочная информация по стеку
TypeScript —
@modelcontextprotocol/sdkPython —
FastMCP
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceAn MCP server that enables graph database interactions with Neo4j, allowing users to access and manipulate graph data through natural language commands.
- AlicenseAqualityCmaintenanceAn MCP server that enables LLMs to perform semantic and fulltext searches within Neo4j while executing complex, search-augmented Cypher queries for GraphRAG applications. It provides tools for database schema discovery and supports multi-provider embeddings to facilitate advanced graph traversals.52MIT
- Flicense-quality-maintenanceA knowledge graph MCP server that integrates Graphiti and the ACE framework for conversational management of Neo4j-based entities and relationships. It enables AI agents to perform semantic searches, manage data isolation, and utilize automatic learning strategies.2
- Alicense-qualityCmaintenanceProduction-ready MCP server for Neo4j graph databases, enabling natural language to Cypher query translation with enterprise security and async performance.MIT
Related MCP Connectors
GibsonAI MCP server: manage your databases with natural language
MCP server for AI dialogue using various LLM models via AceDataCloud
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gong-yeongbin/mcp-chat-practice'
If you have feedback or need assistance with the MCP directory API, please join our Discord server