ATLAS: タスク管理システム


ATLAS (Adaptive Task & Logic Automation System) は、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を使用するように完全に書き換えられました。Neo4jを使用するには、次のいずれかが必要です。
バージョン 2.5.0 では、以前の構造に代わる新しい 3 ノード システム (プロジェクト、タスク、ナレッジ) が導入されています。
目次
Related MCP server: Apollo.io MCP Server
概要
ATLAS はモデルコンテキストプロトコル (MCP) を実装し、以下を通じて LLM と外部システム間の標準化された通信を可能にします。
クライアント: Claude Desktop、IDE、およびその他の MCP 互換クライアント
サーバー: プロジェクト、タスク、知識管理のためのツールとリソース
LLMエージェント:サーバーの管理機能を活用するAIモデル
システム統合
Atlas プラットフォームは、次のコンポーネントを 1 つの統合システムに統合します。
プロジェクトとタスクの関係:プロジェクトには、プロジェクトの目標を達成するために必要な実行可能なステップを表すタスクが含まれます。タスクは親プロジェクトのコンテキストを継承しながら、個々の作業項目をきめ細かく追跡できます。
知識の統合: プロジェクトとタスクの両方に知識項目を追加して、チーム メンバーに必要な情報とコンテキストを提供できます。
依存関係管理: プロジェクトとタスクの両方が依存関係をサポートし、前提条件と順次実行要件を含む複雑なワークフローを可能にします。
統合検索: プラットフォームはエンティティ間の検索機能を提供し、ユーザーはさまざまな基準に基づいて関連するプロジェクト、タスク、または知識を見つけることができます。
特徴
プロジェクト管理
タスク管理
**タスク ライフサイクル管理:**タスクのライフサイクル全体にわたってタスクを作成、追跡、更新します。
**優先順位付けと分類:**優先順位を割り当て、タグを使用してタスクを分類し、整理しやすくします。
**依存関係の追跡:**タスクの依存関係を確立して、構造化されたワークフローを作成します。
ナレッジマネジメント
**構造化された知識リポジトリ:**プロジェクト関連情報の検索可能なリポジトリを維持します。
**ドメイン分類:**知識をドメインとタグ別に整理し、簡単に検索できるようにします。
**引用サポート:**ナレッジ項目のソースと参照を追跡します。
グラフデータベース統合
統合検索
インストール
リポジトリをクローンします。
git clone https://github.com/cyanheads/atlas-mcp-server.git
cd atlas-mcp-server
依存関係をインストールします:
Neo4jの設定: Neo4jインスタンスが実行中でアクセス可能であることを確認してください。提供されているDocker設定を使用してインスタンスを起動できます。
Neo4j 接続の詳細を使用して.envファイルを更新します (構成を参照)。
プロジェクトをビルドします。
サーバーの実行
ほとんどの MCP クライアントはサーバーを自動的に実行しますが、次のコマンドを使用してテストまたは開発の目的で手動で実行することもできます。
ATLAS MCP サーバーは、通信用の複数のトランスポート メカニズムをサポートしています。
**標準 I/O (stdio):**これはデフォルトのモードで、通常はローカル MCP クライアント (IDE 拡張機能など) との直接統合に使用されます。
これはMCP_TRANSPORT_TYPE=stdio設定を使用します。
**ストリーミング可能な HTTP:**このモードでは、サーバーは HTTP 経由で MCP 要求をリッスンできるため、リモート クライアントや Web ベースの統合に適しています。
MCP_TRANSPORT_TYPE=http設定を使用します。サーバーは.envファイルで定義されたホストとポート(例: MCP_HTTP_HOSTとMCP_HTTP_PORT 、デフォルトは127.0.0.1:3010 )でリッスンします。リモートアクセスする場合は、ファイアウォールで接続が許可されていることを確認してください。
Web UI(実験的)
プロジェクト、タスク、ナレッジの詳細を表示するための基本的な 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.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" // 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_project_create
| 新しいプロジェクトを作成します (単一/一括)。 | mode ('single'/'bulk')、 id (シングルモードの場合はオプションのクライアント生成ID)、プロジェクトの詳細( name 、 description 、 status 、 urls 、 completionRequirements 、 dependencies 、 outputFormat 、 taskType )。バルクモードの場合は、 projects (プロジェクトオブジェクトの配列responseFormatを使用します。responseFormat('formatted'/'json'、オプション、デフォルト:'formatted')。
|
atlas_project_list
| プロジェクトを一覧表示します (すべて/詳細)。 | mode ('all'/'details'、デフォルト: 'all')、 id (詳細モードの場合)、filters ( status 、 taskType )、pagination ( page 、 limit )、includes ( includeKnowledge 、 includeTasks )、 responseFormat ('formatted'/'json'、オプション、デフォルト: 'formatted')。
|
atlas_project_update
| 既存のプロジェクトを更新します (単一/一括)。 | mode ('single'/'bulk')、 id (シングルモードの場合responseFormat 、 updatesオブジェクト。バルクモードの場合は、 projects (それぞれidとupdatesを持つオブジェクトの配列) を使用します。responseFormat ('formatted'/'json'、オプション、デフォルト: 'formatted')。
|
atlas_project_delete
| プロジェクトを削除します (単一/一括)。 | mode ('single'/'bulk')、 id (シングル モードの場合)、またはprojectIds (バルク モードresponseFormat場合は配列)。responseFormat ('formatted'/'json'、オプション、デフォルト: 'formatted')。
|
タスク操作
ツール名 | 説明 | 主な議論 |
atlas_task_create
| 新しいタスクを作成します (単一/一括)。 | mode ('single'/'bulk')、 id (オプションのクライアント生成ID)、 projectId 、タスクの詳細( title 、 description 、 priority 、 status 、 assignedTo 、 urls 、 tags 、 completionRequirements 、 dependencies 、 outputFormat 、 taskType )。一括モードresponseFormat場合は、 tasks (タスクオブジェクトの配列)を使用します。responseFormat('formatted'/'json'、オプション、デフォルト:'formatted')。
|
atlas_task_update
| 既存のタスクを更新します (単一/一括)。 | mode ('single'/'bulk')、 id (シングルモードの場合responseFormat 、 updatesオブジェクト。バルクモードの場合は、 tasks (それぞれidとupdatesを持つオブジェクトの配列) を使用します。responseFormat ('formatted'/'json'、オプション、デフォルト: 'formatted')。
|
atlas_task_delete
| タスクを削除します (単一/一括)。 | mode ('single'/'bulk')、 id (シングル モードの場合)、またはtaskIds (バルク モードresponseFormat場合は配列)。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を使用します。responseFormat ('formatted'/'json'、オプション、デフォルト: 'formatted')。
|
atlas_knowledge_delete
| ナレッジ アイテムを削除します (単一/一括)。 | mode ('single'/'bulk')、 id (シングル モードの場合) またはknowledgeIds (バルク モードresponseFormat場合は配列)。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 fuzzy の場合))、ページ区切り ( 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が含まれます。
手動バックアップ: 提供されているスクリプトを使用して手動バックアップをトリガーできます。
このコマンドは、 exportDatabase関数を呼び出すscripts/db-backup.tsを実行します。
復元プロセス
メカニズム:復元プロセスはまず、既存のNeo4jデータベースを完全にクリアします。次に、指定されたバックアップディレクトリにあるJSONファイルからノードとリレーションシップをインポートします。full full-export.json利用可能な場合は、それが優先されます。
警告:バックアップからの復元は破壊的な操作です。Neo4jデータベース内の現在のデータはすべて上書きされます。
手動復元: バックアップ ディレクトリからデータベースを復元するには、インポート スクリプトを使用します。
npm run db:import <path_to_backup_directory>
<path_to_backup_directory>実際のバックアップフォルダへのパス(例: ./atlas-backups/atlas-backup-20250326120000 atlas-backup-20250326120000)に置き換えます。このコマンドは、 importDatabase関数を呼び出すscripts/db-import.tsを実行します。
リレーションシップの処理:インポートプロセスでは、エクスポート時にノードに保存されたidプロパティに基づいてリレーションシップを再構築しようとします。リレーションシップを正しく復元するには、ノードのidプロパティが一貫していることを確認してください。
例
examples/ディレクトリには、ATLAS MCP サーバーのさまざまな機能を示す実用的な例が含まれています。
バックアップ例: examples/backup-example/にあるこの例は、 npm run db:backupコマンドによって生成されるJSONファイルの構造と形式を示しています。詳細については、例のREADMEをご覧ください。
Deep Research の例: examples/deep-research-example/にあるこの例は、 atlas_deep_researchツールによって生成された出力と構造を示しています。研究計画の概要を示すマークダウンファイル ( covington_community_grant_research.md ) と、研究計画作成後にデータベースからエクスポートされた生データを含む JSON ファイル ( full-export.json ) が含まれています。詳細については、例の README をご覧ください。
ライセンス
Apacheライセンス2.0