Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Paydirt

NPM · PAYDIRT-MCP · SCANNED SEP 20

Agent-native installer and control plane for Paydirt iOS feedback

Available components

0 this week 82 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 38 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability75
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3199 tokens (~139/item across 23 items; 23 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
  • Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (87% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Paydirt MCP server?

Paydirt runs locally as an npm package, launched with npx -y paydirt-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · paydirt-mcp

# add to Claude Code
claude mcp add paydirt-ai-paydirt-mcp -- npx -y paydirt-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "paydirt-ai-paydirt-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "paydirt-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "paydirt-ai-paydirt-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "paydirt-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add paydirt-ai-paydirt-mcp -- npx -y paydirt-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "paydirt-ai-paydirt-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "paydirt-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add paydirt-ai-paydirt-mcp --command npx --arg -y --arg paydirt-mcp
# ~/.hermes/config.yaml
mcp_servers:
  paydirt-ai-paydirt-mcp:
    command: "npx"
    args: ["-y", "paydirt-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "paydirt-ai-paydirt-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "paydirt-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add paydirt-ai-paydirt-mcp -t stdio -c npx -a -y paydirt-mcp
// mcp.json
{
  "mcpServers": {
    "paydirt-ai-paydirt-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "paydirt-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 18 Sept 26 +1
    • Stability: 0.97 → pass security
  • 17 Sept 26 +1
    • Security disclosure: unverified → pass functional
  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 0
    • Security disclosure: pass → unverified functional
  • 12 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 11 Sept 26 +1
    • Stability: 0.97 → pass security
  • 9 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/paydirt-mcp@2.3.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 95 packages
Packages resolved 95
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 23 exposed · ~2,815 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
paydirt_add_feedback_form ~305

Use this when the user asks for a named feedback form at a screen, button, lifecycle moment, or in-app action. Creates or reuses a normalized-title match, preserves the placement verbatim, optionally resolves Slack, and returns exact Swift plus mandatory edit/build/test actions. Remote form creation alone is not completion.

NameTypeReqDescription
app_idstringyesThe Paydirt app ID. Discover it with setup or list_apps rather than asking if it is already available.
custom_system_promptstringOptional guidance for AI follow-up questions.
initial_questionstringOptional first question. Defaults to “What would you like us to know?”. If supplied on a retry, the existing matching form is updated instead of duplicated.
placementstringyesThe exact host-app location or action from the user, such as “Settings below Restore Purchases” or “after a successful export”. Preserve this text through implementation and reporting.
slack_channelstringOptional Slack channel name (with or without #) or channel ID when the developer already selected Slack delivery. If omitted, Slack is deferred until after visual verification.
titlestringyesThe exact user-requested form title, such as “Post Export Feedback”.
triggerstringyesHow presentation is triggered. Use user_tap for a button/menu item, in_app_action after an action succeeds, screen_appearance when opening a screen, or custom_condition for app-specific logic.
NameTypeReqDescription
agent_actionsarrayyes
completion_requirementsobjectyes
formobjectyes
form_actionstringyes
iosobjectyes
requested_placementobjectyes
slackobjectyes
successbooleanyes

No examples provided.

paydirt_ask ~123

Use this when the user asks a natural-language analytical question about their Paydirt feedback, such as pricing themes or feature requests. Reads actual responses and returns analysis without taking action.

NameTypeReqDescription
app_idstringyesThe app ID
daysnumberNumber of days of data to analyze (default: 30)
form_idstringFilter to a specific form (optional)
questionstringyesYour question about the feedback (e.g., "What are users saying about pricing?" or "What features are most requested?")
NameTypeReqDescription
answerstringyes
daysnumberyes
response_countnumberyes

No examples provided.

paydirt_begin_setup ~302

Use this when installing Paydirt for a new user, machine, or iOS app. Inspect the host first. Without form_plan_confirmed, returns the concise cancellation/Suggest a Feature confirmation and does not start authorization. After confirmation, pass the selected use_cases and placement to receive authorization_url and finish_arguments immediately.

NameTypeReqDescription
app_descriptionstringOptional app description to save when creating or repairing setup
app_namestringPreferred app name to reuse or create during setup
bundle_idstringPreferred iOS bundle ID to match during setup
feature_placementstringDeveloper-confirmed placement for Suggest a Feature, such as settings or after_successful_export. Defaults to settings.
form_plan_confirmedbooleanSet true only after the developer confirms cancellation, Suggest a Feature, or a customized form plan. Without confirmation, setup returns a concise confirmation prompt and does not start authorizati…
subscription_product_idsarrayNative StoreKit auto-renewable product IDs. Required for a complete storekit integration.
subscription_providerstringSubscription source of truth discovered in the host app. Use auto only when it could not be resolved before setup.
use_casesarrayConfirmed feedback experiences to install. The recommended plan is Suggest a Feature plus trial and paid cancellation when subscriptions exist.
uses_revenuecatbooleanDeprecated compatibility input. Prefer subscription_provider.
NameTypeReqDescription
messagestring
statusstringyes
successbooleanyes

No examples provided.

paydirt_connect_slack ~84

Use this when the user asks to connect Slack or repair Slack delivery after onboarding. Returns the Slack OAuth URL. Authorization provisions #paydirt-suggest-a-feature for feature forms and #paydirt-cancellations for trial and subscription cancellation forms, then assigns each form automatically when workspace policy allows it.

NameTypeReqDescription
app_idstringyesThe app ID
NameTypeReqDescription
auth_urlstringyes

No examples provided.

paydirt_create_app ~85

Use this when the user explicitly needs a separate Paydirt app and setup cannot reuse or create it. Creates a new app; list existing apps first when duplication is possible.

NameTypeReqDescription
app_descriptionstringDescription of the app (optional)
bundle_idstringiOS bundle ID (optional)
namestringyesName of the app
NameTypeReqDescription
api_keystringyes
bundle_idstring|null
idstringyes
namestringyes

No examples provided.

paydirt_create_form ~142

Use this when creating a low-level remote form without a host-app placement request. First confirm a matching form does not exist. Map subscription cancellation to cancellation, trial cancellation to trial_expiration, and regular feedback to custom; then wire the returned ID into iOS and assign Slack. Prefer paydirt_add_feedback_form for named screen or action placement.

NameTypeReqDescription
app_idstringyesThe app ID
custom_system_promptstringCustom system prompt for AI (optional)
namestringyesName of the form
promptstringyesInitial prompt/question for the form
typestringyesType of form
NameTypeReqDescription
app_idstringyes
enabledboolean
idstringyes
namestringyes
promptstringyes
slack_channel_idstring|null
typestringyes

No examples provided.

paydirt_delete_form ~59

Use this when the user explicitly asks to permanently delete a specific Paydirt form. This is destructive and should only be called after inspecting the form when its identity is uncertain.

NameTypeReqDescription
form_idstringyesThe form ID to delete
NameTypeReqDescription
successbooleanyes

No examples provided.

paydirt_finish_setup ~315

Use this when the user has opened the authorization URL returned by paydirt_begin_setup. Checks one setup session and returns immediately. If pending, do not loop or sleep. When ready, securely saves credentials and returns the host-app build, visible verification, and post-verification delivery-choice contract.

NameTypeReqDescription
app_descriptionstringOptional app description to save when creating or repairing setup
app_namestringPreferred app name to reuse or create during setup
bundle_idstringPreferred iOS bundle ID to match during setup
feature_placementstringDeveloper-confirmed placement for Suggest a Feature, such as settings or after_successful_export. Defaults to settings.
form_plan_confirmedbooleanSet true only after the developer confirms cancellation, Suggest a Feature, or a customized form plan. Without confirmation, setup returns a concise confirmation prompt and does not start authorizati…
session_idstringyesThe session_id returned by paydirt_begin_setup.
subscription_product_idsarrayNative StoreKit auto-renewable product IDs. Required for a complete storekit integration.
subscription_providerstringSubscription source of truth discovered in the host app. Use auto only when it could not be resolved before setup.
use_casesarrayConfirmed feedback experiences to install. The recommended plan is Suggest a Feature plus trial and paid cancellation when subscriptions exist.
uses_revenuecatbooleanDeprecated compatibility input. Prefer subscription_provider.
NameTypeReqDescription
messagestring
statusstringyes
successbooleanyes

No examples provided.

paydirt_get_app ~54

Use this when the agent needs the current identity, bundle ID, SDK key, or configuration for one known Paydirt app. Does not modify the app.

NameTypeReqDescription
app_idstringyesThe app ID
NameTypeReqDescription
api_keystringyes
bundle_idstring|null
idstringyes
namestringyes

No examples provided.

paydirt_get_feedback_digest ~103

Use this when the user or a scheduled task needs a read-only daily or periodic Paydirt brief. Returns completed-response totals by feedback type, comparison with the previous equal period, and concise highlights. Never turn feedback into code changes or tasks automatically.

NameTypeReqDescription
app_idstringyesThe Paydirt app ID
hoursnumberPeriod length in hours (default: 24). The comparison uses the immediately preceding period of equal length.
NameTypeReqDescription
app_idstringyes
change_from_previous_periodnumberyes
countsobjectyes
itemsarrayyes
periodobjectyes
previous_period_totalnumberyes
truncatedbooleanyes

No examples provided.

paydirt_get_form ~51

Use this when the agent needs the current prompt, type, enabled state, or Slack assignment for one known form. Does not modify the form.

NameTypeReqDescription
form_idstringyesThe form ID
NameTypeReqDescription
formobjectyes

No examples provided.

paydirt_get_responses ~141

Use this when the user or coding agent needs raw feedback conversations, exact Q/A turns, input type, subscription metadata, or a read-only inbox cursor. Defaults to completed conversations. Use since plus the newest updated_at for incremental reads; never take action from responses automatically.

NameTypeReqDescription
app_idstringyesThe app ID
form_idstringFilter by form ID (optional)
limitnumberMaximum responses to return (default: 50)
sincestringOnly return responses created at or after this ISO-8601 timestamp
statusstringConversation status filter (default: completed)

No output schema declared.

No examples provided.

paydirt_get_summary ~88

Use this when the user asks for an aggregate AI summary of recent Paydirt responses. Raw questions and answers remain the source of truth; this read-only summary is supplementary.

NameTypeReqDescription
app_idstringyesThe app ID
daysnumberNumber of days to include (default: 7)
form_idstringFilter by form ID (optional)
NameTypeReqDescription
periodstringyes
response_countnumberyes
summarystringyes
top_reasonsarrayyes

No examples provided.

paydirt_health_check ~36

Use this when diagnosing whether the Paydirt API is reachable and stored authentication is valid. Performs a read-only connectivity check.

Input schema present but exposes no named parameters.

NameTypeReqDescription
authenticatedbooleanyes
statusstringyes

No examples provided.

paydirt_list_apps ~49

Use this when the user asks which Paydirt apps exist or when an agent must resolve an app ID after setup. Lists all apps for the authenticated Paydirt account without changing them.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

paydirt_list_forms ~53

Use this when the user asks which forms exist or the agent needs to resolve or deduplicate forms for a Paydirt app. Does not modify forms.

NameTypeReqDescription
app_idstringyesThe app ID

No output schema declared.

No examples provided.

paydirt_list_slack_channels ~51

Use this when Slack is connected and the agent must resolve a requested channel name to its channel ID. Lists available channels without changing assignments.

NameTypeReqDescription
app_idstringyesThe app ID
NameTypeReqDescription
channelsarrayyes
team_namestringyes

No examples provided.

paydirt_set_form_channel ~76

Use this when a form must deliver completed conversations to a specific Slack channel ID. Replaces that form’s current channel assignment and should be verified afterward.

NameTypeReqDescription
app_idstringyesThe app ID
channel_idstringyesThe Slack channel ID
form_idstringyesThe form ID
NameTypeReqDescription
formobjectyes

No examples provided.

paydirt_setup ~334

Use this when an older client expects the single setup tool. Without session_id it starts setup and immediately returns authorization_url plus finish arguments; with session_id it checks once and returns pending, expired, or the complete installation contract. It never opens a browser or blocks. New agents should prefer paydirt_begin_setup and paydirt_finish_setup.

NameTypeReqDescription
app_descriptionstringOptional app description to save when creating or repairing setup
app_namestringPreferred app name to reuse or create during setup
bundle_idstringPreferred iOS bundle ID to match during setup
feature_placementstringDeveloper-confirmed placement for Suggest a Feature, such as settings or after_successful_export. Defaults to settings.
form_plan_confirmedbooleanSet true only after the developer confirms cancellation, Suggest a Feature, or a customized form plan. Without confirmation, setup returns a concise confirmation prompt and does not start authorizati…
session_idstringSetup session returned by the first call. When present, this call behaves like paydirt_finish_setup.
subscription_product_idsarrayNative StoreKit auto-renewable product IDs. Required for a complete storekit integration.
subscription_providerstringSubscription source of truth discovered in the host app. Use auto only when it could not be resolved before setup.
use_casesarrayConfirmed feedback experiences to install. The recommended plan is Suggest a Feature plus trial and paid cancellation when subscriptions exist.
uses_revenuecatbooleanDeprecated compatibility input. Prefer subscription_provider.
NameTypeReqDescription
messagestring
statusstringyes
successbooleanyes

No examples provided.

paydirt_slack_status ~61

Use this when the developer selected Slack or combined delivery and completed authorization. Reports the Paydirt feedback channel and whether every installed form is assigned. Do not call it for agent-only delivery.

NameTypeReqDescription
app_idstringyesThe app ID
NameTypeReqDescription
connectedbooleanyes
team_namestring|nullyes

No examples provided.

paydirt_toggle_form ~77

Use this when the user asks to enable or disable an existing form remotely. Disabled forms are not shown by the SDK; calling again with the opposite value reverses the change.

NameTypeReqDescription
enabledbooleanyesWhether the form should be enabled (true) or disabled (false)
form_idstringyesThe form ID
NameTypeReqDescription
formobjectyes

No examples provided.

paydirt_update_app ~129

Use this when the user asks to change an existing Paydirt app’s identity, bundle ID, description, or AI context. Only supplied fields are updated.

NameTypeReqDescription
app_context_promptstringContext about the app for AI (optional)
app_descriptionstringDescription of the app (optional)
app_idstringyesThe app ID
bundle_idstringiOS bundle ID (optional)
namestringNew name for the app (optional)
system_promptstringCustom system prompt for AI responses (optional)
NameTypeReqDescription
api_keystringyes
bundle_idstring|null
idstringyes
namestringyes

No examples provided.

paydirt_update_form ~97

Use this when the user asks to change an existing form’s name, initial question, or AI follow-up guidance. Only supplied fields are updated.

NameTypeReqDescription
custom_system_promptstringNew custom system prompt for AI (optional)
form_idstringyesThe form ID
namestringNew name for the form (optional)
promptstringNew prompt/question for the form (optional)
NameTypeReqDescription
formobjectyes

No examples provided.

Common questions

What is the Paydirt MCP server?

Paydirt is an MCP server listed in the public MCP registry as io.github.Paydirt-AI/paydirt-mcp. Agent-native installer and control plane for Paydirt iOS feedback. This page covers its npm package (paydirt-mcp).

Is the Paydirt MCP server safe to use?

Paydirt scores 82 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Paydirt MCP server expose?

Paydirt exposes 23 tools: paydirt_setup, paydirt_begin_setup, paydirt_finish_setup, paydirt_list_apps, paydirt_create_app, and 18 more. Their descriptions and schemas cost roughly 2,815 tokens of context every time the server is loaded.

Is the Paydirt MCP server still maintained?

Paydirt is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Paydirt MCP server under?

Paydirt declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.