Skip to main content
Glama

Manus MCP

CI Live

公式のManus API v2を通じて、Claude CodeにManus.imの完全なプログラム制御を提供するMCPサーバーです。文書化された全30エンドポイント、一般的なワークフローのための3つの複合ツール、およびRSA-SHA256署名検証を備えたローカルWebhookレシーバーを実装しています。

  • ステータス: 本番環境対応(シングルユーザー) — v0.1.1

  • 言語: Python 3.11+

  • トランスポート: stdio (Claude Codeネイティブ)

  • ベースURL: https://api.manus.ai

検証済みカバレッジ (v0.1.1)

レイヤー

メトリクス

ユニットテスト

60以上 (server.pyのディスパッチ、Webhook ASGIアプリ、シークレット漏洩ガード、スキーマの安定性)

ライブE2Eテスト

23 (task.update / sendMessage / confirmAction / agent.update / website.publish を含む)

複合ライブテスト

4 (F2拒否チェックを含む)

WebhookライブE2E

1 (cloudflaredトンネル + レシーバー + Manus配信)

ライブ実行されたManus APIエンドポイント

30/30 (アカウントに前提条件がない場合のみ正常にスキップ — エージェントなし / ウェブサイトなし)

カバレッジ

≥ 80% (CIでゲート制御)

mypy --strict

0エラー

ruff check

0エラー

本番環境のフローについては、docs/SECURITY.mdおよびdocs/RELEASE.mdを参照してください。

含まれるもの

30の直接APIラッパー

カテゴリ

ツール

タスク (9)

manus_task_create, manus_task_detail, manus_task_list, manus_task_update, manus_task_stop, manus_task_delete, manus_task_send_message, manus_task_list_messages, manus_task_confirm_action

プロジェクト (2)

manus_project_create, manus_project_list

スキル (1)

manus_skill_list

エージェント (3)

manus_agent_list, manus_agent_detail, manus_agent_update

ファイル (3)

manus_file_create, manus_file_detail, manus_file_delete

Webhook (4)

manus_webhook_create, manus_webhook_list, manus_webhook_delete, manus_webhook_public_key

使用量 (3)

manus_usage_list, manus_usage_team_statistic, manus_usage_team_log

コネクタ (1)

manus_connector_list

ブラウザ (1)

manus_browser_online_list

ウェブサイト (3)

manus_website_status, manus_website_list_checkpoints, manus_website_publish

3つの複合ツール

  • manus_file_upload — 署名付きURLを作成し、バイトをアップロードして status=uploaded を待ちます。pathbase64、または公開 url を受け入れます。

  • manus_task_wait — タスクが終了ステータス (stopped / waiting / error) に達するまでポーリングし、新しいメッセージと待機詳細 (event_id + レスポンススキーマ) を返します。

  • manus_website_publish_and_wait — サイトを公開し、published または failed になるまで待ちます。

3つのWebhookツール (ローカルSQLite DBから読み取り)

  • manus_webhook_events_list — 受信したイベントをフィルタ付きで一覧表示します。

  • manus_webhook_events_getevent_id でイベントを取得します。

  • manus_webhook_events_clear — 受信したイベントを削除します。

合計: 36個のMCPツール

インストール

cd path/to/Manus-MCP
python -m venv .venv
# Windows:
.venv\Scripts\activate
# macOS/Linux:
# source .venv/bin/activate

pip install -e ".[dev]"

APIキーの設定

プロジェクトルートに .env ファイルを配置します(.env.example テンプレートが提供されています)。以下の両方の変数名が受け入れられます:

MANUS_API_KEY=sk-...
# or, for backwards compatibility:
# ManusAPI=sk-...

優先順位: process.env > .env

オプション設定:

MANUS_BASE_URL=https://api.manus.ai
MANUS_HTTP_TIMEOUT=60
MANUS_LOG_LEVEL=INFO

Claude Codeへの登録

.claude/settings.json (プロジェクトレベル) または ~/.claude/settings.json (グローバル) に以下を追加します:

{
  "mcpServers": {
    "manus": {
      "command": "python",
      "args": ["-m", "manus_mcp"],
      "cwd": "path/to/Manus-MCP"
    }
  }
}

MANUS_API_KEY がグローバルに設定されていない場合は、明示的に渡してください:

{
  "mcpServers": {
    "manus": {
      "command": "python",
      "args": ["-m", "manus_mcp"],
      "cwd": "path/to/Manus-MCP",
      "env": { "MANUS_API_KEY": "sk-..." }
    }
  }
}

Claude Codeを再起動すると、ツールリストに manus_* ツールが表示されます。

検証

サーバーを起動せずに実行:

python scripts/list_tools.py

実際のAPIに対して実行:

python scripts/smoke.py

ユニットテスト:

pytest

リントと型チェック:

ruff check .
mypy manus_mcp

Claude Codeからの使用例

manus_task_create { "message": { "content": "Give me a 5-bullet summary of today's AI news" } }

レスポンスには task_id が含まれます。次に:

manus_task_wait { "task_id": "<id>", "timeout_sec": 600 }

終了すると、最終的な返信を含む last_assistant_message と、会話履歴を含む new_messages が取得されます。

ファイルをアップロードしてタスクに添付する:

manus_file_upload { "source": { "path": "C:/docs/report.pdf" } }
manus_task_create {
  "message": {
    "content": [
      { "type": "text", "text": "Summarize this report" },
      { "type": "file", "file_id": "<file_id>" }
    ]
  }
}

Webhookレシーバー (オプション)

ManusAPIDocs/webhooks/security.md に従った完全なRSA-SHA256署名検証を備えた、task_created / task_stopped イベント用のローカルレシーバーです。

1. 環境変数の設定

MANUS_WEBHOOK_PUBLIC_URL=https://your-tunnel.example.com/manus/webhook
MANUS_WEBHOOK_HOST=127.0.0.1
MANUS_WEBHOOK_PORT=8787
# MANUS_WEBHOOK_DB_PATH=...  # defaults to %LOCALAPPDATA%\manus-mcp\events.db on Windows

MANUS_WEBHOOK_PUBLIC_URL は、Manusが呼び出すURLと完全に一致している必要があります。Manusの署名ペイロードにはこのURLが含まれているため、タイプミスがあるとすべてのイベントが拒否されます。

2. トンネルの開始

例えば、Cloudflare Tunnelを使用する場合:

cloudflared tunnel --url http://localhost:8787

またはngrokを使用する場合:

ngrok http 8787

3. レシーバーの実行

python -m manus_mcp.webhook_receiver
# or: manus-mcp-webhook --host 127.0.0.1 --port 8787

4. ManusへのWebhook登録

Claude Codeで以下を実行:

manus_webhook_create { "url": "https://your-tunnel.example.com/manus/webhook" }

5. イベントの読み取り

manus_webhook_events_list { "event_type": "task_stopped", "limit": 20 }
manus_webhook_events_get { "event_id": "..." }
manus_webhook_events_clear { "before_received_at": 1704000000 }

アーキテクチャ

manus_mcp/
├── __main__.py          # stdio entrypoint
├── server.py            # MCP Server bootstrap
├── config.py            # pydantic-settings
├── logger.py            # stderr-only logger
├── client/
│   ├── manus_client.py  # async httpx client + retry
│   ├── rate_limiter.py  # per-endpoint token bucket (from rate-limits.md)
│   ├── retry.py         # exponential backoff + jitter
│   └── errors.py        # ManusApiError / ManusNetworkError
├── schemas/             # pydantic models for each resource (tasks, projects, ...)
├── tools/               # @manus_tool registration for all 36 tools
│   ├── tasks.py projects.py skills.py agents.py
│   ├── files.py webhooks.py usage.py connectors.py
│   ├── browser.py website.py
│   └── composite.py     # task_wait / file_upload / website_publish_and_wait
└── webhook_receiver/
    ├── signature.py     # RSA-SHA256 verification using {ts}.{url}.{sha256_hex(body)}
    ├── storage.py       # SQLite WAL
    ├── server.py        # Starlette + uvicorn
    ├── tools.py         # events_list / events_get / events_clear
    └── __main__.py

レート制限

クライアントはAPI制限(60秒のスライディングウィンドウ)を遵守し、429レスポンスに対してバックオフとジッターを伴う再試行を透過的に行います。制限は ManusAPIDocs/getting-started/rate-limits.md に基づいています:

  • 10回/分: task.create, task.sendMessage

  • 40回/分: すべてのミューテーション

  • 100回/分: すべての読み取り専用呼び出し

  • 600回/分: usage.*

セキュリティ

  • APIキーはログに記録されません。

  • Webhookレシーバーは署名を検証し、5分以上経過したタイムスタンプを拒否します。

  • 公開鍵は1時間キャッシュされます。

  • SQLiteは安全なマルチリーダーアクセスのために check_same_thread=False を指定し、WALモードで開かれます。

ライセンス

MIT。

Install Server
A
license - permissive license
A
quality
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/aruxojuyu665/Manus-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server