Multiple sites (one connection)
New in @msrbuilds/emcp-proxy 1.9.0. Instead of one WP_URL, give the proxy a site registry and switch between installs mid-session, ideal for agencies managing many client sites from a single Claude session.
Configure a registry
Section titled “Configure a registry”Set EMCP_SITES to a JSON map of aliases → credentials (or point EMCP_SITES_FILE at a JSON file with the same shape):
{ "mcpServers": { "emcp-tools": { "command": "npx", "args": ["-y", "@msrbuilds/emcp-proxy@latest"], "env": { "EMCP_SITES": "{\"acme\":{\"url\":\"https://acme.com\",\"username\":\"admin\",\"appPassword\":\"xxxx xxxx xxxx xxxx\"},\"globex\":{\"url\":\"https://globex.com\",\"username\":\"admin\",\"appPassword\":\"yyyy yyyy yyyy yyyy\"}}", "EMCP_DEFAULT_SITE": "acme" } } }}EMCP_DEFAULT_SITE picks which site the session starts on (defaults to the first entry). Single-site WP_URL mode is unchanged and adds none of the tools below.
The Connection wizard on each site generates single-site configs only, so write the registry by hand. For each site, create an application password in EMCP Tools → Connection (choose Application password in step 2, then Create password in step 3; it is shown once) or under Users → Profile → Application Passwords.
Two extra tools appear
Section titled “Two extra tools appear”When more than one site is configured, the proxy injects two tools:
emcp_list_sites: list the configured sites and which one is active.emcp_use_site: switch the active site ({ "site": "globex" }); every subsequent tool call targets it.
The proxy keeps a separate session per site and initializes each one transparently on first use, so switching “just works” without re-connecting.
Example
Section titled “Example”User: List my sites.AI → emcp_list_sites → [acme (active), globex]
User: Switch to globex and audit the homepage.AI → emcp_use_site { site: "globex" }AI → get-page-snapshot { post_id: … } // now runs against globexPer-call routing
Section titled “Per-call routing”New in @msrbuilds/emcp-proxy 1.10.0. Instead of switching the active site with emcp_use_site and running several calls against it, pass site: "<alias>" as an extra argument on any tool call to route just that one call, without changing the session’s active site:
AI → get-page-snapshot { post_id: 12, site: "globex" } // this call onlyAI → list-pages { } // still targets the previously active siteUseful for one-off cross-site lookups (a comparison, a spot-check) where switching the whole session would be overkill.
Security
Section titled “Security”Each .mcpb bundle and each registry entry embeds a WordPress application password in plaintext. Treat these configs and bundle files as secrets (don’t commit them to git or leave them in cloud-synced folders). See Claude Desktop for the one-click bundle flow, which now also names each site’s bundle uniquely so multiple sites install side by side.
