manus_skill_list
Retrieve available skills, showing global user skills and optionally adding project-specific skills by supplying a project ID.
Instructions
List available skills. Provide project_id to include project-specific skills in addition to global user skills.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No |
Implementation Reference
- manus_mcp/tools/skills.py:18-25 (handler)The actual handler function for the 'manus_skill_list' tool. It calls the '/v2/skill.list' API endpoint via the Manus client.
async def skill_list(q: SkillListQuery, ctx: ToolCtx) -> SkillListResponse: return await ctx.client.call( "GET", "/v2/skill.list", params=q.model_dump(exclude_none=True), response_model=SkillListResponse, rate_limit_key="skill.list", ) - manus_mcp/schemas/skills.py:31-32 (schema)Input schema (SkillListQuery) - accepts an optional project_id parameter.
class SkillListQuery(ManusModel): project_id: str | None = None - manus_mcp/schemas/skills.py:35-36 (schema)Output schema (SkillListResponse) - returns a list of SkillRecord objects.
class SkillListResponse(ResponseEnvelope): data: list[SkillRecord] = [] - manus_mcp/tools/skills.py:9-17 (registration)The @manus_tool decorator that registers 'manus_skill_list' with its name, description, input_schema, and output_schema into the global tool registry.
@manus_tool( name="manus_skill_list", description=( "List available skills. Provide project_id to include project-specific skills " "in addition to global user skills." ), input_schema=SkillListQuery, output_schema=SkillListResponse, ) - manus_mcp/tools/registry.py:54-69 (registration)The manus_tool decorator implementation that stores the ToolDef entry in the _REGISTRY dict by tool name.
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