wp-mcp-gateway
wp-mcp-gateway (версия для Cloudflare Workers)
Та же идея, что и в Node-версии: один MCP-эндпоинт, каждый вызов инструмента принимает site_id, так что один коннектор Claude покрывает весь ваш парк WordPress. Эта версия работает на Cloudflare Workers вместо VPS — не нужно патчить сервер, бесплатного тарифа с запасом хватает, и она доступна по URL на workers.dev через пару минут после запуска wrangler deploy.
Она построена на текущем рекомендуемом подходе Cloudflare: обработчик без состояния createMcpHandler из SDK agents (старый подход с сохранением состояния — McpAgent / Durable Objects — объявлен устаревшим для новых серверов; этому шлюзу состояние сессии всё равно не нужно, так как каждый вызов инструмента независим).
Проверено локально от начала до конца перед сдачей: Worker запускается, /health отвечает, рукопожатие MCP initialize работает, аутентификация по bearer-токену корректно отклоняет отсутствующие/неверные токены и пропускает правильный, а list_sites возвращает реальные данные из тестового SITES_JSON.
1. Предварительные требования
npm install -g wrangler # or just use npx wrangler as shown below
wrangler login # opens a browser to authenticate with your Cloudflare accountЕсли у вас ещё нет аккаунта Cloudflare, зарегистрируйтесь бесплатно на https://dash.cloudflare.com/sign-up — бесплатного тарифа (100 000 запросов в день) более чем достаточно для этого.
2. Установка зависимостей
cd wp-mcp-gateway-cf
npm install3. Настройка ваших сайтов
В отличие от Node-версии, у Workers нет файловой системы, поэтому реестр сайтов хранится в секрете (SITES_JSON), а не в файле. Формат прежний — одна запись на сайт:
{
"town-green": {
"label": "Town Green",
"baseUrl": "https://town-green.org",
"username": "mcp-agent",
"appPassword": "xxxx xxxx xxxx xxxx xxxx xxxx",
"host": "wpengine"
},
"cra": {
"label": "CRA",
"baseUrl": "https://cra.com",
"username": "mcp-agent",
"appPassword": "xxxx xxxx xxxx xxxx xxxx xxxx",
"host": "gridpane"
}
}Соберите такой JSON для всех ваших сайтов (скрипт для преобразования электронной таблицы в JSON легко написать, как только вы сгенерируете Application Passwords для каждого сайта — спросите, если нужен такой скрипт), затем установите его как секрет:
npx wrangler secret put SITES_JSON
# paste the whole JSON blob when prompted, then press Ctrl+DApplication Passwords: в wp-admin: Users → your user → Application Passwords. Рекомендация прежняя — используйте отдельного пользователя WP с низкими привилегиями для каждого сайта, а не ваш личный админ-аккаунт, чтобы утёкший токен не мог сделать больше, чем позволяет эта роль.
4. Установите токен аутентификации шлюза
npx wrangler secret put GATEWAY_TOKEN
# paste a long random value, e.g. output of: openssl rand -hex 32Без этого значения эндпоинт работает без аутентификации — это нормально для первого локального теста, но никогда для развёрнутой версии.
5. Локальное тестирование
npx wrangler devЭто запускает локальный dev-сервер (по умолчанию http://localhost:8787). Для локального тестирования поместите ваши секреты в файл .dev.vars (никогда не коммитьте его):
GATEWAY_TOKEN=some-local-test-token
SITES_JSON={"town-green":{"label":"Town Green","baseUrl":"https://town-green.org","username":"mcp-agent","appPassword":"xxxx"}}Проверьте, что он жив:
curl http://localhost:8787/health6. Деплой
npx wrangler deployWrangler выведет ваш рабочий URL, примерно так:
https://wp-mcp-gateway.<your-subdomain>.workers.devВаш MCP-эндпоинт: https://wp-mcp-gateway.<your-subdomain>.workers.dev/mcp.
7. Добавьте его как коннектор в Claude
Добавьте кастомный коннектор, указывающий на URL /mcp, с заголовком Authorization: Bearer <GATEWAY_TOKEN> (то же значение, которое вы задали в шаге 4).
С этого момента для запроса «покажи черновики записей на cra.com» Клоду достаточно вызвать list_sites (или уже знать id), а затем list_posts с site_id: "cra" — поведение то же, что и в Node-версии, только размещено на edge.
Обновление сайтов позже
Чтобы добавить новый сайт или изменить учётные данные, выполните повторно:
npx wrangler secret put SITES_JSONПовторный деплой не нужен — секреты обновляются независимо от кода Worker.
Примечания, характерные для этого развёртывания
Ни файловой системы, ни долгоживущих процессов — весь реестр хранится в секрете
SITES_JSONи разбирается заново при каждом запросе. Стоимость ничтожна даже при ~80 сайтах.Без состояния по построению — каждый MCP-запрос создаёт свежий экземпляр сервера (согласно текущим рекомендациям Cloudflare); нет межзапросной сессии, которую можно потерять.
WAF-флаги на управляемых хостингах — та же оговорка, что и в Node-версии: WP Engine в особенности может помечать трафик с незнакомого диапазона IP-адресов, обращающийся к REST API. Если сайт возвращает 403 только при обращении через этот шлюз, это первое, что стоит проверить в поддержке WP Engine — если нужно, имеет смысл добавить исходящие диапазоны Cloudflare в белый список.
Охват инструментов — этот шлюз общается только с основным WP REST API (
/wp/v2/...). Никаких операций через WP-CLI, SSH или на уровне базы данных — Workers в любом случае не может устанавливать исходящие SSH-соединения, так что для этого понадобится совершенно другой компонент, если он вам понадобится позже.
Чек-лист безопасности перед подключением Claude к развёрнутому URL
GATEWAY_TOKENустановлен черезwrangler secret put, длинный и случайныйSITES_JSONиспользует отдельного пользователя WP с низкими привилегиями для каждого сайта.dev.vars(если вы использовали его локально) находится в.gitignoreи никогда не коммититсяВы протестировали на 2–3 сайтах, прежде чем масштабировать секрет на все ~80
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Turn Claude or ChatGPT into a website builder that ships a real site to a live URL you own.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
The bridge from K2 agents through Wrangler to your master AI - safe, approval-gated Cloudflare ops.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/118group/wp-mcp-gateway'
If you have feedback or need assistance with the MCP directory API, please join our Discord server