ATLAS:任务管理系统
  ](https://github.com/cyanheads/atlas-mcp-server/releases)   ](https://github.com/cyanheads/atlas-mcp-server)
ATLAS(自适应任务和逻辑自动化系统)是一个面向LLM代理的项目、知识和任务管理系统。
基于三层架构构建:
+------------------------------------------+
| PROJECT |
|------------------------------------------|
| id: string |
| name: string |
| description: string |
| status: string |
| urls?: Array|
| 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 | | 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节点系统(项目、任务、知识),取代了之前的结构。
目录
概述
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:
# Start Neo4j using Docker
docker-compose up -d- 构建项目:
npm run build配置
环境变量
创建一个 .env 文件基于 .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
# Research API Keys
OPENAI_API_KEY=your_openai_api_key
PERPLEXITY_API_KEY=your_perplexity_api_key
XAI_GROK_API_KEY=your_grok_api_key
FIRECRAWL_API_KEY=your_firecrawl_api_key
AGENTSPACE_API_KEY=your_agentspace_api_key
AGENTSPACE_BASE_URL=https://api.agentspace.devMCP客户端设置
添加到MCP客户端设置中:
{
"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"
}
}
}
}项目结构
代码库遵循模块化结构:
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.)_注:ID生成逻辑主要位于 src/services/neo4j/helpers.ts._
工具
ATLAS为项目、任务和知识管理提供了一套全面的工具,可通过模型上下文协议调用。
项目运营
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
atlas_project_create | 创建新项目(单个/批量)。 | mode (“单体”/“大块”),项目详情(name, description, status, urls, completionRequirements, dependencies, outputFormat, taskType), responseFormat (“格式化”/“json”,可选)。 |
atlas_project_list | 列出项目(全部/详细信息)。 | mode (“全部”/“全部”), id (详细信息),过滤器(status, taskType),分页(page, limit),包括(includeKnowledge, includeTasks), responseFormat (“格式化”/“json”,可选)。 |
atlas_project_update | 更新现有项目(单个/批量)。 | mode (“单”/“厚”), id, updates 对象, responseFormat (“格式化”/“json”,可选)。批量模式使用 projects 阵列。 |
atlas_project_delete | 删除项目(单个/批量)。 | mode (“单”/“厚”), id (单一)或 projectIds 阵列(体), responseFormat (“格式化”/“json”,可选)。 |
任务操作
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
atlas_task_create | 创建新任务(单个/批量)。 | mode (“单”/“厚”), projectId,任务详细信息(title, description, priority, status, assignedTo, tags, completionRequirements, dependencies, outputFormat, taskType), responseFormat (“格式化”/“json”,可选)。 |
atlas_task_update | 更新现有任务(单个/批量)。 | mode (“单”/“厚”), id, updates 对象, responseFormat (“格式化”/“json”,可选)。批量模式使用 tasks 阵列。 |
atlas_task_delete | 删除任务(单个/批量)。 | mode (“单”/“厚”), id (单一)或 taskIds 阵列(体), responseFormat (“格式化”/“json”,可选)。 |
atlas_task_list | 列出特定项目的任务。 | projectId (必填),过滤器(status, assignedTo, priority, tags, taskType),排序(sortBy, sortDirection),分页(page, limit), responseFormat (“格式化”/“json”,可选)。 |
知识操作
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
atlas_knowledge_add | 添加新的知识项(单个/批量)。 | mode (“单”/“厚”), projectId,知识详情(text, tags, domain, citations), responseFormat (“格式化”/“json”,可选)。批量模式使用 knowledge 阵列。 |
atlas_knowledge_delete | 删除知识项(单个/批量)。 | mode (“单”/“厚”), id (单一)或 knowledgeIds 阵列(体), responseFormat (“格式化”/“json”,可选)。 |
atlas_knowledge_list | 列出特定项目的知识项。 | projectId (必填),过滤器(tags, domain, search),分页(page, limit), responseFormat (“格式化”/“json”,可选)。 |
搜索操作
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
atlas_unified_search | 跨实体执行统一搜索。 | value (搜索词), property (可选),过滤器(entityTypes, taskType),选项(caseInsensitive, fuzzy),分页(page, limit), responseFormat (“格式化”/“json”,可选)。 |
研究运营
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
atlas_deep_research | 通过在Atlas知识库中创建分层计划,启动结构化的深入研究过程。 | projectId (必填), researchTopic (必填), researchGoal (必填), scopeDefinition (可选), subTopics (带问题和搜索查询的必填数组), researchDomain (可选), initialTags (可选), planNodeId (可选), responseFormat (可选)。 |
openai-deep-research | 使用具有网页浏览功能的OpenAI进行深入研究 | query (必填), options (可选)带 maxResults, includePageContent, browsePage |
perplexity-sonar | 使用Perplexity Sonar执行实时网络搜索 | query (必填), options (可选)带 maxResults, recency (日/周/月/年) |
grok3 | 使用Grok-3进行实时网络访问研究 | query (必填), options (可选)带 maxResults, includePageContent, browsePage |
firecrawl-deep-research | 使用Firecrawl进行深入研究,包括网络爬行和内容提取 | query (必填), options (可选)带 maxResults, browsePage, onlyMainContent, includeHtml |
agentspace-google-research | 通过Agentspace进行谷歌深度研究,并进行全面分析 | query (必填), options (可选)带 maxResults, depth (快速/标准/全面), includeAnalysis, language, region, browsePage |
数据库操作
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
atlas_database_clean | 破坏性: 完全重置数据库,删除所有项目、任务和知识。 | acknowledgement (必须设置为 true 确认), responseFormat (“格式化”/“json”,可选)。 |
资源
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.
自动备份(注意)
重要提示: 由于效率低下,自动备份功能已被删除。呼叫 triggerBackgroundBackup 在……里面 src/services/neo4j/driver.ts 用注释将其删除。请使用下面描述的手动备份过程来保护您的数据。
备份过程
- 机制:备份过程导出所有
Project,Task,以及Knowledge节点及其关系被合并到单独的JSON文件中。 - 输出:每个备份创建一个带时间戳的目录(例如。,
atlas-backup-YYYYMMDDHHMMSS)在配置的备份路径内(默认值:./atlas-backups/).此目录包含projects.json,tasks.json,knowledge.json,以及relationships.json. - 手动备份:您可以使用提供的脚本触发手动备份:
npm run db:backup此命令执行 scripts/db-backup.ts,这叫 exportDatabase 功能。
还原过程
- 机制:还原过程首先完全清除现有的Neo4j数据库。然后,它从指定备份目录中的JSON文件导入节点和关系。
- 警告:从备份还原是一种破坏性操作。 它将覆盖Neo4j数据库中的所有当前数据。
- 手动恢复:要从备份目录还原数据库,请使用导入脚本:
npm run db:import
替换 使用备份文件夹的实际路径(例如。, ./atlas-backups/atlas-backup-20250326120000).此命令执行 scripts/db-import.ts,这叫 importDatabase 功能。
- 关系处理:导入过程尝试基于以下内容重新创建关系
id导出期间存储在节点内的属性。确保您的节点具有一致性id正确恢复关系的属性。
例子
这 examples/ 该目录包含演示ATLASMCP服务器各种功能的实际示例。
- 备份示例:位于
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
______________________________________________________________________
Built with the Model Context Protocol
