ATLAS MCP Server

MCP MCP Servers Open Source v2.8.15 · 05.06.2025 >1 года

MCP-сервер для трёхуровневого управления проектами (Проекты → Задачи → База знаний) на Neo4j. Граф зависимостей задач, Deep Research режим, semantic search по накопленным знаниям — для AI-агентов.

v2.8.15
05.06.2025 current
Добавлен 06.07.2026 · Обновлён 15.07.2026 · MCP Servers
Установка
Требуется: Neo4j (локально или cloud). Рекомендуется Docker.

# Docker (рекомендуется):
git clone https://github.com/cyanheads/atlas-mcp-server.git
cd atlas-mcp-server && docker compose up -d

# Claude Desktop — claude_desktop_config.json:
{ "mcpServers": { "atlas": { "command": "npx", "args": ["-y", "@cyanheads/atlas-mcp-server"], "env": { "NEO4J_URI": "bolt://localhost:7687", "NEO4J_USERNAME": "neo4j", "NEO4J_PASSWORD": "password" } } } }

# Claude Code (CLI):
claude mcp add atlas --env NEO4J_URI=bolt://localhost:7687 --env NEO4J_PASSWORD=password -- npx -y @cyanheads/atlas-mcp-server

# OpenCode — ~/.config/opencode/opencode.json:
{ "mcp": { "atlas": { "type": "local", "command": ["npx", "-y", "@cyanheads/atlas-mcp-server"], "environment": { "NEO4J_URI": "bolt://localhost:7687", "NEO4J_PASSWORD": "password" } } } }
переведено ИИ

ATLAS: Система управления задачами

TypeScript Протокол Контекста Моделей Версия Лицензия Статус GitHub

ATLAS (Адаптивная система автоматизации задач и логики) — это система управления проектами, знаниями и задачами для агентов LLM.

Построена на 3-узловой архитектуре:

                  +-------------------------------------------+

                  |                PROJECT                    |
                  |-------------------------------------------|
                  | id: string                                |
                  | name: string                              |
                  | description: string                       |
                  | status: string                            |
                  | urls?: Array<{title: string, url: string}>|
                  | completionRequirements: string            |
                  | outputFormat: string                      |
                  | taskType: string                          |
                  | createdAt: string                         |
                  | updatedAt: string                         |
                  +----------------+--------------------------+

                            |                    |
                            |                    |
                            v                    v
+----------------------------------+ +----------------------------------+

|               TASK               | |            KNOWLEDGE             |
|----------------------------------| |----------------------------------|
| id: string                       | | id: string                       |
| projectId: string                | | projectId: string                |
| title: string                    | | text: string                     |
| description: string              | | tags?: string[]                  |
| priority: string                 | | domain: string                   |
| status: string                   | | citations?: string[]             |
| assignedTo?: string              | | createdAt: string                |
| urls?: Array<{title: string,     | |                                  |
|   url: string}>                  | | updatedAt: string                |
| tags?: string[]                  | |                                  |
| completionRequirements: string   | |                                  |
| outputFormat: string             | |                                  |
| taskType: string                 | |                                  |
| createdAt: string                | |                                  |
| updatedAt: string                | |                                  |
+----------------------------------+ +----------------------------------+

Реализован как сервер Протокола Контекста Моделей (MCP), ATLAS позволяет агентам LLM взаимодействовать с базой данных управления проектами, давая им возможность управлять проектами, задачами и элементами знаний.

Важное примечание о версии: Версия 1.5.4 — последняя версия, использующая SQLite в качестве базы данных. Версия 2.0 и выше полностью переписана для использования Neo4j, что требует либо:

  • Самостоятельного развертывания с использованием Docker (файл docker-compose включен в репозиторий)
  • Использования облачного сервиса Neo4j AuraDB: https://neo4j.com/product/auradb/

Версия 2.5.0 вводит новую 3-узловую систему (Проекты, Задачи, Знания), которая заменяет предыдущую структуру.

Содержание

Обзор

ATLAS реализует Протокол Контекста Моделей (MCP), обеспечивая стандартизированную коммуникацию между LLM и внешними системами через:

  • Клиенты: Claude Desktop, IDE и другие совместимые с MCP клиенты.
  • Серверы: Инструменты и ресурсы для управления проектами, задачами и знаниями.
  • Агенты LLM: AI-модели, использующие возможности управления сервера.

Интеграция систем

Платформа Atlas интегрирует эти компоненты в единую систему:

  • Связь Проект-Задача: Проекты содержат задачи, представляющие конкретные шаги для достижения целей проекта. Задачи наследуют контекст от родительского проекта, обеспечивая детализированное отслеживание отдельных элементов работы.
  • Интеграция знаний: И проекты, и задачи могут быть обогащены элементами знаний, предоставляя участникам необходимую информацию и контекст.
  • Управление зависимостями: Как проекты, так и задачи поддерживают отношения зависимостей, позволяя создавать сложные рабочие процессы с предварительными требованиями и последовательным выполнением.
  • Единый поиск: Платформа предоставляет возможности поиска по сущностям, позволяя пользователям находить соответствующие проекты, задачи или знания по различным критериям.

Возможности

Область возможностей Ключевые функции
Управление проектами - Комплексное отслеживание: Управление метаданными, статусами и насыщенным содержанием (заметки, ссылки и т.д.) с встроенной поддержкой пакетных операций.
- Обработка зависимостей и связей: Автоматическая валидация и отслеживание межпроектных зависимостей.
Управление задачами - Управление жизненным циклом задач: Создание, отслеживание и обновление задач на протяжении всего их жизненного цикла.
- Приоритизация и категоризация: Назначение уровней приоритета и категоризация задач с помощью тегов для лучшей организации.
- Отслеживание зависимостей: Установление зависимостей задач для создания структурированных рабочих процессов.
Управление знаниями - Структурированный репозиторий знаний: Поддержка поиска по репозиторию информации, связанной с проектами.
- Доменная категоризация: Организация знаний по доменам и тегам для удобного извлечения.
- Поддержка цитирования: Отслеживание источников и ссылок для элементов знаний.
Интеграция графовой базы данных - Нативное управление связями: Использование ACID-совместимых транзакций и оптимизированных запросов Neo4j для надежной целостности данных.
- Продвинутый поиск и масштабируемость: Выполнение поиска по свойствам с нечетким сопоставлением и подстановочными знаками при сохранении высокой производительности.
Единый поиск - Поиск по сущностям: Поиск соответствующих проектов, задач или знаний на основе содержания, метаданных или связей.
- Гибкие параметры запроса: Поддержка поиска без учета регистра, нечеткого поиска и расширенных параметров фильтрации.

Установка

  1. Клонируйте репозиторий:

    bash git clone https://github.com/cyanheads/atlas-mcp-server.git cd atlas-mcp-server

  2. Установите зависимости:

    bash npm install

  3. Настройте Neo4j: Убедитесь, что экземпляр Neo4j запущен и доступен. Вы можете запустить его, используя предоставленную конфигурацию Docker:

    bash docker-compose up -d

    Обновите ваш файл .env с данными для подключения к Neo4j (см. Конфигурация).

  4. Соберите проект: bash npm run build

Запуск сервера

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

ATLAS MCP Server поддерживает несколько транспортных механизмов для коммуникации:

  • Стандартный ввод-вывод (stdio): Это режим по умолчанию, обычно используемый для прямой интеграции с локальными MCP-клиентами (например, расширениями IDE).

bash npm run start:stdio

Используется настройка MCP_TRANSPORT_TYPE=stdio.

  • Потоковый HTTP: Этот режим позволяет серверу прослушивать MCP-запросы по HTTP, что подходит для удаленных клиентов или веб-интеграций.

bash npm run start:http

Используется настройка MCP_TRANSPORT_TYPE=http. Сервер будет слушать на хосте и порту, определенных в вашем файле .env (например, MCP_HTTP_HOST и MCP_HTTP_PORT, по умолчанию 127.0.0.1:3010). Убедитесь, что ваш межсетевой экран разрешает подключения при удаленном доступе.

Веб-интерфейс (экспериментальный)

Доступен базовый веб-интерфейс для просмотра деталей Проектов, Задач и Знаний.

  • Открытие интерфейса:

  • Чтобы открыть интерфейс прямо в вашем браузере, выполните следующую команду в вашем терминале: bash npm run webui

  • Функциональность:

  • Пример скриншота веб-интерфейса можно посмотреть здесь.

Конфигурация

Переменные окружения

Переменные окружения должны быть установлены в конфигурации клиента в вашем MCP-клиенте или в файле .env в корне проекта для локальной разработки.

# Neo4j Configuration
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=password2

# Application Configuration
MCP_LOG_LEVEL=debug # Minimum logging level. Options: emerg, alert, crit, error, warning, notice, info, debug. Default: "debug".
LOGS_DIR=./logs # Directory for log files. Default: "./logs" in project root.
NODE_ENV=development # 'development' or 'production'. Default: "development".

# MCP Transport Configuration
MCP_TRANSPORT_TYPE=stdio # 'stdio' or 'http'. Default: "stdio".
MCP_HTTP_HOST=127.0.0.1 # Host for HTTP transport. Default: "127.0.0.1".
MCP_HTTP_PORT=3010 # Port for HTTP transport. Default: 3010.
# MCP_ALLOWED_ORIGINS=http://localhost:someport,https://your-client.com # Optional: Comma-separated list of allowed origins for HTTP CORS.

# MCP Security Configuration
# MCP_AUTH_SECRET_KEY=your_very_long_and_secure_secret_key_min_32_chars # Optional: Secret key (min 32 chars) for JWT authentication if HTTP transport is used. CRITICAL for production. *Note: Production environment use has not been tested yet.*
MCP_RATE_LIMIT_WINDOW_MS=60000 # Rate limit window in milliseconds. Default: 60000 (1 minute).
MCP_RATE_LIMIT_MAX_REQUESTS=100 # Max requests per window per IP for HTTP transport. Default: 100.

# Database Backup Configuration
BACKUP_MAX_COUNT=10 # Maximum number of backup sets to keep. Default: 10.
BACKUP_FILE_DIR=./atlas-backups # Directory where backup files will be stored (relative to project root). Default: "./atlas-backups".

Ссылка на src/config/index.ts для получения информации обо всех доступных переменных окружения, их описаниях и значениях по умолчанию.

Настройки MCP-клиента

Способ настройки вашего MCP-клиента зависит от самого клиента и выбранного типа транспорта. Файл mcp.json в корне проекта может использоваться некоторыми клиентами (например, mcp-inspector) для определения конфигураций сервера; обновите его при необходимости.

Для Stdio-транспорта (пример конфигурации):

{
  "mcpServers": {
    "atlas-mcp-server-stdio": {
      "command": "node",
      "args": ["/full/path/to/atlas-mcp-server/dist/index.js"],
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USER": "neo4j",
        "NEO4J_PASSWORD": "password2",
        "MCP_LOG_LEVEL": "info",
        "NODE_ENV": "development",
        "MCP_TRANSPORT_TYPE": "stdio"
      }
    }
  }
}

Для потокового HTTP (пример конфигурации): Если ваш клиент поддерживает подключение к MCP-серверу через потоковый HTTP, вы указываете конечную точку сервера (например, http://localhost:3010/mcp) в конфигурации вашего клиента.

{
  "mcpServers": {
    "atlas-mcp-server-http": {
      "command": "node",
      "args": ["/full/path/to/atlas-mcp-server/dist/index.js"],
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USER": "neo4j",
        "NEO4J_PASSWORD": "password2",
        "MCP_LOG_LEVEL": "info",
        "NODE_ENV": "development",
        "MCP_TRANSPORT_TYPE": "http",
        "MCP_HTTP_PORT": "3010",
        "MCP_HTTP_HOST": "127.0.0.1"
        // "MCP_AUTH_SECRET_KEY": "your-secure-token" // If authentication is enabled on the server
      }
    }
  }
}

Примечание: Всегда используйте абсолютные пути для args при настройке команд клиента, если сервер не находится в непосредственной рабочей директории клиента. MCP_AUTH_SECRET_KEY в блоке env клиента является иллюстративным; фактическая обработка токенов для коммуникации от клиента к серверу будет зависеть от возможностей клиента и механизма аутентификации сервера (например, отправка JWT в заголовке Authorization).

Структура проекта

Базовая структура кода следует модульному подходу:

src/
├── config/          # Configuration management (index.ts)
├── index.ts         # Main server entry point
├── mcp/             # MCP server implementation (server.ts)
│   ├── resources/   # MCP resource handlers (index.ts, types.ts, knowledge/, projects/, tasks/)
│   └── tools/       # MCP tool handlers (individual tool directories)
├── services/        # Core application services
│   └── neo4j/       # Neo4j database services (index.ts, driver.ts, backupRestoreService.ts, etc.)
├── types/           # Shared TypeScript type definitions (errors.ts, mcp.ts, tool.ts)
└── utils/           # Utility functions and internal services (e.g., logger, errorHandler, sanitization)

Инструменты

ATLAS предоставляет комплексный набор инструментов для управления проектами, задачами и знаниями, доступных для вызова через протокол Model Context Protocol.

Операции с проектами

Название инструмента Описание Ключевые аргументы
atlas_project_create Создает новые проекты (единичный/массовый режим). mode ('single'/'bulk'), id (необязательный клиентский ID для единичного режима), данные проекта (name, description, status, urls, completionRequirements, dependencies, outputFormat, taskType). Для массового режима используйте projects (массив объектов проектов). responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').
atlas_project_list Список проектов (все/с деталями). mode ('all'/'details', по умолчанию: 'all'), id (для режима с деталями), фильтры (status, taskType), пагинация (page, limit), включения (includeKnowledge, includeTasks), responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').
atlas_project_update Обновляет существующие проекты (единичный/массовый режим). mode ('single'/'bulk'), id (для единичного режима), объект updates. Для массового режима используйте projects (массив объектов, каждый с id и updates). responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').
atlas_project_delete Удаляет проекты (единичный/массовый режим). mode ('single'/'bulk'), id (для единичного режима) или projectIds (массив для массового режима). responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').

Операции с задачами

Название инструмента Описание Ключевые аргументы
atlas_task_create Создает новые задачи (единичный/массовый режим). mode ('single'/'bulk'), id (необязательный клиентский ID), projectId, данные задачи (title, description, priority, status, assignedTo, urls, tags, completionRequirements, dependencies, outputFormat, taskType). Для массового режима используйте tasks (массив объектов задач). responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').
atlas_task_update Обновляет существующие задачи (единичный/массовый режим). mode ('single'/'bulk'), id (для единичного режима), объект updates. Для массового режима используйте tasks (массив объектов, каждый с id и updates). responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').
atlas_task_delete Удаляет задачи (единичный/массовый режим). mode ('single'/'bulk'), id (для единичного режима) или taskIds (массив для массового режима). responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').
atlas_task_list Список задач для конкретного проекта. projectId (обязательный), фильтры (status, assignedTo, priority, tags, taskType), сортировка (sortBy, sortDirection), пагинация (page, limit), responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').

Операции со знаниями

Название инструмента Описание Ключевые аргументы
atlas_knowledge_add Добавляет новые элементы знаний (единичный/массовый режим). mode ('single'/'bulk'), id (необязательный клиентский ID), projectId, данные знаний (text, tags, domain, citations). Для массового режима используйте knowledge (массив объектов знаний). responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').
atlas_knowledge_delete Удаляет элементы знаний (единичный/массовый режим). mode ('single'/'bulk'), id (для единичного режима) или knowledgeIds (массив для массового режима). responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').
atlas_knowledge_list Список элементов знаний для конкретного проекта. projectId (обязательный), фильтры (tags, domain, search), пагинация (page, limit), responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').

Операции поиска

Название инструмента Описание Ключевые аргументы
atlas_unified_search Выполняет объединенный поиск по сущностям. value (поисковый запрос, обязательный), property (необязательный: если указан, выполняется поиск по регулярному выражению для этого свойства; если опущен, выполняется полнотекстовый поиск), фильтры (entityTypes, taskType, assignedToUserId), опции (caseInsensitive (по умолчанию: true, для регулярных выражений), fuzzy (по умолчанию: false, для регулярных выражений 'contains' или полнотекстового нечеткого поиска Lucene)), пагинация (page, limit), responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').

Исследовательские операции

Название инструмента Описание Ключевые аргументы
atlas_deep_research Запускает структурированный процесс глубокого исследования, создавая иерархический план в базе знаний Atlas. projectId (обязательный), researchTopic (обязательный), researchGoal (обязательный), scopeDefinition (необязательный), subTopics (обязательный массив объектов, каждый с полями question (обязательный), initialSearchQueries (необязательный массив), nodeId (необязательный), priority (необязательный), assignedTo (необязательный), initialStatus (необязательный, по умолчанию: 'todo')), researchDomain (необязательный), initialTags (необязательный), planNodeId (необязательный), createTasks (необязательный, по умолчанию: true), responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').

Операции с базой данных

Название инструмента Описание Ключевые аргументы
atlas_database_clean Деструктивная операция: Полностью сбрасывает базу данных, удаляя все проекты, задачи и знания. acknowledgement (должен быть установлен в true для подтверждения, обязательный), responseFormat ('formatted'/'json', необязательный, по умолчанию: 'formatted').

Ресурсы

ATLAS предоставляет доступ к данным о проектах, задачах и знаниях через стандартные конечные точки ресурсов MCP.

Прямые ресурсы

Название ресурса Описание
atlas://projects Список всех проектов в платформе Atlas с поддержкой постраничной навигации.
atlas://tasks Список всех задач в платформе Atlas с поддержкой постраничной навигации и фильтрации.
atlas://knowledge Список всех элементов знаний в платформе Atlas с поддержкой постраничной навигации и фильтрации.

Шаблоны ресурсов

Название ресурса Описание
atlas://projects/{projectId} Извлекает один проект по его уникальному идентификатору (projectId).
atlas://tasks/{taskId} Извлекает одну задачу по её уникальному идентификатору (taskId).
atlas://projects/{projectId}/tasks Извлекает все задачи, принадлежащие указанному проекту (projectId).
atlas://knowledge/{knowledgeId} Извлекает один элемент знаний по его уникальному идентификатору (knowledgeId).
atlas://projects/{projectId}/knowledge Извлекает все элементы знаний, принадлежащие указанному проекту (projectId).

Резервное копирование и восстановление базы данных

ATLAS предоставляет функциональность резервного копирования и восстановления содержимого базы данных Neo4j. Основная логика находится в src/services/neo4j/backupRestoreService.ts.

Процесс резервного копирования

  • Механизм: Процесс резервного копирования экспортирует все узлы Project, Task и Knowledge вместе со связями в отдельные JSON-файлы. Также создаётся файл full-export.json, содержащий все данные.
  • Выходные данные: Каждое резервное копирование создаёт каталог с временной меткой (например, atlas-backup-YYYYMMDDHHMMSS) в настроенном пути для резервных копий (по умолчанию: ./atlas-backups/). Этот каталог содержит файлы projects.json, tasks.json, knowledge.json, relationships.json и full-export.json.
  • Ручное резервное копирование: Вы можете запустить ручное резервное копирование с помощью предоставленного скрипта: bash npm run db:backup Эта команда выполняет src/services/neo4j/backupRestoreService/scripts/db-backup.ts, который вызывает функцию exportDatabase.

Процесс восстановления

  • Механизм: Процесс восстановления сначала полностью очищает существующую базу данных Neo4j. Затем он импортирует узлы и связи из JSON-файлов, расположенных в указанном каталоге резервной копии. Приоритет отдаётся файлу full-export.json, если он доступен.
  • Предупреждение: Восстановление из резервной копии является деструктивной операцией. Оно перезапишет все текущие данные в вашей базе данных Neo4j.
  • Ручное восстановление: Чтобы восстановить базу данных из каталога резервной копии, используйте скрипт импорта: bash npm run db:import <путь_к_каталогу_резервной_копии> Замените <путь_к_каталогу_резервной_копии> на фактический путь к папке резервной копии (например, ./atlas-backups/atlas-backup-20250326120000). Эта команда выполняет src/services/neo4j/backupRestoreService/scripts/db-import.ts, который вызывает функцию importDatabase.
  • Обработка связей: Процесс импорта пытается воссоздать связи на основе свойств id, сохранённых в узлах при экспорте. Убедитесь, что ваши узлы имеют согласованные свойства id для корректного восстановления связей.

Примеры

Каталог examples/ содержит практические примеры, демонстрирующие различные функции ATLAS MCP Server.

  • Пример резервного копирования: Расположен в examples/backup-example/, показывает структуру и формат JSON-файлов, генерируемых командой npm run db:backup. Подробности смотрите в README примеров.
  • Пример глубокого исследования: Расположен в examples/deep-research-example/, демонстрирует вывод и структуру, генерируемые инструментом atlas_deep_research. Включает markdown-файл (covington_community_grant_research.md) с описанием плана исследования и JSON-файл (full-export.json) с сырыми данными, экспортированными из базы данных после создания плана исследования. Подробности смотрите в README примеров.

Лицензия

Лицензия Apache 2.0


Создано с использованием Model Context Protocol

Комментарии
Войдите, чтобы оставить комментарий