npm paydirt-mcpstdioMITupdated 26d ago
MCP Registry name: io.github.Paydirt-AI/paydirt-mcp
What can you do with Paydirt?
Paydirt MCP
MCP Registry name: io.github.Paydirt-AI/paydirt-mcp
The agent-native installer and control plane for Paydirt, an iOS SDK for Suggest a Feature, 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 three-form setup check open for immediate verification, and read raw feedback. Paydirt supports native StoreKit, RevenueCat, Superwall, app-owned billing, and apps without subscriptions.
A generic installation first confirms cancellation feedback and Suggest a Feature, then creates the selected forms after Google sign-in. Browser onboarding asks whether completed feedback should go to Slack and coding agents (recommended), Slack only, or coding agents only. The agent then builds and opens the three-test setup check on a simulator or connected iPhone.
Install in Codex
codex mcp add paydirt -- npx --yes --prefer-online paydirt-mcp@latest
Restart Codex after adding the server. Then ask:
Add Paydirt and show me it working.
To remove the server later:
codex mcp remove paydirt
Install in Claude Code
claude mcp add paydirt -- npx --yes --prefer-online paydirt-mcp@latest
The public Paydirt Claude plugin marketplace is also included in this repository. After the public repository is available:
/plugin marketplace add Paydirt-AI/paydirt-mcp
/plugin install paydirt@paydirt-plugins
The plugin bundles both the Paydirt installation workflow and the pinned MCP server configuration.
Other MCP hosts can launch the same stdio command:
{
"mcpServers": {
"paydirt": {
"command": "npx",
"args": ["--yes", "--prefer-online", "paydirt-mcp@latest"]
}
}
}
Requires Node.js 18 or newer.
Authentication
Authentication is an explicit, headless-safe two-step flow:
- The agent inspects the app and calls
paydirt_begin_setupwithout confirmation to receive the recommended form plan, then asks the developer to approve Add all three, Add both cancellation forms, or Customize. An explicit request naming the forms already counts as confirmation. - After confirmation, the agent calls
paydirt_begin_setupwithform_plan_confirmed: true. It immediately receives anauthorization_url,session_id, and exactfinish_arguments. The MCP process never launches a browser, sleeps, or polls. - Open
authorization_urlin any browser and sign in to Paydirt with Google. Paydirt creates the app and selected forms, then asks for Slack and coding agents (recommended), Slack only, or coding agents only. - When Slack is selected, complete Slack OAuth. Paydirt provisions
#paydirt-suggest-a-featureand#paydirt-cancellations, assigns the corresponding forms, and verifies the routing before setup completes. - The agent calls
paydirt_finish_setup, respects the saved delivery choice, installs Paydirt, builds and launches the app, and leaves the three-test setup check visibly open. The developer submits all three tests; Slack setup is complete only when 3/3 reach the expected channels. - The coding-agent delivery choices disclose and include a read-only daily brief. After verification, a host with native scheduling creates a 9:00 AM local task that calls
paydirt_get_feedback_digest; unsupported hosts return the reusable prompt and report the limitation without pretending a schedule was created. Slack-only delivery does not include it.
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.
Daily feedback brief
paydirt_get_feedback_digest returns a read-only period summary designed for scheduled tasks: total completed responses, Suggest a Feature, Trial Cancellation, Subscription Cancellation, other feedback, the change from the preceding equal period, and concise highlights. A quiet day explicitly reports zero. Digests never create coding tasks or modify an app automatically.
Natural agent workflows
Add a form at an in-app action
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.
Install cancellation feedback
The agent inspects the app before setup and selects the existing subscription source of truth:
- Native StoreKit uses Paydirt's built-in StoreKit integration.
- RevenueCat uses installer-managed compatibility source and the familiar
Paydirt.enableRevenueCatIntegration(...)call, avoiding duplicate package dependencies. - Native StoreKit covers ordinary App Store subscriptions, including apps where Superwall is only the paywall.
- App-owned billing emits Paydirt's provider-independent cancellation event.
- Apps without subscriptions can install manual feedback alone.
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.
Deliver to Slack and coding agents
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.
Tools
| 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 |
Development
npm ci
npm test
npm pack --dry-run
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.
License
Install
Add Paydirt to your client. Pick the one you use.
claude mcp add paydirt-mcp -- npx -y paydirt-mcpcodex mcp add paydirt-mcp -- npx -y paydirt-mcpamp mcp add paydirt-mcp -- npx -y paydirt-mcp{
"mcpServers": {
"paydirt-mcp": {
"command": "npx",
"args": [
"-y",
"paydirt-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"paydirt-mcp": {
"command": "npx",
"args": [
"-y",
"paydirt-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"paydirt-mcp","command":"npx","args":["-y","paydirt-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"paydirt-mcp": {
"command": "npx",
"args": [
"-y",
"paydirt-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"paydirt-mcp": {
"command": "npx",
"args": [
"-y",
"paydirt-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"paydirt-mcp": {
"command": "npx",
"args": [
"-y",
"paydirt-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"paydirt-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"paydirt-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"paydirt-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"paydirt-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y paydirt-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
6 tools
Paydirt exposes 6 tools to a connected agent.
- 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_get_responses
- Read raw conversations using a stable cursor
- paydirt_health_check
- Verify API connectivity and credentials
Score
84 / 100
Excellent
- Documentation25/25
- Maintenance25/25
- Trust16/20
- Capability6/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 18 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 6 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 2.3.0Latest | Aug 12, 2026 |
| 2.1.6 | Jul 31, 2026 |
| 2.1.1 | Jul 30, 2026 |