Manus MCP
Manus MCP
MCP-сервер, который предоставляет Claude Code полный программный контроль над Manus.im через официальный Manus API v2. Реализует все 30 документированных конечных точек, 3 составных инструмента для типичных рабочих процессов и локальный приемник вебхуков с проверкой подписи RSA-SHA256.
Статус: готов к работе в продакшене (однопользовательский) — v0.1.1
Язык: Python 3.11+
Транспорт: stdio (родной для Claude Code)
Базовый URL:
https://api.manus.ai
Проверенное покрытие (v0.1.1)
Слой | Метрика |
Модульные тесты | 60+ (диспетчеризация server.py, ASGI-приложение вебхуков, защита от утечки секретов, стабильность схемы) |
Живые e2e-тесты | 23 (включая task.update / sendMessage / confirmAction / agent.update / website.publish) |
Составные живые тесты | 4 (включая проверку отклонения F2) |
Живой e2e-тест вебхука | 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) |
|
Вебхуки (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 инструмента для вебхуков (чтение из локальной БД 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Модульные тесты:
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>" }
]
}
}Приемник вебхуков (опционально)
Локальный приемник для событий task_created / task_stopped с полной проверкой подписи RSA-SHA256 согласно ManusAPIDocs/webhooks/security.md.
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 должен в точности совпадать с URL, который вызывает Manus. Полезная нагрузка подписи 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
В 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-ключ никогда не логируется.
Приемник вебхуков проверяет подписи и отклоняет временные метки старше 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