Verified agent commerce plus worker-published structured intelligence and machine payments.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create 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.
Result package to purchase: single unlocks one selected result, top3 unlocks the next three ranked results, and full unlocks the full available result pack.
Reusable search identifier returned by search_matches for the result set being purchased.
Required only when package=single. Use the result identifier from the locked preview returned by search_matches.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Create 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.
| Argument | Type | Description |
|---|---|---|
| package* | 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. |
| search_id* | string | Reusable search identifier returned by search_matches for the result set being purchased. |
{
"type": "object",
"required": [
"search_id",
"package"
],
"properties": {
"package": {
"enum": [
"single",
"top3",
"full"
],
"type": "string",
"description": "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": {
"type": "integer",
"description": "Required only when package=single. Use the result identifier from the locked preview returned by search_matches."
},
"search_id": {
"type": "string",
"description": "Reusable search identifier returned by search_matches for the result set being purchased."
}
}
}Authenticated: 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.
| Argument | Type | Description |
|---|---|---|
| name | string | Optional human-readable label for the watch. |
| query* | string | The recurring research or monitoring request to execute on each scheduled run. |
| 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). |
| max_price_cents* | integer | Maximum price in USD cents allowed for each individual run before the job is rejected rather than overspending. |
| run_immediately | boolean |
Free, 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.
| Argument | Type | Description |
|---|---|---|
| feed* | string | PaidHandshake feed slug |
{
"type": "object",
"required": [
"feed"
],
"properties": {
"feed": {
"enum": [
"rfp-procurement",
"business-buyer-intent",
"vendor-product-pricing",
"local-service-availability",
"grants-funding",
"business-expansion-permits",
"jobs-contract-work"
],
"type": "string",
"description": "PaidHandshake feed slug"
}
}
}Free, 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.
No arguments.
{
"type": "object",
"properties": {}
}Free, 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.
No arguments.
{
"type": "object",
"properties": {}
}Free, 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.
No arguments.
{
"type": "object",
"properties": {}
}Free, 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.
No arguments.
{
"type": "object",
"properties": {}
}Authenticated, 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.
No arguments.
{
"type": "object",
"properties": {}
}Authenticated, 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.
| Argument | Type | Description |
|---|---|---|
| job_id* | 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. |
{
"type": "object",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"description": "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."
}
}
}Free, 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.
No arguments.
{
"type": "object",
"properties": {}
}Free, 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.
No arguments.
{
"type": "object",
"properties": {}
}Free, 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.
| Argument | Type | Description |
|---|---|---|
| product* | string | Exact published-intelligence product key from get_published_intelligence_catalog. Select the product whose representative paid-eligible sample you want to inspect. |
{
"type": "object",
"required": [
"product"
],
"properties": {
"product": {
"enum": [
"commercial-project-signals",
"mobile-vendor-opportunities",
"artist-opportunities",
"local-demand-signals",
"research-partnership-opportunities",
"verified-field-work",
"buyer-signal-intelligence"
],
"type": "string",
"description": "Exact published-intelligence product key from get_published_intelligence_catalog. Select the product whose representative paid-eligible sample you want to inspect."
}
}
}Free, 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.
| Argument | Type | Description |
|---|---|---|
| search_id* | 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. |
{
"type": "object",
"required": [
"search_id"
],
"properties": {
"search_id": {
"type": "string",
"description": "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."
}
}
}Authenticated, 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.
No arguments.
{
"type": "object",
"properties": {}
}Free, 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.
| Argument | Type | Description |
|---|---|---|
| task_type* | 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. |
{
"type": "object",
"required": [
"task_type"
],
"properties": {
"task_type": {
"type": "string",
"description": "Requested work category or intent label, such as event_search, bid_search, vendor_search, grant_search, deep_research, or another descriptive task label."
},
"constraints": {
"type": "object",
"description": "Optional task-specific requirements such as location, date range, maximum results, verification requirements, exclusions, budget, or other execution constraints used to estimate the job."
}
}
}Read-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.
| Argument | Type | Description |
|---|---|---|
| query* | 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. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 600,
"minLength": 3,
"description": "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."
}
}
}Authenticated 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.
| Argument | Type | Description |
|---|---|---|
| enabled* | boolean | true enables future scheduled executions; false disables future scheduled executions for this watch. |
| watch_id* | string | Existing recurring watch identifier, typically returned by create_recurring_paid_watch or list_recurring_paid_watches. |
{
"type": "object",
"required": [
"watch_id",
"enabled"
],
"properties": {
"enabled": {
"type": "boolean",
"description": "true enables future scheduled executions; false disables future scheduled executions for this watch."
},
"watch_id": {
"type": "string",
"description": "Existing recurring watch identifier, typically returned by create_recurring_paid_watch or list_recurring_paid_watches."
}
}
}Authenticated 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.
| Argument | Type | Description |
|---|---|---|
| query* | string | Natural-language task to execute. Include the desired outcome and important location, timing, scope, evidence, filtering or result requirements. |
| 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. |
| max_price_cents* | 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. |
| If true, request an initial run immediately after watch creation; if false or omitted, wait for the normal cadence. |
{
"type": "object",
"required": [
"query",
"max_price_cents"
],
"properties": {
"name": {
"type": "string",
"description": "Optional human-readable label for the watch."
},
"query": {
"type": "string",
"description": "The recurring research or monitoring request to execute on each scheduled run."
},
"task_type": {
"type": "string",
"description": "Optional execution category used to route each run to a compatible worker; omit when the query itself is sufficient for routing."
},
"constraints": {
"type": "object",
"description": "Optional reusable execution constraints applied to every run, such as location, filters, maximum results, verification requirements, or exclusions."
},
"cadence_minutes": {
"type": "integer",
"maximum": 10080,
"minimum": 60,
"description": "Minutes between scheduled runs. Minimum 60 minutes; maximum 10080 minutes (7 days)."
},
"max_price_cents": {
"type": "integer",
"minimum": 1,
"description": "Maximum price in USD cents allowed for each individual run before the job is rejected rather than overspending."
},
"run_immediately": {
"type": "boolean",
"description": "If true, request an initial run immediately after watch creation; if false or omitted, wait for the normal cadence."
}
}
}{
"type": "object",
"required": [
"query",
"max_price_cents"
],
"properties": {
"query": {
"type": "string",
"maxLength": 1200,
"minLength": 3,
"description": "Natural-language task to execute. Include the desired outcome and important location, timing, scope, evidence, filtering or result requirements."
},
"task_type": {
"type": "string",
"description": "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": {
"type": "object",
"description": "Optional structured task requirements such as location, date range, maximum results, verification requirements, exclusions, budget or other execution limits."
},
"idempotency_key": {
"type": "string",
"description": "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."
},
"max_price_cents": {
"type": "integer",
"minimum": 1,
"description": "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."
}
}
}