# A3plus MCP server

Agent View of the PolicyLayer registry record for A3plus: identity, probed posture, risk grade, and all 61 tools classified. HTML page: https://policylayer.com/tools/a3plus-mcp

## Facts

- Server id: `a3plus-mcp`
- Install: `npx -y a3plus-mcp`
- Homepage: https://www.npmjs.com/package/a3plus-mcp
- Registry record: grade F, identity unverified
- Lifecycle: active
- Rate-limited: no
- Tools: 61 (52 with introspected schema)
- Tool categories present: Destructive, Execute, Financial, Read, Write
- Context-window cost: 14911 tokens per request — https://policylayer.com/token-cost/a3plus-mcp
- Tags: a3plus mcp, payments, admin, automation
- Record last modified: 2026-09-01T17:15:34.377Z

## Tools (61)

| Tool | Category | Risk | Record |
| --- | --- | --- | --- |
| `delete_article` | Destructive | Critical | https://policylayer.com/tools/a3plus-mcp/delete-article.md |
| `delete_sites` | Destructive | Critical | https://policylayer.com/tools/a3plus-mcp/delete-sites.md |
| `list_domains` | Destructive | Critical | https://policylayer.com/tools/a3plus-mcp/list-domains.md |
| `remove_project_member` | Destructive | Critical | https://policylayer.com/tools/a3plus-mcp/remove-project-member.md |
| `update_article` | Destructive | Critical | https://policylayer.com/tools/a3plus-mcp/update-article.md |
| `retry_sites` | Execute | High | https://policylayer.com/tools/a3plus-mcp/retry-sites.md |
| `transfer_sites` | Financial | Critical | https://policylayer.com/tools/a3plus-mcp/transfer-sites.md |
| `audit_project_articles` | Read | Low | https://policylayer.com/tools/a3plus-mcp/audit-project-articles.md |
| `bind_domain` | Read | Low | https://policylayer.com/tools/a3plus-mcp/bind-domain.md |
| `bredgio_list_agents` | Read | Low | https://policylayer.com/tools/a3plus-mcp/bredgio-list-agents.md |
| `bredgio_logout` | Read | Low | https://policylayer.com/tools/a3plus-mcp/bredgio-logout.md |
| `bredgio_status` | Read | Low | https://policylayer.com/tools/a3plus-mcp/bredgio-status.md |
| `bredgio_task_status` | Read | Low | https://policylayer.com/tools/a3plus-mcp/bredgio-task-status.md |
| `get_article` | Read | Low | https://policylayer.com/tools/a3plus-mcp/get-article.md |
| `get_intake_schema` | Read | Low | https://policylayer.com/tools/a3plus-mcp/get-intake-schema.md |
| `get_pack` | Read | Low | https://policylayer.com/tools/a3plus-mcp/get-pack.md |
| `get_playbook` | Read | Low | https://policylayer.com/tools/a3plus-mcp/get-playbook.md |
| `get_project` | Read | Low | https://policylayer.com/tools/a3plus-mcp/get-project.md |
| `get_project_readiness` | Read | Low | https://policylayer.com/tools/a3plus-mcp/get-project-readiness.md |
| `get_site_brand` | Read | Low | https://policylayer.com/tools/a3plus-mcp/get-site-brand.md |
| `get_site_content` | Read | Low | https://policylayer.com/tools/a3plus-mcp/get-site-content.md |
| `get_site_faq` | Read | Low | https://policylayer.com/tools/a3plus-mcp/get-site-faq.md |
| `get_site_seo` | Read | Low | https://policylayer.com/tools/a3plus-mcp/get-site-seo.md |
| `get_static_pages` | Read | Low | https://policylayer.com/tools/a3plus-mcp/get-static-pages.md |
| `gsc_search_analytics` | Read | Low | https://policylayer.com/tools/a3plus-mcp/gsc-search-analytics.md |
| `gsc_site_detail` | Read | Low | https://policylayer.com/tools/a3plus-mcp/gsc-site-detail.md |
| `gsc_sites` | Read | Low | https://policylayer.com/tools/a3plus-mcp/gsc-sites.md |
| `gsc_zero_data_sites` | Read | Low | https://policylayer.com/tools/a3plus-mcp/gsc-zero-data-sites.md |
| `index_coverage_report` | Read | Low | https://policylayer.com/tools/a3plus-mcp/index-coverage-report.md |
| `list_articles` | Read | Low | https://policylayer.com/tools/a3plus-mcp/list-articles.md |
| `list_pack_categories` | Read | Low | https://policylayer.com/tools/a3plus-mcp/list-pack-categories.md |
| `list_packs` | Read | Low | https://policylayer.com/tools/a3plus-mcp/list-packs.md |
| `list_playbooks` | Read | Low | https://policylayer.com/tools/a3plus-mcp/list-playbooks.md |
| `list_project_members` | Read | Low | https://policylayer.com/tools/a3plus-mcp/list-project-members.md |
| `list_projects` | Read | Low | https://policylayer.com/tools/a3plus-mcp/list-projects.md |
| `list_sites` | Read | Low | https://policylayer.com/tools/a3plus-mcp/list-sites.md |
| `unbind_domain` | Read | Low | https://policylayer.com/tools/a3plus-mcp/unbind-domain.md |
| `a3plus_connect` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/a3plus-connect.md |
| `a3plus_connect_check` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/a3plus-connect-check.md |
| `add_project_member` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/add-project-member.md |
| `bredgio_login` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/bredgio-login.md |
| `bredgio_post` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/bredgio-post.md |
| `bredgio_register` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/bredgio-register.md |
| `create_article` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/create-article.md |
| `create_pack` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/create-pack.md |
| `create_project` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/create-project.md |
| `create_sites` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/create-sites.md |
| `generate_site_image` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/generate-site-image.md |
| `refine_pack` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/refine-pack.md |
| `rename_site` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/rename-site.md |
| `rename_sites` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/rename-sites.md |
| `social_post_article` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/social-post-article.md |
| `sync_project_faq` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/sync-project-faq.md |
| `update_project` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/update-project.md |
| `update_site_brand` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/update-site-brand.md |
| `update_site_branding` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/update-site-branding.md |
| `update_site_content` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/update-site-content.md |
| `update_site_faq` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/update-site-faq.md |
| `update_site_seo` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/update-site-seo.md |
| `update_static_pages` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/update-static-pages.md |
| `upload_image` | Write | Medium | https://policylayer.com/tools/a3plus-mcp/upload-image.md |

## Tool descriptions

- `delete_article` — PERMANENTLY delete an article from a site — no undo. Per-article CDN images are removed too (shared upload_image files are kept). Use for cleaning up failed or test drafts. To merely hide an article, use update_article with status=draft …
- `delete_sites` — Permanently delete sites by ID (e.g. clean up failed test sites) — the MCP equivalent of the dashboard trash button. Explicit siteIds only; every id must belong to the given project. This cannot be undone. Use list_sites to find the IDs.
- `list_domains` — This token is project-scoped. Pass projectId to list_sites, or call list_projects to discover the bound project. List a project's custom domains and their binding state. Returns every workable domain the project owns (status: available |…
- `remove_project_member` — Remove a project member BY EMAIL. The project owner cannot be removed.
- `update_article` — Update fields on an existing article. Only the fields you pass are changed; omitted fields stay as-is. Common patterns: flip status from draft → published, reschedule a scheduled post, replace the featured image, edit the content. Editin…
- `retry_sites` — Re-run generation for FAILED sites in a project (the MCP equivalent of the dashboard Retry button). Pass onlyFailed: true to retry every failed/cancelled site, or siteIds: [...] to retry specific ones. Only sites in a failed/cancelled st…
- `transfer_sites` — Move one or more sites — and ALL their data (articles, analytics, GSC history, images, snippets…) — from one of your projects to another. IRREVERSIBLE side effects: every PUBLISHED article on the site is set back to DRAFT (it disappears …
- `audit_project_articles` — Audit ALL articles across a whole project in a single paginated call, plus counts by status — instead of calling list_articles once per site (which is slow at 100+ sites). Returns a slim summary per article (siteId, title, slug, status, …
- `bind_domain` — Bind one or more of YOUR tracked domains to sites in a project (Cloudflare zone + registrar nameserver flip, then background completion — the domain typically goes live within minutes once NS propagates; poll list_domains for binding → b…
- `bredgio_list_agents` — List the user's Bredgio agents — each agent is a browser (with the Bredgio extension installed and logged into their social accounts) that can post. You need an agent's id to post. An agent must be online for a post to go through.
- `bredgio_logout` — Forget the locally-stored Bredgio token on this computer. The user will need to bredgio_login again to post.
- `bredgio_status` — Check whether you are logged in to Bredgio and show the current account (email, plan). Use this to confirm setup before posting.
- `bredgio_task_status` — Check the status + log of a Bredgio post task (from bredgio_post). Shows pending/dispatched/running/completed/failed and the resulting post URL or error.
- `get_article` — Fetch a single article including its full markdown content, meta description, and tags. Use this when the user asks to "show me article X" or to review before editing. Set includeBlocks:true to also get the structured block body (heading…
- `get_intake_schema` — Return the field spec for spreadsheet-driven site creation: the shared brand-profile + FAQ fields a project needs (create_project), and the per-site copy fields YOU (the assistant) must generate (create_sites). Call this FIRST when the u…
- `get_pack` — Fetch one design pack by id and its previewUrl. For a pack YOU own, the response also includes template: { home, css, tokens } — the editable source. To refine a pack: call get_pack, edit template.home / template.css, then refine_pack wi…
- `get_playbook` — Fetch one playbook's full step-by-step operating procedure by name (see list_playbooks). Follow the returned steps in order, using the exact tools it names, and report progress to the user in their language.
- `get_project` — Read a project's shared brand profile + FAQ (under the same spreadsheet api_key field names create_project / update_project use), so you can review or edit them. Also reports missingBrandFields. Use before update_project to see current v…
- `get_project_readiness` — Report what is still missing before a project's sites are complete: blank brand-profile fields, FAQ gaps, and per-site missing copy fields. Use it to tell the user exactly what to fill in (relay the blockers list), and to confirm readyTo…
- `get_site_brand` — Read one site's brand identity — brandName, description, industry, targetAudience, tone, CTA URL/labels, market, products, keywords, topicScope, imageQueries. Call before update_site_brand so you send back the full value of any list you …
- `get_site_content` — Read a site's visitor-facing page copy — the home hero (heroTitle, heroSubtitle, ctaText, tagline, metaDescription, shortDescription) and about copy (aboutTitle, aboutText, aboutParagraphs, metaDescription, shortDescription) — plus read-…
- `get_site_faq` — Read a site's FAQ — the Q&A list shown on /faq that powers FAQPage structured data (what answer engines / AI assistants read for AEO). Read this before update_site_faq so you can keep existing entries when adding new ones (update replace…
- `get_site_seo` — Read a site's SEO snapshot in one call — the live URLs (home, sitemap, robots, faq), domain + Search Console status, article counts by status, FAQ coverage, E-E-A-T identity (company/contact/country), and home page meta. Use this FIRST t…
- `get_static_pages` — Read the content of a site's fixed trust pages — Privacy, Terms, Disclaimer (each a list of {heading, paragraphs}) and Contact (an intro). These are real standalone pages (/privacy, /terms, /disclaimer, /contact), not blog posts. Read th…
- `gsc_search_analytics` — Flexible LIVE Search Console query for one site — the escape hatch when gsc_site_detail isn't the breakdown you need. You pick the dimensions (≤3 of query, page, country, device, date, searchAppearance) and the window. Example: dimension…
- `gsc_site_detail` — LIVE Google Search Console snapshot for ONE site: headline totals (clicks/impressions/CTR/avg position), top queries, top pages, and a daily trend. Data is fetched fresh from Google (not cached), so prefer a reasonable days window. The s…
- `gsc_sites` — List a project's sites with their Google Search Console binding status. Sourced from the DB (no live Google query — fast and quota-free). ALWAYS call this FIRST before gsc_site_detail / gsc_search_analytics: a site only has GSC data when…
- `gsc_zero_data_sites` — ONE-CALL project health triage: which GSC-bound sites have NO search data at all, which stopped getting data, and which have a BROKEN data sync. Reads the local snapshot store — instant, no Google quota. Buckets, worst→best: sync_error (…
- `index_coverage_report` — GSC-style "why pages are not indexed" report — the same reason categories as Search Console's Page indexing screen ("Crawled - currently not indexed", "URL is unknown to Google", "Not found (404)", …) with counts and sample URLs. Pass si…
- `list_articles` — List articles previously published to a specific site. Returns a summary (no full markdown body — use get_article for that). Useful for "what have I already written about X?" probes before drafting a new article.
- `list_pack_categories` — List the fixed pack-category taxonomy — each { id, label, labelZh, group }. Use an id to filter list_packs by category, or to help the user pick a design style by industry (e.g. gambling → casino/slots/poker).
- `list_packs` — List design packs from the version library so you can pick one per site for create_sites (pass its id as packId), or browse the user's own packs ("my version library"). Filter with owner (all = official + the user's own, mine = only the …
- `list_playbooks` — List the guided operating procedures (playbooks) this MCP ships — e.g. 专案健检, 收录诊断, 整站换图, SEO 周报. When the user asks for something a playbook covers, call get_playbook and FOLLOW IT STEP BY STEP instead of improvising. Designed for non-te…
- `list_project_members` — List a project's members — the owner plus any editors — with email, name, and role. Use before add/remove to see who already has access.
- `list_projects` — This token is project-scoped. Pass projectId to list_sites, or call list_projects to discover the bound project. Returns every A3Plus project this token can access. For PATs that is all of the user's owned/member projects; for project-sc…
- `list_sites` — This token is project-scoped. Pass projectId to list_sites, or call list_projects to discover the bound project. List all sites in a specific A3Plus project. Returns siteId, name, public URLs, language, tags, and article count for each s…
- `unbind_domain` — Release a custom domain from the site it is currently bound to. The site keeps serving on its a3plus test domain; the released domain returns to the SAME project's inventory as available, ready for bind_domain. This is step 1 of moving a…
- `a3plus_connect` — Connect this computer to an A3Plus account when no API key is configured — no manual key copying. It returns a short code and a link; the user opens the link (signed in to A3Plus), picks a project, and approves. The granted key is scoped…
- `a3plus_connect_check` — Finish a pending a3plus_connect: checks whether the user has approved the device in the browser yet. On approval it saves the project key locally and reports the connected project. Call this after the user says they approved.
- `add_project_member` — Add an existing A3Plus account as a project editor, BY EMAIL (idempotent — re-adding is a no-op). The email must already have an A3Plus account; inviting unregistered emails is out of scope (ask them to register first).
- `bredgio_login` — Log in to Bredgio (our social-posting service) with email + password. The credentials are exchanged once for an access token that is stored locally — the password is never stored and never sent again. Do this once per computer; afterward…
- `bredgio_post` — Dispatch a social post through one of the user's Bredgio agents (browsers). Returns a taskId — poll bredgio_task_status to see it go pending → running → completed (with the live post URL). The agent must be online. Use bredgio_list_agent…
- `bredgio_register` — Create a Bredgio account so you can auto-post content to social platforms (Facebook, and more) from the user's own browser. Bredgio is our companion posting service. After registering you are logged in automatically (the token is stored …
- `create_article` — Publish, draft, or schedule a new article on an A3Plus site. status is required and must be one of draft, published, or scheduled. For scheduled, you must also pass a future publishedAt ISO timestamp. content is markdown. The article URL…
- `create_pack` — Create a new PRIVATE design pack in the user's "version library" — YOU (the AI) design it, then pass the HTML + CSS. The server sanitizes (never executes) and stores it, returning { packId, status:"ready", previewUrl } immediately (no po…
- `create_project` — This token is project-scoped. Pass projectId to list_sites, or call list_projects to discover the bound project. Create a new A3Plus project carrying the SHARED brand profile + FAQ (the data filled once per brand in the intake spreadshee…
- `create_sites` — Batch-create sites in a project. YOU supply each site's enriched copy + chosen pack; the A3Plus backend runs NO copy-generation AI (it skips enrichment because you provided the content). The shared brand profile + FAQ already live on the…
- `generate_site_image` — AI-GENERATE an image for a site (server-side ComfyUI pipeline; no external image needed). Describe the image in the prompt (English works best), get back a permanent CDN URL. Generation is synchronous and takes 20–60 seconds — generate i…
- `refine_pack` — Refine a pack you OWN, in place — YOU edit the design and pass the full updated html (+ css). First call get_pack to fetch the current template.home / template.css, apply your change (fix layout, add a section, tweak copy, add CSS motion…
- `rename_site` — Rename ONE site's dashboard label — the name shown in the project site list and returned by list_sites (e.g. change "Site 1" to "Acme Blog"). This is the internal/organisational name only; it does NOT change the public brand name rendere…
- `rename_sites` — This token is project-scoped. Pass projectId to list_sites, or call list_projects to discover the bound project. Batch-rename multiple sites' dashboard labels in ONE call — the efficient way to relabel many sites (e.g. map "Site 1…N" to …
- `social_post_article` — Bridge an A3Plus article straight to a social post via Bredgio: fetches the article, builds a post (title + link, optionally the excerpt), and dispatches it through the chosen Bredgio agent. This is the one-shot way to turn published A3P…
- `sync_project_faq` — Set the SAME /faq Q&A list on EVERY site in the project in ONE call — update the FAQ once, propagate to all site pages (req 4a). Writes each site's /faq page + FAQPage structured data. NOTE: this syncs SITE PAGES only; already-published …
- `update_project` — Update a project's shared brand profile, company/legal contact info, and/or FAQ (the data behind the dashboard "Brand Profile" + "FAQ Settings" panels). Field names match the spreadsheet api_key column; send ONLY the fields you want to c…
- `update_site_brand` — Update ONE site's brand identity. This is per-site — unlike update_project, which fans the same values out to every site in the project. Editable: brandName, description, industry, targetAudience, tone, mainWebsiteUrl, ctaUrl, ctaTextOpt…
- `update_site_branding` — Replace a site's logo, favicon and/or homepage hero background image. Changes take effect within a few minutes. Perfect for batch-swapping branding across many sites from your own image library: call once per site. Each image is RE-HOSTE…
- `update_site_content` — Update a site's visitor-facing page copy (home hero, "Why Choose Us" features, post-FAQ CTA block, header nav links, glossary + about page). Changes take effect within a few minutes. Pass home and/or about objects carrying only the field…
- `update_site_faq` — Replace a site's FAQ (Q&A list). This is the highest-leverage AEO/GEO lever: the list powers the /faq page AND its FAQPage structured data, which answer engines and AI assistants pull from directly. Send the COMPLETE list you want live —…
- `update_site_seo` — Update one site's SEO/content-generation settings — the block that steers how future articles are written. Editable: disclaimer, brandIntro, customInstructions, titleHint, descriptionHint, targetKeywords, internalLinkUrls, executionMode …
- `update_static_pages` — Edit the CONTENT of a site's trust pages for SEO/AEO/GEO. You can change the words; you cannot change the structure (the page set and routes are fixed, no new pages). Pass any subset of privacy/terms/disclaimer/contact — each provided pa…
- `upload_image` — Upload an image to A3Plus CDN (Cloudflare R2) and get back a permanent URL. Use this when the image source is WAF-protected (server-side fetch returns 403) or when you have the image bytes locally. Pass EITHER base64 (raw base64 or data:…

## Related servers

- Delx Mcp A2a (1082 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a.md
- Delx Protocol — Agent Recovery & Continuity (1076 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-protocol.md
- Delx MCP Server (740 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server.md
- Binance MCP Server (734 tools) — https://policylayer.com/tools/nirholas-binance-mcp.md
- Yaver (664 tools) — https://policylayer.com/tools/io-github-kivanccakmak-yaver.md
- Chaoxing Agent (565 tools) — https://policylayer.com/tools/chaoxing-agent.md
- GoHighLevel MCP Server (559 tools) — https://policylayer.com/tools/busybee3333-go-high-level-mcp-2026-complete.md
- Spotify (544 tools) — https://policylayer.com/tools/novalux12-spotify-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=a3plus-mcp · API: https://policylayer.com/registry/api · Recommended policies for every tool: https://policylayer.com/policies/a3plus-mcp
