Koskamo

PrivateDAO Agent Exchange MCP

A machine-to-machine service marketplace for AI agents offering verification, intelligence, risk, and transaction simulation services. Agents can discover capabilities, request quotes, execute read-only evidence work, and verify receipts via USDC settlement on Solana.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

PrivateDAO Agent Exchange MCP logo, by PrivateDAOCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by PrivateDAO
MCP endpoint (Streamable HTTP)
https://agents.privatedao.org/mcp
Vendor documentation

What its tools do

17 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

17 of 17 have a description · 17 of 17 declare behavior hints · 14 of 15 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Verify token safety and contract evidence
  • Analyze public intelligence and risk signals
  • Simulate transaction intent without execution
  • Coordinate capabilities across multiple agents

Source and maintenance

Community listingRegistry 1.7.2
Maintenance checked

Protocol and capabilities

Server
pdao-agent-exchange 1.7.6
MCP protocol negotiated in check
2025-06-18
Tools
17 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Tools

17 advertised

get_workflow_guide — PrivateDAO Workflow Guide
Advertised by the server during the last successful anonymous check.
Advertised read-only

Return the overview, execution, or payment workflow guide. Use this instead of separate guide tools when you need lifecycle context; it is free, read-only, and returns the selected next steps without executing or paying.

get_workflow_guide input schema
{
  "type": "object",
  "required": [
    "topic"
  ],
  "properties": {
    "topic": {
      "enum": [
        "overview",
        "execution",
        "payment"
      ],
      "type": "string",
      "description": "Choose the lifecycle guide needed before discovery, execution, or payment."
    }
  },
  "description": "Return the selected read-only workflow guide. Use this instead of separate overview, execution, or payment guide calls.",
  "additionalProperties": false
}
get_workflow_guide output schema
{
  "type": "object",
  "properties": {
    "free": {
      "type": "string",
      "description": "Free-service path when the payment topic is selected."
    },
    "name": {
      "type": "string",
      "description": "Exchange or workflow name."
    },
    "paid": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Ordered paid-service steps when the payment topic is selected."
    },
    "rules": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Safety rules for the selected workflow."
    },
    "states": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Possible request states."
    },
    "payment": {
      "type": "object",
      "description": "Payment rules for the selected workflow.",
      "additionalProperties": true
    },
    "endpoints": {
      "type": "object",
      "description": "Machine endpoints for the selected workflow.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "lifecycle": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Ordered lifecycle stages."
    }
  },
  "description": "Structured workflow guidance selected by topic.",
  "additionalProperties": true
}
get_workflow_guide annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_catalog — PrivateDAO Capability Catalog
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

List services, products, external capabilities, or network metadata with optional filters. This is free and read-only; use discover_agents for a task-specific match and create_paid_job only after selecting a service.

list_catalog input schema
{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional business or capability text used to filter catalog entries."
    },
    "limit": {
      "type": "integer",
      "default": 50,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of entries returned in each selected catalog slice."
    },
    "filter": {
      "enum": [
        "all",
        "services",
        "products",
        "external",
        "network"
      ],
      "type": "string",
      "default": "all",
      "description": "Select the catalog slice to return."
    }
  },
  "description": "Return read-only service, product, external, or network catalog metadata. Use discover_agents for task matching.",
  "additionalProperties": false
}
list_catalog output schema
{
  "type": "object",
  "properties": {
    "filter": {
      "type": "string",
      "description": "Catalog slice used for the response."
    },
    "network": {
      "type": "object",
      "description": "Supported network capability metadata.",
      "additionalProperties": true
    },
    "external": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Published external capability metadata."
    },
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Productized workflow metadata."
    },
    "services": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "First-party and published service metadata."
    }
  },
  "description": "Filtered, read-only catalog response.",
  "additionalProperties": true
}
list_catalog annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
discover_agents — PrivateDAO Agent Discovery
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Match a natural-language requirement or structured capabilities to first-party services and registered agents. Returns ranked matches without side effects or cost; use list_catalog for exact schemas and prices, and create_paid_job to execute selected paid work.

discover_agents input schema
{
  "type": "object",
  "anyOf": [
    {
      "required": [
        "query"
      ]
    },
    {
      "required": [
        "capabilities"
      ]
    }
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of ranked agent matches to return."
    },
    "query": {
      "type": "string",
      "maxLength": 500,
      "description": "Natural-language business requirement or capability request."
    },
    "network": {
      "type": "string",
      "description": "Optional target network constraint used to filter compatible matches."
    },
    "capabilities": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 120
      },
      "maxItems": 32,
      "description": "Structured capability terms to match against registered agents."
    }
  },
  "description": "Discover and rank matching first-party services and registered agents without executing work or spending funds.",
  "additionalProperties": false
}
discover_agents output schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": [
        "string",
        "null"
      ],
      "description": "Natural-language query echoed by the matcher."
    },
    "agents": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Registered agent matches."
    },
    "matches": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Ranked first-party service matches."
    },
    "first_party": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "PrivateDAO first-party discovery entry."
    },
    "capabilities": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Capability terms used for matching."
    }
  },
  "description": "Ranked discovery result without executing or paying.",
  "additionalProperties": true
}
discover_agents annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_provider_integrations — PrivateDAO Provider Integrations
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Return provider roles and integration metadata for planning. This is free and read-only; use list_catalog for purchasable capabilities and discover_agents for matching.

get_provider_integrations input schema
{
  "type": "object",
  "properties": {},
  "description": "Return read-only provider and ecosystem integration metadata. Use this for integration context, not capability matching.",
  "additionalProperties": false
}
get_provider_integrations output schema
{
  "type": "object",
  "properties": {
    "disclosure": {
      "type": "string",
      "description": "Boundary explaining what the integration records do and do not prove."
    },
    "integrations": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Provider and ecosystem integration records."
    },
    "provider_status": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Public readiness signals with secrets removed."
    }
  },
  "description": "Provider roles, status signals, and integration disclosures.",
  "additionalProperties": true
}
get_provider_integrations annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
service_recommendation — PrivateDAO Capability Advisor
Advertised by the server during the last successful anonymous check.
Advertised read-only

Translate a business or product objective into the most relevant PrivateDAO capabilities and a practical next step.

service_recommendation input schema
{
  "type": "object",
  "required": [
    "task"
  ],
  "properties": {
    "task": {
      "type": "string",
      "maxLength": 500,
      "minLength": 2,
      "description": "Natural-language task the agent wants to accomplish."
    },
    "network": {
      "type": "string",
      "description": "Optional target network constraint."
    }
  },
  "additionalProperties": false
}
service_recommendation output schema
{
  "type": "object",
  "properties": {
    "note": {
      "type": "string",
      "description": "Matching and next-step guidance."
    },
    "task": {
      "type": "string",
      "description": "The original business task."
    },
    "matches": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Ranked service manifests to inspect before requesting work."
    }
  },
  "description": "Ranked first-party service recommendations for the requested business task.",
  "additionalProperties": true
}
service_recommendation annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
privatepay_status — PrivateDAO PrivatePay Architecture
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read the current PrivatePAY x402 readiness, MagicBlock private-rail configuration, facilitator state, PDAO entry requirement, and public-chain privacy boundary. Call this first; it is free and read-only, creates no challenge, and never moves funds.

privatepay_status input schema
{
  "type": "object",
  "properties": {},
  "description": "Read the current PrivatePAY x402 readiness, MagicBlock private-rail configuration, facilitator state, PDAO entry requirement, and public-chain privacy boundary. Use this first; it never creates a challenge or payment.",
  "additionalProperties": false
}
privatepay_status output schema
{
  "type": "object",
  "properties": {
    "enabled": {
      "type": "boolean",
      "description": "Whether the private settlement rail is currently enabled for new payment operations."
    },
    "network": {
      "type": "string",
      "description": "Settlement network identifier."
    },
    "privacy": {
      "type": "object",
      "description": "Provider-visible and public-chain privacy boundaries.",
      "additionalProperties": true
    },
    "pdao_required": {
      "type": "boolean",
      "description": "Whether the private path requires the PDAO entry policy."
    },
    "settlement_mode": {
      "type": "string",
      "description": "Configured provider settlement mode."
    },
    "activation_blockers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Explicit blockers when the rail is unavailable."
    }
  },
  "description": "Fail-closed PrivatePAY readiness and privacy status.",
  "additionalProperties": true
}
privatepay_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
privatepay_challenge — PrivateDAO Payment Challenge
Advertised by the server during the last successful anonymous check.

Create a fresh PrivatePAY x402 v2 challenge for a resource and quoted USDC amount. Call this before privatepay_verify; it returns exact payment requirements and the PDAO private-settlement rule, but never signs, broadcasts, or charges a wallet.

privatepay_challenge input schema
{
  "type": "object",
  "required": [
    "resource",
    "provider_id",
    "amount_base_units"
  ],
  "properties": {
    "nonce": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional caller nonce used to bind a fresh challenge."
    },
    "resource": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "description": "Stable HTTPS resource or service identifier being purchased."
    },
    "mime_type": {
      "type": "string",
      "maxLength": 100,
      "description": "Optional response media type for the purchased resource."
    },
    "provider_id": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "PrivatePAY provider or merchant identifier."
    },
    "amount_base_units": {
      "type": "string",
      "pattern": "^[0-9]+$",
      "description": "Quoted USDC amount in token base units, not a decimal display amount."
    }
  },
  "description": "Create a fresh PrivatePAY x402 v2 challenge after checking rail status. This returns payment requirements and the PDAO private-settlement rule; it does not sign, broadcast, or move funds.",
  "additionalProperties": false
}
privatepay_challenge output schema
{
  "type": "object",
  "properties": {
    "privacy": {
      "type": "object",
      "description": "Redacted privacy boundary for the challenge.",
      "additionalProperties": true
    },
    "request_id": {
      "type": "string",
      "description": "Fresh challenge or payment request identifier."
    },
    "payment_required": {
      "type": "object",
      "description": "Exact x402 v2 requirements to present to the payer.",
      "additionalProperties": true
    },
    "payment_required_header": {
      "type": "string",
      "description": "HTTP PAYMENT-REQUIRED value when returned by the checkout flow."
    }
  },
  "description": "Structured PrivatePAY x402 challenge and payment requirements.",
  "additionalProperties": true
}
privatepay_challenge annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
privatepay_checkout — PrivateDAO Private Checkout
Advertised by the server during the last successful anonymous check.

Create a MagicBlock PrivatePAY checkout or request the payment-required challenge for an existing checkout. Use this to begin a private checkout instead of create_paid_job with direct USDC; it returns commercial terms only and never signs, broadcasts, or moves funds.

privatepay_checkout input schema
{
  "type": "object",
  "properties": {
    "payer": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "Solana payer wallet public key; never a private key."
    },
    "phase": {
      "enum": [
        "create",
        "challenge"
      ],
      "type": "string",
      "default": "create",
      "description": "Use create for a new checkout or challenge to request the payment-required response for an existing payment_id."
    },
    "resource": {
      "type": "string",
      "maxLength": 2048,
      "minLength": 1,
      "description": "HTTPS resource or service endpoint being purchased."
    },
    "payment_id": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$",
      "description": "Existing 64-character checkout identifier when phase is challenge."
    },
    "description": {
      "type": "string",
      "maxLength": 256,
      "description": "Human-readable commercial description shown in the checkout response."
    },
    "amount_base_units": {
      "type": "string",
      "pattern": "^[0-9]+$",
      "description": "Quoted USDC amount in base units."
    },
    "expires_in_seconds": {
      "type": "integer",
      "maximum": 86400,
      "minimum": 60,
      "description": "Challenge lifetime in seconds, between one minute and one day."
    },
    "external_reference": {
      "type": "string",
      "maxLength": 128,
      "minLength": 1,
      "description": "Merchant-owned idempotency or order reference."
    }
  },
  "description": "Create a MagicBlock PrivatePAY checkout or request its x402 payment-required challenge. This is a quote and preparation step: it never signs, broadcasts, or moves funds.",
  "additionalProperties": false
}
privatepay_checkout output schema
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "description": "Checkout state or next action."
    },
    "payment_id": {
      "type": "string",
      "description": "Checkout identifier used to request the challenge or continue the checkout."
    },
    "payment_required": {
      "type": "object",
      "description": "Exact x402 v2 requirements when the challenge phase is requested.",
      "additionalProperties": true
    },
    "payment_required_header": {
      "type": "string",
      "description": "HTTP PAYMENT-REQUIRED value when returned."
    }
  },
  "description": "Private checkout terms, request identifiers, and payment requirements.",
  "additionalProperties": true
}
privatepay_checkout annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
privatepay_prepare — PrivateDAO Payment Preparation
Advertised by the server during the last successful anonymous check.
Advertised read-only

Prepare an unsigned MagicBlock deposit, private transfer, or withdrawal for a local wallet to inspect and sign. Call this after privatepay_checkout and before wallet authorization; PrivateDAO never receives a private key and this tool never broadcasts.

privatepay_prepare input schema
{
  "type": "object",
  "required": [
    "request_id",
    "amount_base_units"
  ],
  "properties": {
    "owner": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "Optional destination or balance owner public key."
    },
    "payer": {
      "type": "string",
      "pattern": "^[1-9A-HJ-NP-Za-km-z]{32,44}$",
      "description": "Wallet public key that will inspect and authorize the transaction."
    },
    "phase": {
      "enum": [
        "deposit",
        "transfer",
        "withdraw"
      ],
      "type": "string",
      "default": "transfer",
      "description": "Unsigned wallet operation to prepare after the challenge: deposit into the private rail, private transfer, or withdrawal."
    },
    "split": {
      "type": "integer",
      "maximum": 15,
      "minimum": 1,
      "description": "Optional private transfer split count, from one to fifteen."
    },
    "gasless": {
      "type": "boolean",
      "description": "Request the configured sponsored route when supported; the wallet still signs the returned transaction."
    },
    "request_id": {
      "type": "string",
      "pattern": "^pp_[a-f0-9]{32}$",
      "description": "PrivatePAY request identifier returned by the challenge or checkout."
    },
    "amount_base_units": {
      "type": "string",
      "pattern": "^[0-9]+$",
      "description": "Token amount in base units."
    }
  },
  "description": "Prepare an unsigned MagicBlock deposit, private transfer, or withdrawal for local wallet inspection and signing. PrivateDAO never receives a private key and this tool never broadcasts.",
  "additionalProperties": false
}
privatepay_prepare output schema
{
  "type": "object",
  "properties": {
    "phase": {
      "enum": [
        "deposit",
        "transfer",
        "withdraw"
      ],
      "type": "string",
      "description": "Prepared private-rail operation."
    },
    "request_id": {
      "type": "string",
      "description": "PrivatePAY request identifier bound to the unsigned operation."
    },
    "transaction": {
      "type": "string",
      "description": "Serialized unsigned transaction when the provider returns one."
    },
    "required_signers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Wallet public keys that must sign locally."
    }
  },
  "description": "Unsigned PrivatePAY preparation context for local wallet authorization.",
  "additionalProperties": true
}
privatepay_prepare annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
privatepay_verify — PrivateDAO Payment Verification
Advertised by the server during the last successful anonymous check.
Advertised read-only

Verify an x402 v2 PrivatePAY payload through the configured facilitator against the exact original requirements. Call this after privatepay_challenge or privatepay_checkout and before privatepay_settle; it is read-only, fail-closed, and returns redacted evidence without spending funds.

privatepay_verify input schema
{
  "type": "object",
  "required": [
    "x402Version",
    "paymentPayload",
    "paymentRequirements"
  ],
  "properties": {
    "x402Version": {
      "type": "integer",
      "const": 2,
      "description": "Must be x402 protocol version 2."
    },
    "paymentPayload": {
      "type": "object",
      "description": "The payer wallet's finalized x402 payment payload, including the accepted scheme and transaction proof."
    },
    "paymentRequirements": {
      "type": "object",
      "description": "The exact requirements returned by privatepay_challenge or privatepay_checkout; do not substitute a guessed amount or recipient."
    }
  },
  "description": "Verify an x402 v2 PrivatePAY payload against the exact challenge requirements through the configured facilitator. This is read-only, fail-closed, and returns redacted structured evidence; call it before privatepay_settle.",
  "additionalProperties": false
}
privatepay_verify output schema
{
  "type": "object",
  "properties": {
    "valid": {
      "type": "boolean",
      "description": "Whether the facilitator accepted the exact payment requirements."
    },
    "status": {
      "type": "string",
      "description": "Verification status or next action."
    },
    "evidence": {
      "type": "object",
      "description": "Redacted facilitator evidence.",
      "additionalProperties": true
    },
    "request_id": {
      "type": "string",
      "description": "Redacted PrivatePAY request identifier when available."
    }
  },
  "description": "Structured validation evidence for an x402 payment payload.",
  "additionalProperties": true
}
privatepay_verify annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
privatepay_settle — PrivateDAO Payment Settlement
Advertised by the server during the last successful anonymous check.
Advertised destructive

Settle an already verified x402 v2 PrivatePAY payload through the configured facilitator and return redacted settlement evidence. Call this only after privatepay_verify with unchanged requirements; this is the payment-moving action and may create facilitator-side or on-chain settlement.

privatepay_settle input schema
{
  "type": "object",
  "required": [
    "x402Version",
    "paymentPayload",
    "paymentRequirements"
  ],
  "properties": {
    "x402Version": {
      "type": "integer",
      "const": 2,
      "description": "Must be x402 protocol version 2."
    },
    "paymentPayload": {
      "type": "object",
      "description": "The same finalized payer payload that passed privatepay_verify."
    },
    "paymentRequirements": {
      "type": "object",
      "description": "The unchanged requirements from the original PrivatePAY challenge."
    }
  },
  "description": "Settle an already authorized x402 v2 PrivatePAY payload through the configured facilitator and return redacted settlement evidence. Call privatepay_verify first; this is the only payment-moving PrivatePAY tool and may create a facilitator or on-chain settlement.",
  "additionalProperties": false
}
privatepay_settle output schema
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "description": "Settlement status."
    },
    "settled": {
      "type": "boolean",
      "description": "Whether the facilitator accepted settlement."
    },
    "evidence": {
      "type": "object",
      "description": "Redacted settlement evidence; provider secrets and sensitive payment payloads are excluded.",
      "additionalProperties": true
    },
    "request_id": {
      "type": "string",
      "description": "Redacted PrivatePAY request identifier when available."
    }
  },
  "description": "Structured PrivatePAY settlement evidence.",
  "additionalProperties": true
}
privatepay_settle annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
privatepay_job_payment — PrivateDAO Paid Workflow Payment
Advertised by the server during the last successful anonymous check.
Advertised destructive

Apply a finalized PrivatePAY x402 payment to an existing paid job and execute it once. Use this instead of submit_payment for a job created with payment_mode=privatepay; it consumes supplied payment proof, may settle funds, and returns workflow evidence.

privatepay_job_payment input schema
{
  "type": "object",
  "required": [
    "job_id",
    "payment_signature"
  ],
  "properties": {
    "job_id": {
      "type": "string",
      "pattern": "^job_[A-Za-z0-9-]+$",
      "description": "Job identifier returned by create_paid_job."
    },
    "payment_signature": {
      "type": "string",
      "minLength": 1,
      "description": "The x402 PAYMENT-SIGNATURE value returned by the paying agent wallet."
    }
  },
  "description": "Verify and settle a PrivatePAY x402 payment for a job. The signature is forwarded only to the configured facilitator and is never exposed in the public receipt.",
  "additionalProperties": false
}
privatepay_job_payment output schema
{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "Paid workflow job identifier."
    },
    "result": {
      "type": "object",
      "description": "Service result when execution completes.",
      "additionalProperties": true
    },
    "status": {
      "type": "string",
      "description": "Job or payment state after applying the supplied x402 proof."
    },
    "receipt": {
      "type": "object",
      "description": "Public evidence receipt when execution completes.",
      "additionalProperties": true
    }
  },
  "description": "Private payment application result for a selected job.",
  "additionalProperties": true
}
privatepay_job_payment annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
verify_receipt — PrivateDAO Receipt Verification
Advertised by the server during the last successful anonymous check.
Advertised read-only

Verify an asset/record or retrieve and validate a PrivateDAO receipt. Returns structured evidence and hashes; it is free and read-only, never pays or executes work, and replaces the separate basic, receipt, and get-receipt paths.

verify_receipt input schema
{
  "type": "object",
  "anyOf": [
    {
      "required": [
        "receipt_id"
      ]
    },
    {
      "required": [
        "receipt"
      ]
    },
    {
      "required": [
        "mint"
      ]
    },
    {
      "required": [
        "asset"
      ]
    },
    {
      "required": [
        "record"
      ]
    }
  ],
  "properties": {
    "mint": {
      "type": "string",
      "description": "Solana mint for basic verification."
    },
    "mode": {
      "enum": [
        "basic",
        "receipt"
      ],
      "type": "string",
      "default": "receipt",
      "description": "Use basic for an asset/record check or receipt for an existing receipt."
    },
    "asset": {
      "type": "string",
      "description": "Alias for mint."
    },
    "record": {
      "type": "object",
      "description": "Structured record for basic verification."
    },
    "network": {
      "type": "string",
      "description": "Optional network identifier for the asset or receipt evidence."
    },
    "receipt": {
      "type": "object",
      "description": "Receipt returned by a completed job."
    },
    "receipt_id": {
      "type": "string",
      "pattern": "^rvr_[A-Za-z0-9]+$",
      "description": "Receipt identifier to retrieve and verify."
    },
    "expected_hash": {
      "type": "string",
      "description": "Optional result hash that must match the receipt evidence."
    },
    "expected_digest": {
      "type": "string",
      "description": "Optional digest that must match the canonical verified record."
    }
  },
  "description": "Perform read-only verification or receipt retrieval. Use this instead of separate basic, receipt, and get-receipt tools; it never pays or executes a job.",
  "additionalProperties": false
}
verify_receipt output schema
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "description": "Operation status."
    },
    "receipt": {
      "type": "object",
      "description": "Public receipt metadata when retrieved.",
      "additionalProperties": true
    },
    "receipt_id": {
      "type": "string",
      "description": "Public receipt identifier when available."
    },
    "result_hash": {
      "type": "string",
      "description": "Verified result hash when available."
    },
    "evidence_hash": {
      "type": "string",
      "description": "Canonical evidence hash when available."
    },
    "verification_status": {
      "type": "string",
      "description": "Verification result when evidence is accepted."
    }
  },
  "description": "Read-only verification evidence or a public receipt.",
  "additionalProperties": true
}
verify_receipt annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_paid_job — PrivateDAO Service Request
Advertised by the server during the last successful anonymous check.

Create a selected paid PrivateDAO capability request and return an immediate result or exact quote-first payment intent. Use discover_agents or list_catalog first; payment_mode=privatepay starts the PrivatePAY flow, while direct uses ordinary USDC. This call never spends funds.

create_paid_job input schema
{
  "type": "object",
  "required": [
    "service_id"
  ],
  "properties": {
    "input": {
      "type": "object",
      "description": "Service-specific JSON input matching the selected service schema."
    },
    "service_id": {
      "enum": [
        "verify.deep",
        "token.intelligence",
        "risk.score",
        "wallet.intelligence",
        "wallet.bot.classify",
        "contract.inspect",
        "launch.check",
        "market.snapshot",
        "research.asset",
        "research.wallet",
        "contract.explain",
        "transaction.explain",
        "anomaly.detect",
        "agent.research.report",
        "portfolio.intelligence",
        "swap.quote",
        "transaction.simulate",
        "decision.context",
        "github.repository",
        "forensics.trace",
        "agent.match",
        "sponsored.discovery",
        "intelligence.synthesize"
      ],
      "type": "string",
      "description": "Paid service identifier selected from list_catalog or discover_agents."
    },
    "pdao_access": {
      "type": "object",
      "required": [
        "wallet",
        "message",
        "signature",
        "nonce"
      ],
      "properties": {
        "nonce": {
          "type": "string"
        },
        "wallet": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "signature": {
          "type": "string"
        }
      },
      "description": "Optional signed PDAO holder challenge from /api/access/challenge.",
      "additionalProperties": false
    },
    "payment_mode": {
      "enum": [
        "direct",
        "privatepay"
      ],
      "type": "string",
      "default": "direct",
      "description": "Select privatepay only when the PrivatePAY x402 status is enabled."
    }
  },
  "description": "Create a selected paid service request and return either an immediate result or an exact quote-first payment intent. This call does not spend funds; use the returned quote with the matching payment tool.",
  "additionalProperties": false
}
create_paid_job output schema
{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "Stable request identifier."
    },
    "result": {
      "type": "object",
      "description": "Service result when the request completes immediately.",
      "additionalProperties": true
    },
    "status": {
      "type": "string",
      "description": "Request status, commonly awaiting_payment or completed."
    },
    "receipt": {
      "type": "object",
      "description": "Public receipt metadata when the request completes.",
      "additionalProperties": true
    },
    "payment_intent": {
      "type": "object",
      "description": "Exact quote and recipient details when payment is required.",
      "additionalProperties": true
    }
  },
  "description": "Quote-first service request result; creating the request does not spend funds.",
  "additionalProperties": true
}
create_paid_job annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
submit_payment — PrivateDAO Payment Confirmation
Advertised by the server during the last successful anonymous check.
Advertised destructive

Confirm an authorized payment reference for a selected request and return the payment/execution result. Use this after create_paid_job and only with the exact returned quote; it may write payment state and never accepts a guessed amount.

submit_payment input schema
{
  "type": "object",
  "required": [
    "job_id",
    "signature"
  ],
  "properties": {
    "job_id": {
      "type": "string",
      "pattern": "^job_[A-Za-z0-9-]+$"
    },
    "signature": {
      "type": "string",
      "description": "Finalized Solana transaction signature."
    }
  },
  "additionalProperties": false
}
submit_payment output schema
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "description": "Payment endpoint status or next action."
    },
    "receipt": {
      "type": "object",
      "description": "Public receipt metadata after successful execution.",
      "additionalProperties": true
    },
    "required": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Required fields when the HTTP payment endpoint must be used."
    }
  },
  "description": "Payment confirmation or exact next-step response.",
  "additionalProperties": true
}
submit_payment annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
job_status — PrivateDAO Request Status
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read the current state, exact payment intent, result, or receipt reference for a request. Poll this after create_paid_job, privatepay_job_payment, or submit_payment; it is free and read-only, never retries payment, and never executes work again.

job_status input schema
{
  "type": "object",
  "required": [
    "job_id"
  ],
  "properties": {
    "job_id": {
      "type": "string",
      "pattern": "^job_[A-Za-z0-9-]+$",
      "description": "Job identifier returned by create_paid_job; polling never retries or charges payment."
    }
  },
  "description": "Read the current asynchronous request state, exact payment intent, result, or receipt reference. This is free and never retries or charges a payment.",
  "additionalProperties": false
}
job_status output schema
{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "Stable request identifier."
    },
    "result": {
      "type": "object",
      "description": "Service result when complete.",
      "additionalProperties": true
    },
    "status": {
      "type": "string",
      "description": "Current request state."
    },
    "receipt_id": {
      "type": "string",
      "description": "Receipt identifier when available."
    },
    "payment_intent": {
      "type": "object",
      "description": "Exact quote when payment is pending.",
      "additionalProperties": true
    }
  },
  "description": "Current read-only request state and available evidence.",
  "additionalProperties": true
}
job_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
cancel_job — PrivateDAO Request Cancellation
Advertised by the server during the last successful anonymous check.

Cancel an unpaid pending request before execution and return its updated status. It records cancellation only, never spends or refunds funds, and must not be used after payment or execution has started.

cancel_job input schema
{
  "type": "object",
  "required": [
    "job_id"
  ],
  "properties": {
    "job_id": {
      "type": "string",
      "pattern": "^job_[A-Za-z0-9-]+$",
      "description": "The unpaid pending request to cancel."
    },
    "reason": {
      "type": "string",
      "maxLength": 240,
      "description": "Optional operational reason recorded with the cancellation."
    }
  },
  "description": "Cancel an unpaid pending request before execution. This writes only cancellation state and never refunds or reverses a settled payment.",
  "additionalProperties": false
}
cancel_job output schema
{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "Cancelled request identifier."
    },
    "status": {
      "type": "string",
      "description": "Updated cancellation state."
    },
    "cancelled_at": {
      "type": "string",
      "format": "date-time",
      "description": "Cancellation timestamp when recorded."
    }
  },
  "description": "Cancellation result for an unpaid pending request.",
  "additionalProperties": true
}
cancel_job annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1773 ms
95th percentile latency
1773 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1773 ms · metadata changed · 17 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http privatedao-agent-exchange-mcp https://agents.privatedao.org/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add privatedao-agent-exchange-mcp --url https://agents.privatedao.org/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable privatedao-agent-exchange-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "privatedao-agent-exchange-mcp": {
      "url": "https://agents.privatedao.org/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "privatedao-agent-exchange-mcp": {
      "type": "streamableHttp",
      "url": "https://agents.privatedao.org/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start privatedao-agent-exchange-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "privatedao-agent-exchange-mcp": {
      "type": "http",
      "url": "https://agents.privatedao.org/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http privatedao-agent-exchange-mcp https://agents.privatedao.org/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://agents.privatedao.org/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "privatedao-agent-exchange-mcp": {
      "serverUrl": "https://agents.privatedao.org/mcp"
    }
  }
}

Let your agent find its tools

Find servers like PrivateDAO Agent Exchange MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.