{"name":"io.github.Paydirt-AI/paydirt-mcp","slug":"paydirt-ai-paydirt-mcp","title":"Paydirt","description":"Agent-native installer and control plane for Paydirt iOS feedback","url":"https://mcp.market/server/paydirt-ai-paydirt-mcp","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":24,"stars":0,"forks":0,"downloads_week":59,"last_push_at":"2026-10-16T19:02:09.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Paydirt-AI/paydirt-mcp","website":null,"version":"2.3.0","remotes":[],"packages":[{"registryType":"npm","identifier":"paydirt-mcp","version":"2.3.0","transport":{"type":"stdio"}}],"tools":[{"name":"paydirt_add_feedback_form","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_ask","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_begin_setup","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_connect_slack","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_create_app","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"paydirt_create_form","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"paydirt_delete_form","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"paydirt_finish_setup","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_get_app","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_get_feedback_digest","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_get_form","description":"Use this when the agent needs the current prompt, type, enabled state, or Slack assignment for one known form. Does not modify the form.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_get_responses","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_get_summary","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_health_check","description":"Use this when diagnosing whether the Paydirt API is reachable and stored authentication is valid. Performs a read-only connectivity check.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_list_apps","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_list_forms","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_list_slack_channels","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_set_form_channel","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_setup","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_slack_status","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_toggle_form","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"paydirt_update_app","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"paydirt_update_form","description":"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.","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":91,"grade":"A","scanned_at":"2026-11-03T23:30:48.228Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-03T23:30:48.178Z","components":{"code":{"score":25,"max":25,"notes":["10 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 18 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"paydirt-mcp","version":"2.3.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":1,"publishedAt":"2026-08-12T20:07:07.374Z","repositoryUrl":"git+https://github.com/Paydirt-AI/paydirt-mcp.git","weeklyDownloads":59}],"repo":{"found":true,"owner":"Paydirt-AI","repo":"paydirt-mcp","archived":false,"pushedAt":"2026-10-16T19:02:09Z","stars":0,"forks":0,"openIssues":3,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/255444039?v=4","ownerCreatedAt":"2026-01-16T22:50:15Z","license":"MIT"},"icon":{"url":null,"source":"none"},"presence":{"stars":0,"forks":0,"downloadsWeek":59,"license":"MIT","lastPushAt":"2026-10-16T19:02:09.000Z","score":24}}}},"grade_history":[],"reviews":[]}