{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_c9mrn2z2k8uu","handle":"wp-db-mcp","url":"https://wellknown.network/agents/wp-db-mcp","links":{"self":"https://wellknown.network/agents/wp-db-mcp/record.json","html":"https://wellknown.network/agents/wp-db-mcp","markdown":"https://wellknown.network/agents/wp-db-mcp/record.md","api":"https://wellknown.network/api/v1/agents/wp-db-mcp","status":"https://wellknown.network/api/v1/agents/wp-db-mcp/status","claim":"https://wellknown.network/agents/wp-db-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/wp-db-mcp/claim.json","badge":"https://wellknown.network/agents/wp-db-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air::server:wp-db-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"wp-db-mcp","summary":"MCP server for WordPress MySQL/MariaDB database exploration, read-only when the connecting database user is SELECT-only","description":"# WP Database MCP\n\nMCP server for exploring WordPress MySQL/MariaDB databases — schema inspection, relationship\nmapping, and raw SQL querying. It is read-only when you point it at a `SELECT`-only database\nuser, which is how it is meant to be run; see [Security](#security) for why that grant, rather\nthan anything in this process, is what makes it read-only.\n\n## Features\n\n- Auto-detects WordPress table prefix\n- Full schema generation (JSON / CSV)\n- WordPress relationship mapping (posts, terms, meta, users, comments)\n- Raw SQL querying with SELECT-only validation as a guardrail (see [Security](#security))\n- Automatic redaction of credential-shaped values (passwords, keys, tokens, secrets)\n- Multisite support, including correct resolution of network-shared tables\n- Query timeout (MySQL and MariaDB syntax both handled) and a configurable row cap\n- Post search by title/content, with sane content-type/status defaults\n- Startup audit of the database account's grants\n- Extensible to plugin tables (WooCommerce, ACF, etc.)\n\n## Security\n\n**Read-only is enforced by the database grant, not by this server.** Create a MySQL/MariaDB\nuser that only has `SELECT`, and use that user's credentials. That grant is the actual\nsecurity boundary; everything else below is defence in depth on top of it.\n\n### The SQL validator is a guardrail, not a boundary\n\n`wp_query` runs every statement through `validate_select_only()` before execution. It rejects\nnon-`SELECT`/`SHOW`/`DESCRIBE`/`EXPLAIN` statements, DDL/DML keywords, filesystem/locking/timing\nfunctions, `SHOW GRANTS`/`SHOW VARIABLES`, MySQL \"executable comments\" (`/*! ... */`), and access\nto the `mysql`, `performance_schema`, and `sys` schemas. It is lexical analysis of a\nlanguage with a real grammar, and it exists to stop a confused model from firing off a\ndestructive statement by accident and to explain clearly why it was rejected. It is **not** a\nsandbox a determined or malicious caller cannot escape.\n\nConcretely: `aiomysql` unconditional…","publisher":null,"homepage":"https://github.com/s3rgiosan/wp-db-mcp","repository":"https://github.com/s3rgiosan/wp-db-mcp","version":"2.0.0","license":"MIT","protocols":["mcp"],"tags":["mcp","wordpress","wp","mysql","database","model-context-protocol"],"pricing":null,"endpoints":[{"url":"pypi:wp-db-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"data.database","name":"Databases","confidence":1,"provenance":"declared"},{"slug":"dev.filesystem","name":"Filesystem","confidence":0.882,"provenance":"derived"},{"slug":"security.secrets","name":"Secrets Management","confidence":0.848,"provenance":"derived"}],"categories":["data","dev","security"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"wp-db-mcp","registry":"pypi","observedAt":"2026-09-10T16:24:15.737Z","publishedAt":"2026-07-30T21:21:57.024416Z","latestVersion":"2.0.0"}},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"wp-db-mcp","url":"https://pypi.org/project/wp-db-mcp/","firstSeenAt":"2026-09-10T16:22:35.875Z","fetchedAt":"2026-09-10T16:22:35.875Z","normalizedAt":"2026-09-10T16:22:35.875Z"}]},"firstSeenAt":"2026-09-10T16:22:35.875Z","updatedAt":"2026-09-10T16:24:15.737Z"}