Skip to main content
Glama

Moxlade — Upwork buyer intelligence

What your agent has called

get_activity
Read-onlyIdempotent

What this token has called, newest first — the log of your own use.

Every call is recorded: the tool, the arguments you sent, how long it took, whether it succeeded, and the refusal text when it did not. Refusals are the useful half — "why did my agent stop" is the question a log exists to answer, and a cap being hit looks identical to a broken tool without it.

Use it to see what your agent actually did, to find the call that failed, or to check how much of today's caps you have spent (get_plan gives the caps themselves).

SCOPE IS THE ACCOUNT, NOT THE TOKEN. It returns every call made under your account — across a re-mint, and across both ways in, since a pasted token and an OAuth login resolve to one account. So a token minted a minute ago still shows the history that came before it: replacing a token you lost must not erase what you did with the old one. There is no argument that widens it beyond your own account, and none that narrows it to a single credential. (The exception is a hand-minted token from before self-serve, which carries no account and therefore sees only itself.)

limit is 1-500, newest first. Read-only, and unmetered against your corpus allowance — auditing your own use should never cost you a question.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNocalls to return, 1-500, newest first

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
callsNoNewest first, across re-mints and across both ways in.
countNoHow many were returned. This is the size of `calls` after `limit`, NOT your lifetime total.
scopeNoWhat the log covers, said plainly — the ACCOUNT, not the credential. Never null; read it before concluding a call is missing, because a call made under a token you have since replaced still appears here.
succeededNoHow many of the returned calls answered. Never null: a log with no successes reports 0.
refused_or_failedNocount - succeeded. A refusal is counted here, so a run of these is the thing to read when an agent looks stuck.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, idempotentHint, openWorldHint=false, and the description is consistent with all of them while adding meaningfully beyond them: it discloses that the operation is 'unmetered against your corpus allowance' and spells out the non-obvious account-wide scoping across re-mints and both auth methods. This is precisely the kind of behavioral context structured annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core statement is front-loaded and the paragraphs are logically ordered (what → value → usage → scope → parameter). The scope discussion is somewhat verbose, but every sentence carries non-obvious, operationally important information (account-scoping, re-mints, credential unification, the exceptional hand-minted case) that an agent would otherwise misuse the tool without. Slightly long, justified by complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present to document return values, the description covers everything else an agent needs: purpose, failure-diagnosis value, account-level scope semantics, scope limits, exceptions, limit constraints, read-only safety, and metering behavior. Nothing an agent requires to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single `limit` parameter (1-500, newest first). The description restates this ('`limit` is 1-500, newest first') but adds little beyond the schema's own description. Per the baseline rule for high schema coverage, a 3 is appropriate — the schema does the heavy lifting and the description merely reinforces it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb+resource statement — 'What this token has called, newest first — the log of your own use' — which unambiguously identifies the tool as an audit log of API calls. It goes further and differentiates from siblings by explaining what the tool is NOT (caps), pointing to get_plan for that purpose. The refusal-log emphasis ('why did my agent stop') gives a distinctive identity no sibling shares.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames when to use it: 'to see what your agent actually did, to find the call that failed, or to check how much of today's caps you have spent.' It names the alternative for caps (get_plan) and describes the scope exclusions ('no argument that widens it beyond your own account, and none that narrows it'). The hand-minted-token exception is also called out, leaving no ambiguity about applicability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.8/5.0
Disambiguation5/5

Each tool serves a distinct, well-scoped function with no overlap. Even related tools like get_buyer and get_buyer_quality are clearly separated by their purposes and descriptions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using clear, descriptive verbs (check, delete, describe, get, list, save, search, rate). No mixed cases or conventions.

Tool Count5/5

15 tools is appropriate for the server's purpose, covering search, filtering, saved searches, buyer intelligence, job details, rate benchmarks, skill demand, and plan management without being excessive.

Completeness5/5

The set covers all core operations for Upwork buyer intelligence: searching, validating filters, saving searches, buyer analysis, job scoring, rate benchmarks, skill demand, and plan management. No significant gaps are apparent.

Resources