MCP Tool Reference
Complete reference for all 20 MCP plugins and their available tools
Plugin Overview
Your platform exposes 20 MCP plugins. Each plugin is a collection of tools (functions) and resources (data endpoints) that AI clients can call.
| # | Plugin | Purpose |
|---|---|---|
| 1 | agency | Agency MCP key meta-tools: switch client scope, view/rollout Affinity WordPress plugin updates for your fleet |
| 2 | core | Platform basics: time, SMS, calls, client info, notes, assets |
| 3 | ghl | GoHighLevel CRM: contacts, appointments, pipelines, SMS |
| 4 | ghl-social | GHL Social Planner: accounts, posts, analytics |
| 5 | ga4 | Google Analytics 4: reports, realtime, custom definitions |
| 6 | gbp | Google Business Profile: locations, reviews, posts, insights |
| 7 | github | GitHub repos: files, branches, change sets, PRs |
| 8 | google-ads | Google Ads: campaigns, keywords, landing pages, audits |
| 9 | meta-ads | Meta Ads: campaigns, audiences, creatives, audits |
| 10 | reddit-ads | Reddit Ads: thread research, campaign drafts, audits |
| 11 | wordpress | WordPress sites: content, generic entities, SEO meta, Elementor |
| 12 | twilio | Twilio: numbers, SMS, call bindings |
| 13 | sendgrid | SendGrid: senders, email campaigns, domain auth |
| 14 | image-generation | AI image generation: create, edit, manage assets |
| 15 | cloudflare | Cloudflare: DNS, Pages deployments, bindings |
| 16 | verification | Operation verification: confirm writes succeeded |
| 17 | docs | Affinity Docs: search and read public help documentation |
| 18 | vercel | Vercel: deployments, build logs, website bindings |
| 19 | communications | Website forms & form receiver: scan, register, configure forms |
| 20 | website-offers | Website-Day offer funnel: provision GitHub/Cloudflare site infra for paid starter orders |
Agency
Meta-tools available only on sessions authenticated with an agency MCP key (X-API-Key starting with afa_).
Tools
| Tool | Description |
|---|---|
agency_list_clients | Search clients in scope for this agency key by name, domain, or phone |
agency_select_client | Scope the current session to a specific client |
agency_current_client | Report the client the session is currently scoped to |
agency_plugin_fleet_list | List Affinity WordPress plugin installations visible to this agency (tenant-scoped) |
agency_plugin_rollout_plan | Dry-run an agency-scoped Affinity WordPress plugin rollout — returns eligible/blocked sites |
agency_plugin_rollout_request | Request an agency-scoped plugin rollout within platform-allowed channels |
agency_plugin_rollout_rollback | Request rollback for an agency-owned plugin rollout |
Rollout requests and rollbacks are destructive-flagged tools — the platform enforces tenant scope, so an agency can only affect its own client sites.
Core
Platform-level tools available to all clients.
Tools
| Tool | Description |
|---|---|
get_time | Get current date or offset by days/weeks |
send_sms | Send SMS via Twilio to any E.164 number |
transfer_call | Transfer an active Twilio call to a number |
end_call | Hang up an active Twilio call by SID |
get_client_info | Return client metadata (name, timezone, phone, agents) |
log_note | Append a note to a call record |
knowledge_list_website_docs | List website knowledge docs (audits, design specs, skills) |
get_uploader_link | Generate a one-time 5-minute URL for asset uploads |
Resources
| Resource | Description |
|---|---|
asset://list | List 50 most recent client assets |
asset://{assetRef} | Metadata for a specific asset |
knowledge://website/{id}/audit | Website audit document |
knowledge://website/{id}/design | Website design system doc |
knowledge://website/{id}/skill | Website interaction skill doc |
knowledge://doc/{docId} | Generic knowledge document |
GHL
GoHighLevel CRM and calendar operations.
Tools
| Tool | Description |
|---|---|
ghl_get_availability | Query calendar free slots |
ghl_book_appointment | Create appointment + contact |
ghl_get_contact | Search contact by phone |
ghl_create_contact | Create new GHL contact |
ghl_update_contact | Update contact fields |
ghl_get_appointments | List appointments for a contact |
ghl_cancel_appointment | Cancel/delete appointment |
ghl_send_sms | Send SMS via GHL |
ghl_get_pipeline | Retrieve sales pipeline stages |
ghl_update_opportunity | Move opportunity through pipeline |
ghl_get_email_templates | List Email Builder templates |
ghl_get_email_campaigns | List scheduled campaigns |
ghl_create_email_campaign | Create/schedule newsletter |
Resources
| Resource | Description |
|---|---|
ghl://contacts/{contactId} | Contact details |
ghl://calendar/{calId}/slots | Free slots (next 14 days) |
GHL Social
GHL Social Planner operations.
Tools
| Tool | Description |
|---|---|
ghl_social_get_accounts | List connected social accounts |
ghl_social_get_posts | List scheduled/published posts |
ghl_social_get_post_status | Check status of a specific post |
ghl_social_create_post | Create and schedule a post |
ghl_social_edit_post | Edit an existing post |
ghl_social_delete_post | Remove a post |
ghl_social_get_media_library | Browse uploaded media |
ghl_social_get_tags | List available tags |
ghl_social_get_categories | List content categories |
ghl_social_get_account_analytics | Performance metrics per account |
GA4
Google Analytics 4 reporting.
Tools
| Tool | Description |
|---|---|
ga4_get_accounts | List GA4 accounts and properties |
ga4_get_property_details | Property info (timezone, currency, industry) |
ga4_run_report | Flexible Data API report with dimensions, metrics, filters |
ga4_run_realtime_report | Realtime metrics |
ga4_get_custom_definitions | Custom dimensions & metrics |
Resources
| Resource | Description |
|---|---|
ga4://property/{propertyId} | Property details |
ga4://property/{propertyId}/traffic-summary | 28-day traffic summary |
GBP
Google Business Profile management.
Tools
| Tool | Description |
|---|---|
gbp_list_locations | List connected GBP locations |
gbp_get_location | Full location data |
gbp_get_attributes | Current location attributes |
gbp_get_available_attributes | Attributes available for the category |
gbp_get_performance | 28-day performance metrics |
gbp_patch_location | Update description, hours, etc. |
gbp_update_attributes | Set/update attributes |
gbp_list_categories | Search GBP categories |
gbp_list_usable_images | List assets usable on GBP |
gbp_upload_client_images | Upload client assets to GBP media |
gbp_list_audits | Audit history |
gbp_get_audit | Specific audit with scores |
Resources
| Resource | Description |
|---|---|
gbp://locations | All connected locations |
gbp://location/{connectionId} | Location details |
gbp://location/{connectionId}/performance | 28-day performance |
GitHub
GitHub repository operations.
Tools
| Tool | Description |
|---|---|
github_list_sites | List connected GitHub repos for the client |
github_get_capabilities | GitHub execution capabilities, and repo metadata for a specific connection |
github_read_file | Read a repository file |
github_list_tree | List repo tree structure |
github_create_branch | Create a non-default branch from the default branch or another base branch |
github_apply_change_set | Apply a multi-file change set as one commit and one branch update |
github_stage_asset | Stage a stable client asset reference into the repo via the change-set workflow |
github_upload_image | Upload an image into the repo |
github_get_diff_summary | Compare-based diff summary between a base branch and a review branch |
github_create_pull_request | Open a PR from a review branch back to the default (or another explicit base) branch |
Google Ads
Google Ads campaign management.
Tools
| Tool | Description |
|---|---|
google_ads_list_connections | List connected Google Ads accounts |
google_ads_list_accessible_customers | Accessible customers via API |
google_ads_run_gaql | Run read-only GAQL query |
google_ads_get_campaigns | List campaigns |
google_ads_get_keywords | Keywords per campaign |
google_ads_get_landing_pages | Connected landing pages |
google_ads_create_landing_page | Build a new landing page draft |
google_ads_run_audit | Run account audit |
google_ads_commit_audit | Save audit results |
google_ads_get_agent_config | Read the autonomous agent's autonomy level, hard monthly spend cap, and per-dimension audit auto-commit flags |
google_ads_configure_agent | Set the autonomous agent's autonomy level, auto-commit dimensions, and/or hard monthly spend cap |
Meta Ads
Meta (Facebook/Instagram) Ads management.
Tools
| Tool | Description |
|---|---|
meta_ads_list_resources | List ad accounts, Pages, Pixels |
meta_ads_get_campaigns | List campaigns |
meta_ads_get_adsets | Ad sets per campaign |
meta_ads_get_ads | Ads per ad set |
meta_ads_create_campaign | Create new campaign |
meta_ads_update_campaign | Modify campaign settings |
meta_ads_create_lookalike | Build lookalike audience |
meta_ads_get_creative_performance | Creative-level metrics |
meta_ads_run_audit | Run account audit |
meta_ads_commit_audit | Save audit results |
meta_ads_run_competitive_research | Analyze competitor ads |
Reddit Ads
Reddit Ads campaign research and management.
Tools
| Tool | Description |
|---|---|
reddit_ads_list_connections | List Reddit Ads account bindings for the active client |
reddit_ads_get_account_health | Connection health, promo setup, and API token state |
reddit_ads_run_insights | Fixture-safe performance metrics for a connected account |
reddit_ads_run_audit | Run the promo, tracking, community, creative, and budget audit |
reddit_ads_commit_audit | Mark operator-approved audit gaps (defaults to dry run) |
reddit_ads_run_thread_research | Scan public Reddit threads for prospect pains, objections, and a Reddit-native creative brief before drafting |
reddit_ads_create_campaign_draft | Create a campaign draft (does not start live spend); supports researchFirst to scan threads before filling creative, auto-generates a thumbnail unless one is supplied |
reddit_ads_start_agent | Start the Reddit Ads audit loop (does not start campaign spend) |
reddit_ads_stop_agent | Stop the Reddit Ads audit loop (does not pause live campaigns) |
reddit_ads_run_agent_now | Run the Reddit Ads agent loop immediately |
WordPress
WordPress site content management, generic REST entity CRUD, SEO metadata, and Elementor page editing.
Discovery & Media
| Tool | Description |
|---|---|
wordpress_list_sites | List connected WordPress sites for the client |
wordpress_get_capabilities | Supported connector capabilities, and connection details for a specific site |
wordpress_list_mcp_abilities | List enabled abilities from the connected WordPress MCP Adapter |
wordpress_execute_mcp_ability | Execute one allowlisted ability through the WordPress MCP Adapter |
wordpress_upload_image | Upload an image into the site's media library |
wordpress_upload_media_from_asset | Upload a stable client asset reference into the media library |
wordpress_reconfigure_plugin_updates | Destructive. Re-push the Affinity plugin's update configuration (API URL, install ID, site token, update channel, clientId pairing) to a connected site. Use after a plugin release adds a new pairing field so an already-updated plugin picks it up without waiting for the site's own refresh cycle. |
Posts & Pages
| Tool | Description |
|---|---|
wordpress_list_content | List posts or pages for a connected site |
wordpress_read_content | Read an existing post or page by slug |
wordpress_replace_content_text | Replace exact text inside a post/page without rewriting the whole page HTML |
wordpress_write_content | Update a post/page by slug, or create one if the slug doesn't exist |
wordpress_bulk_create_content | Create multiple content items from a template and entry list |
Generic Entities & Taxonomy
| Tool | Description |
|---|---|
wordpress_list_entity_types | Discover REST-exposed content types, including custom post types, and whether the route is writable |
wordpress_list_taxonomies | Discover REST-exposed taxonomies globally or for a specific post type |
wordpress_list_entities | List entities for a specific post type, including custom post types |
wordpress_read_entity | Read an entity by post type plus id or slug |
wordpress_write_entity | Create or update an entity with publish-state control |
wordpress_upsert_term | Create or update a taxonomy term |
wordpress_assign_terms | Assign taxonomy terms to an entity |
SEO & Sitemap
| Tool | Description |
|---|---|
wordpress_read_seo_meta | Read SEO meta fields (Yoast/Rank Math compatible where available) |
wordpress_write_seo_meta | Update supported SEO meta fields |
wordpress_read_sitemap | Read the sitemap index/XML, optionally expanding child sitemaps into a URL inventory |
wordpress_create_redirect | Create a Rank Math redirect |
Elementor
| Tool | Description |
|---|---|
wordpress_read_elementor_page | Read Elementor layout data for a post or page |
wordpress_list_elementor_elements | List Elementor elements so widget IDs can be identified before edits |
wordpress_get_elementor_widget | Read a single Elementor widget by widget ID |
wordpress_backup_elementor_page | Create a safe data backup before manual or automated edits |
wordpress_update_elementor_widget | Update a single Elementor widget |
wordpress_plan_elementor_change | Resolve likely widget targets for a bounded structured request, without a raw widget ID |
wordpress_preview_elementor_change | Preview a bounded smart plan: selected target, current data, merged changes, blocked reasons |
wordpress_apply_elementor_change | Apply a bounded smart plan through the widget-level edit path (backup-first, access-mode enforced) |
Twilio
Twilio number and messaging management.
Tools
| Tool | Description |
|---|---|
test_twilio_connection | Verify credentials |
twilio_list_numbers | List account phone numbers |
twilio_send_sms | Send SMS via Twilio (guarded by website binding) |
twilio_describe_resources | Show client Twilio resources |
twilio_bind_website | Bind number to website for SMS |
SendGrid
SendGrid email operations.
Tools
| Tool | Description |
|---|---|
sendgrid_list_senders | List sender identities/domains |
sendgrid_send_email | Send email (guarded by website binding) |
sendgrid_describe_resources | Show client SendGrid resources |
sendgrid_bind_website | Bind sender to website |
sendgrid_setup_domain_auth | Configure domain authentication |
sendgrid_verify_domain | Verify DNS records |
Image Generation
AI-powered image creation, vectorization, and branded social rendering.
Tools
| Tool | Description |
|---|---|
image_create_session | Start a persisted multi-turn image generation session and generate the first turn |
image_continue_session | Continue an existing image session; reuses the previous turn's assets by default |
image_vectorize_asset | Convert a stored raster asset into a true-vector SVG (Recraft) as a new asset |
image_get_session | Get one persisted image session, including turn history and asset refs |
image_list_sessions | List recent persisted image sessions for the current client |
social_brand_render | Run the branded social art-director and image compiler pipeline for a content brief |
social_design_ideate | Propose reusable branded social design recipes for review without saving them |
For a true vector SVG (logos, icons, scalable/print-ready graphics), pass model: "recraft-ai/recraft-v4.1-svg" (aliases svg/vector) to image_create_session/image_continue_session. To convert an existing raster asset instead of regenerating it, use image_vectorize_asset.
Cloudflare
Cloudflare infrastructure management.
Tools
| Tool | Description |
|---|---|
cloudflare_list_resources | List account inventory and bindings |
cloudflare_list_dns | DNS records for a zone |
cloudflare_update_dns | Modify DNS records |
cloudflare_get_deployments | Pages deployment history |
cloudflare_watch_deployment | Monitor deployment status |
cloudflare_bind_website | Bind site to Cloudflare project |
Verification
Post-operation validation.
Tools
| Tool | Description |
|---|---|
mcp_verify_operation | Verify a recent write succeeded before calling it done |
This tool normalizes checks across Cloudflare Pages, WordPress, GitHub-backed sites, and other public providers. If verification fails, inspect the logs, patch the issue, and verify again.
Docs
Affinity public documentation — search and read customer-facing help articles from within any AI session. The docs plugin connects to the public docs app at https://docs.affinitydesign.ca/api/mcp through the af-gemini-connect bridge, and prefixes upstream tool names before exposing them.
Tools
| Tool | Description |
|---|---|
docs_search | Search documentation pages by keyword or customer support question. Returns matching pages with titles, descriptions, URLs, and slugs. |
docs_get_page | Read the full MDX content for a documentation page slug (e.g. clients/getting-started). |
Configuration
No API key is required — the docs MCP endpoint is public and read-only. Optional environment overrides:
| Variable | Default | Description |
|---|---|---|
DOCS_MCP_URL | https://docs.affinitydesign.ca/api/mcp | Upstream MCP endpoint URL |
DOCS_MCP_TIMEOUT_MS | 10000 | Request timeout in milliseconds |
Enablement
For client-scoped MCP API keys or Command Center sessions, ensure docs is included in the enabled plugin list when the client has an explicit plugin allowlist.
Vercel
Vercel deployment management and GitHub-backed website verification.
Tools
| Tool | Description |
|---|---|
vercel_list_resources | List connected Vercel account inventory and website bindings for this client, including projects and deployment feedback status. |
vercel_bind_website | Bind a connected website to a Vercel project so MCP verification can poll deployments and build logs after GitHub-backed website changes. |
vercel_list_deployments | List recent Vercel deployments for a bound website or Vercel project. |
vercel_get_deployment_logs | Fetch Vercel deployment build logs for a bound website/project deployment. |
vercel_watch_deployment | Poll Vercel after a GitHub website change. Returns success, pending state, or failure with redacted build-log lines so the agent can debug and apply a follow-up fix. |
Binding a Website
After a client-level Vercel connection exists, bind the connected website to the project that deploys it:
POST /admin/clients/:clientId/websites/:websiteId/connections/bind
Content-Type: application/json
{
"serviceType": "vercel",
"sourceConnectionId": "connection_id",
"projectId": "prj_xxx",
"projectName": "client-site",
"teamId": "team_xxx"
}
App-Side Verification Token
The app-side verification loop uses one of these token sources (not passed through MCP tool arguments):
- Per-client connection: save a client-level
vercelconnection with a Vercel API token. - Deployment fallback: set
VERCEL_API_TOKENin the app environment. - Team-scoped accounts: set
VERCEL_TEAM_IDorVERCEL_TEAM_SLUGon the connection.
Never put the Vercel API token in committed files, MCP tool calls, screenshots, or deployment logs.
Official Vercel MCP for Codex
Vercel's official remote MCP endpoint (https://mcp.vercel.com) can be registered in Codex for interactive inspection, deployment details, logs, docs, and project context:
codex mcp add vercel --url https://mcp.vercel.com
codex mcp login vercel
codex mcp list
Communications
Website form management and form receiver configuration.
Tools
| Tool | Description |
|---|---|
communications_get_form_receiver | Return the platform form receiver for a website. Provisions a stable receiver token when missing unless provisionIfMissing is false. |
communications_scan_website_forms | Scan a public website for forms and map the observed forms into the website form registry. |
communications_update_website_form | Update one website form's registry settings such as displayName, status, deliveryMode, validation, notification, or webhook routing. |
communications_register_website_form | Register or upsert a newly created website form directly into the Forms UI and platform receiver handling. |
communications_delete_website_form | Delete a stale or incorrect website form from the registry so a fresh scan can recreate the current live form. |
Form Delivery Modes
The deliveryMode property controls how form submissions are processed:
| Mode | Description |
|---|---|
auto | Automatic delivery via detected integration (GHL, email, webhook) |
native | Native platform receiver without external integration |
ghl | Deliver to GoHighLevel pipeline |
email | Send to notification email addresses |
webhook | Forward to configured webhook URL |
Website Offers
Provisions GitHub/Cloudflare infrastructure for paid Website-Day starter-site orders (the self-serve offer funnel), and validates generated builds before commit.
Tools
| Tool | Description |
|---|---|
website_offer_get_config | Read the offer funnel config: checkout capacity, starter credits, GitHub template status, Cloudflare target settings |
website_offer_get_order | Fetch an offer order by id with payment, intake, build, GitHub, Cloudflare, and delivery status |
website_offer_start_build | Start the controlled build lifecycle for a paid order after intake is complete |
website_offer_retry_build | Retry the build lifecycle for a recoverable failed or review-state order |
website_offer_nuke_and_restart | Wipe all generated artifacts (app/, components/, src/, checkpoint commits) and immediately start a fresh build — more destructive than retry |
website_offer_validate_build | Validate a generated file set before committing it |
github_create_site_from_template | Create a GitHub repo from the configured Website-Day template |
cloudflare_create_pages_project | Create or return a Cloudflare Pages project for a GitHub repo |
cloudflare_add_pages_domain | Associate an agency subdomain with a Cloudflare Pages project |
cloudflare_upsert_dns_record | Create or update the DNS record for an agency-owned Website-Day subdomain |
agency_ghl_upsert_waitlist_lead | Create or update a waitlist lead and push it to the agency GHL waitlist when configured |
Resource URIs Quick Reference
Use these URIs directly in prompts or tool arguments:
| Pattern | Example |
|---|---|
asset://list | All recent assets |
asset://asset_abc123 | Specific asset metadata |
knowledge://website/{id}/audit | Website audit |
knowledge://website/{id}/design | Design system |
knowledge://website/{id}/skill | Interaction skill |
ghl://contacts/{id} | GHL contact |
ghl://calendar/{id}/slots | Calendar availability |
ga4://property/{id} | GA4 property |
gbp://location/{id} | GBP location |
