manus_task_create
Create an asynchronous Manus task using text, file, or voice content. Configure project, locale, interactive mode, agent profile, connectors, and skills. Run in background and poll or wait for completion.
Instructions
Create a new Manus task. Runs asynchronously; poll manus_task_list_messages or use manus_task_wait for completion. Supports text/file/voice content parts, connectors, skills, project scoping, and interactive mode.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | ||
| project_id | No | ||
| locale | No | ||
| interactive_mode | No | ||
| hide_in_task_list | No | ||
| share_visibility | No | ||
| agent_profile | No | ||
| title | No |
Implementation Reference
- manus_mcp/tools/tasks.py:28-45 (handler)Handler function for the manus_task_create tool. Decorated with @manus_tool, it makes a POST request to /v2/task.create.
@manus_tool( name="manus_task_create", description=( "Create a new Manus task. Runs asynchronously; poll manus_task_list_messages or use " "manus_task_wait for completion. Supports text/file/voice content parts, connectors, " "skills, project scoping, and interactive mode." ), input_schema=TaskCreateRequest, output_schema=TaskCreateResponse, ) async def task_create(req: TaskCreateRequest, ctx: ToolCtx) -> TaskCreateResponse: return await ctx.client.call( "POST", "/v2/task.create", json_body=req, response_model=TaskCreateResponse, rate_limit_key="task.create", ) - manus_mcp/schemas/tasks.py:54-62 (schema)Input and output Pydantic schemas for task.create. TaskCreateRequest defines the message block and optional fields; TaskCreateResponse wraps the created task ID and URLs.
class TaskCreateRequest(ManusModel): message: MessageBlock project_id: str | None = None locale: str | None = None interactive_mode: bool | None = None hide_in_task_list: bool | None = None share_visibility: ShareVisibility | None = None agent_profile: AgentProfile | None = None title: str | None = None - manus_mcp/tools/registry.py:42-69 (registration)The @manus_tool decorator that registers manus_task_create into the global _REGISTRY dict when the tasks module is imported.
def manus_tool( *, name: str, description: str, input_schema: type[TIn], output_schema: type[TOut], rate_limit_key: str | None = None, ) -> Callable[ [Callable[[TIn, ToolCtx], Awaitable[TOut]]], Callable[[TIn, ToolCtx], Awaitable[TOut]] ]: """Decorator registering `handler` as a tool with the given metadata.""" def wrap( handler: Callable[[TIn, ToolCtx], Awaitable[TOut]], ) -> Callable[[TIn, ToolCtx], Awaitable[TOut]]: if name in _REGISTRY: raise RuntimeError(f"Duplicate tool name: {name}") _REGISTRY[name] = ToolDef( name=name, description=description, input_schema=input_schema, output_schema=output_schema, handler=handler, rate_limit_key=rate_limit_key, ) return handler return wrap - manus_mcp/schemas/tasks.py:44-49 (helper)MessageBlock helper schema used as the 'message' field in TaskCreateRequest. Defines content (text or file/voice parts), connectors, and skills.
class MessageBlock(ManusModel): content: str | list[ContentPart] connectors: list[str] | None = None enable_skills: list[str] | None = None force_skills: list[str] | None = None