manus_usage_team_log
Retrieve per-user team statistics including task counts and credit totals. Filter by date range, sort by task count or credits, and paginate results. Each team member sees only their own data.
Instructions
Per-user team statistics (task counts + credit totals). Team accounts only; members see only their own row. Enterprise teams have T+1 latency.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| cursor | No | ||
| start_date | No | ||
| end_date | No | ||
| sort_by | No | ||
| is_asc | No |
Implementation Reference
- manus_mcp/tools/usage.py:53-69 (handler)Handler function for the manus_usage_team_log tool. Sends a GET request to /v2/usage.teamLog with query params from UsageTeamLogQuery, returning UsageTeamLogResponse.
@manus_tool( name="manus_usage_team_log", description=( "Per-user team statistics (task counts + credit totals). Team accounts only; members " "see only their own row. Enterprise teams have T+1 latency." ), input_schema=UsageTeamLogQuery, output_schema=UsageTeamLogResponse, ) async def usage_team_log(q: UsageTeamLogQuery, ctx: ToolCtx) -> UsageTeamLogResponse: return await ctx.client.call( "GET", "/v2/usage.teamLog", params=q.model_dump(exclude_none=True), response_model=UsageTeamLogResponse, rate_limit_key="usage.teamLog", ) - manus_mcp/schemas/usage.py:57-78 (schema)Input/output schemas for the tool: UsageTeamLogQuery (with limit, cursor, date filters, sort options) and UsageTeamLogResponse (with list of TeamLogEntry items and pagination).
class TeamLogEntry(ManusModel): model_config = ConfigDict(extra="allow") user_id: str | None = None user_name: str | None = None email: str | None = None task_count: IntField | None = None credits: IntField | None = None class UsageTeamLogQuery(ManusModel): limit: int | None = Field(default=None, ge=1, le=100) cursor: str | None = None start_date: int | None = None end_date: int | None = None sort_by: Literal["task_count", "credits"] | None = None is_asc: bool | None = None class UsageTeamLogResponse(ResponseEnvelope): data: list[TeamLogEntry] = [] has_more: bool | None = None next_cursor: str | None = None - manus_mcp/tools/registry.py:54-66 (registration)The @manus_tool() decorator registers tools into _REGISTRY. The manus_usage_team_log tool is registered when the decorator on usage_team_log fires at module import time.
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, ) - manus_mcp/tools/registry.py:72-80 (helper)The all_tools() helper retrieves all registered tools (including manus_usage_team_log) for the MCP server.
def all_tools() -> list[ToolDef[Any, Any]]: """Return a stable-ordered copy of every registered tool.""" return sorted(_REGISTRY.values(), key=lambda t: t.name) def clear_registry() -> None: """Test helper.""" _REGISTRY.clear()