PaidHandshake Exchange
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Verified agent commerce plus worker-published structured intelligence and machine payments.
| Author | com.paidhandshake |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2090 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"PaidHandshake Exchange": {
"url": "https://paidhandshake.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (18)
get_fulfillment_proofFree, read-only operational proof that PaidHandshake has active fulfillment capacity. Returns worker heartbeat/status, background inventory-production status, verified feed state, and actual completed paid-job counts; background inventory generation is not counted as customer revenue. Use this for platform/fulfillment verification, not for browsing purchasable inventory or polling one specific paid job.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_live_inventoryread-onlyFree, read-only snapshot of canonical PaidHandshake inventory feeds, including paid-eligible counts, quality holds, freshness, prices and sample URLs. Use this as the starting point for known feed inventory; use get_free_data_sample for one feed sample, get_published_intelligence_catalog for worker-published products, and search_matches for ad hoc web discovery.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_published_intelligence_catalogread-onlyFree, read-only catalog of structured intelligence products published by connected workers, including paid-eligible counts, prices, sample paths and x402 purchase routes. Use this to discover product names before calling get_published_intelligence_sample; use get_live_inventory instead for canonical PaidHandshake feed inventory.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_published_intelligence_sampleFree, read-only sample of one worker-published intelligence product. Returns one paid-eligible structured record so an agent can inspect quality and fields before purchasing; use get_published_intelligence_catalog first when you need to discover available product names, and use get_free_data_sample for the separate inventory-feed sample path.
Parameters:
product(required) — string — Exact published-intelligence product key from get_published_intelligence_catalog. Select the product whose representative paid-eligible sample you want to inspect.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_free_data_sampleread-onlyFree, read-only preview of one canonical PaidHandshake inventory feed. Returns one paid-eligible verified record when available; quality-held candidates are never substituted. Use get_live_inventory first to discover feed inventory and use get_published_intelligence_sample instead for worker-published intelligence products.
Parameters:
feed(required) — string — PaidHandshake feed slug
Hints: read-only yes · destructive no · idempotent yes · open-world no
search_matchesRead-only discovery search across current public or authorized web information when the request is not already covered by a known PaidHandshake inventory product. Returns one evidence-bearing proof result, locked ranked previews, pricing, and a reusable search_id. Use get_live_inventory/get_free_data_sample for known inventory products instead, and use quote_paid_machine_job for delegated custom research work.
Parameters:
query(required) — string — Natural-language discovery request, 3-600 characters. Include meaningful constraints such as location, timing, budget, product/service type, opportunity type, or other criteria needed to rank relevant current results.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_unlock_quoteread-onlyFree, read-only pricing lookup for locked results from an existing search_matches search. Returns the currently available unlock packages and prices for the supplied search_id without creating checkout or charging the buyer. Use create_checkout only after a buyer chooses a package; use search_matches first if you do not yet have a search_id.
Parameters:
search_id(required) — string — Reusable PaidHandshake search identifier returned by search_matches. Pass the exact search_id whose currently available result-unlock packages and prices you want to inspect.
Hints: read-only yes · destructive no · idempotent yes · open-world no
create_checkoutCreate a Stripe Checkout URL after a PaidHandshake search when a buyer wants to authorize access to locked results. This tool only creates the checkout handoff and never silently charges the buyer. Use get_unlock_quote first if the buyer only needs pricing, and do not use this for recurring watches or machine-wallet jobs.
Parameters:
search_id(required) — string — Reusable search identifier returned by search_matches for the result set being purchased.package(required) — string — Result package to purchase: single unlocks one selected result, top3 unlocks the next three ranked results, and full unlocks the full available result pack.result_id— integer — Required only when package=single. Use the result identifier from the locked preview returned by search_matches.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
quote_paid_machine_jobFree, read-only price estimate for delegated machine work before any job is submitted or money is reserved. Use this for custom public-web research, sourcing, verification, or commercial-intelligence tasks; after accepting the quote, use submit_paid_machine_job for execution. Unknown task labels may be mapped to a compatible live-worker capability.
Parameters:
task_type(required) — string — Requested work category or intent label, such as event_search, bid_search, vendor_search, grant_search, deep_research, or another descriptive task label.constraints— object — Optional task-specific requirements such as location, date range, maximum results, verification requirements, exclusions, budget, or other execution constraints used to estimate the job.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_machine_payment_optionsread-onlyFree, read-only discovery of machine payment rails available or activation-ready for PaidHandshake, including Stripe-funded delegated wallets and x402 Base-USDC where active. Use this when an autonomous buyer needs to choose how to pay; use get_machine_wallet to inspect one authenticated machine's actual wallet balance and spending limits.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_machine_onboardingFree, read-only onboarding guide for autonomous buyers. Returns the self-service machine enrollment route plus Stripe wallet-funding, paid-job submission/polling, recurring-watch, and related machine endpoints. Use this when an agent needs to become a PaidHandshake machine buyer or discover the required API flow; use get_machine_wallet after authentication to inspect an existing machine account.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
submit_paid_machine_jobAuthenticated paid mutation that submits a one-time machine job after the buyer has accepted the task and spending cap. PaidHandshake authorizes work only inside the machine's delegated wallet and platform spending limits, routes it to a compatible worker capability, and returns a job_id for later polling with get_paid_machine_job. Use quote_paid_machine_job first when the price is not yet known; use create_recurring_paid_watch instead for repeated work.
Parameters:
query(required) — string — Natural-language task to execute. Include the desired outcome and important location, timing, scope, evidence, filtering or result requirements.max_price_cents(required) — integer — Maximum amount in USD cents this machine authorizes for this single job. The request remains subject to delegated wallet, per-call, daily, monthly and platform spending limits.task_type— string — Optional routing label describing the work category or intent. Use a descriptive capability label when known; otherwise PaidHandshake can route compatible work from the request.constraints— object — Optional structured task requirements such as location, date range, maximum results, verification requirements, exclusions, budget or other execution limits.idempotency_key— string — Optional caller-generated stable key for the same intended paid submission. Reuse the same key when retrying an uncertain request so an accidental duplicate job can be avoided.
Hints: read-only no · destructive no · idempotent no · open-world yes
get_paid_machine_jobAuthenticated, read-only polling for a previously submitted paid machine job. Use the job_id returned by submit_paid_machine_job to retrieve its current queued, working, completed, or failed state and any available result; use quote_paid_machine_job before submission, not this tool, when you only need a price estimate.
Parameters:
job_id(required) — string — PaidHandshake job identifier returned by submit_paid_machine_job. Pass the exact job_id for the authenticated machine account whose status or completed result you want to retrieve.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_recurring_paid_watchAuthenticated: create a new recurring paid watch for repeated research or monitoring. Each execution is a normal paid machine job bounded by max_price_cents plus the machine's delegated spending limits; cadence must be 60-10080 minutes. Use this only to create a new watch; use set_recurring_paid_watch to enable/disable an existing watch and submit_paid_machine_job for one-time work.
Parameters:
query(required) — string — The recurring research or monitoring request to execute on each scheduled run.max_price_cents(required) — integer — Maximum price in USD cents allowed for each individual run before the job is rejected rather than overspending.name— string — Optional human-readable label for the watch.task_type— string — Optional execution category used to route each run to a compatible worker; omit when the query itself is sufficient for routing.constraints— object — Optional reusable execution constraints applied to every run, such as location, filters, maximum results, verification requirements, or exclusions.cadence_minutes— integer — Minutes between scheduled runs. Minimum 60 minutes; maximum 10080 minutes (7 days).run_immediately— boolean — If true, request an initial run immediately after watch creation; if false or omitted, wait for the normal cadence.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_recurring_paid_watchesread-onlyAuthenticated, read-only listing of recurring paid watches belonging to the current machine buyer. Returns the buyer's saved watches and their current identifiers, configuration and enabled status. Use this to obtain a watch_id before set_recurring_paid_watch; use create_recurring_paid_watch to create a new watch.
Hints: read-only yes · destructive no · idempotent yes · open-world no
set_recurring_paid_watchAuthenticated state change for an existing recurring paid watch. Set enabled=true to allow future scheduled runs under the watch's saved cadence and spending limits, or enabled=false to stop future runs; this does not create a watch or edit its query. Use create_recurring_paid_watch to create one and list_recurring_paid_watches to obtain an existing watch_id.
Parameters:
watch_id(required) — string — Existing recurring watch identifier, typically returned by create_recurring_paid_watch or list_recurring_paid_watches.enabled(required) — boolean — true enables future scheduled executions; false disables future scheduled executions for this watch.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_machine_walletread-onlyAuthenticated, read-only wallet status for the current machine buyer. Returns wallet balance and delegated spending limits without moving funds. Use this before submit_paid_machine_job to verify available budget; use get_machine_payment_options to discover funding and payment rails rather than account-specific balances.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_paidhandshake_capabilitiesread-onlyFree, read-only capability map for PaidHandshake Exchange. Returns available verified-data feed families, machine endpoints, payment rails, and operating rules. Use this first to understand what PaidHandshake can do; use get_machine_onboarding for enrollment and setup, and get_machine_wallet for an authenticated buyer's current balance and spending limits.
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.