MCP tool reference

Complete reference of the 103 tools available through the Diviner One MCP server.

Published July 22, 2026
10 min read
Updated July 22, 2026

MCP tool reference

Every tool your AI assistant can call through the Diviner One MCP (setup guide). Auto-generated from the live tool definitions, so it always matches what is deployed.

103 tools. Auto-generated from source; do not edit by hand.

Accounts (agency switcher)

pr_accounts()

List the accounts this API key can act on (the key owner's accounts).

pr_set_account(account)

Set the active account for all subsequent pr_* tool calls this session.

pr_clear_account()

Clear the active account; pr_* tools revert to the key's home account.

Reviews

pr_reviews_list(limit, offset)

List reviews for the account.

pr_reviews_stats()

Get review statistics (counts, averages, etc.).

pr_reviews_sources()

Get breakdown of reviews by source.

Prompt Pages

pr_prompt_pages()

List all prompt pages.

Businesses & Locations

pr_businesses()

List businesses on the account.

pr_business_current()

Get current business details.

pr_business_locations()

List business locations.

pr_gbp_locations(account)

List an account's Google Business Profile locations live from Google (location_id, name, address). Pass a location_id from here to pr_gbp_performance / pr_gbp_overview to target a specific location.

pr_gbp_performance(location_id, period, account)

Google Business Profile performance metrics for a location: profile views and customer actions (website clicks, phone calls, direction requests, photo views), plus top search queries and trends.

pr_gbp_overview(location_id, account)

Google Business Profile health/overview for a location: profile completeness, categories, services, description, attributes, products, photo activity, review stats, and optimization opportunities.

Contacts

pr_contacts_search(q, account)

Search contacts by name or email.

pr_contact_get(contact_id)

Get contact details.

pr_contact_create(name, email, phone, account)

Create a new contact.

Widgets

pr_widgets()

List all review widgets.

pr_widget_reviews(widget_id)

Get reviews displayed in a specific widget.

Keywords & Rank Tracking

pr_keywords()

List tracked keywords.

Create a keyword concept — the hub entity that feeds every keyword/AI surface (rank tracking, LLM/AI-search visibility, local geo-grids, prompt-page keyword inspiration, and the web-page planner).

pr_keyword_concept_enrich(keyword_ids, location_code, force_refresh, account)

Fetch SEO metrics (search volume, difficulty, intent, CPC, monthly trend — via DataForSEO) for keyword concepts and store them on the concepts. USES CREDITS.

pr_keyword_concepts_create_bulk(phrases, group_id, account)

Create many keyword concepts at once. Free (no credits); each phrase is deduped on its normalized form. Built for the research -> bulk-create loop (e.g. pr_keyword_research -> filter by volume -> create here).

pr_rank_tracking_results()

Get rank tracking results for tracked keywords.

pr_rank_tracking_history()

Get rank tracking history over time.

LLM Visibility

pr_llm_visibility_results()

Get LLM visibility check results.

pr_llm_visibility_summary()

Get LLM visibility summary.

pr_llm_visibility_check()

Run a new LLM visibility check (uses credits).

Credits

pr_credits_balance()

Get current credit balance.

pr_credits_ledger()

Get credit transaction history.

Social Posting

pr_social_scheduled()

List scheduled social posts.

pr_social_posts()

List published social posts.

pr_social_connections()

List connected social platforms.

pr_social_post_create(content, platforms, media_urls, call_to_action, status, additional_platforms, account)

Publish a social post NOW to Google Business Profile (and optionally cross-post to LinkedIn / Twitter via additional_platforms).

pr_social_schedule_create(summary, scheduled_date, timezone, locations, post_kind, post_type, caption, call_to_action, media, additional_platforms, status, account)

Schedule a social post, or save it as a draft.

pr_social_scheduled_get(scheduled_id, account)

Get a single scheduled social post (with per-location results) by id.

pr_social_scheduled_update(scheduled_id, summary, scheduled_date, timezone, caption, post_type, locations, media, call_to_action, additional_platforms, status, account)

Edit a scheduled social post (only while draft or pending). Pass just the fields to change. Setting status="pending" on a draft ACTIVATES it, which validates date/timezone and costs 1 credit. Args mirror pr_social_schedule_create. account: optional (see pr_accounts).

pr_social_scheduled_delete(scheduled_id, account)

Cancel a scheduled social post (soft cancel; blocked once completed/processing).

pr_social_bulk_schedule(post_ids, start_date, interval_days, timezone, skip_conflicts, account)

Bulk-schedule existing DRAFT posts, spacing them interval_days apart from start_date. Costs 1 credit per post.

pr_social_scheduled_reorder(ordered_ids, account)

Reorder draft scheduled posts — the array index becomes the queue order (first id = position 1). Pass the COMPLETE set of draft ids being reordered (all must be drafts on this account). account: optional.

pr_social_process_now(post_id, account)

Publish a specific PENDING scheduled post immediately. Inspect the returned postStatus/errorLog — a failed publish still returns success=true. account: optional (see pr_accounts).

Work Manager: Boards

pr_wm_boards()

List all work manager boards.

pr_wm_board_ensure()

Get or create the default work manager board (idempotent).

Work Manager: Tasks

pr_wm_tasks(board_id)

List tasks for a board.

pr_wm_task_get(task_id)

Get task details.

pr_wm_task_create(board_id, title, description, status, priority, due_date)

Create a task on a board.

pr_wm_task_update(task_id, title, description, status, priority, due_date)

Update a task.

pr_wm_task_delete(task_id)

Delete a task.

Work Manager: Time Entries

pr_wm_time_entries(task_id)

Get time entries for a task.

pr_wm_log_time(task_id, duration_minutes, note, entry_date)

Log time spent on a task.

Notifications

pr_notifications()

List notifications.

Contact Forms

pr_contact_form_create(name, heading, submit_button_text, success_message, redirect_url, max_submissions_per_hour, auto_tag_name, fields_config, style_config, form_type, target_list_id, account)

Create an embeddable CRM contact form for the account.

pr_contact_forms(type, account)

List contact forms for the active account.

pr_contact_form_get(form_id, account)

Get a single contact form by id.

pr_contact_form_update(form_id, name, heading, submit_button_text, success_message, redirect_url, max_submissions_per_hour, auto_tag_name, fields_config, style_config, is_active, form_type, target_list_id, account)

Update a contact form. Only the fields you pass are changed.

pr_contact_form_delete(form_id, account)

Delete a contact form by id.

pr_contact_form_slack_get(form_id, account)

Get a contact form's Slack notification config (masked webhook).

pr_contact_form_slack_set(form_id, webhook_url, enabled, excluded_fields, account)

Set a contact form's Slack notification config.

pr_contact_form_slack_test(form_id, webhook_url, account)

Send a test Slack message for a contact form (saved webhook, or the webhook_url passed here to test before saving).

Surveys

pr_survey_create(title, description, questions, thank_you_message, use_business_styling, show_progress_bar, collect_respondent_info, require_respondent_email, collect_name, require_name, collect_email, require_email, collect_phone, require_phone, collect_business_name, require_business_name, one_response_per_email, account)

Create a survey (with its questions) for the account.

Web Page Planner (AI page outlines)

pr_web_page_outlines(limit, offset, account)

List saved web page outlines (Web Page Planner), newest first.

pr_web_page_outline_get(outline_id, account)

Get a single web page outline by id, including the full outline_json (hero, intro, benefits, body sections, cta, faq, footer) and SEO markup.

pr_web_page_outline_generate(keyword_phrase, tone, page_purpose, business_name, about_us, services_offered, differentiators, industries_served, years_in_business, phone, website, city, state, company_values, ai_dos, ai_donts, keyword_id, account)

Generate a full AI web page outline (Web Page Planner). Costs credits.

pr_web_page_outline_regenerate_section(outline_id, section_key, account)

Regenerate one section of an existing outline. Costs credits.

pr_web_page_outline_delete(outline_id, account)

Delete a web page outline.

Reviews: Google Business Profile replies

pr_reviews_unresponded(location_ids, account)

List Google Business Profile reviews that have no reply yet.

pr_review_respond(location_id, review_id, reply_text, account)

Post a reply to a Google Business Profile review.

pr_review_update_reply(location_id, review_id, updated_reply_text, account)

Edit an existing reply to a Google Business Profile review.

Prompt Pages: authoring

pr_prompt_page_create(title, type, campaign_type, review_type, client_name, first_name, last_name, email, phone, product_description, offer_url, contact_id, services_offered, account)

Create a prompt page (review-capture page). Returns {"data": <page>} with the new id and slug.

pr_prompt_page_update_status(id, status, account)

Update a prompt page's workflow status.

pr_prompt_page_assign(id, assigned_to, account)

Assign (or unassign) a prompt page to a team member.

CRM: deals pipeline

pr_crm_deals(account)

List CRM pipeline deals for the account (with contact/assignee joins and days_in_stage). Returns {"deals": [...]}.

pr_crm_deal_get(deal_id, account)

Get a single CRM deal by id. Returns {"deal": {...}}.

pr_crm_deal_create(title, stage, contact_id, value_cents, currency, description, assigned_to, expected_close_date, source, account)

Create a CRM deal. Returns {"deal": {...}}.

pr_crm_deal_update(deal_id, title, stage, contact_id, value_cents, currency, description, assigned_to, expected_close_date, source, account)

Update a CRM deal (including moving it to a new stage). Returns {"deal": {...}}. Stage, value, and assignment changes are auto-logged to the deal timeline.

pr_crm_deal_delete(deal_id, delete_contact, account)

Delete a CRM deal. Returns {"success": true, "contactDeleted": bool}.

pr_crm_deal_actions(deal_id, account)

List the activity timeline for a CRM deal (notes, stage changes, emails).

pr_crm_deal_action_add(deal_id, content, activity_type, actor_label, account)

Add a note (or other activity) to a CRM deal's timeline. Returns {"action": {...}}.

pr_crm_pipeline_config(account)

Get the CRM pipeline configuration (stage labels, auto-create settings). Returns {"config": {...}}.

pr_crm_pipeline_config_set(stage_labels, auto_create_deal, default_deal_stage, account)

Update the CRM pipeline configuration. Returns {"config": {...}}.

Customer portal (agency → client reports)

pr_portal_reports(account)

List the customer-portal reports shared with a client account (drafts + published). Returns {"items": [...]}.

pr_portal_report_create(title, html_content, description, publish, content_mode, account)

Create a customer-portal report for a client — a report the client can view and download as a PDF from their Diviner One portal. Attributed to an AI agent. Create a draft first (publish=False) to preview, then publish.

pr_portal_report_update(report_id, title, html_content, description, publish, account)

Update a customer-portal report (see pr_portal_reports for ids). Only the provided fields change. Use publish to change visibility: True publishes (client can see it), False unpublishes back to a draft.

Lists

pr_email_lists(account)

List the account's email-marketing lists (with subscriber counts).

pr_email_list_create(name, description, account)

Create a new email-marketing list.

Subscribers

pr_email_subscribers(list_id, page, limit, status, account)

List subscribers on an email list (paginated, with their tags).

pr_email_subscriber_add(list_id, email, first_name, last_name, contact_ids, account)

Add subscriber(s) to a list. Two modes:

pr_email_subscriber_update(list_id, subscriber_id, first_name, last_name, status, account)

Update a subscriber on a list. Only the fields you pass change. first_name/last_name drive campaign personalization (e.g. "Hi {first_name}").

Campaigns

pr_email_campaigns(status, page, limit, account)

List email campaigns (newest first) with send/open/click stats.

pr_email_campaign_get(campaign_id, account)

Get a single campaign (full record, including HTML content and list).

pr_email_campaign_create(name, subject, list_id, body_markdown, heading, button_text, button_url, blocks, html_content, from_name, from_email, reply_to, text_content, tag_filter_ids, account)

Create a draft email campaign.

pr_email_campaign_update(campaign_id, name, subject, list_id, body_markdown, heading, button_text, button_url, blocks, html_content, from_name, from_email, reply_to, text_content, tag_filter_ids, account)

Update a draft campaign. Only draft campaigns can be edited; only the fields you pass are changed.

pr_email_campaign_test(campaign_id, to, account)

Send a one-off test of the campaign to a single address (subject is prefixed with [TEST]). Requires the account's Resend key + from-address to be configured in Email Settings.

pr_email_campaign_send(campaign_id, scheduled_at, account)

Send a draft campaign to its whole list (real send). With scheduled_at, the campaign is scheduled and a cron sends it later; without it, sending starts immediately. Requires Email Settings to be configured and the list to have active subscribers.

pr_email_campaign_analytics(campaign_id, account)

Get delivery/open/click analytics for a sent campaign.

Automations (drip flows: tag_added / list_signup triggers)

pr_email_automations(account)

List email automations (drip flows) with status and active enrollment counts. Returns {"automations": [...]}.

pr_email_automation_get(automation_id, account)

Get one automation with its ordered steps (each step has delay_minutes, subject, html_content).

pr_email_automation_create(name, trigger_type, trigger_tag_id, trigger_list_id, account)

Create a draft automation. The trigger decides who enters the flow: - trigger_type="tag_added": pass trigger_tag_id (a contact tag UUID); a contact is enrolled when that tag is added. - trigger_type="list_signup": pass trigger_list_id (an email list UUID); a subscriber is enrolled when they join that list.

pr_email_automation_update(automation_id, name, account)

Rename an automation.

pr_email_automation_set_steps(automation_id, steps, account)

Replace an automation's steps with the given ordered list (the whole drip flow). The automation must be draft or paused first.

pr_email_automation_activate(automation_id, status, account)

Activate or pause an automation. status="active" starts enrolling and sending (requires at least one complete step); status="paused" stops it.

pr_email_automation_stats(automation_id, account)

Enrollment / send stats for an automation.

pr_email_automation_delete(automation_id, account)

Delete an automation and its steps.

Settings

pr_email_settings(account)

Get the account's email sending settings (from name/email, reply-to, physical address, and whether a Resend API key is configured). The Resend key itself is never returned — only a masked hint.