{"name":"io.github.X-PACT/pdao-agent-exchange","slug":"x-pact-pdao-agent-exchange","title":"PrivateDAO Agent Exchange","description":"PrivateDAO services for verification, multichain intelligence, risk, and agent workflows.","url":"https://mcp.market/server/x-pact-pdao-agent-exchange","rating":null,"grade":"B","score":80,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":28,"stars":2,"forks":2,"downloads_week":null,"last_push_at":"2026-11-02T22:53:48.000Z","license":"AGPL-3.0"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T05:40:24.305Z","last_ok_at":"2026-11-04T05:40:24.305Z","latency_ms":414},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/X-PACT/PrivateDAO","website":"https://agents.privatedao.org/","version":"1.7.2","remotes":[{"type":"streamable-http","url":"https://agents.privatedao.org/mcp"}],"packages":[],"tools":[{"name":"cancel_job","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","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."}},"required":["job_id"],"additionalProperties":false,"description":"Cancel an unpaid pending request before execution. This writes only cancellation state and never refunds or reverses a settled payment."}},{"name":"create_paid_job","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"service_id":{"type":"string","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"],"description":"Paid service identifier selected from list_catalog or discover_agents."},"input":{"type":"object","description":"Service-specific JSON input matching the selected service schema."},"payment_mode":{"type":"string","enum":["direct","privatepay"],"default":"direct","description":"Select privatepay only when the PrivatePAY x402 status is enabled."},"pdao_access":{"type":"object","description":"Optional signed PDAO holder challenge from /api/access/challenge.","properties":{"wallet":{"type":"string"},"message":{"type":"string"},"signature":{"type":"string"},"nonce":{"type":"string"}},"required":["wallet","message","signature","nonce"],"additionalProperties":false}},"required":["service_id"],"additionalProperties":false,"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."}},{"name":"discover_agents","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","maxLength":500,"description":"Natural-language business requirement or capability request."},"capabilities":{"type":"array","items":{"type":"string","maxLength":120},"maxItems":32,"description":"Structured capability terms to match against registered agents."},"network":{"type":"string","description":"Optional target network constraint used to filter compatible matches."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of ranked agent matches to return."}},"anyOf":[{"required":["query"]},{"required":["capabilities"]}],"additionalProperties":false,"description":"Discover and rank matching first-party services and registered agents without executing work or spending funds."}},{"name":"get_provider_integrations","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false,"description":"Return read-only provider and ecosystem integration metadata. Use this for integration context, not capability matching."}},{"name":"get_workflow_guide","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"topic":{"type":"string","enum":["overview","execution","payment"],"description":"Choose the lifecycle guide needed before discovery, execution, or payment."}},"required":["topic"],"additionalProperties":false,"description":"Return the selected read-only workflow guide. Use this instead of separate overview, execution, or payment guide calls."}},{"name":"job_status","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","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."}},"required":["job_id"],"additionalProperties":false,"description":"Read the current asynchronous request state, exact payment intent, result, or receipt reference. This is free and never retries or charges a payment."}},{"name":"list_catalog","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"filter":{"type":"string","enum":["all","services","products","external","network"],"default":"all","description":"Select the catalog slice to return."},"q":{"type":"string","maxLength":200,"description":"Optional business or capability text used to filter catalog entries."},"limit":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of entries returned in each selected catalog slice."}},"additionalProperties":false,"description":"Return read-only service, product, external, or network catalog metadata. Use discover_agents for task matching."}},{"name":"privatepay_challenge","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"resource":{"type":"string","minLength":1,"maxLength":500,"description":"Stable HTTPS resource or service identifier being purchased."},"provider_id":{"type":"string","minLength":1,"maxLength":200,"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."},"mime_type":{"type":"string","maxLength":100,"description":"Optional response media type for the purchased resource."},"nonce":{"type":"string","maxLength":200,"description":"Optional caller nonce used to bind a fresh challenge."}},"required":["resource","provider_id","amount_base_units"],"additionalProperties":false,"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."}},{"name":"privatepay_checkout","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"phase":{"type":"string","enum":["create","challenge"],"default":"create","description":"Use create for a new checkout or challenge to request the payment-required response for an existing payment_id."},"payment_id":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Existing 64-character checkout identifier when phase is challenge."},"payer":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Solana payer wallet public key; never a private key."},"resource":{"type":"string","minLength":1,"maxLength":2048,"description":"HTTPS resource or service endpoint being purchased."},"amount_base_units":{"type":"string","pattern":"^[0-9]+$","description":"Quoted USDC amount in base units."},"external_reference":{"type":"string","minLength":1,"maxLength":128,"description":"Merchant-owned idempotency or order reference."},"description":{"type":"string","maxLength":256,"description":"Human-readable commercial description shown in the checkout response."},"expires_in_seconds":{"type":"integer","minimum":60,"maximum":86400,"description":"Challenge lifetime in seconds, between one minute and one day."}},"additionalProperties":false,"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."}},{"name":"privatepay_job_payment","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","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."}},"required":["job_id","payment_signature"],"additionalProperties":false,"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."}},{"name":"privatepay_prepare","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"phase":{"type":"string","enum":["deposit","transfer","withdraw"],"default":"transfer","description":"Unsigned wallet operation to prepare after the challenge: deposit into the private rail, private transfer, or withdrawal."},"request_id":{"type":"string","pattern":"^pp_[a-f0-9]{32}$","description":"PrivatePAY request identifier returned by the challenge or checkout."},"payer":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Wallet public key that will inspect and authorize the transaction."},"owner":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Optional destination or balance owner public key."},"amount_base_units":{"type":"string","pattern":"^[0-9]+$","description":"Token amount in base units."},"split":{"type":"integer","minimum":1,"maximum":15,"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."}},"required":["request_id","amount_base_units"],"additionalProperties":false,"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."}},{"name":"privatepay_settle","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","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."}},"required":["x402Version","paymentPayload","paymentRequirements"],"additionalProperties":false,"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."}},{"name":"privatepay_status","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false,"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."}},{"name":"privatepay_verify","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","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."}},"required":["x402Version","paymentPayload","paymentRequirements"],"additionalProperties":false,"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."}},{"name":"service_recommendation","description":"Translate a business or product objective into the most relevant PrivateDAO capabilities and a practical next step.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"task":{"type":"string","minLength":2,"maxLength":500,"description":"Natural-language task the agent wants to accomplish."},"network":{"type":"string","description":"Optional target network constraint."}},"required":["task"],"additionalProperties":false}},{"name":"submit_payment","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"job_id":{"type":"string","pattern":"^job_[A-Za-z0-9-]+$"},"signature":{"type":"string","description":"Finalized Solana transaction signature."}},"required":["job_id","signature"],"additionalProperties":false}},{"name":"verify_receipt","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"mode":{"type":"string","enum":["basic","receipt"],"default":"receipt","description":"Use basic for an asset/record check or receipt for an existing receipt."},"network":{"type":"string","description":"Optional network identifier for the asset or receipt evidence."},"mint":{"type":"string","description":"Solana mint for basic verification."},"asset":{"type":"string","description":"Alias for mint."},"record":{"type":"object","description":"Structured record for basic verification."},"receipt_id":{"type":"string","pattern":"^rvr_[A-Za-z0-9]+$","description":"Receipt identifier to retrieve and verify."},"receipt":{"type":"object","description":"Receipt returned by a completed job."},"expected_digest":{"type":"string","description":"Optional digest that must match the canonical verified record."},"expected_hash":{"type":"string","description":"Optional result hash that must match the receipt evidence."}},"anyOf":[{"required":["receipt_id"]},{"required":["receipt"]},{"required":["mint"]},{"required":["asset"]},{"required":["record"]}],"additionalProperties":false,"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."}}],"scan":{"score":80,"grade":"B","scanned_at":"2026-11-03T14:20:54.890Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-03T14:20:54.800Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1988ms"]},"poisoning":{"score":15,"max":15,"notes":["17 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 5 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://agents.privatedao.org/mcp","reachable":true,"authRequired":false,"latencyMs":1988,"serverInfo":{"name":"pdao-agent-exchange","version":"1.7.6"}}],"packages":[],"repo":{"found":true,"owner":"X-PACT","repo":"PrivateDAO","archived":false,"pushedAt":"2026-11-02T22:53:48Z","stars":2,"forks":2,"openIssues":37,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/264253633?v=4","ownerCreatedAt":"2026-02-03T09:24:25Z","license":"AGPL-3.0"},"icon":{"url":"https://agents.privatedao.org/favicon.ico","source":"registry"},"presence":{"stars":2,"forks":2,"downloadsWeek":null,"license":"AGPL-3.0","lastPushAt":"2026-11-02T22:53:48.000Z","score":28}}}},"grade_history":[{"kind":"restore","fromGrade":"D","toGrade":"B","reason":"score 80: Write-action tools reachable without authentication","createdAt":"2026-11-03T14:20:58.785Z"}],"reviews":[]}