weworking
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
weworking
Your AI agent books your WeWork desk. I'm on All Access, and every morning my agent reads my calendar, picks the building that fits the day, and books a desk there. This Worker makes that happen: it talks to WeWork with your own account and hands any agent six MCP tools to do the same, with caps that stop it spending what you didn't approve.
Unofficial. Not affiliated with WeWork. It uses the same private endpoints the WeWork web app uses, they can change without notice, and you are responsible for your own account and for WeWork's terms. See the threat model before deploying.
Get started
1. Deploy.
The button clones this repo into your GitHub, creates the storage it needs, asks for the three required secrets, and deploys. Or from a terminal:
git clone https://github.com/jitpal/weworking.git && cd weworking && npm install
npx wrangler login
cp wrangler.jsonc wrangler.local.jsonc # your copy; the first deploy fills in its KV id
npx wrangler secret put ADMIN_PASSWORD # your sign-in for the admin pages
npx wrangler secret put QUOTE_SIGNING_KEY # openssl rand -hex 32
npx wrangler secret put COOKIE_SIGNING_KEY # openssl rand -hex 32, a different one
npm run deploy2. Connect WeWork. Open https://<your-worker>/admin and sign in. Either set WEWORK_USERNAME and WEWORK_PASSWORD as secrets so the Worker signs in by itself, or, if your WeWork account has two-factor authentication or you would rather not store the password, paste a session: sign in to WeWork in your browser, click the bookmarklet from the connect page, paste. It takes a minute and lasts for weeks.
3. Give your agent access. Create an API key on /admin/keys and add the server:
claude mcp add --transport http weworking https://<your-worker>/mcp \
--header "Authorization: Bearer ww_..."Or use OAuth instead of a key. Run the same command without the header and approve it in the browser. claude.ai and ChatGPT connectors only support OAuth. Other clients: docs/CLIENTS.md.
4. Ask. "Find me a desk near Times Square on Tuesday." "Book the first one." "What do I have booked this week?"
Related MCP server: bookings-mcp
Safety
An agent with access to this can spend your money, so the defaults assume the worst and you loosen them on purpose.
It can only book what it just showed you. Search returns a signed quote for each option and booking accepts nothing but that quote. The price you saw is the price re-checked at booking time, and a quote dies after ten minutes.
One desk a day, seven a week, and nothing that costs money. All Access desks are free, so those go through. A second desk on the same day costs a credit and is refused. Cash bookings on pay-as-you-go plans are refused until you set
MAX_CASH_PER_BOOKING. All four limits live inwrangler.jsoncand the Durable Object enforces them, not the agent.Keys are scoped and revocable. A
readkey can search but never book. Revoke any key with one click on/admin/keys. Only a hash of each key is stored.Your credentials never reach the model. The WeWork session lives in a Durable Object in your own Cloudflare account. No tool result, error, or log line contains it.
A kill switch and an audit log.
WRITE_ENABLED=falsemakes the whole deployment read-only in one deploy. Every search, booking, and cancellation is recorded on/admin/audit.The agent is told the rules. The server's instructions and the bundled skill say: show the cost, get a yes, never retry a booking blindly, and remind the user that a booking can be cancelled free until 11:59pm the day before.
How it works
You deploy the Worker to your own Cloudflare account. The agent authenticates to the Worker, the Worker holds your WeWork session in a Durable Object, and every tool call becomes requests to WeWork on your behalf.
sequenceDiagram
participant A as Agent
participant W as Worker
participant D as Durable Object
participant X as WeWork
A->>W: tool call with API key or OAuth token
W->>D: session token, caps, audit
W->>X: search, quote, book
W-->>A: options, prices, booking idsSix tools: whoami, list_locations, search_availability, create_booking, list_bookings, cancel_booking. The whole loop, search to booking to cancellation, is verified live on an All Access account. The typical flow is search_availability by city, coordinates, or building, show the user the options with prices, get a yes, create_booking with the quote. A REST mirror lives under /api with an OpenAPI document. Details in docs/API.md.
What it does not do
Meeting rooms and private offices. Hot desks only.
Pay-as-you-go (On Demand) bookings are untested. Searching and pricing in local currency is verified on an On Demand account, and the booking path is the same code that is verified on All Access, but no cash booking has been made yet. Set
MAX_CASH_PER_BOOKINGbefore trying.More than one WeWork account per deployment. This is by design.
Automatic sign-in for accounts with two-factor authentication. Paste a session instead.
Docs
Self-hosting and troubleshooting · Connecting clients · API reference · Location and time rules · Threat model · Security policy
A personal project
This is built for my own use and shared as is. Bug reports are welcome as issues. Pull requests are not accepted and are closed automatically; fork it and change whatever you like, the license allows it. Security problems can be reported privately, see SECURITY.md.
Thanks
The request flow follows dvcrn/wework-cli, the reference implementation for the WeWork login and booking sequence, with details from hotdesker and jeromewir/webook. None are affiliated with this project.
MIT. See LICENSE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Hire AI workers that run on schedule, report back and act with your OK. Or deploy private models.
Persistent cloud workspaces for AI agents: run commands, edit files, use git and a browser.
Run AI agent tasks in isolated sandboxes with a cost cap, saved workflows and scoped connections.
The bridge from K2 agents through Wrangler to your master AI - safe, approval-gated Cloudflare ops.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI sessions like Claude, Cowork, and Claude Code to pass tasks and replies between each other through per-session mailboxes, and to keep a shared knowledge base of notes that every session can read, search, and update. Runs as a self-hosted Cloudflare Worker with D1 storage, so all data stays in the user's own account.51 npmMIT
- AlicenseAqualityCmaintenanceEnables AI agents to browse customers, bookings, and availability while any booking creation or cancellation stays gated behind a human-approved, single-use token cryptographically bound to the exact arguments. Runs over stdio or Streamable HTTP and enforces the read/write separation in host code with a full audit trail.7MIT
- AlicenseNot gradedqualityBmaintenanceLets an AI agent search and read your own WhatsApp chats from a self-hosted Cloudflare Worker, with full-text search across all messages, per-chat paging, and the ability to save contact names for numbers that appear unnamed. It is read-only, so it can never send messages on your behalf.47 npm415MIT
- AlicenseAqualityBmaintenanceEnables coding agents to author, validate, deploy, run, and observe automation workflows as Cloudflare Workers in the user's own Cloudflare account, with browser approval and secret-safe connection setup.2890 npmApache 2.0