Manus MCP
Manus MCP
一个 MCP 服务器,通过官方 Manus API v2 为 Claude Code 提供对 Manus.im 的完全程序化控制。实现了 全部 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 应用、密钥泄露防护、模式稳定性) |
实时端到端测试 | 23 (包括 task.update / sendMessage / confirmAction / agent.update / website.publish) |
复合实时测试 | 4 (包括 F2 拒绝检查) |
Webhook 实时端到端 | 1 (cloudflared 隧道 + 接收器 + Manus 投递) |
已执行的 Manus API 端点 | 30/30 (仅在账户缺少先决条件时优雅跳过 — 无代理 / 无网站) |
覆盖率 | ≥ 80% (CI 中强制要求) |
| 0 错误 |
| 0 错误 |
请参阅 docs/SECURITY.md 和 docs/RELEASE.md 了解生产流程。
Related MCP server: claudecode-mcp
包含内容
30 个直接 API 封装
类别 | 工具 |
任务 (9) |
|
项目 (2) |
|
技能 (1) |
|
代理 (3) |
|
文件 (3) |
|
Webhooks (4) |
|
使用情况 (3) |
|
连接器 (1) |
|
浏览器 (1) |
|
网站 (3) |
|
3 个复合工具
manus_file_upload— 创建预签名 URL,上传字节,并等待status=uploaded。接受path、base64或公共url。manus_task_wait— 轮询任务直到其达到终止状态 (stopped/waiting/error) 并返回新消息以及等待详情 (event_id + 响应模式)。manus_website_publish_and_wait— 发布网站并等待直到其变为published或failed。
3 个 Webhook 工具 (从本地 SQLite 数据库读取)
manus_webhook_events_list— 列出带有过滤器的已接收事件。manus_webhook_events_get— 通过event_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单元测试:
pytestLint 和类型检查:
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 接收器 (可选)
一个用于 task_created / task_stopped 事件的本地接收器,具有根据 ManusAPIDocs/webhooks/security.md 的完整 RSA-SHA256 签名验证。
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 WindowsMANUS_WEBHOOK_PUBLIC_URL 必须与 Manus 调用的 URL 完全匹配。Manus 签名负载包含此 URL,因此即使是一个拼写错误也会导致每个事件被拒绝。
2. 启动隧道
例如,使用 Cloudflare Tunnel:
cloudflared tunnel --url http://localhost:8787或 ngrok:
ngrok http 87873. 运行接收器
python -m manus_mcp.webhook_receiver
# or: manus-mcp-webhook --host 127.0.0.1 --port 87874. 向 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.sendMessage40/分钟: 所有变更操作
100/分钟: 所有只读调用
600/分钟:
usage.*
安全性
API 密钥从不被记录。
Webhook 接收器验证签名并拒绝超过 5 分钟的时间戳。
公钥缓存 1 小时。
SQLite 以 WAL 模式打开,设置
check_same_thread=False以实现安全的多读取器访问。
许可证
MIT。
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 Servers
- AlicenseAqualityAmaintenanceMCP Server for the Notion API, enabling Claude to interact with Notion workspaces.31682918MIT
- AlicenseAqualityBmaintenanceLocal MCP server that wraps the headless Claude Code CLI as MCP tools, providing stateless access to Claude's coding capabilities through prompt-based interactions. It enables users to execute Claude Code commands with various prompt formats and structured outputs directly from MCP clients.3MIT
- Alicense-qualityDmaintenanceTurns any CLI tool or REST API into an MCP server for Claude, enabling Claude to use git, databases, or any API through natural language.MIT
- Flicense-qualityCmaintenanceA remote MCP server that wraps the Manus API to expose a generate_image tool, enabling Claude to request image generation via Manus.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
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/0-SOFT/Manus-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server