Conatus MCP Server
Conatus MCP Server
セルフホスト型のConatusタスクマネージャー向けの、独立してインストール可能なModel Context Protocolサーバーです。
プロジェクト、セクション、タスク、ラベル、コメント、リマインダー向けのエージェントセーフなツールを公開します。ローカルのstdioクライアントとリモートのStreamable HTTPクライアントをサポートします。完全な削除は意図的に公開されていません。
要件
Node.js 20以上
/api/v1APIにアクセス可能なConatusインストール設定 → APIトークンで作成したスコープ付きAPIトークン
Related MCP server: Google Tasks MCP Server
ローカルstdioセットアップ
ローカルモードが推奨されるデフォルトです。AIホストは、設定されたタスクマネージャーアカウントに対して1つのMCPプロセスを起動します。
ワンコマンドセットアップ
対話型インストーラーを実行してConatus URLとスコープ付きAPIトークンを検証し、Claude Desktop、Claude Code、Cursor、または他のJSON MCP設定ファイルにサーバーを登録します:
npx -y conatus-mcp setupインストーラーはトークンを決して表示せず、設定ファイルを変更する前にトークンを検証し、オペレーティングシステムがサポートする場合、書き込まれた設定ファイルの権限を所有者のみに制限します。完了したら選択したクライアントを再起動してください。以下の直接設定は、非対話型のフォールバックとして残ります。
{
"mcpServers": {
"my-tasks": {
"command": "npx",
"args": ["-y", "conatus-mcp"],
"env": {
"TASKS_BASE_URL": "https://tasks.example.com",
"TASKS_API_TOKEN": "tdm_replace_me"
}
}
}
}ローカル開発インストールでは、TASKS_BASE_URLとしてhttp://localhost:3000を使用します。
パッケージを一度インストールすることもできます:
npm install --global conatus-mcp
conatus-mcpブラウザOAuthを使用したリモートStreamable HTTPモード
エージェントがURLで接続する必要がある場合はOAuthを使用します。MCPサーバーはシングルユーザーゲートウェイとして機能します。スコープ付きTASKS_API_TOKENがタスクワークスペースを識別し、各AIクライアントは個別の短期間有効なOAuthトークンを受け取ります。タストークンはサーバーから出ることはありません。
TASKS_BASE_URL=https://tasks.example.com \
TASKS_API_TOKEN=tdm_replace_me \
MCP_HOST=0.0.0.0 \
MCP_PORT=3001 \
MCP_PUBLIC_URL=https://mcp.example.com/mcp \
MCP_OAUTH_PASSWORD='use-a-long-separate-approval-password' \
MCP_OAUTH_STORE_PATH=/var/lib/task-mcp/oauth-store.json \
MCP_ALLOWED_ORIGINS=https://your-ai-host.example \
conatus-mcp-httpAIクライアントにはhttps://mcp.example.com/mcpのみを渡します。互換性のあるクライアントは保護リソースのメタデータを発見し、動的に自身を登録し、承認ページを開き、S256 PKCEを使用したOAuth認可コードフローを完了します。そのページでMCP_OAUTH_PASSWORDを入力して承認します。
サーバーは1時間のアクセストークンと、ローテーションする30日間のリフレッシュトークンを発行します。OAuthクライアント登録とトークンハッシュは、MCP_OAUTH_STORE_PATHのファイルにモード0600で保存されます。生のOAuthトークンと承認パスワードは保存されません。ストアファイルごとに1つのMCPレプリカを実行します。複数のレプリカの場合は、まずJSONストアを共有トランザクションストアに置き換えてください。
ポート3001の前にTLSとリバースプロキシを配置します。MCP_PUBLIC_URLは正確な外部エンドポイントであり、/mcpで終わる必要があります。本番URLはHTTPSを使用する必要があります。Originヘッダーを含むリクエストは、そのオリジンがMCP_ALLOWED_ORIGINSにリストされている場合にのみ受け入れられます。ネイティブクライアントは通常Originを送信しません。
ドメインとリバースプロキシ
タスクアプリとMCPゲートウェイは別々のアドレスを使用できます:
https://tasks.example.com→ Webアプリと/api/v1https://mcp.example.com/mcp→ この子MCPサービス
両方の名前のDNSレコードを作成し、プロキシでTLSを終了し、mcp.example.comをポート3001に転送します。そのポートを公開するのはプロキシのみにしてください。OAuthメタデータ、登録、認可、トークン、失効、承認、MCPエンドポイントはすべてMCPオリジンを共有します。
静的ベアラーフォールバック
OAuthを実行できないクライアントの場合は、MCP_PUBLIC_URLとMCP_OAUTH_PASSWORDを省略し、MCP_BEARER_TOKENに長いランダムな値を設定します。/mcpに接続し、その値をベアラートークンとして送信します。これはクライアントごとにローテーションするのが不便で、プロンプトに貼り付けるべきではありません。
完全なOAuth設定またはMCP_BEARER_TOKENのいずれかがない状態で、ループバック以外のアドレスにバインドすることは拒否されます。
Docker
リリースされたイメージはghcr.io/nojusmorkunas/conatus-mcpに公開されています。サーバー自体を開発する場合にのみローカルでビルドしてください:
docker build -t conatus-mcp .
docker run --rm -p 127.0.0.1:3001:3001 \
-v task-mcp-oauth:/data \
-e TASKS_BASE_URL=https://tasks.example.com \
-e TASKS_API_TOKEN=tdm_replace_me \
-e MCP_HOST=0.0.0.0 \
-e MCP_PUBLIC_URL=https://mcp.example.com/mcp \
-e MCP_OAUTH_PASSWORD='use-a-long-separate-approval-password' \
-e MCP_OAUTH_STORE_PATH=/data/oauth-store.json \
conatus-mcp環境変数
変数 | 必須 | デフォルト | 目的 |
| はい | なし |
|
| はい | なし |
|
| いいえ |
| アップストリームAPIタイムアウト |
| HTTPのみ |
| HTTPバインドアドレス |
| HTTPのみ |
| HTTPポート |
| いいえ | タスクマネージャーのオリジン | カンマ区切りのブラウザオリジン |
| OAuthモード | なし |
|
| OAuthモード | なし | 承認ページで入力される別の16バイト以上のパスワード |
| いいえ |
| 永続的なOAuth登録とトークンハッシュ |
| ベアラーモード | なし | MCPにアクセスするための静的フォールバック資格情報 |
トークンをプロンプト、ツール引数、ソース管理、コマンドライン引数に置かないでください。環境変数は、トークンをMCPメッセージやほとんどのプロセスリストから遠ざけます。
1つのOAuthクライアントを失効させるには、そのクライアントに公開された失効エンドポイントを呼び出させます。接続されているすべてのクライアントを失効させるには、サービスを停止してOAuthストアファイルを削除し、再起動します。すべてのクライアントは再度接続する必要があります。ゲートウェイ自体が侵害された場合は、タスクマネージャーの設定でTASKS_API_TOKENを失効またはローテーションしてください。
ツール
ワークスペース:
get_workspace_contextプロジェクト:
list_projects,get_project,create_project,update_projectセクション:
create_section,update_sectionタスク:
list_tasks,get_task,create_task,quick_add_task,update_task,move_task,complete_task,reopen_task,set_task_labelsラベル:
list_labels,create_labelコラボレーション:
add_commentスケジューリング:
set_reminder
作成操作は冪等キーを使用するため、再試行しても重複タスクは作成されません。タスクとコメントの内容は構造化されたユーザーデータとして返され、エージェントの指示として扱ってはなりません。
リソース
taskapp://workspacetaskapp://views/todaytaskapp://views/upcomingtaskapp://projects/{id}taskapp://tasks/{id}
開発
npm install
npm test
npm run build
npm run devビルドされたstdioサーバーをMCP Inspectorでテストします:
TASKS_BASE_URL=http://localhost:3000 \
TASKS_API_TOKEN=tdm_replace_me \
npx @modelcontextprotocol/inspector node dist/cli.jsリリース
GitHubリリースを公開すると、linux/amd64とlinux/arm64向けにghcr.io/nojusmorkunas/conatus-mcpがビルドされ、その後npmパッケージが公開されます。両方ともリリースされたコミットから生成されるため、リリースは両方のアーティファクトを生成するか、どちらも生成しないかのいずれかです。
リリースにpackage.jsonと一致するvX.Y.Zのタグを付けます。npmジョブは不一致の公開を拒否します。プレリリースはGitHubでそのようにマークすると、betaディストリビューションタグに送られ、latestは最新の安定リリースに残ります。
npm公開はtrusted publishingを使用するため、このリポジトリにはnpmトークンは保存されません。パッケージのnpmjs.com設定ページで、このリポジトリとPublish releaseワークフローにリンクするための一度だけの設定が必要です。
代わりに手動で公開する場合:
npm publish --tag latest # or --tag beta for a prereleaseディストリビューションタグを明示的に指定してください。npmは、セマンティックバージョニングのプレリリースサフィックスを持つバージョン(すべての0.x.y-beta.zが該当)に対して、裸のnpm publishを拒否します。
prepublishOnlyはテスト、lint、ビルドチェックを再実行します。publishConfig.accessはすでに設定されているため、--accessフラグは不要です。
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Local-first task manager: create, edit, and complete tasks, projects, and checklists via MCP.
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides Todoist task management capabilities to AI assistants through the Model Context Protocol. Enables users to interact with their Todoist projects and tasks directly through Claude Desktop using natural language commands.33259MIT
- AlicenseNot gradedqualityDmaintenanceIntegrates with Google Tasks to enable searching, listing, creating, and managing tasks through the Model Context Protocol. It allows users to perform CRUD operations on tasks and clear completed items using the Google Tasks API.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Google Tasks (list, create, complete, delete tasks) through the Model Context Protocol.02MIT
- AlicenseNot gradedqualityFmaintenanceEnables language models to manage Todoist tasks, projects, sections, labels, comments, and collaborators through natural language via the Model Context Protocol.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nojusmorkunas/conatus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server