atlas-mcp-server
ATLAS (Adaptive Task & Logic Automation System) is a Model Context Protocol server that provides hierarchical task management capabilities to Large Language Models. This tool provides LLMs with the structure and context needed to manage complex tasks and dependencies.
cyanheads
Tools
atlas_skill_list
Lists available skills with optional fuzzy name matching
atlas_skill_invoke
Executes specific skills (individually or combined)
database_clean
Clean the database by removing all nodes and relationships, then reinitialize the schema. This operation cannot be undone.
neo4j_search
Search the database for nodes with specific property values. Supports case-insensitive, wildcard, and fuzzy matching with pagination options.
project_create
Create projects with unique names and optional descriptions. Supports both single project creation and bulk operations for multiple projects.
project_delete
Delete projects and their associated data from the system. Supports both single project deletion and bulk operations for multiple projects.
project_list
Unified tool for retrieving project information in various formats. Consolidates all project resource endpoints into a single tool.
project_dependency_add
Define relationships between projects with specific dependency types. Supports both single dependency creation and bulk operations with detailed descriptions.
project_dependency_remove
Remove dependency relationships between projects. Supports both single dependency removal and bulk operations for multiple dependencies.
project_dependency_list
List all dependencies and dependents for a project, showing both projects it depends on and projects that depend on it.
project_link_add
Add links to external resources like documentation, designs, or repositories. Supports both single link creation and bulk operations with optional categorization.
project_link_update
Update existing project link properties including title, URL, description, and category. Supports both single and bulk update operations.
project_link_delete
Delete links from projects permanently. Supports both single link deletion and bulk operations for multiple links.
project_member_add
Add users to projects with role-based access control. Supports both single member addition and bulk operations with different permission levels.
project_member_remove
Remove members from projects permanently. Supports both single member removal and bulk operations for multiple members.
project_member_list
List all members of a project with their roles and join dates, ordered by join time with owners listed first.
project_note_add
Add notes to projects for documentation and tracking. Supports both single note creation and bulk operations with optional categorization tags.
project_update
Update existing project properties including name, description, and status. Supports both single project updates and bulk operations.
whiteboard_create
Create a new whiteboard workspace with optional initial data and schema validation. Can be linked to projects for organization.
whiteboard_update
Update whiteboard data by merging or replacing content. Supports partial updates to specific fields or complete data replacement.
whiteboard_get
Retrieve whiteboard data with version control. Access either the latest version or a specific historical version by number.
whiteboard_delete
Delete a whiteboard and its entire version history permanently. This operation cannot be undone.
README
ATLAS: Task Management System
ATLAS (Adaptive Task & Logic Automation System) is a task management system for LLM Agents.
Built on a three-tier architecture:
+------------------------------------------+
| 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 | | |
+----------------------------------+ +----------------------------------+
Implemented as a Model Context Protocol (MCP) server, ATLAS allows LLM agents to interact with project management database, enabling managing projects, tasks, and knowledge items.
Important Version Note: Version 1.5.4 is the last version that uses SQLite as the database. Version 2.0 and onwards has been completely rewritten to use Neo4j, which requires either:
- Self-hosting using Docker (docker-compose included in repository)
- Using Neo4j AuraDB cloud service: https://neo4j.com/product/auradb/
Version 2.5.0 introduces a new 3-node system (Projects, Tasks, Knowledge) that replaces the previous structure.
Table of Contents
- Overview
- Features
- Installation
- Configuration
- Project Structure
- Tools
- Resources
- Database Backup and Restore
- Examples
- Contributing
- License
Overview
ATLAS implements the Model Context Protocol (MCP), enabling standardized communication between LLMs and external systems through:
- Clients: Claude Desktop, IDEs, and other MCP-compatible clients
- Servers: Tools and resources for project, task, and knowledge management
- LLM Agents: AI models that leverage the server's management capabilities
System Integration
The Atlas Platform integrates these components into a cohesive system:
- Project-Task Relationship: Projects contain tasks that represent actionable steps needed to achieve project goals. Tasks inherit context from their parent project while providing granular tracking of individual work items.
- Knowledge Integration: Both projects and tasks can be enriched with knowledge items, providing team members with necessary information and context.
- Dependency Management: Both projects and tasks support dependency relationships, allowing for complex workflows with prerequisites and sequential execution requirements.
- Unified Search: The platform provides cross-entity search capabilities, allowing users to find relevant projects, tasks, or knowledge based on various criteria.
Features
Project Management
- Comprehensive Tracking: Manage project metadata, statuses, and rich content (notes, links, etc.) with built-in support for bulk operations.
- Dependency & Relationship Handling: Automatically validate and track inter-project dependencies.
Task Management
- Task Lifecycle Management: Create, track, and update tasks through their entire lifecycle.
- Prioritization & Categorization: Assign priority levels and categorize tasks with tags for better organization.
- Dependency Tracking: Establish task dependencies to create structured workflows.
Knowledge Management
- Structured Knowledge Repository: Maintain a searchable repository of project-related information.
- Domain Categorization: Organize knowledge by domain and tags for easy retrieval.
- Citation Support: Track sources and references for knowledge items.
Graph Database Integration
- Native Relationship Management: Leverage Neo4j's ACID-compliant transactions and optimized queries for robust data integrity.
- Advanced Search & Scalability: Perform property-based searches with fuzzy matching and wildcards while maintaining high performance.
Unified Search
- Cross-Entity Search: Find relevant projects, tasks, or knowledge based on content, metadata, or relationships.
- Flexible Query Options: Support for case-insensitive, fuzzy, and advanced filtering options.
Installation
- Clone the repository:
git clone https://github.com/cyanheads/atlas-mcp-server.git
cd atlas-mcp-server
- Install dependencies:
npm install
- Configure Neo4j:
# Start Neo4j using Docker
docker-compose up -d
- Build the project:
npm run build
Configuration
Environment Variables
Create a .env
file based on .env.example
:
# Neo4j Configuration
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=password2
# Application Configuration
LOG_LEVEL=info # debug, info, warn, error
NODE_ENV=development # development, production
MCP Client Settings
Add to your MCP client settings:
{
"mcpServers": {
"atlas": {
"command": "node",
"args": ["/path/to/atlas-mcp-server/dist/index.js"],
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USER": "neo4j",
"NEO4J_PASSWORD": "password2",
"LOG_LEVEL": "info",
"NODE_ENV": "production"
}
}
}
}
Project Structure
The codebase follows a modular structure:
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 (logger.ts, errorHandler.ts, etc.)
Note: ID generation logic is primarily located in src/services/neo4j/helpers.ts
.
Tools
ATLAS provides a comprehensive suite of tools for project, task, and knowledge management, callable via the Model Context Protocol.
Project Operations
Tool Name | Description | Key Arguments |
---|---|---|
atlas_project_create |
Creates new projects (single/bulk). | mode ('single'/'bulk'), project details (name , description , status , urls , completionRequirements , dependencies , outputFormat , taskType ), responseFormat ('formatted'/'json', optional). |
atlas_project_list |
Lists projects (all/details). | mode ('all'/'details'), id (for details), filters (status , taskType ), pagination (page , limit ), includes (includeKnowledge , includeTasks ), responseFormat ('formatted'/'json', optional). |
atlas_project_update |
Updates existing projects (single/bulk). | mode ('single'/'bulk'), id , updates object, responseFormat ('formatted'/'json', optional). Bulk mode uses projects array. |
atlas_project_delete |
Deletes projects (single/bulk). | mode ('single'/'bulk'), id (single) or projectIds array (bulk), responseFormat ('formatted'/'json', optional). |
Task Operations
Tool Name | Description | Key Arguments |
---|---|---|
atlas_task_create |
Creates new tasks (single/bulk). | mode ('single'/'bulk'), projectId , task details (title , description , priority , status , assignedTo , tags , completionRequirements , dependencies , outputFormat , taskType ), responseFormat ('formatted'/'json', optional). |
atlas_task_update |
Updates existing tasks (single/bulk). | mode ('single'/'bulk'), id , updates object, responseFormat ('formatted'/'json', optional). Bulk mode uses tasks array. |
atlas_task_delete |
Deletes tasks (single/bulk). | mode ('single'/'bulk'), id (single) or taskIds array (bulk), responseFormat ('formatted'/'json', optional). |
atlas_task_list |
Lists tasks for a specific project. | projectId (required), filters (status , assignedTo , priority , tags , taskType ), sorting (sortBy , sortDirection ), pagination (page , limit ), responseFormat ('formatted'/'json', optional). |
Knowledge Operations
Tool Name | Description | Key Arguments |
---|---|---|
atlas_knowledge_add |
Adds new knowledge items (single/bulk). | mode ('single'/'bulk'), projectId , knowledge details (text , tags , domain , citations ), responseFormat ('formatted'/'json', optional). Bulk mode uses knowledge array. |
atlas_knowledge_delete |
Deletes knowledge items (single/bulk). | mode ('single'/'bulk'), id (single) or knowledgeIds array (bulk), responseFormat ('formatted'/'json', optional). |
atlas_knowledge_list |
Lists knowledge items for a specific project. | projectId (required), filters (tags , domain , search ), pagination (page , limit ), responseFormat ('formatted'/'json', optional). |
Search Operations
Tool Name | Description | Key Arguments |
---|---|---|
atlas_unified_search |
Performs unified search across entities. | value (search term), property (optional), filters (entityTypes , taskType ), options (caseInsensitive , fuzzy ), pagination (page , limit ), responseFormat ('formatted'/'json', optional). |
Research Operations
Tool Name | Description | Key Arguments |
---|---|---|
atlas_deep_research |
Initiates a structured deep research process by creating a hierarchical plan within the Atlas knowledge base. | projectId (required), researchTopic (required), researchGoal (required), scopeDefinition (optional), subTopics (required array with questions and search queries), researchDomain (optional), initialTags (optional), planNodeId (optional), responseFormat (optional). |
Database Operations
Tool Name | Description | Key Arguments |
---|---|---|
atlas_database_clean |
Destructive: Completely resets the database, removing all projects, tasks, and knowledge. | acknowledgement (must be set to true to confirm), responseFormat ('formatted'/'json', optional). |
Resources
ATLAS exposes project, task, and knowledge data through standard MCP resource endpoints.
Direct Resources
Resource Name | Description |
---|---|
atlas://projects |
List of all projects in the Atlas platform with pagination support. |
atlas://tasks |
List of all tasks in the Atlas platform with pagination and filtering support. |
atlas://knowledge |
List of all knowledge items in the Atlas platform with pagination and filtering support. |
Resource Templates
Resource Name | Description |
---|---|
atlas://projects/{projectId} |
Retrieves a single project by its unique identifier (projectId ). |
atlas://tasks/{taskId} |
Retrieves a single task by its unique identifier (taskId ). |
atlas://projects/{projectId}/tasks |
Retrieves all tasks belonging to a specific project (projectId ). |
atlas://knowledge/{knowledgeId} |
Retrieves a single knowledge item by its unique identifier (knowledgeId ). |
atlas://projects/{projectId}/knowledge |
Retrieves all knowledge items belonging to a specific project (projectId ). |
Database Backup and Restore
ATLAS provides functionality to back up and restore the Neo4j database content. The core logic resides in src/services/neo4j/backupRestoreService.ts
.
Automatic Backups (Note)
Important: The automatic backup functionality has been removed due to inefficiency. The call to triggerBackgroundBackup
in src/services/neo4j/driver.ts
is commented out with a note indicating it was removed. Please use the manual backup process described below to protect your data.
Backup Process
- Mechanism: The backup process exports all
Project
,Task
, andKnowledge
nodes, along with their relationships, into separate JSON files. - Output: Each backup creates a timestamped directory (e.g.,
atlas-backup-YYYYMMDDHHMMSS
) within the configured backup path (default:./atlas-backups/
). This directory containsprojects.json
,tasks.json
,knowledge.json
, andrelationships.json
. - Manual Backup: You can trigger a manual backup using the provided script:
This command executesnpm run db:backup
scripts/db-backup.ts
, which calls theexportDatabase
function.
Restore Process
- Mechanism: The restore process first completely clears the existing Neo4j database. Then, it imports nodes and relationships from the JSON files located in the specified backup directory.
- Warning: Restoring from a backup is a destructive operation. It will overwrite all current data in your Neo4j database.
- Manual Restore: To restore the database from a backup directory, use the import script:
Replacenpm run db:import <path_to_backup_directory>
<path_to_backup_directory>
with the actual path to the backup folder (e.g.,./atlas-backups/atlas-backup-20250326120000
). This command executesscripts/db-import.ts
, which calls theimportDatabase
function. - Relationship Handling: The import process attempts to recreate relationships based on the
id
properties stored within the nodes during export. Ensure your nodes have consistentid
properties for relationships to be restored correctly.
Examples
The examples/
directory contains practical examples demonstrating various features of the ATLAS MCP Server.
- Backup Example: Located in
examples/backup-example/
, this shows the structure and format of the JSON files generated by thenpm run db:backup
command. See the Examples README for more details. - Deep Research Example: Located in
examples/deep-research-example/
, this demonstrates the output and structure generated by theatlas_deep_research
tool. It includes a markdown file (covington_community_grant_research.md
) summarizing the research plan and a JSON file (full-export.json
) containing the raw data exported from the database after the research plan was created. See the Examples README for more details.
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes with a descriptive message
- Push to the branch
- Create a Pull Request
For bugs and feature requests, please create an issue.
License
Apache License 2.0
<div align="center"> Built with the Model Context Protocol </div>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.