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

Paydirt

NPM · PAYDIRT-MCP · SCANNED AUG 3

Agent-native installer and control plane for Paydirt iOS feedback

Available components

65 Trust /100
Trust breakdown (6 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 →

Supply Chain Security86
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability66
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 2827 tokens (~128/item across 22 items; 22 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 Management13
  • Stability observed for 4 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 (86% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · paydirt-mcp

# add to Claude Code
claude mcp add paydirt-ai-paydirt-mcp -- npx -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"]
// 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.

  • 2 Aug 26 +45
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Malware scan: unverified → pass security
    • Tool coverage: 100 → unverified functional
    • License: unverified → pass functional
    • Stability: unverified → 0.10 functional
    • Dependency health: unverified → partial functional
    • Maintenance: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Schema quality: unverified → good functional
    • Licence: MIT functional
  • 1 Aug 26 +15
    • Tool coverage: unverified → 100 functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: unverified functional
    • First check of Tool coverage: 100 functional
    • First check of Tool coverage: 86 functional
  • 31 Jul 26 5

    First indexed and scored.

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 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 94 packages

94 packages in the resolved dependency tree · 94 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 22 exposed · ~2,478 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.

Tool Tokens
paydirt_add_feedback_form ~306

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. If omitted, the contract still requires the agent to connect Slack and assign a channel before completion.
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 ~225

Use this when installing Paydirt for a new user, machine, or iOS app and authentication has not been completed. Inspect the host first and pass its app identity, use cases, and subscription provider. Returns authorization_url, session_id, and exact finish_arguments immediately; it never launches a browser, sleeps, or polls.

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
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_casesarrayFeedback experiences to install. Defaults to regular feedback, trial cancellation, and subscription cancellation.
uses_revenuecatbooleanDeprecated compatibility input. Prefer subscription_provider.
NameTypeReqDescription
messagestring
statusstringyes
successbooleanyes

No examples provided.

paydirt_connect_slack ~77

Use this when the user asks to connect Slack or setup requires Slack delivery. Returns the Slack OAuth URL. Authorization creates a new #paydirt-cancellation-feedback channel (numbered when the name is taken) and assigns every installed 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 ~234

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 complete host-app installation, Slack, build, and verification 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
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_casesarrayFeedback experiences to install. Defaults to regular feedback, trial cancellation, and subscription cancellation.
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_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 ~255

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
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_casesarrayFeedback experiences to install. Defaults to regular feedback, trial cancellation, and subscription cancellation.
uses_revenuecatbooleanDeprecated compatibility input. Prefer subscription_provider.
NameTypeReqDescription
messagestring
statusstringyes
successbooleanyes

No examples provided.

paydirt_slack_status ~70

Use this when Slack authorization has finished and before declaring setup complete. Reports the created Paydirt cancellation feedback channel and whether every installed form is assigned. List or select channels only when automatic creation was blocked or the user requested another channel.

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.