ATLAS 适配器工具服务器添加福利群:解决AI开发者的「MCP实战痛点」ATLAS(自适应任务与逻辑自动化系统)是一个为LLM(大型语言模型)代理设计的项目、知识和任务管理系统。
基于三节点架构构建:
+-------------------------------------------+ | 项目 | |-------------------------------------------| | id: 字符串 | | name: 字符串 | | description: 字符串 | | status: 字符串 | | urls?: 数组<{title: 字符串, url: 字符串}>| | completionRequirements: 字符串 | | outputFormat: 字符串 | | taskType: 字符串 | | createdAt: 字符串 | | updatedAt: 字符串 | +----------------+--------------------------+ | | | | v v +----------------------------------+ +----------------------------------+ | 任务 | | 知识 | |----------------------------------| |----------------------------------| | id: 字符串 | | id: 字符串 | | projectId: 字符串 | | projectId: 字符串 | | title: 字符串 | | text: 字符串 | | description: 字符串 | | tags?: 字符串数组 | | priority: 字符串 | | domain: 字符串 | | status: 字符串 | | citations?: 字符串数组 | | assignedTo?: 字符串 | | createdAt: 字符串 | | urls?: 数组<{title: 字符串, | | | | url: 字符串}> | | updatedAt: 字符串 | | tags?: 字符串数组 | | | | completionRequirements: 字符串 | | | | outputFormat: 字符串 | | | | taskType: 字符串 | | | | createdAt: 字符串 | | | | updatedAt: 字符串 | | | +----------------------------------+ +----------------------------------+
ATLAS作为模型上下文协议(MCP)服务器实现,允许LLM代理与项目管理数据库进行交互,从而管理项目、任务和知识项。
重要版本说明:1.5.4版本是最后一个使用SQLite作为数据库的版本。2.0及以后的版本已经完全重写,使用Neo4j,这需要:
- 使用Docker自行托管(仓库中包含docker-compose文件)
- 使用Neo4j AuraDB云服务:https://neo4j.com/product/auradb/
2.5.0版本引入了一个新的三节点系统(项目、任务、知识),取代了之前的结构。
ATLAS实现了模型上下文协议(MCP),通过以下方式实现LLM与外部系统之间的标准化通信:
Atlas平台将这些组件集成到一个统一的系统中:
| 功能区域 | 关键能力 |
|---|---|
| 项目管理 | - 全面跟踪:管理项目元数据、状态和丰富内容(笔记、链接等),支持批量操作。 - 依赖与关系处理:自动验证和跟踪项目间依赖关系。 |
| 任务管理 | - 任务生命周期管理:创建、跟踪和更新任务的整个生命周期。 - 优先级与分类:分配优先级级别并使用标签对任务进行分类,以便更好地组织。 - 依赖跟踪:建立任务依赖关系以创建结构化工作流程。 |
| 知识管理 | - 结构化知识库:维护一个可搜索的项目相关信息库。 - 领域分类:按领域和标签组织知识,便于检索。 - 引用支持:跟踪知识项的来源和参考。 |
| 图数据库集成 | - 本地关系管理:利用Neo4j的ACID兼容事务和优化查询,确保数据完整性。 - 高级搜索与扩展性:执行基于属性的搜索,支持模糊匹配和通配符,同时保持高性能。 |
| 统一搜索 | - 跨实体搜索:根据内容、元数据或关系查找相关项目、任务或知识。 - 灵活的查询选项:支持不区分大小写、模糊和高级过滤选项。 |
克隆仓库:
git clone https://github.com/cyanheads/atlas-mcp-server.git
cd atlas-mcp-server

安装依赖:
npm install
配置Neo4j: 确保你有一个正在运行且可访问的Neo4j实例。你可以使用提供的Docker配置启动一个实例:
docker-compose up -d
在.env文件中更新Neo4j连接信息(参见配置)。
构建项目:
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可用于查看项目、任务和知识详情。
打开UI:
npm run webui
功能:
环境变量应在MCP客户端的配置中设置,或在项目根目录的.env文件中进行本地开发。
# Neo4j配置
NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=password2
# 应用配置
MCP_LOG_LEVEL=debug # 最小日志级别。选项:emerg, alert, crit, error, warning, notice, info, debug。默认:"debug"。
LOGS_DIR=./logs # 日志文件目录。默认:项目根目录下的"./logs"。
NODE_ENV=development # 'development' 或 'production'。默认:"development"。
# MCP传输配置
MCP_TRANSPORT_TYPE=stdio # 'stdio' 或 'http'。默认:"stdio"。
MCP_HTTP_HOST=127.0.0.1 # HTTP传输的主机。默认:"127.0.0.1"。
MCP_HTTP_PORT=3010 # HTTP传输的端口。默认:3010。
# MCP_ALLOWED_ORIGINS=http://localhost:someport,https://your-client.com # 可选:HTTP CORS允许的来源列表,逗号分隔。
# MCP安全配置
# MCP_AUTH_SECRET_KEY=your_very_long_and_secure_secret_key_min_32_chars # 可选:如果使用HTTP传输,用于JWT认证的密钥(最少32字符)。生产环境中至关重要。*注意:生产环境使用尚未测试。*
MCP_RATE_LIMIT_WINDOW_MS=60000 # 速率限制窗口(毫秒)。默认:60000(1分钟)。
MCP_RATE_LIMIT_MAX_REQUESTS=100 # 每个窗口每个IP的最大请求数(HTTP传输)。默认:100。
# 数据库备份配置
BACKUP_MAX_COUNT=10 # 保留的最大备份集数量。默认:10。
BACKUP_FILE_DIR=./atlas-backups # 备份文件存储目录(相对于项目根目录)。默认:"./atlas-backups"。

参考src/config/index.ts查看所有可用的环境变量、它们的描述和默认值。
如何配置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": "production",
"MCP_TRANSPORT_TYPE": "stdio"
}
}
}
}

对于可流式HTTP(示例配置):
如果你的客户端支持通过可流式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" // 如果服务器启用了认证
}
}
}
}

注意: 如果服务器不在客户端的当前工作目录中,配置客户端命令时始终使用绝对路径。客户端env块中的MCP_AUTH_SECRET_KEY是示例;实际的客户端到服务器通信的令牌处理将取决于客户端的能力和服务器的认证机制(例如,在Authorization头中发送JWT)。
代码库遵循模块化结构:
src/ ├── config/ # 配置管理 (index.ts) ├── index.ts # 主服务器入口点 ├── mcp/ # MCP服务器实现 (server.ts) │ ├── resources/ # MCP资源处理程序 (index.ts, types.ts, knowledge/, projects/, tasks/) │ └── tools/ # MCP工具处理程序 (单个工具目录) ├── services/ # 核心应用服务 │ └── neo4j/ # Neo4j数据库服务 (index.ts, driver.ts, backupRestoreService.ts, 等) ├── types/ # 共享的TypeScript类型定义 (errors.ts, mcp.ts, tool.ts) └── utils/ # 实用函数和内部服务 (例如,logger, errorHandler, sanitization)
ATLAS提供了一套全面的工具,用于项目、任务和知识管理,可通过模型上下文协议调用。
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
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,用于正则表达式“包含”或全文 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-backups/)中创建一个带有时间戳的目录(例如,atlas-backup-YYYYMMDDHHMMSS)。此目录包含 projects.json、tasks.json、knowledge.json、relationships.json 和 full-export.json。此命令会执行npm run db:backup
src/services/neo4j/backupRestoreService/scripts/db-backup.ts,该脚本调用 exportDatabase 函数。full-export.json 文件,则优先导入该文件。将npm run db:import <path_to_backup_directory>
<path_to_backup_directory> 替换为备份文件夹的实际路径(例如,./atlas-backups/atlas-backup-20250326120000)。此命令会执行 src/services/neo4j/backupRestoreService/scripts/db-import.ts,该脚本调用 importDatabase 函数。id 属性重新创建关系。请确保您的节点具有一致的 id 属性,以便正确恢复关系。examples/ 目录包含演示 ATLAS MCP 服务器各种功能的实用示例。
examples/backup-example/ 中,此示例显示了 npm run db:backup 命令生成的 JSON 文件的结构和格式。更多详情请参见 示例自述文件。examples/deep-research-example/ 中,此示例演示了 atlas_deep_research 工具生成的输出和结构。它包含一个 markdown 文件 (covington_community_grant_research.md),总结了研究计划,以及一个 JSON 文件 (full-export.json),其中包含创建研究计划后从数据库导出的原始数据。更多详情请参见 示例自述文件。Apache 许可证 2.0