Bridgistic MCP server
io.github.Wordpressistic/bridgistic·v1.5.2Connect Claude to WordPress safely: signed requests, scoped keys, approvals, logs, snapshots.
0 stars66 downloads/wk
Reviews
Write oneNobody has reviewed Bridgistic yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Bridgistic tools (54, 25 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
bridgistic_approval_statusCheck whether a queued operation has been approved. Returns status: pending | approved | rejected | executed. When approved, retry the ORIGINAL tool call with the same args plus approval_id to execute it.
bridgistic_create_postwrite actionCreate a post/page/CPT. Scope: `posts:write`. Args: title, content, excerpt, status (draft|publish|...), slug, type, author, parent, meta (object). Supports dry_run and approval flow.
bridgistic_create_userwrite actionCreate a user. Scope: `users:write`. Args: login, email (both required), role (default subscriber), display_name, password (auto-generated if omitted). Supports dry_run + approval.
bridgistic_db_querywrite actionExecute SQL against the site database. The bridge classifies the statement: SELECT/SHOW/EXPLAIN/DESCRIBE/WITH need `db:read`; anything else needs `db:write`. Writes are routed through the Guard: dry_run previews impact in a rolled-back transaction, destructive writes auto-snapshot the affected table(s), and approval applies if the key requires it. Args: - sql (string): a single SQL statement using
bridgistic_delete_mediawrite actionPermanently delete an attachment by id. Scope: `media:write`. Auto-snapshots first.
bridgistic_delete_postwrite actionTrash (default) or permanently delete a post. Scope: `posts:write`. Auto-snapshots first. Set permanent=true to skip trash. Supports dry_run + approval.
bridgistic_execute_phpwrite actionRun PHP inside the full WordPress runtime ($wpdb, all functions, loaded plugins). Highest-privilege tool; requires the key's `php:execute` scope. Use `return` to surface a value; echoed output is captured separately. Args: - code (string): PHP to run. A leading "<?php" is optional. - site (string, optional): target alias. Returns: { output, return, errors[], exception, elapsed_ms }. Use when: a ta
bridgistic_fs_deletewrite actionDelete a file inside ABSPATH. Scope: `fs:write`. High-risk: always routes through approval and snapshots the file first. Supports dry_run.
bridgistic_fs_listList files/dirs under a path (confined to ABSPATH). Scope: `fs:read`.
bridgistic_fs_readRead a file's contents (≤5MB, inside ABSPATH). Scope: `fs:read`.
bridgistic_fs_writewrite actionWrite a file inside ABSPATH. Scope: `fs:write`. PHP files may ONLY be written inside the uploads/bridgistic-sandbox dir. Overwrites auto-snapshot the old file. Supports dry_run + approval.
bridgistic_get_optionRead a wp_options value BY NAME. Scope: `options:read`. The name must be in the site's allowlist (WP Admin → Bridgistic → Settings) — secrets are unreadable by design.
bridgistic_get_postwrite actionFetch one post/page/CPT by id with full content + meta. Scope: `posts:read`.
bridgistic_get_site_infoDiscover a site's stack before acting: WP/PHP versions, active theme, installed plugins (active flag), and detected frameworks (WooCommerce, Elementor, ACF). Read-only; requires the key's `site:read` scope. Always call this first on an unfamiliar site.
bridgistic_list_mediaList attachments (id/title/mime/url). Scope: `posts:read`. Args: per_page, page.
bridgistic_list_pluginsList installed plugins with active flag + version. Scope: `plugins:manage`.
bridgistic_list_postsList content with pagination. Scope: `posts:read`. Args: post_type (default 'post'), status (default 'any'), search, per_page (≤100), page. Returns id/title/type/status/slug/link + total + has_more.
bridgistic_list_sitesList the WordPress sites this bridge can operate on, by alias. Use the returned alias as the `site` parameter in other tools. Returns no secrets.
bridgistic_list_usersList users (id/login/email/display_name/roles). Scope: `users:read`. Never returns passwords. Args: search, per_page, page.
bridgistic_memory_deletewrite actionRemove a memory note by key (+optional category). Scope: `memory:write`.
bridgistic_memory_getRead one memory note by key (+optional category). Scope: `memory:read`.
bridgistic_memory_listList stored memory notes, optionally filtered by category. Scope: `memory:read`. Call at the start of a session to recall what's known about a site.
bridgistic_memory_setPersist a fact about this site for future sessions (conventions, IDs, client preferences, quirks). Scope: `memory:write`. Args: key (required), value (any JSON), category (default 'general'). Overwrites the same category+key.
bridgistic_playbook_deletewrite actionDelete a playbook by slug. Scope: `playbook:manage`.
bridgistic_playbook_getFetch one playbook incl. its steps. Scope: `playbook:manage`.
bridgistic_playbook_listList saved playbooks (slug/name/description). Scope: `playbook:manage`.
bridgistic_playbook_runwrite actionExecute a saved playbook. Scope: `playbook:manage`; each step also enforces its own scope + the Guard. Args: - slug, vars (object of run inputs) - dry_run (preview every step), force (skip snapshot aborts) - approvals: { "<step ref>": "<approval_id>" } to resume a step that paused for approval. If a step needs approval the run pauses and returns { status: "paused_for_approval", paused_at, approval
bridgistic_playbook_saveStore an ordered, parameterised sequence of bridge operations for replay. Scope: `playbook:manage`. Each step = { method, route, params, save_as }. Use templates in params: - {{vars.NAME}} → a run-time input - {{steps.REF.data.result.id}} → a value from an earlier step's result envelope Example steps (create a landing page then set it as the front page): [ { "method":"POST","route":"posts","params
bridgistic_schedule_createwrite actionRun a saved playbook unattended on a recurrence (WP-Cron). Scope: `schedule:manage`. The schedule runs under THIS key's current scopes, so the key must hold the scopes every step needs. Args: - playbook (slug), recurrence (once|bridgistic_5min|bridgistic_15min|bridgistic_30min|hourly|twicedaily|daily|weekly) - vars (object passed to the run), start_at (unix seconds, optional first-run time) - dry_
bridgistic_schedule_deletewrite actionRemove a schedule and unregister its cron event. Scope: `schedule:manage`.
bridgistic_schedule_listList scheduled playbooks with recurrence, next/last run, and last status. Scope: `schedule:manage`.
bridgistic_schedule_run_nowwrite actionTrigger a scheduled playbook immediately (does not change its recurrence). Scope: `schedule:manage`. Useful to test a schedule end-to-end.
bridgistic_schedule_togglePause or resume a schedule without deleting it. Scope: `schedule:manage`.
bridgistic_snapshot_createwrite actionManually capture reversible state before a risky change. Scope: `snapshot:manage`. Types + target: - post { id } - user { id } - option { name } - tables { tables: ["wp_options", ...] } (≤50k rows each) - file { path } Returns a snapshot_id for bridgistic_snapshot_restore.
bridgistic_snapshot_deletewrite actionDelete a stored snapshot by id (frees space; cannot be restored after). Scope: `snapshot:manage`.
bridgistic_snapshot_listList recent snapshots (auto + manual) with id/type/label/size/created/restored. Scope: `snapshot:manage`.
bridgistic_snapshot_restoreRoll back to a snapshot by id (undo a write/delete). Scope: `snapshot:manage`. Use the snapshot_id returned by a write tool or by bridgistic_snapshot_create / bridgistic_snapshot_list.
bridgistic_toggle_pluginActivate or deactivate a plugin. Scope: `plugins:manage`. High-risk: ALWAYS routes through approval and snapshots active_plugins first. Args: plugin (file, e.g. 'woocommerce/woocommerce.php'), state ('activate'|'deactivate').
bridgistic_update_optionwrite actionWrite a wp_options value. Scope: `options:write`. Name must be allowlisted. Auto-snapshots the old value. Supports dry_run + approval.
bridgistic_update_postwrite actionUpdate an existing post by id. Scope: `posts:write`. Auto-snapshots the post first (rollback via snapshot_id). Same fields as create. Supports dry_run + approval.
bridgistic_update_userwrite actionUpdate a user by id (email, display_name, role). Scope: `users:write`. Auto-snapshots the user first. Supports dry_run + approval.
bridgistic_upload_mediawrite actionUpload to the media library from a URL or base64. Scope: `media:write`. Provide either url, or filename + content_base64. Supports dry_run + approval.
bridgistic_usageReturn the calling key's tier, rate limit (req/min), monthly quota, and current usage (this minute / today / this month + top actions). Call before large batch operations to avoid hitting the quota mid-run.
bridgistic_woo_create_productwrite actionCreate a simple product. Scope: `woo:products:write`. `name` is required; prices must be non-negative numbers. Supports dry_run to preview the fields that would be set, and the approval queue when the key requires it. Publishes only if you pass status='publish' — the store's own default applies otherwise.
bridgistic_woo_get_customerFetch a single customer by user id with order count, lifetime spend, billing/shipping country and city, and last order date. Scope: `woo:customers:read`. Street addresses, phone numbers, password hashes, and payment methods are not exposed.
bridgistic_woo_get_orderwrite actionFetch a single order by id with its line items, shipping and tax totals, customer note, and payment method name. Scope: `woo:orders:read`. Payment tokens, transaction ids, and card data are never included.
bridgistic_woo_get_productFetch a single product by id, including description, categories, tags, attributes, and every variation's own price and stock. Scope: `woo:products:read`. For a variable product, the variation list is usually the real answer to "is this in stock?".
bridgistic_woo_inventory_statusOut-of-stock and low-stock products in one call, with counts. Scope: `woo:analytics:read`. `low_stock_threshold` defaults to the store's own low-stock setting. Only stock-managed products can be low, so unmanaged products are counted separately rather than reported as zero.
bridgistic_woo_list_customersList users with the customer role, newest-first, with their order count and lifetime spend. Scope: `woo:customers:read`. Args: search (name/email/login), per_page (≤100), page. Password hashes, session tokens, and payment methods are never returned.
bridgistic_woo_list_ordersList orders newest-first. Scope: `woo:orders:read`. Args: status (comma-separated, e.g. 'processing,completed'), customer_id, after (Y-m-d or ISO 8601), per_page (≤100), page. Returns id/number/status/total/currency/created/customer plus billing name, email, and country. Full addresses and payment details are never returned.
bridgistic_woo_list_productsList store products with pagination. Scope: `woo:products:read`. Args: search, status (draft|publish|...), stock_status (instock|outofstock|onbackorder), category (slug), per_page (≤100), page. Returns id/name/sku/type/status/price/stock per product plus total and has_more. Use this instead of SQL or PHP for any product question — it works the same whether or not the store uses High-Performance Or
bridgistic_woo_sales_summaryRevenue, order count, average order value, orders by status, and top products for the last N days (default 30, max 365). Scope: `woo:analytics:read`. Counts only processing, completed, and on-hold orders — pending, cancelled, and failed orders are excluded so the revenue figure reconciles with what the store actually took. The counted statuses are echoed back in the response.
bridgistic_woo_update_order_statuswrite actionMove an order to a different status. Scope: `woo:orders:write`. The status is validated against the statuses this store actually defines, so plugin-added ones work and typos are refused with the valid list. SIDE EFFECTS: a status change fires WooCommerce hooks — customer emails, stock adjustments, and payment-gateway actions. Setting the status back afterwards does not un-send an email or un-resto
bridgistic_woo_update_productwrite actionUpdate an existing product. Scope: `woo:products:write`. Only the fields you pass are changed. Overwrites prior values, so the bridge snapshots the product first and dry_run returns an explicit before/after for exactly the fields supplied.
Public scan report
scanner v0.1.10 · 2026-10-14 · same rubric, same numbers if you re-run it
- Code scan32 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 1 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year9/10
How Bridgistic compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 85/100
- higher than 70% of 48,255 servers
- Tools
- 54
- the typical server has 7
- Tools that change things
- 46%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 66
- more than 52% of 12,191 servers with a package
What its tools let an agent do: 29 read · 25 change
Install Bridgistic in Claude Code, Cursor or VS Code
Runs npx -y bridgistic-mcp-server on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add bridgistic -- npx -y bridgistic-mcp-server
What the publisher says
From the Bridgistic repository's README, as published. We do not edit it. Read it on GitHub
Connecting Bridgistic — the complete guide
## ➡️ This repository is frozen — historical release mirror only
**All Bridgistic development — free and paid — continues at
Wordpressistic/bridgistic.** That is the
canonical repo: latest plugin zip, docs, issues, releases, and the live site
bridgistic.app. Do not open issues or PRs here.
This mirror exists because the npm package bridgistic-mcp-server v1.5.2 and the MCP
Registry entry io.github.Wordpressistic/bridgistic still reference it for provenance.
The next release will re-point them to the canonical repo. Roles and rationale:
docs/REPO-STRUCTURE.md in the canonical repo.
Branding source files and distribution rules are documented in docs/BRANDING.md.
Release history note: npm publishing ran from this repository through v1.5.2 via GitHub Actions trusted publishing; see docs/NPMTRUSTEDPUBLISHER.md. It moves to the canonical repo with the next release.
This is the single walkthrough to go from "I just installed the plugin" to "my AI assistant can safely read and edit my WordPress site." It's written for site owners, not developers — if something below doesn't match what you see, jump to Troubleshooting or run Bridgistic → Health Check first.
Read this if: you want the shortest, least error-prone path to a working connection. Skip to a specific client's page (Claude Desktop, Claude Code, Codex CLI, Gemini CLI, ChatGPT) only if you already know which one you're using and want copy-paste config details.
Before you start: two ways to connect
Bridgistic has two ways to connect an AI assistant to your site.
Use the local connection (below) if you're using Claude Desktop, Claude Code, Codex CLI, or Gemini CLI — it's the most battle-tested path and never sends your credentials anywhere but between your own computer and your own site. Use the cloud connector (WP Admin → Bridgistic → Bridgistic Cloud) only if your client can't run a local server (ChatGPT is the main case) — it's functional but hasn't had an independent security review yet, so avoid it for sites you can't afford to risk, and prefer a Read-only or Content Manager preset over Developer Mode when you do use it. See CLOUD_CONNECTOR.md for its full status.
The five-minute path (recommended for almost everyone)
This is Claude Desktop + the one-click extension — the fewest steps, no terminal, no Node.js install.
Step 1 — Install the WordPress plugin
Releases page.
- Download bridgistic-wordpress-plugin.zip from the
then Activate.
- In WordPress: Plugins → Add New → Upload Plugin, choose the zip, click Install Now,
your site's content or theme was touched.
- A new Bridgistic menu appears in your left sidebar. That confirms it worked — nothing on
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Bridgistic: common questions
- Is Bridgistic MCP server safe?
- Yes, by our scan: it is graded A (85/100). Read the Bridgistic safety report
- How do I install Bridgistic?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Bridgistic need an API key?
- Yes. The registry entry asks for
BRIDGISTIC_KEY_SECRET. - Is Bridgistic maintained?
- The last commit was 22 days ago (2026-10-13). The latest release is v1.5.2.
- How does Bridgistic compare with other MCP servers?
- safety score 85/100 (higher than 70% of 48,255 servers); tools 54 (the typical server has 7); tools that change things 46% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.