Bridgistic MCP server
io.github.Shubochandrosarker/bridgistic·v1.2.0Connect Claude to WordPress safely: signed requests, scoped keys, approvals, logs, snapshots.
93 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-11-03 · 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
- Maintenancerepository not readable: repo not found3/15
- Maintainer identityno repository or website to verify2/10
How Bridgistic compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 55/100
- higher than 10% of 48,243 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
- 93
- more than 61% of 12,306 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
Bridgistic: common questions
- Is Bridgistic MCP server safe?
- With care: it is graded C, so read the findings first (55/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 latest release is v1.2.0.
- How does Bridgistic compare with other MCP servers?
- safety score 55/100 (higher than 10% of 48,243 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.