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

Agent-native installer and control plane for Paydirt iOS feedback

Available components

0 this week 85 Trust /100

Last scanned (22 hours ago)

Scores higher than 87% of npm servers

Category Marketing and SEO

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
  • 30 of 92 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 83 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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
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
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.

  • 2 Nov 26 0
    • Package version: 2.1.6 → 2.3.0 functional
  • 31 Oct 26 +1
    • Stability: 0.97 → pass security
  • 30 Oct 26 −1
    • Stability: pass → 0.97 functional
  • 24 Oct 26 +1
    • Stability: 0.97 → pass security
  • 23 Oct 26 −1
    • Stability: pass → 0.97 functional
  • 17 Oct 26 +1
    • Stability: 0.97 → pass security
  • 15 Oct 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.

  • 14 Oct 26 0
    • Package version: 2.1.6 → 2.3.0 functional
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 4 Nov 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 92 packages
Packages resolved 92
Stale 30
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_promptstring–Optional guidance for AI follow-up questions.
initial_questionstring–Optional 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_channelstring–Optional 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
daysnumber–Number of days of data to analyze (default: 30)
form_idstring–Filter 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_descriptionstring–Optional app description to save when creating or repairing setup
app_namestring–Preferred app name to reuse or create during setup
bundle_idstring–Preferred iOS bundle ID to match during setup
feature_placementstring–Developer-confirmed placement for Suggest a Feature, such as settings or after_successful_export. Defaults to settings.
form_plan_confirmedboolean–Set 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_idsarray–Native StoreKit auto-renewable product IDs. Required for a complete storekit integration.
subscription_providerstring–Subscription source of truth discovered in the host app. Use auto only when it could not be resolved before setup.
use_casesarray–Confirmed feedback experiences to install. The recommended plan is Suggest a Feature plus trial and paid cancellation when subscriptions exist.
uses_revenuecatboolean–Deprecated 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_descriptionstring–Description of the app (optional)
bundle_idstring–iOS 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_promptstring–Custom 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_descriptionstring–Optional app description to save when creating or repairing setup
app_namestring–Preferred app name to reuse or create during setup
bundle_idstring–Preferred iOS bundle ID to match during setup
feature_placementstring–Developer-confirmed placement for Suggest a Feature, such as settings or after_successful_export. Defaults to settings.
form_plan_confirmedboolean–Set 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_idsarray–Native StoreKit auto-renewable product IDs. Required for a complete storekit integration.
subscription_providerstring–Subscription source of truth discovered in the host app. Use auto only when it could not be resolved before setup.
use_casesarray–Confirmed feedback experiences to install. The recommended plan is Suggest a Feature plus trial and paid cancellation when subscriptions exist.
uses_revenuecatboolean–Deprecated 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
hoursnumber–Period 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_idstring–Filter by form ID (optional)
limitnumber–Maximum responses to return (default: 50)
sincestring–Only return responses created at or after this ISO-8601 timestamp
statusstring–Conversation 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
daysnumber–Number of days to include (default: 7)
form_idstring–Filter 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_descriptionstring–Optional app description to save when creating or repairing setup
app_namestring–Preferred app name to reuse or create during setup
bundle_idstring–Preferred iOS bundle ID to match during setup
feature_placementstring–Developer-confirmed placement for Suggest a Feature, such as settings or after_successful_export. Defaults to settings.
form_plan_confirmedboolean–Set 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_idstring–Setup session returned by the first call. When present, this call behaves like paydirt_finish_setup.
subscription_product_idsarray–Native StoreKit auto-renewable product IDs. Required for a complete storekit integration.
subscription_providerstring–Subscription source of truth discovered in the host app. Use auto only when it could not be resolved before setup.
use_casesarray–Confirmed feedback experiences to install. The recommended plan is Suggest a Feature plus trial and paid cancellation when subscriptions exist.
uses_revenuecatboolean–Deprecated 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_promptstring–Context about the app for AI (optional)
app_descriptionstring–Description of the app (optional)
app_idstringyesThe app ID
bundle_idstring–iOS bundle ID (optional)
namestring–New name for the app (optional)
system_promptstring–Custom 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_promptstring–New custom system prompt for AI (optional)
form_idstringyesThe form ID
namestring–New name for the form (optional)
promptstring–New prompt/question for the form (optional)
NameTypeReqDescription
formobjectyes–

No examples provided.

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
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 85 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 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 4 November 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.