ATLAS:任务管理系统
ATLAS(自适应任务和逻辑自动化系统)是针对 LLM 代理的项目、知识和任务管理系统。
基于三层架构构建:
+------------------------------------------+
| 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 | | |
+----------------------------------+ +----------------------------------+ATLAS 作为模型上下文协议 (MCP) 服务器实现,允许 LLM 代理与项目管理数据库交互,从而使他们能够管理项目、任务和知识项。
重要版本说明: 1.5.4 版是最后一个使用 SQLite 作为数据库的版本。2.0 版及更高版本已完全重写,使用 Neo4j,这需要以下任一配置:
使用 Docker 进行自托管(存储库中包含 docker-compose)
使用 Neo4j AuraDB 云服务: https://neo4j.com/product/auradb/
2.5.0 版本引入了新的 3 节点系统(项目、任务、知识)来取代以前的结构。
目录
Related MCP server: Apollo.io MCP Server
概述
ATLAS 实现了模型上下文协议 (MCP),通过以下方式实现 LLM 与外部系统之间的标准化通信:
客户端:Claude Desktop、IDE 和其他与 MCP 兼容的客户端
服务器:项目、任务和知识管理的工具和资源
LLM 代理:利用服务器管理功能的 AI 模型
系统集成
Atlas 平台将这些组件集成到一个有凝聚力的系统中:
项目-任务关系:项目包含任务,这些任务代表实现项目目标所需的可操作步骤。任务继承其父项目的上下文,同时提供对各个工作项的精细跟踪。
知识整合:项目和任务都可以通过知识项来丰富,为团队成员提供必要的信息和背景。
依赖管理:项目和任务都支持依赖关系,允许具有先决条件和顺序执行要求的复杂工作流。
统一搜索:该平台提供跨实体搜索功能,允许用户根据各种标准查找相关的项目、任务或知识。
特征
项目管理
**全面跟踪:**管理项目元数据、状态和丰富内容(注释、链接等),内置批量操作支持。
**依赖和关系处理:**自动验证和跟踪项目间依赖关系。
任务管理
**任务生命周期管理:**在整个生命周期内创建、跟踪和更新任务。
**优先级和分类:**分配优先级并使用标签对任务进行分类,以便更好地组织。
**依赖关系跟踪:**建立任务依赖关系以创建结构化工作流程。
知识管理
**结构化知识库:**维护一个可搜索的项目相关信息库。
**领域分类:**按领域和标签组织知识,以便于检索。
**引用支持:**跟踪知识项目的来源和参考。
图数据库集成
**原生关系管理:**利用 Neo4j 的 ACID 兼容事务和优化查询来实现强大的数据完整性。
**高级搜索和可扩展性:**使用模糊匹配和通配符执行基于属性的搜索,同时保持高性能。
统一搜索
**跨实体搜索:**根据内容、元数据或关系查找相关的项目、任务或知识。
**灵活的查询选项:**支持不区分大小写、模糊和高级过滤选项。
安装
克隆存储库:
git clone https://github.com/cyanheads/atlas-mcp-server.git cd atlas-mcp-server安装依赖项:
npm install**配置 Neo4j:**确保 Neo4j 实例已运行且可访问。您可以使用提供的 Docker 配置启动一个 Neo4j 实例:
docker-compose up -d使用 Neo4j 连接详细信息更新您的
.env文件(请参阅配置)。构建项目:
npm run build
运行服务器
大多数 MCP 客户端会自动运行服务器,但您也可以使用以下命令手动运行它以进行测试或开发。
ATLAS MCP 服务器支持多种通信传输机制:
**标准 I/O(stdio):**这是默认模式,通常用于与本地 MCP 客户端(如 IDE 扩展)直接集成。
npm run start:stdio这使用
MCP_TRANSPORT_TYPE=stdio设置。**可流式 HTTP:**此模式允许服务器通过 HTTP 监听 MCP 请求,适用于远程客户端或基于 Web 的集成。
npm run start:http这使用
MCP_TRANSPORT_TYPE=http设置。服务器将监听.env文件中定义的主机和端口(例如MCP_HTTP_HOST和MCP_HTTP_PORT,默认为127.0.0.1:3010)。如果要进行远程访问,请确保防火墙允许连接。
Web UI(实验性)
可以使用基本的 Web UI 来查看项目、任务和知识详细信息。
打开用户界面:
要在浏览器中直接打开 UI,请在终端中运行以下命令:
npm run webui
功能:
您可以在此处看到 Web UI 的示例屏幕截图。
配置
环境变量
环境变量应在 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".
# OpenRouter LLM Configuration (Optional - additional parameters present in `src/config/index.ts`)
# OPENROUTER_API_KEY=your_openrouter_api_key # API key for OpenRouter services.
LLM_DEFAULT_MODEL="google/gemini-2.5-flash-preview:thinking" # Default LLM model.请参阅src/config/index.ts了解所有可用的环境变量、它们的描述和默认值。
MCP 客户端设置
如何配置 MCP 客户端取决于客户端本身及其所选的传输类型。某些客户端(例如mcp-inspector )可以使用项目根目录中的mcp.json文件来定义服务器配置;请根据需要进行更新。
对于 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": "production",
"MCP_TRANSPORT_TYPE": "stdio"
}
}
}
}**对于 Streamable HTTP(示例配置):**如果您的客户端支持通过 Streamable HTTP 连接到 MCP 服务器,您可以在客户端配置中提供服务器的端点(例如, 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": "production",
"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 。客户env块中的MCP_AUTH_SECRET_KEY仅作说明;客户端到服务器通信的实际令牌处理取决于客户端的功能和服务器的身份验证机制(例如,在Authorization标头中发送 JWT)。
项目结构
代码库遵循模块化结构:
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
│ ├── llm-providers/ # LLM provider integrations (e.g., OpenRouter)
│ └── 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 提供了一套全面的项目、任务和知识管理工具,可通过模型上下文协议调用。
项目运营
工具名称 | 描述 | 关键论点 |
| 创建新项目(单个/批量)。 |
|
| 列出项目(全部/详细信息)。 |
|
| 更新现有项目(单个/批量)。 |
|
| 删除项目(单个/批量)。 |
|
任务操作
工具名称 | 描述 | 关键论点 |
| 创建新任务(单个/批量)。 |
|
| 更新现有任务(单个/批量)。 |
|
| 删除任务(单个/批量)。 |
|
| 列出特定项目的任务。 |
|
知识运营
工具名称 | 描述 | 关键论点 |
| 添加新的知识项目(单个/批量)。 |
|
| 删除知识项(单个/批量)。 |
|
| 列出特定项目的知识项。 |
|
搜索行动
工具名称 | 描述 | 关键论点 |
| 跨实体执行统一搜索。 |
|
研究运营
工具名称 | 描述 | 关键论点 |
| 通过在 Atlas 知识库中创建分层计划来启动结构化的深度研究过程。 |
|
数据库操作
工具名称 | 描述 | 关键论点 |
| **破坏性:**完全重置数据库,删除所有项目、任务和知识。 |
|
资源
ATLAS 通过标准 MCP 资源端点公开项目、任务和知识数据。
直接资源
资源名称 | 描述 |
| 列出 Atlas 平台中的所有项目,并支持分页。 |
| 列出 Atlas 平台中的所有任务,并支持分页和过滤。 |
| 列出 Atlas 平台中所有知识项,支持分页和过滤。 |
资源模板
资源名称 | 描述 |
| 通过唯一标识符 ( |
| 通过唯一标识符( |
| 检索属于特定项目 ( |
| 通过唯一标识符 ( |
| 检索属于特定项目 ( |
数据库备份和恢复
ATLAS 提供了备份和恢复 Neo4j 数据库内容的功能。核心逻辑位于src/services/neo4j/backupRestoreService.ts中。
备份过程
机制:备份过程会将所有
Project、Task和Knowledge节点及其关系导出到单独的 JSON 文件中。同时还会创建包含所有数据的full-export.json文件。输出:每次备份都会在配置的备份路径(默认值:
./atlas-backups/)内创建一个带时间戳的目录(例如atlas-backup-YYYYMMDDHHMMSS)。此目录包含projects.json、tasks.json、knowledge.json、relationships.json和full-export.json。手动备份:您可以使用提供的脚本触发手动备份:
npm run db:backup此命令执行
scripts/db-backup.ts,它会调用exportDatabase函数。
恢复过程
机制:恢复过程首先会彻底清除现有的 Neo4j 数据库。然后,它会从指定备份目录中的 JSON 文件导入节点和关系。如果
full-export.json可用,则会优先导入。警告:从备份恢复是一项破坏性操作。它将覆盖 Neo4j 数据库中的所有当前数据。
手动恢复:要从备份目录恢复数据库,请使用导入脚本:
npm run db:import <path_to_backup_directory>将
<path_to_backup_directory>替换为备份文件夹的实际路径(例如,./atlas-backups/atlas-backup-20250326120000)。此命令执行scripts/db-import.ts,该文件调用importDatabase函数。关系处理:导入过程会尝试根据导出过程中存储在节点中的
id属性重新创建关系。请确保节点具有一致的id属性,以便正确恢复关系。
示例
examples/目录包含演示 ATLAS MCP 服务器各种功能的实用示例。
备份示例:位于
examples/backup-example/下,展示了npm run db:backup命令生成的 JSON 文件的结构和格式。更多详情,请参阅示例的 README文件。深度研究示例:位于
examples/deep-research-example/,演示了atlas_deep_research工具生成的输出和结构。它包含一个 Markdown 文件 (covington_community_grant_research.md),用于概述研究计划;以及一个 JSON 文件 (full-export.json),用于包含研究计划创建后从数据库导出的原始数据。更多详情,请参阅示例的 README文件。
执照
Apache 许可证 2.0
Appeared in Searches
- A scheduling engine powered by AI
- A server for data engineering tasks, GPU clustering, nomad setup, and data pipeline management
- A system for task management and integration with AI editors using multiple LLMs
- Tools and Templates for Prompt Management and Workflow Automation
- Information or resources related to 'Prompt'