Skip to main content
Glama
joinfreeplay

Freeplay MCP Server

Official
by joinfreeplay

Freeplay MCP Server

Your AI agent finds you paid app offers. Complete tasks, earn money, get paid instantly.

What is Freeplay?

Freeplay is a marketplace where AI agents find paid offers for their users. Install an app, reach a level, sign up for a service — and get paid real money. Your agent handles everything: browsing offers, creating contracts, tracking progress, and cashing out.

Average offer value: $5-$50+
Payout methods: Gift cards, PayPal, Venmo, bank transfer, Bitcoin Lightning
Beta: First 100 agents only

Related MCP server: mcp-humanpages

Quick Start

Option 1: OpenClaw

mcporter add freeplay

Option 2: Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "freeplay": {
      "command": "npx",
      "args": ["-y", "@freeplay/mcp-server"],
      "env": {
        "FREEPLAY_API_URL": "https://a2a-api.vercel.app"
      }
    }
  }
}

Option 3: Cursor

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "freeplay": {
      "command": "npx",
      "args": ["-y", "@freeplay/mcp-server"]
    }
  }
}

Option 4: Manual

npm install -g @freeplay/mcp-server
freeplay-mcp

Or from source:

git clone https://github.com/ArkMaster123/a2a-protocol.git
cd a2a-protocol/mcp-server
npm install
npm run build
node dist/server.js

Available Tools (10 tools)

browse_offers

Browse the marketplace for available offers the user can complete to earn money.

Param

Type

Required

Description

user_id

string

No

Freeplay user UUID for personalized offers and tier rate

country

string

No

ISO country code (e.g., "US", "GB")

device

string

No

Device platform: ios/iphone, android, macos/mac/desktop, browser/web

page

number

No

Page number (default 1)

page_size

number

No

Items per page (default 20)


get_offer

Get full offer details with milestones, payouts, and deadlines — formatted as a contract template.

Param

Type

Required

Description

user_id

string

No

Freeplay user UUID

gokart_offer_id

string

Yes

Offer ID from browse_offers


accept_offer

Accept an offer and create a binding contract. Returns a branded tracking link the user must click to start.

Param

Type

Required

Description

user_id

string

Yes

Freeplay user UUID

gokart_offer_id

string

Yes

Offer ID


check_progress

Check contract milestone progress — which steps are done, what's left, current payout status.

Param

Type

Required

Description

user_id

string

Yes

Freeplay user UUID

contract_id

string

No

Specific contract ID (defaults to most recent active)


my_contracts

List all your contracts — active, completed, and expired.

Param

Type

Required

Description

user_id

string

Yes

Freeplay user UUID

status

string

No

Filter: active, in_progress, completed, voided, expired


register

Register a new user on Freeplay. Returns user_id on success or waitlist position.

Param

Type

Required

Description

agent_id

string

Yes

Unique agent identifier (e.g., Telegram user ID)

country

string

No

ISO 2-letter country code

device

enum

Yes

ios, android, macos, or browser

age

number

No

User's age (13-120)

gender

string

No

User's gender

telegram_chat_id

string

No

Telegram chat ID for push notifications


verify_identity

Start KYC verification via Veriff. Required before first cash out.

Param

Type

Required

Description

user_id

string

Yes

Freeplay user UUID

passcode

string

No

Sandbox passcode for testing


set_payout_method

Set how you want to get paid.

Param

Type

Required

Description

user_id

string

Yes

Freeplay user UUID

method

enum

Yes

tremendous, lightning, or usdc_base

email

string

No

Email for Tremendous payouts

lightning_address

string

No

Lightning address (e.g., user@walletofsatoshi.com)

wallet_address

string

No

USDC wallet address on Base


status

Full account overview — registration, KYC, payout method, active contracts, total earnings.

Param

Type

Required

Description

user_id

string

Yes

Freeplay user UUID


cash_out

Withdraw pending earnings. $5 minimum, KYC required.

Param

Type

Required

Description

user_id

string

Yes

Freeplay user UUID

How It Works

  1. Register — Your agent registers you on Freeplay

  2. Browse — Explore 1,000+ offers from top brands

  3. Accept — Pick an offer → agent creates a contract with milestones

  4. Complete — Click the tracking link → complete the app tasks

  5. Earn — Earnings accrue in your ledger automatically

  6. Cash out — Hit $5 → choose your payout method

  7. Verify — Complete identity verification once (Veriff) → money flows

Payout Methods

  • 🎁 Gift cards (Amazon, Apple, hundreds more)

  • 💳 PayPal

  • 💸 Venmo

  • 🏦 Bank transfer

  • 💳 Virtual Visa

  • ⚡ Bitcoin Lightning

Configuration

Env Var

Required

Default

Description

FREEPLAY_API_URL

No

https://a2a-api.vercel.app

Freeplay API

FREEPLAY_TIMEOUT

No

15000

Request timeout in ms

FREEPLAY_MAX_RETRIES

No

2

Max retries on 5xx errors

That's it. No API keys needed.

Beta Access

Freeplay is in closed beta — first 100 agents. Register early to secure your spot.

License

Proprietary — Freeplay

Available Tools

11 tools
accept_offerA

Accept an offer and create a binding contract. Returns a branded tracking link the user must click to start.

The Freeplay API handles the full flow: user validation, KYC check, GoKart offer fetch, tracking URL, branded link, and contract creation. If any step fails, nothing is created.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesFreeplay user UUID
gokart_offer_idYesGoKart offer ID

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It discloses the binding contract creation, the requirement for the user to click a branded tracking link, and the atomicity of the operation ('If any step fails, nothing is created'). This is rich behavioral context beyond a simple mutation.

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 concise and well-structured. The first sentence front-loads the purpose and return value, while the second paragraph explains the automated process and failure behavior without unnecessary verbosity.

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?

The tool has no output schema and no annotations, so the description explains the return (a branded tracking link) and the high-level process (user validation, KYC, GoKart fetch, etc.). It does not mention prerequisites or error types, but is sufficient for the tool's moderate complexity.

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 description coverage is 100% (both parameters have clear descriptions: 'Freeplay user UUID' and 'GoKart offer ID'). The tool description does not add additional parameter-level semantic detail, so a baseline score of 3 is appropriate.

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 clearly states the tool's action ('Accept an offer and create a binding contract') with a specific verb and resource, and distinguishes it from sibling tools like browse_offers and get_offer by focusing on the acceptance and contract creation behavior.

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool (when accepting an offer) and explains the automated flow, but does not explicitly name alternatives or exclusions. This is a clear use-case statement without explicit 'when-not' guidance.

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

browse_offersA

Browse available offers the user can complete to earn money. Shows offer names, what to do, what you earn, and device requirements. All offers come live from the Freeplay API.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
deviceNoDevice platform. Accepts: ios/iphone, android, macos/mac/desktop, browser/web.
countryNoISO country code (e.g., "US", "GB")
user_idYesFreeplay user UUID — required for personalized offers and tier rate
page_sizeNoItems per page (default 20)

TDQS

A4.2/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 transparency burden. It discloses that all offers come live from the Freeplay API and specifies the content of the display. The operation is inherently read-only, and while it omits pagination details, these are covered in the schema descriptions.

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 two sentences, front-loaded with the main action, and contains no unnecessary words. Every sentence earns its place.

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?

For a simple browsing tool, the description covers the core purpose, data source, and displayed content. Pagination is implied via the page/page_size parameters in the schema, and the lack of an output schema is acceptable for a listing operation. It is sufficiently complete for an agent to use correctly.

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?

All five parameters have descriptive text in the input schema (100% coverage), so the description adds no extra parametric meaning. According to the rubric, this meets the baseline score of 3; the schema handles parameter semantics.

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 uses a specific verb 'browse' with the resource 'available offers' and clearly states what the tool shows: offer names, actions, earnings, and device requirements. This differentiates it from sibling tools like get_offer by focusing on the listing/browsing aspect.

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

Usage Guidelines4/5

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

The description provides clear context that this is for viewing offers users can complete to earn money, implying when to use it for browsing/listing. However, it does not explicitly mention alternatives or exclude usage for specific offer lookup, which would require get_offer.

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

cash_outA

Cash out your pending earnings. All completed milestones accrue in your ledger. Once your pending balance reaches $5.00, you can withdraw everything at once.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesFreeplay user UUID

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It explains the accrual process, the $5 minimum threshold, and that withdrawal is all-at-once. This gives the agent a good sense of the tool's behavior beyond the basic 'cash out' action.

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 two concise sentences, front-loading the main action and providing essential context without any redundancy. Every sentence earns its place.

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?

For a simple one-parameter tool with no output schema, the description covers the key aspects: the action, the threshold, and the nature of withdrawal. It doesn't detail post-withdrawal consequences, but that's beyond the core function.

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?

The only parameter (user_id) is fully described in the schema with 'Freeplay user UUID'. The description adds no further meaning to the parameter, so a baseline of 3 is appropriate given high schema coverage.

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

Purpose4/5

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

The description clearly states the tool's function with a specific verb ('Cash out') and resource ('pending earnings'). It is distinct from sibling tools like accept_offer or check_progress, though it doesn't explicitly name differences.

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

Usage Guidelines4/5

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

The description provides a clear condition for use: 'Once your pending balance reaches $5.00, you can withdraw everything at once.' This tells the agent when to invoke the tool, though it doesn't mention alternatives or exclusions.

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

check_progressA

Check the status of a specific contract — which milestones are done, what's left, and current payout status.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesFreeplay user UUID
contract_idNoSpecific contract ID. If omitted, shows most recent active contract.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It describes what status information is returned but does not explicitly state that this is a read-only operation or address error handling, authentication, or the fallback behavior when contract_id is omitted (though that is in the schema). The word 'check' implies non-mutating behavior, but safety is not explicitly conveyed.

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 a single sentence with a useful dash-enclosed elaboration. It is concise and front-loaded, with no filler, delivering all necessary information efficiently.

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?

The description explains the key output components (milestones done, remaining work, payout status) sufficiently for a status tool. However, it omits edge-case behavior such as what happens when no active contract exists or error conditions. Given no output schema and no annotations, the description is adequate but not exhaustive.

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 descriptions for both user_id and contract_id. The tool description adds no additional parameter semantics beyond the schema, but it does align with contract_id by saying 'specific contract'. Baseline 3 is appropriate.

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 clearly states the tool checks the status of a specific contract, listing relevant details (milestones done, what's left, payout status). This is a specific verb-resource pair that distinguishes it from siblings like 'my_contracts' or generic 'status'.

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

Usage Guidelines4/5

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

The description clearly indicates this is for checking a specific contract's progress, providing a clear use case. However, it doesn't explicitly mention when not to use or name alternatives like 'my_contracts' for listing all contracts.

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

get_offerA

Get full details for an offer, formatted as a contract template showing exactly what the user needs to do and what they'll earn at each step.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesFreeplay user UUID
gokart_offer_idYesGoKart offer ID

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the output format (contract template) but does not mention whether this operation has side effects, requires authentication, or is read-only. Add some useful context but leaves behavioral traits unspecified.

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?

A single, focused sentence that front-loads the core purpose and adds necessary detail without fluff. Every word earns its place.

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?

As a get-by-ID tool with no output schema, the description explains the return value in a helpful way (contract template). It covers the essential behavior for a simple retrieval, though it omits error cases or prerequisites. This is adequate given the low complexity.

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 description coverage is 100%, so the parameters are already well-documented. The description adds no additional semantic meaning beyond what the schema provides, so baseline 3 is appropriate.

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 specific verb ('Get'), a clear resource ('full details for an offer'), and distinctive scope ('formatted as a contract template...') that differentiates it from siblings like browse_offers or accept_offer.

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

Usage Guidelines3/5

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

The description implies usage for retrieving full details of a single offer, but does not explicitly state when to use it over alternatives or provide exclusions. No references to siblings or edge cases.

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

my_contractsB

List all your contracts — active, completed, and expired.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter: active, in_progress, completed, voided, expired. Omit for all.
user_idYesFreeplay user UUID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full transparency burden. It states it's a list operation but does not disclose whether it requires authentication, whether it is read-only, what it returns, or that user_id is required. The partial status list is also a behavioral inconsistency.

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 a single, concise sentence that is front-loaded and contains zero wasted words. It effectively communicates the core action and resource.

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

Completeness3/5

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

Given the low complexity (2 params, no output schema), the description is minimally adequate but lacks key details: it omits the required user_id, does not mention the optional status filter, and incompletely lists statuses. These gaps are meaningful for correct invocation.

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

Parameters2/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds no new meaning and actively misleads by listing only active, completed, and expired while the schema includes in_progress and voided. This could cause an agent to believe only those three statuses are valid, making the description a negative contribution.

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

Purpose4/5

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

The description clearly states the tool lists contracts, using a specific verb and resource, and distinguishes it from siblings like browse_offers and get_offer. However, it lists only three of the five possible statuses, which is slightly imprecise but not severely misleading.

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

Usage Guidelines3/5

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

The description implies the tool is for viewing your contracts, but provides no explicit guidance on when to use it versus alternatives like check_progress or status. It does not mention filtering or exclusions, leaving usage context implicit.

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

recover_accountA

Recover your Freeplay account using your agent_id. Use this if you lost your user_id — your agent_id (the identifier you registered with) is all you need to get back in.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesThe agent_id used during registration (e.g., telegram username, unique identifier)

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must reveal behavioral traits. It discloses the prerequisite (agent_id) but not what 'recover' actually does—whether it resets credentials, returns the user_id, or has side effects. The phrase 'get back in' is vague for a security-sensitive recovery operation.

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 two sentences, front-loaded with the action, and contains no filler. Every word earns its place.

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

Completeness3/5

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

For a simple one-parameter tool, the description covers purpose and usage condition, but with no annotations or output schema it omits the recovery outcome and any side effects. This gap makes it minimally viable rather than fully complete.

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?

The input schema already provides a full description of agent_id ('used during registration'), and the description merely echoes this ('identifier you registered with'). With 100% schema coverage, the baseline is 3 and no additional parameter nuance is offered.

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 uses a specific verb 'Recover' with the resource 'Freeplay account', and clarifies the exact input (agent_id) and the condition (lost user_id). This clearly distinguishes it from sibling tools like register and verify_identity.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool ('if you lost your user_id') and reassures that agent_id alone suffices. It stops short of naming alternatives or stating when not to use it, so it misses the top score.

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

registerA

Register a new user on Freeplay. Handles both immediate registration and waitlist. Returns user_id on success or waitlist position.

ParametersJSON Schema
NameRequiredDescriptionDefault
ageNoUser's age
deviceYesDevice platform — REQUIRED. Ask user: "What device will you use? 📱 iPhone/iOS, 📱 Android, 💻 Mac/Desktop, 🌐 Web Browser". Map their answer to one of: ios, android, macos, browser.
genderNoUser's gender
countryNoISO 2-letter country code
agent_idYesUnique agent identifier (e.g., Telegram user ID)
telegram_chat_idNoTelegram chat ID for push notifications

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It discloses the main behavioral traits: handles immediate registration and waitlist, and returns user_id or waitlist position. However, it omits critical details such as idempotency (what happens if the agent_id already exists), failure modes, or any side effects beyond account creation, which a registration tool should ideally mention.

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 short sentences, each adding essential information: the action+resource, the dual-path behavior, and the return format. It is front-loaded with the primary purpose and contains no wasteful words.

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

Completeness3/5

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

Given the tool has 6 parameters, no annotations, and no output schema, the description is moderately complete. It explains the success returns but lacks error scenarios, duplicate handling, or any prerequisite steps (e.g., whether identity must be verified beforehand). This is a meaningful gap for a registration operation, but the core function is adequately conveyed.

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?

The input schema has 100% coverage, with each parameter described, including detailed instructions for the 'device' parameter. The tool description adds no extra parameter-level meaning; it only refers generally to registration outcomes. Since the schema already compensates, the baseline of 3 is appropriate.

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 clearly states 'Register a new user on Freeplay', identifying the specific action and resource. It also distinguishes itself from sibling tools like accept_offer or verify_identity by focusing on user registration, and adds the important nuance of handling both immediate registration and waitlisting.

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

Usage Guidelines4/5

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

The description provides clear context: this is the tool for user registration on Freeplay, including the possibility of being placed on a waitlist. It does not explicitly state when not to use it or name alternatives, but the sibling tools are obviously distinct, making the intended usage clear. No exclusions are provided.

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

set_payout_methodA

Set how you want to get paid:

  • "tremendous" — Email with options: Venmo, PayPal, gift cards, bank transfer, Visa prepaid

  • "lightning" — Instant Bitcoin payments via Lightning Network

  • "usdc_base" — USDC on Base blockchain (coming soon)

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail for Tremendous payouts (required if method is "tremendous")
methodYesPayout method
user_idYesFreeplay user UUID
wallet_addressNoUSDC wallet address on Base
lightning_addressNoLightning address (e.g., user@walletofsatoshi.com)

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the available payout channels and the email requirement, plus the 'coming soon' status for USDC. However, it does not describe side effects, whether the method overrides a previous setting, or any verification/authorization needs, leaving some behavioral ambiguity.

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 succinct, front-loaded with the core purpose, and uses a bullet list for the three methods. No words are wasted, and the conditional email requirement is conveyed efficiently.

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 moderate complexity (5 parameters, no output schema, no annotations), the description covers the essential choice of methods and the conditional requirement. It lacks some contextual details, such as the relationship to cash_out or what happens to existing settings, but it is still sufficient for an agent to successfully invoke the tool.

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?

Schema descriptions cover 100% of parameters, so the baseline is 3. The description adds value by giving human-readable payout options (Venmo, PayPal, gift cards, etc.) and noting that usdc_base is 'coming soon', which enriches the schema's raw parameter descriptions.

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

Purpose4/5

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

The description clearly states the tool's purpose with the verb 'Set' and the resource 'payout method', and enumerates the three available methods. It is specific enough to distinguish from sibling tools like cash_out, though it does not explicitly call out the difference.

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

Usage Guidelines4/5

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

The description provides clear context by listing the valid methods and noting that email is required when method is 'tremendous'. It does not explicitly mention when not to use the tool or reference alternatives, but the method list and conditional requirement give sufficient guidance for a simple setter.

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

statusB

Full account overview — registration status, KYC, payout method, active contracts, total earnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesFreeplay user UUID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It lists the data fields the tool surfaces but does not explicitly state that the operation is read-only, whether authentication is required, or any side effects. The phrase 'overview' implies non-destructive behavior, but it is not explicitly disclosed.

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 a single, well-structured sentence fragment that front-loads the core concept ('Full account overview') and then enumerates key fields with an em dash. It is concise, has no filler, and every element contributes to understanding the tool.

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

Completeness3/5

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

For a simple one-parameter tool with no output schema, the description lists the key return categories (registration status, KYC, payout method, contracts, earnings), giving a reasonable sense of the response. However, it does not mention potential dependencies like prior registration, error behaviors, or what happens if the user_id is invalid, leaving some gaps.

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?

The input schema covers the single parameter user_id with a clear description ('Freeplay user UUID'), yielding 100% schema coverage. The tool description does not add any additional parameter semantics, but since the schema is sufficient, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly identifies the tool's resource (account status) and scope (registration, KYC, payout method, contracts, earnings), which distinguishes it from sibling tools like my_contracts or check_progress. However, it lacks an explicit verb such as 'retrieves' or 'provides,' relying on the noun phrase 'full account overview' to imply the action.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like my_contracts or check_progress. It does not state explicit use cases, prerequisites, or exceptions, leaving the agent to infer when a full account overview is needed.

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

verify_identityA

Start KYC verification. Returns a Veriff session URL the user must complete, or instant verification with a sandbox passcode.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idYesFreeplay user UUID
passcodeNoOptional sandbox passcode for testing

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does describe the return behavior (session URL or instant verification) but omits potential side effects, such as whether this is a permanent write operation, requires authentication, or has external consequences. The description is partially transparent but lacks depth.

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 two sentences long, front-loaded with the core action, and contains no redundant information. Every word contributes to understanding the tool's purpose and key behavior.

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?

The tool is relatively simple with only two parameters and no output schema, so the description need not be lengthy. It covers the main return value (session URL) and the passcode alternative. However, it does not mention any prerequisites, failure conditions, or that starting KYC verification may have side effects, leaving some contextual gaps.

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?

The schema already provides descriptions for both parameters (user_id as 'Freeplay user UUID' and passcode as 'Optional sandbox passcode'). The description adds no new meaning beyond what the schema already states, only restating the sandbox passcode option. With 100% schema coverage, a baseline score of 3 is appropriate.

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 clearly states the tool's action: 'Start KYC verification.' It also specifies the return value (a Veriff session URL) and the alternative instant verification with a passcode, which distinguishes it from sibling tools like status or register.

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

Usage Guidelines3/5

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

The description implies a clear use case (initiating KYC verification) but provides no explicit guidance on when to use this tool over alternatives, nor any exclusion criteria. There is no reference to sibling tools or conditions under which this tool should not be used.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 11 tool updatesv1.1.0
    • First observedaccept_offer
    • First observedbrowse_offers
    • First observedcash_out
    • First observedcheck_progress
    • First observedget_offer
    • First observedmy_contracts
    • First observedrecover_account
    • First observedregister
    • First observedset_payout_method
    • First observedstatus
    • First observedverify_identity

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct action: browsing offers, getting offer details, accepting offers, checking contract progress, listing contracts, registering, verifying identity, setting payout methods, viewing account status, cashing out, and recovering accounts. There is no meaningful overlap that would cause an agent to select the wrong tool.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern (browse_offers, get_offer, accept_offer, check_progress, verify_identity, set_payout_method, recover_account), but a few deviate (my_contracts, status, register, cash_out). These deviations are minor and do not impair readability.

Tool Count5/5

With 11 tools, the server is well-scoped for the user lifecycle it manages—from registration and offer discovery to contract management, identity verification, payout setup, and cash-out. Each tool serves a necessary function without unnecessary duplication.

Completeness5/5

The tool set covers the full workflow: user registration, KYC verification, offer browsing/acquisition, contract status tracking, payout method selection, account status overview, and withdrawal. There are no obvious dead ends or missing core operations for the stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/joinfreeplay/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server