{"serverId":"mcp-registry/ai.clearvoyance/clearvoyance","tools":[{"name":"create_campaign","fixed":{"name":"create_campaign","description":"LEGACY wallet flow — new integrations should use create_account and launch_campaign (API key + prepaid balance, no wallet). (launch_campaign is its equivalent for the key flow.) Creates a new anonymous audio feedback campaign. Two modes: (a) INCENTIVIZED — participants earn USDC rewards; you must fund an escrow address     returned in the response, then call verify_campaign_funding. Participants have 30 days after     the campaign ends to claim; anything unclaimed then goes back to the wallet yo","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["accessToken","title","description","questions","cohortEmails","rewardMode"],"properties":{"title":{"type":"string","description":"Campaign title (shown to participants)"},"questions":{"type":"array","items":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Question text"}},"additionalProperties":false},"minItems":1,"description":"List of audio questions for participants to answer"},"minPercent":{"type":"number","maximum":100,"minimum":50,"description":"Minimum response rate (%) required to unlock results. Defaults to 50."},"rewardMint":{"type":"string","description":"SPL token mint address for rewards. Defaults to USDC if omitted."},"rewardMode":{"enum":["INCENTIVIZED","NO_REWARD"],"type":"string","description":"INCENTIVIZED: crypto rewards per response. NO_REWARD: survey only, flat activation fee."},"accessToken":{"type":"string","description":"One-time access token from initialize_session (free sessions) or verify_payment"},"description":{"type":"string","description":"Short description of the campaign purpose"},"cohortEmails":{"type":"array","items":{"type":"string","format":"email"},"minItems":2,"description":"Email addresses of participants (minimum 2 for privacy)"},"expiresInDays":{"type":"integer","maximum":42,"minimum":1,"description":"Campaign duration in days (1–42, default 7)"},"incentiveCents":{"type":"integer","description":"Reward per participant in cents (e.g. 500 = $5.00). Required for INCENTIVIZED."},"digitalGiftText":{"type":"string","description":"Optional digital gift description shown to NO_REWARD participants (e.g. a discount code)"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":637,"tokensAfter":637},{"name":"export_campaign_data","fixed":{"name":"export_campaign_data","description":"LEGACY wallet flow — new integrations should use create_account and launch_campaign (API key + prepaid balance, no wallet). (get_campaign_results is its equivalent for the key flow, as JSON with the AI report.) Exports raw response data for a completed campaign as CSV text. Each row contains a response ID, submission timestamp, and one column per question with the participant's audio transcription as the value. Only available after campaign expiry. AI insight reports are not included (raw data o","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["campaignId","sessionToken"],"properties":{"campaignId":{"type":"integer","description":"Campaign ID to export"},"sessionToken":{"type":"string","description":"Session token from verify_login_signature"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":244,"tokensAfter":244},{"name":"get_agent_config","fixed":{"name":"get_agent_config","description":"LEGACY wallet flow — new integrations should use create_account and launch_campaign (API key + prepaid balance, no wallet). Returns the agent session configuration: whether a session fee applies (paymentRequired), the fee in cents, the accepted token mint (USDC on Solana) and the treasury wallet address.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"get_campaign_details","fixed":{"name":"get_campaign_details","description":"LEGACY wallet flow — new integrations should use create_account and launch_campaign (API key + prepaid balance, no wallet). (get_campaign is its equivalent for the key flow.) Returns detailed stats for a specific campaign: invite count, response count, completion rate, question definitions, and campaign status. Only campaigns owned by your wallet are accessible. Requires the sessionToken from verify_login_signature.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["campaignId","sessionToken"],"properties":{"campaignId":{"type":"integer","description":"Campaign ID to inspect"},"sessionToken":{"type":"string","description":"Session token from verify_login_signature"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":222,"tokensAfter":222},{"name":"get_login_nonce","fixed":{"name":"get_login_nonce","description":"LEGACY wallet flow — new integrations should use create_account and launch_campaign (API key + prepaid balance, no wallet). First step of dashboard authentication. Returns a nonce and a message string that you must sign with your Solana wallet. The signed message is then passed to verify_login_signature to receive a session token. Nonces expire after 5 minutes.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["walletAddress"],"properties":{"walletAddress":{"type":"string","description":"Your Solana wallet public key (base58)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":182,"tokensAfter":182},{"name":"get_session_nonce","fixed":{"name":"get_session_nonce","description":"LEGACY wallet flow — new integrations should use create_account and launch_campaign (API key + prepaid balance, no wallet). First step of creating a campaign session. Returns the exact message you must sign with your Solana wallet, and the nonce inside it. Pass the message and your base58 signature to initialize_session. Nonces expire after 5 minutes, and a message signed for the dashboard will not work here.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["walletAddress"],"properties":{"walletAddress":{"type":"string","description":"Your Solana wallet public key (base58)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":196,"tokensAfter":196},{"name":"list_campaigns","fixed":{"name":"list_campaigns","description":"LEGACY wallet flow — new integrations should use create_account and launch_campaign (API key + prepaid balance, no wallet). (list_my_campaigns is its equivalent for the key flow.) Lists all campaigns created by your wallet. Requires the sessionToken from verify_login_signature. Returns campaign IDs, titles, statuses, cohort sizes, and data expiry dates.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["sessionToken"],"properties":{"sessionToken":{"type":"string","description":"Session token from verify_login_signature"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":179,"tokensAfter":179},{"name":"validate_campaign","fixed":{"name":"validate_campaign","description":"LEGACY wallet flow — new integrations should use create_account and launch_campaign (API key + prepaid balance, no wallet). (quote_campaign is its equivalent for the key flow.) Checks a campaign BEFORE you pay for anything. Free, and needs no session or access token. Returns whether it is valid, every problem at once (not just the first), any adjustments we would make (expiry clamped, privacy threshold raised, empty questions dropped), and what it will cost — the escrow total for incentivized ca","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"title":{"type":"string","description":"Campaign title, shown to participants"},"questions":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"}},"additionalProperties":false},"description":"1-10 questions with non-empty text"},"cohortSize":{"type":"number","description":"How many participants — the number, not the email addresses"},"minPercent":{"type":"number","description":"Privacy threshold; floored at 50"},"rewardMint":{"type":"string","description":"SPL token mint for the reward; defaults to USDC"},"rewardMode":{"enum":["INCENTIVIZED","NO_REWARD"],"type":"string","description":"Defaults to INCENTIVIZED"},"description":{"type":"string","description":"What you want to learn"},"expiresInDays":{"type":"number","description":"1-42, default 7"},"incentiveCents":{"type":"number","description":"Reward per participant in cents (incentivized campaigns)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":435,"tokensAfter":435},{"name":"verify_payment","fixed":{"name":"verify_payment","description":"LEGACY wallet flow — new integrations should use create_account and launch_campaign (API key + prepaid balance, no wallet). Only when initialize_session returned paymentRequired true: verifies your on-chain USDC payment to the treasury and returns a one-time access token. A free session needs no payment and is refused here. The access token is required for create_campaign and expires after 1 hour. The token is single-use — it is consumed when create_campaign is called.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["sessionId","txSignature"],"properties":{"sessionId":{"type":"integer","description":"Session ID returned by initialize_session"},"txSignature":{"type":"string","description":"Solana transaction signature of your USDC payment to treasury"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":245,"tokensAfter":245}],"toolsChanged":9,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}