Agent-native installer and control plane for Paydirt iOS feedback
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
MCP Registry name: io.github.Paydirt-AI/paydirt-mcp
The agent-native installer and control plane for Paydirt, an iOS SDK for regular feedback, trial cancellation, and subscription cancellation.
Paydirt MCP lets a coding agent create forms, place them in an iOS app, connect Slack, build and launch the host app, leave a Debug-only test form open for immediate verification, and read raw feedback. Paydirt supports native StoreKit, RevenueCat, Superwall, app-owned billing, and apps without subscriptions.
A generic installation creates regular feedback plus both trial and paid subscription cancellation. The single browser setup handles Google sign-in and Slack OAuth, creates a new #paydirt-cancellation-feedback channel, and assigns every installed form before installation begins. If that name is taken, Paydirt creates the next numbered name.
Restart Codex after adding the server. Then ask:
Install Paydirt in this iOS app for regular feedback, trial cancellation, and subscription cancellation. Detect the existing subscription setup, preserve any existing feedback form and its behavior, connect every Paydirt form to my Slack feedback channel, edit the app, build it, and give me an exact test path.
To remove the server later:
The public Paydirt Claude plugin marketplace is also included in this repository. After the public repository is available:
The plugin bundles both the Paydirt installation workflow and the pinned MCP server configuration.
Other MCP hosts can launch the same stdio command:
Requires Node.js 18 or newer.
Authentication is an explicit, headless-safe two-step flow:
paydirt_begin_setup. It immediately receives an authorization_url, session_id, and exact finish_arguments. The MCP process never launches a browser, sleeps, or polls.authorization_url in any browser, sign in to Paydirt with Google, and authorize Slack. Paydirt creates the app, forms, and feedback channel automatically.paydirt_finish_setup with the returned arguments. A pending call returns immediately; call it again only after authorization is complete.paydirt_setup remains as a compatibility alias: call it without session_id to begin and with session_id to finish.
Credentials are saved locally at ~/.paydirt/credentials.json with owner-only permissions. They are not written to an app repository or sent anywhere except api.paydirt.ai. For ephemeral environments, set PAYDIRT_AUTH_TOKEN instead.
Ask:
Add a feedback form titled βExport Feedbackβ after a successful export and send it to #product-feedback.
The agent should use paydirt_add_feedback_form. It reuses an existing custom form with the same normalized title, preserves the requested placement, resolves Slack when possible, and returns the exact Swift presentation call. A remote form is not considered installed until the agent edits and builds the host app.
Supported triggers are user taps, successful in-app actions, screen appearance, and app-owned custom conditions.
The agent inspects the app before setup and selects the existing subscription source of truth:
Paydirt.enableRevenueCatIntegration(...) call, avoiding duplicate package dependencies.The agent must preserve all existing host-app feedback forms, buttons, screens, handlers, destinations, and side effects. It may only add or change regular feedback when the user explicitly requests that exact placement. If a requested cancellation bridge is blocked, the agent reports the narrow provider blocker, preserves the existing app behavior, and completes every unaffected requested form.
An older RevenueCat version is not a blocker. The agent keeps the installed version and adapts the installer-managed integration source to the customer-info or purchaser-info API already compiling in the app. Newer optional metadata may be omitted, or Paydirt can be called from the app's existing confirmed RevenueCat cancellation path.
Slack receives one message after a conversation finishes, containing the exact raw questions and answers. An optional AI summary may follow the raw conversation. Coding-agent tools expose responses read-only; Paydirt does not automatically take action on feedback.
| Tool | Purpose |
|---|---|
paydirt_begin_setup | Start non-blocking browser authorization |
paydirt_finish_setup | Check authorization once and return the installation contract |
paydirt_setup | Backward-compatible begin/finish alias |
paydirt_add_feedback_form | Create/reuse a named form and return its host-app placement contract |
paydirt_list_apps, paydirt_create_app, paydirt_get_app, paydirt_update_app | Manage apps |
paydirt_list_forms, paydirt_create_form, paydirt_get_form, paydirt_update_form, paydirt_toggle_form, paydirt_delete_form | Manage forms |
paydirt_get_responses | Read raw conversations using a stable cursor |
paydirt_get_summary, paydirt_ask | Read optional AI analysis |
paydirt_connect_slack, paydirt_slack_status, paydirt_list_slack_channels, paydirt_set_form_channel | Connect and configure Slack delivery |
paydirt_health_check | Verify API connectivity and credentials |
The repository intentionally contains only the public MCP client. Paydirt's API, dashboard, infrastructure, and operational configuration remain private.
Official MCP Registry metadata lives at .mcp/server.json. It describes the current npm stdio package; Paydirt does not claim a remote MCP transport until a public HTTPS endpoint is deployed and verified.
See SUPPORT.md for support, SECURITY.md before reporting a vulnerability, and CONTRIBUTING.md before opening a pull request.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/paydirt)<a href="https://allmcps.com/mcp/paydirt"><img src="https://allmcps.com/api/badge/paydirt?style=directory" alt="Paydirt on AllMCPs" /></a>