← Back to all apps
W

WordPress.com

Productivityby Automattic Inc.
Launched Jul 8, 2026 on ChatGPT

Manage and create on your WordPress site through a conversation with Claude. Ask Claude to find a post, check your stats, draft something new, update a page, or pull up a comment thread. Your sites stay secure — Claude only gets access to what you approve, nothing more.

Your site already knows your style — your theme, your colors, your fonts, every creative decision you've made. Claude can see all of it, so when it helps you create, the content actually fits.

60+ abilities. Every change is confirmed by you. Available on all paid WordPress.com plans and any Jetpack AI or Complete-connected site.

For developers: Under the hood, this connector is powered by the WordPress.com MCP server. It uses OAuth 2.1 to ensure agents only access the resources you've explicitly approved, making it easy for you to build and extend AI-driven workflows on top of WordPress.

16ChatGPT Tools
16Claude Tools
Automattic Inc.Developer
ProductivityCategory

Use Cases

productivity

Available Tools

List AI Agent Access sites

wpcom-ai-agent-sites-list
Full Description

Lists public production WordPress.com sites whose owners enabled AI Agent Access, the site opt-in that also makes a site available to Jetpack Search Voice. Accepts query or keywords to filter by what a site is about, matched against existing site metadata like title, description, site vertical, and site intent. This is the discovery/listing tool; it does not search within a blog. Results are paginated by after_blog_id/per_page, and pagination.has_more reports whether more pages exist.

Use this when the user asks to list, find, discover, or show sites/blogs that opted into AI agents, AI Agent Access, Blog Talks Back, or sites available for Jetpack Search Voice. Page with after_blog_id/per_page until pagination.has_more is false.

Parameters (0 required, 4 optional)
Optional
after_blog_idinteger

Keyset cursor into the AI Agent Access discovery index. Returns sites with blog_id strictly greater than this value. Use pagination.next_after_blog_id from the previous response when pagination.has_more is true; omit or pass 0 to start from the beginning.

Default: 0
keywordsarray

Optional topic keywords to filter opted-in sites by. Matched against existing site metadata including title, description, site_vertical, site_intent, and vertical stickers.

per_pageinteger

Number of sticker-indexed site candidates to evaluate per page. Returned sites can be fewer because private, staging, test, coming-soon, and otherwise ineligible candidates are filtered out.

Default: 25
querystring

Optional natural-language topic query for discovering opted-in sites, such as "food blogs", "education", or "newsletter". Matched against existing site metadata, not post content.

Restore default DNS records for a domain

wpcom-domain-restore-default-dns-records
Full Description

Restore the WordPress.com defaults for a single custom domain. With record_type "A", replaces the apex A records with the WordPress.com default IPs and removes any apex AAAA records (handy after a DNS misconfiguration that broke pointing the bare domain at WordPress.com). With record_type "CNAME", replaces the www CNAME with one pointing back at the apex (e.g. www -> example.com). Changes go into effect only if the domain uses the WordPress.com name servers; for domains pointed at a third-party DNS provider, the records must be managed at that provider. The caller must have manage_options on the site the domain is connected to.

Verify has_wpcom_nameservers and can_manage_dns_records are both true via wpcom/domain-details before calling. To inspect the resulting records, call wpcom/domain-dns-records. Always check domain_status via wpcom/user-domains first; if it is not "active", mention that to the user - expired domains may not resolve even when DNS and nameservers look correct.

Parameters (2 required)
Required
domainstring

The domain name to restore DNS defaults for (e.g. example.com).

record_typestring

Which default to restore. "A" restores the apex A records to the WordPress.com defaults and removes any apex AAAA records. "CNAME" restores the www CNAME so that www points back at the apex.

Options:ACNAME

Set up external mail service

wpcom-domain-set-mail-service
Full Description

Configure DNS records on a domain for an external mail service (Google Workspace, iCloud Mail, Office 365, or Zoho Mail) by applying the provider DNS template in one step. Supply the verification token the provider asked you to add to your DNS as proof of domain ownership. The caller must have manage_options on the site the domain is connected to. Changes only take effect when the domain uses the WordPress.com nameservers; for domains pointed at a third-party DNS provider, the records must be applied at that provider. For Google Workspace, DKIM is optional: pass dkim_selector and dkim_txt_record together to add the DKIM record, or omit both to set up verification, SPF and MX only. The user generates those two values in the Google Admin console, where the default selector is "google".

Confirm has_wpcom_nameservers and can_manage_dns_records via wpcom/domain-details before calling. To see what records were applied, call wpcom/domain-dns-records afterwards. Always check domain_status via wpcom/user-domains first; if it is not "active", mention that to the user - expired domains may not resolve even when DNS and nameservers look correct.

Parameters (3 required, 2 optional)
Required
domainstring

The domain name to configure (e.g. example.com).

mail_servicestring

The external mail service to set up.

Options:google-workspaceicloud-mailoffice-365zoho-mail
verification_tokenstring

The verification token supplied by the email provider - for "google-workspace" - token like "google-site-verification=..."; for "icloud-mail" - token like "apple-domain=..."; for "office-365" - token like "MS=ms..."; for "zoho-mail" token like "zb...".

Optional
dkim_selectorstring

Optional, "google-workspace" only. The DKIM selector shown next to the DKIM record in the Google Admin console - "google" unless the user changed it. Send it together with dkim_txt_record.

dkim_txt_recordstring

Optional, "google-workspace" only. The DKIM TXT record value the user copies from the Google Admin console under Apps > Google Workspace > Gmail > Authenticate email. Send it together with dkim_selector.

Update DNS records for a domain

wpcom-domain-update-dns-records
Full Description

Add or remove DNS records (A, AAAA, ALIAS, CAA, CNAME, MX, NS, SRV, TXT) for a single custom domain. Supply two arrays: records_to_add (records to create) and records_to_remove (records to delete, matched against existing records by their fields). Changes go into effect only if the domain uses the WordPress.com name servers; for domains pointed at a third-party DNS provider, the records must be managed at that provider. The ability verifies the nameservers itself: when the domain does not use the WordPress.com nameservers the update is refused with status wpcom_nameservers_required and no records are changed, unless apply_without_wpcom_nameservers is true. Root NS records on domains registered with WordPress.com cannot be modified. The caller must have manage_options on the site the domain is connected to.

When the update is refused with wpcom_nameservers_required, relay the message field to the user, and only set apply_without_wpcom_nameservers to true if the user wants to prepare the WordPress.com zone before switching nameservers. Verify can_manage_dns_records is true via wpcom/domain-details before calling. To inspect the current records first, call wpcom/domain-dns-records. Always check domain_status via wpcom/user-domains first; if it is not "active", mention that to the user - expired domains may not resolve even when DNS and nameservers look correct.

Parameters (1 required, 3 optional)
Required
domainstring

The domain name to update DNS records for (e.g. example.com).

Optional
apply_without_wpcom_nameserversboolean

By default the update is refused when the domain does not use the WordPress.com nameservers, because the records would not take effect. Set to true to apply the records anyway - only after telling the user the records stay dormant until the nameservers of the domain point to WordPress.com (e.g. to prepare the zone before a nameserver switch).

records_to_addarray

DNS records to create. Each record must specify type and the fields required by that type (see item schema).

records_to_removearray

DNS records to remove. Each record is matched against existing records by its fields, so supply the same field values that the read ability returned for the record you want to remove. To remove a protected record (e.g. the default A records on the apex, where protected_field is true in the read response), include protected_field: true along with type and name; this removes the entire protected rrset rather than matching by data.

Update name servers

wpcom-domain-update-nameservers
Full Description

Set the nameservers for a single custom domain. Only works for domains registered with WordPress.com; for connected/mapped domains the nameservers are managed at the external registrar and this ability returns a domain_not_registered_with_wpcom error. Provide between 2 and 13 valid nameserver hostnames as plain strings (e.g. ["ns1.example.com", "ns2.example.com"]). The caller must have manage_options on the site the domain is connected to. Root NS records on domains registered with WordPress.com may be subject to additional restrictions (e.g. during TLD maintenance).

Confirm eligibility via can_manage_name_servers on wpcom/domain-details before calling. To inspect the current nameservers first, call wpcom/domain-get-nameservers. Always check domain_status via wpcom/user-domains first; if it is not "active", mention that to the user - expired domains may not resolve even when DNS and nameservers look correct.

Parameters (2 required)
Required
domainstring

The domain name to update nameservers for (e.g. example.com).

nameserversarray

The desired nameservers as an array of hostname strings. Must contain between 2 and 13 distinct valid nameserver hostnames.

Account

wpcom-mcp-account
Full Description

Manage the current user's WordPress.com account — profile, notifications, achievements, domains, subscriptions, connections, and security. To list all your sites, use the standalone wpcom-user-sites tool. Workflow: "list" to discover available operations, "describe" for parameter schema, "execute" to run. Always share results with the user.

SAFETY PROTOCOL: Before ANY write operation (profile.update, notifications.update), you MUST: (1) Describe exactly what you plan to change. (2) Ask the user for confirmation and wait for their response. Never auto-execute write operations without user approval.

Parameters (1 required, 3 optional)
Required
actionstring

The operation to perform: "list" to discover available operations, "describe" to get the schema for a specific operation, "execute" to run an operation.

Options:listdescribeexecute
Optional
operationstring

The operation name (required for describe/execute). Format: "resource.action" (e.g., "profile.get", "notifications.update"). Use action "list" to see all available operations.

paramsobject/string

Operation parameters (required for execute). Use action "describe" first to see available parameters for the operation.

wpcom_sitestring

Optional site identifier, passed through to sub-abilities that need it (e.g., notifications scoped to a specific site). Not required at the account facade level.

Content Authoring

wpcom-mcp-content-authoring
Full Description

Manage content on WordPress.com sites: posts, pages, media, comments, taxonomies, and patterns. Also covers custom post types such as WooCommerce products and portfolio projects, and their categories and tags, through the content-types.*, content-items.* and content-terms.* operations. Includes block-level section operations (page-sections.* / post-sections.*) that edit one top-level block of an existing page or post in place, alongside pages.update / posts.update for new content and full rewrites. Every create, update, or delete operation requires the user's explicit approval before it runs.

Workflow: "list" to discover operations, "describe" for parameter schema, "execute" to run. To change one part of an existing page or post without rewriting the whole thing, use the block-level (section) operations (page-sections.* / post-sections.*) instead of pages.update / posts.update; they edit a single top-level block in place. Reserve pages.update / posts.update for new content and full rewrites. For design-aligned content: fetch wpcom-mcp-site-editor-context (theme.active -> theme.presets) first, then browse patterns here (patterns.list -> patterns.get), customize with preset slugs, and create as draft. Show edit/preview links after create/update. Always share results with the user.

Parameters (2 required, 3 optional)
Required
actionstring

The operation to perform: "list" to discover available operations, "describe" to get the schema for a specific operation, "execute" to run an operation. For create/update/delete operations, execute requires `user_confirmed: true` (boolean) in params.

Options:listdescribeexecute
wpcom_sitestring

The site to manage. Can be a site ID (numeric) or URL (e.g., "myblog.wordpress.com").

Optional
fileobject

A file attached in the chat, for operations that take one (media.create). The server downloads it, so its contents are not written into the call.

operationstring

The operation name (required for describe/execute). Format: "resource.action" (e.g., "posts.create", "tags.delete"). Use action "list" to see all available operations.

paramsobject/string

Operation parameters (required for execute). Use action "describe" first to see available parameters for the operation. For create/update/delete operations, include `user_confirmed: true` (boolean) after the user has confirmed.

Create Site

wpcom-mcp-create-site
Full Description

Create a new WordPress.com site. This tool is the ONLY entry point the agent should use to create a site.

CORE RULES (apply without calling site.instructions):

  • The subdomain is DERIVED from title automatically. NEVER ask the user for a URL slug, subdomain, or custom site address — it is not an input field. Show a subdomain preview derived from the title for confirmation only.
  • Ask ONE direct question for the title. Do NOT ask about site type, audience, tone, topic, or goals — those are NOT required to create a site.
  • After the site is created, share the URL and STOP. Do NOT auto-chain into theme picking or homepage authoring; offer them only if the user asks.

WORKFLOW: 1. action="execute", operation="site.instructions" (no params) — returns the runbook: field schema, conversational rules, confirmation policy (including the deterministic subdomain-derivation rule), the handoff to site.provision, and a list of next actions available after creation. When the user has not enabled the create-site capability, the runbook also surfaces a preflight_required block — walk the user to the link in that block BEFORE asking any interview question. Call site.instructions ONCE, up front. 2. Ask the user a single direct question for the title (or detect test-site intent — see the runbook rules — and skip to step 3 with "Test site" as the title). 3. Derive the subdomain slug from title locally per the subdomain_derivation_rule in the runbook (lowercase, strip diacritics, remove every non-alphanumeric character). Then call action="execute", operation="subdomain.check", params: { slugs: [ <derived slug> ] }. Read the first entry in results; it reports whether the slug is valid + available, plus the would_be_url the user will actually receive (which may carry a numeric suffix when the base slug is taken). Show the user the actual results[0].would_be_url verbatim before asking for title confirmation. If results[0].is_valid is false (empty slug, blacklisted, invalid characters), ask the user for a different title and re-derive — do NOT proceed to site.provision. 4. (Optional) Ask once whether the user wants a short tagline; accept "skip" / "not now" cleanly. 5. Summarize the collected fields — especially the title and the would_be_url from subdomain.check — and ask for explicit confirmation. 6. action="execute", operation="site.provision", params: { spec: { title: <confirmed title>, [description: <tagline if provided>] }, user_confirmed: true }. title is the only required field on spec; description is the only common optional field. user_confirmed MUST be the boolean true (or one of the strings "true" / "yes" / "on" / "1") after the user has approved the title and subdomain preview. 7. On success, share the returned site_url and stop. On invalid_spec errors, the error message lists each offending field on its own line (for example - spec.title: missing field); fix only the listed fields and retry site.provision. On empty_subdomain_after_derivation errors, the title strips to an empty subdomain (subdomain.check should have caught this earlier) — ask the user for a different title and retry.

SPEC SHAPE: only title is required. description (one-sentence tagline) is optional. locale is auto-defaulted from the user's account locale.

SAFETY: site.provision creates a real site on the user's account. Only call it after the user has explicitly confirmed the title and subdomain preview.

Parameters (1 required, 2 optional)
Required
actionstring

The STRAP action: "list" to see operations and workflow, "describe" for an operation's schema, "execute" to run an operation.

Options:listdescribeexecute
Optional
operationstring

Operation name (required for describe/execute). "site.instructions" returns the runbook; "subdomain.check" reports whether a candidate slug is valid + available (caller derives the slug from title per the runbook rule); "site.provision" creates the site.

Options:site.instructionssite.provisionsubdomain.check
paramsobject/string

Operation parameters (required for execute). See action="describe" for each operation's schema.

Jetpack Search + Voice

wpcom-mcp-jetpack-search-voice
Full Description

Returns search results from a public, opted-in blog plus its Guidelines (site + additional) in a single call, for answering reader-facing questions from a public blog URL in that blog's voice. Covers public blog content only: not private or internal content, WordPress.com site or account management, or owner/admin content operations.

Use this only for reader-facing requests to answer from a public blog URL in that blog's voice, for example "Talk to this blog <blog_url>" or "Chat with this blog <blog_url>". Do not use this for private/internal content, WordPress.com site or account management, or owner/admin content operations. Use keyword-focused search queries, then compose answers in the blog author's voice with grounded citations.

Parameters (2 required, 1 optional)
Required
blog_urlstring

Full URL of the blog to search (e.g. https://example.wordpress.com/).

querystring

Keyword-focused search query derived from the reader's question. Short, specific, noun-heavy queries work best because this is backed by Jetpack Search rather than semantic retrieval. Prefer place names, post topics, and distinctive terms over conversational filler. If a first call returns no search_results, retry once with a shorter keyword-only query.

Optional
num_resultsinteger

Max number of search results (default 5, max 20).

Default: 5

Plugin Management

wpcom-mcp-plugin-management
Full Description

Manage plugins on a WordPress.com site: list installed plugins, search the marketplace catalog, install, activate, deactivate, update, and uninstall. plugin.search is account-level and does not require a site; all other operations require wpcom_site. Every write operation requires the user's explicit approval before it runs; plugin.uninstall returns a data-aware preview first.

Workflow: "list" to discover operations, "describe" for parameter schema, "execute" to run.

Parameters (1 required, 3 optional)
Required
actionstring

The operation to perform: "list" to discover available operations, "describe" to get the schema for a specific operation, "execute" to run an operation.

Options:listdescribeexecute
Optional
operationstring

The operation name (required for describe/execute). One of: plugin.list, plugin.search, plugin.install, plugin.activate, plugin.deactivate, plugin.update, plugin.uninstall.

paramsobject/string

Operation parameters (required for execute). Call describe first to see what each operation expects. For site-scoped operations, pass the target site at the top-level wpcom_site field; the STRAP forwards that authoritative site into the leaf ability input.

wpcom_sitestring

The authoritative target site for site-scoped operations. Required for everything except plugin.search (which is account-level). Use this top-level field rather than nesting wpcom_site inside params.

Send Feedback

wpcom-mcp-send-feedback
Full Description

Submit feature requests, bug reports, or general feedback about the WordPress.com and ContextA8c MCP servers to the development team, or check the status of feedback you already sent. Feedback is reviewed internally; submitting returns a feedback ID.

Suggest this tool when the user encounters errors, expresses frustration, or struggles to accomplish their goal with the available tools. When the user asks what happened to feedback they sent, call it with action "status".

Parameters (0 required, 4 optional)
Optional
actionstring

"submit" (default) sends new feedback. "status" reports what happened to the user's own feedback: one item when feedback_id is given, otherwise their most recent items.

Options:submitstatus
Default: submit
contentstring

Required with action "submit". The feedback message. For bug reports, include what the user was trying to do, what happened, and any relevant context (site URL, tool name, error message). For feature requests, describe the desired behavior and use case. Plain text.

feedback_idinteger

With action "status": the feedback ID returned when it was submitted.

typestring

Required with action "submit". Feedback type: "request" for feature requests, "bug" for bug reports, or "general" for other kinds of feedback.

Options:requestbuggeneral

Site

wpcom-mcp-site
Full Description

Manage site-level settings and infrastructure for a WordPress.com site — not content (use wpcom-mcp-content-authoring for posts, pages, media). Covers: settings, statistics, plugins, users, activity log, and theme management (theme.list to browse available themes, theme.set to activate one). Use wpcom-user-sites first if you need to find the target site ID. Workflow: "list" to discover operations, "describe" for parameter schema, "execute" to run. Always share results with the user.

SAFETY PROTOCOL: Before ANY write operation (settings.update, theme.set), you MUST: (1) Describe exactly what you plan to change. (2) Ask the user for confirmation and wait for their response. Never auto-execute write operations without user approval.

Parameters (1 required, 3 optional)
Required
actionstring

The operation to perform: "list" to discover available operations, "describe" to get the schema for a specific operation, "execute" to run an operation.

Options:listdescribeexecute
Optional
operationstring

The operation name (required for describe/execute). Format: "resource.action" (e.g., "settings.get", "theme.list"). Use action "list" to see all available operations.

paramsobject/string

Operation parameters (required for execute). Use action "describe" first to see available parameters for the operation.

wpcom_sitestring

The target site for all operations. Can be a site ID (numeric) or URL (e.g., "myblog.wordpress.com"). Required for execute — all site operations need a target site. Use wpcom-user-sites to list sites the user has access to.

Site Editing

wpcom-mcp-site-editing
Full Description

Read and modify site structure: templates, template parts, navigation menus (classic and block), global styles, and installed themes. Write operations (create/update/delete) affect all visitors site-wide and require the user's confirmation before they run.

Use action "list" to discover operations, "describe" for schema, "execute" to run. Recommended sequence before any write: fetch current state first (templates.list -> templates.get, or navigation.list -> navigation.get, or global-styles.get). For FSE block types use site-editor-context blocks.allowed with the site-editing context.

Parameters (2 required, 2 optional)
Required
actionstring

The operation to perform: "list" to discover available operations, "describe" to get the schema for a specific operation, "execute" to run an operation. Write operations require `user_confirmed: true` (boolean) in params.

Options:listdescribeexecute
wpcom_sitestring

The site to operate on. Can be a site ID (numeric) or URL (e.g., "myblog.wordpress.com").

Optional
operationstring

The operation name (required for describe/execute). Format: "resource.action" (e.g., "templates.list", "navigation.update", "global-styles.get"). Use action "list" to see all available operations.

paramsobject/string

Operation parameters (required for execute). Use action "describe" to see available parameters. For create/update/delete operations, include `user_confirmed: true` (boolean) after the user has confirmed.

Site Editor Context

wpcom-mcp-site-editor-context
Full Description

Query site design context. Operations: theme.active (active stylesheet slug), theme.presets (color palette, fonts, spacing tokens), theme.styles (applied block/element styles), blocks.allowed (registered block types). theme.presets and theme.styles auto-resolve the stylesheet from the active theme if omitted.

Use action "list" to discover operations, "describe" for schema, "get" to fetch data. Start with theme.active to get the stylesheet slug, then theme.presets for design tokens. Use preset slugs instead of hard-coded values.

Parameters (2 required, 2 optional)
Required
actionstring

The operation to perform: "list" to discover available context operations, "describe" to get the schema for a specific operation, "get" to fetch specific context data.

Options:listdescribeget
wpcom_sitestring

The site to query context for. Can be a site ID (numeric) or URL (e.g., "myblog.wordpress.com").

Optional
operationstring

The context operation name (required for describe/get). Format: "resource.action" (e.g., "theme.presets", "blocks.allowed"). Use action "list" to see all available operations.

paramsobject/string

Operation parameters (optional for get). Use action "describe" to see available parameters for the operation.

User Management

wpcom-mcp-user-management
Full Description

Manage site collaborators on a WordPress.com site. Seven operations: user.list and user.pending-invites are read-only; user.invite and user.resend-invite send a real email; user.cancel-invite cancels a pending invite; user.change-role and user.remove-access return a preview; every write runs only with user_confirmed: true. user.remove-access is irreversible: it removes the user from this site only and does not delete their WordPress.com account. user.invite and user.change-role accept only the five stock WordPress roles (administrator, editor, author, contributor, subscriber); custom or plugin-introduced roles (e.g. shop_manager, bbp_moderator) are not supported on this surface. All operations require wpcom_site at the top level of the input.

Parameters (1 required, 3 optional)
Required
actionstring

The operation to perform: "list" to discover available operations, "describe" to get the schema for a specific operation, "execute" to run an operation.

Options:listdescribeexecute
Optional
operationstring

The operation name (required for describe/execute). One of: user.list, user.pending-invites, user.invite, user.cancel-invite, user.resend-invite, user.change-role, user.remove-access.

paramsobject/string

Operation parameters (required for execute). Call describe first to see what each operation expects. For site-scoped operations pass the target site at the top-level wpcom_site field; the STRAP forwards that authoritative site into the leaf ability input.

wpcom_sitestring

The authoritative target site for site-scoped operations. Required for every user-management operation. Use this top-level field rather than nesting wpcom_site inside params.

List authenticated user sites

wpcom-user-sites
Full Description

List the authenticated user's accessible sites across WordPress.com and self-hosted Jetpack-connected sites. Returns blog IDs, URLs, names, platform type, MCP access status, and optional metrics. Use this to discover which site IDs exist before calling site-scoped abilities.

Parameters (0 required, 8 optional)
Optional
environmentstring

Filter by site environment. "production" excludes staging/test/deleted/migration-hidden sites (default). "staging" shows only staging sites. "test" shows only test sites. "all" includes everything.

Options:productionstagingtestall
Default: production
filtersobject
include_metricsboolean

Include site metrics in the response.

Default: False
ownershipstring

Filter by site ownership. Only "user" is available - shows your accessible sites.

Options:user
Default: user
pageinteger

Page number for pagination.

Default: 1
per_pageinteger

Number of sites per page.

Default: 10
platformstring

Filter by platform type. "simple" shows classic WordPress.com sites. "atomic" shows WordPress.com sites with SSH/SFTP access. "jetpack" shows self-hosted Jetpack-connected sites. "all" shows every platform type.

Options:allsimpleatomicjetpack
Default: all
sortobject