Skip to main content
Glama
Clockbook-com

Freelance MCP server

Official

freelance_list_contracts

List contracts tied to your account, filter by role (freelancer or client), state, or job posting. Specify role to see work you're doing or paying for, with pagination.

Instructions

Contracts where this account is either the freelancer or the client organization. Requires READ_OWN. Pass filter.role to pick a side: FREELANCER is work this account is doing, CLIENT is work it is paying for. Without it you get both, which is rarely what a question means.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filterNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the permission requirement (READ_OWN) and the behavioral nuance of the role filter (default returns both sides), which is valuable. It does not describe pagination, return shape, or side effects, but as a read-only list operation, the most critical behaviors are covered. Lacks detail on what happens with no matches or how limit/offset interact, but these are not essential.

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

Conciseness5/5

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

The description is three sentences, each earning its place: the purpose, the permission, and the filter guidance with a warning. It is front-loaded with the core definition and avoids redundancy. No filler or vague phrasing.

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

Completeness4/5

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

Given the nested filter object, 5 parameters, no output schema, and no annotations, the description provides essential context: the account scope, the permission, and the role semantics. It does not mention pagination or default limit behavior, but these are adequately described in the schema. The description is sufficient for an agent to decide when to use this tool and how to construct a meaningful query.

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

Parameters4/5

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

The description adds significant meaning to the 'filter.role' parameter beyond the schema: it explains that FREELANCER means work the account is doing and CLIENT means work it is paying for, and warns about the default behavior. Other parameters (limit, state, offset, jobPostingId) have clear schema descriptions, so the description doesn't need to expand them. Since the most confusing parameter is fully explained, the description compensates for the low overall coverage.

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 states a clear verb ('list') and resource ('contracts') with a precise scope: contracts where the account is either freelancer or client organization. It explicitly names the two roles and contrasts with the likely sibling 'freelance_get_contract' by focusing on the plural list behavior. This leaves no ambiguity about what the tool does.

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?

The description gives explicit usage guidance: it states the required permission (READ_OWN), instructs to pass `filter.role` to select a side, and warns that omitting it returns both, which is 'rarely what a question means.' This tells the agent exactly when and how to use the filter, and implicitly directs to alternatives like get_contract for a single contract.

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