Skip to content
plugmcp
DirectorySkillsCategoriesBlog
EN/中文
Sign inSign up
Home/Servers/OpenWork MCP Gateway

OpenWork MCP Gateway

by com.openworklabs

Your OpenWork org's skills, plugins, workflows, and connections through one OAuth MCP URL.

Power your agent

Add this server

The publisher's own URL. Not a PlugMCP endpoint.

Server URL
https://api.openworklabs.com/mcp/agent
Provider
Add in Claude

Claude opens with the name and URL filled in. You still confirm it there.

Claude Code
claude mcp add --transport http com.openworklabs-openwork https://api.openworklabs.com/mcp/agent

Run in a terminal.

Claude Desktop
{
  "mcpServers": {
    "com.openworklabs-openwork": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.openworklabs.com/mcp/agent"
      ]
    }
  }
}

claude_desktop_config.json

Step-by-step: add this in Claude

Remote URL or a command on your machine? How the two installs differ

Run on PlugMCP

Host a copy with our keys and logs.

A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.

Launch

Related MCP

View more
  • Firecrawl🔥 Official Firecrawl MCP Server - Adds powerful web scraping and search to Cursor, Claude and any other LLM clients.
  • N
    NotionToken-auth Notion MCP: pages, databases, blocks, comments, files. Runs headless in CI and agents.
  • Context7Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors

Related skills

View all
  • reaReverse engineer anything with agents, from app behavior down to native binaries.
  • rea-changelog-updatePrepare or rewrite REA release changelogs and GitHub release notes from pinned Git history, with verified contributor thanks and Release Please synchronization.
  • rea-tool-designDesign or change REA investigation tools, CLI/MCP contracts, provider capabilities, and Evidence semantics.

Your OpenWork org's skills, plugins, workflows, and connections through one OAuth MCP URL.

OpenWork

OpenWork is the free, open-source alternative to Claude Cowork and Codex: a desktop app for macOS, Windows, and Linux where AI agents do real work on your own files. It is built on OpenCode, works with any model — 50+ providers, your own API keys, or local models via Ollama — and lets teams share skills and MCP servers.

Download OpenWork · GitHub releases · Docs

Read this in: 简体中文 · 繁體中文 · 日本語

Add one OpenWork MCP to Codex, Claude Code, Cursor, or another compatible agent and reuse the same skills, MCPs, and connected services across your tools, teammates, and machines. Create something once, share it with coworkers or friends, or keep it for yourself.

The desktop app is there when you want a dedicated workspace, but it is not required. You can use OpenWork from the agent you already have. For larger organizations, the admin interface lets you publish capabilities, manage access, and configure shared or per-user connections.

Why OpenWork instead of Claude Cowork

  • Free and open source. The desktop app is MIT-licensed; no OpenWork account is required to use it locally.
  • Any model. Bring your own API key, sign in with ChatGPT, or run local models through Ollama or any OpenAI-compatible server. See Add a custom LLM.
  • Runs on macOS, Windows, and Linux as a desktop app — not a CLI.
  • Your files stay local. Cloud is optional.
  • Share skills and MCP servers with your team. See Share skills with your team and Shared MCP connections.
  • Self-host the team control plane on your own infrastructure. See Self-host.
  • Bring your Cowork setup. Skills, Claude-compatible plugins, and MCP servers carry over. See Migrate from Claude Cowork.

Install with your AI agent

Already use an AI agent? Copy this prompt and paste it into Claude Code, Cursor, Codex, ChatGPT, or any agent that can run commands on your computer.

Install OpenWork on my computer, set up my first workspace, and open it ready to use. Follow the steps in https://openworklabs.com/start.md?v=hero
  1. Installs OpenWork
  2. Creates your workspace
  3. Opens it ready to run

Use OpenWork from any agent

The OpenWork MCP brings your assigned skills, plugins, MCP connections, Google Workspace, and Microsoft 365 capabilities into any compatible agent.

It exposes four tools: search_capabilities finds what you can use, execute_capability runs it, and list_skills / get_skill list your skills and read one SKILL.md directly. After adding the MCP, your client opens a browser so you can sign in and choose your OpenWork organization.

Codex

codex mcp add openwork --url https://api.openworklabs.com/mcp/agent

Claude Code

claude mcp add --transport http openwork https://api.openworklabs.com/mcp/agent

OpenCode

Add this to opencode.json:

{
  "mcp": {
    "openwork": {
      "type": "remote",
      "enabled": true,
      "url": "https://api.openworklabs.com/mcp/agent",
      "oauth": {}
    }
  }
}

Any MCP client

Use this remote MCP server URL:

https://api.openworklabs.com/mcp/agent

OpenWork Den

OpenWork Den is the control plane for managing OpenWork across a team or organization.

  • Provision inference at scale and control which members and teams can use each model provider.
  • Invite teammates, create teams, and manage access from one place.
  • Set desktop policies, restrict local model access, and control which app versions your organization can use.
  • Publish skills and plugins through marketplaces, then assign them to the organization, a team, or specific people.
  • Import Agent Plugins or Anthropic-compatible plugins and make their supported skills and remote MCPs available through the OpenWork MCP.

Licensing

This repository uses a directory-split license, similar to GitLab:

  • Everything outside ee/ is MIT — the desktop app and core platform are open source, free for any use.
  • Everything under ee/ (OpenWork Den — the org control plane) is under the OpenWork EE License, a source-available license. The code is public so you can audit exactly what you deploy. Production use requires an OpenWork subscription, except that it is free for organizations with up to 5 users, free to evaluate for 30 days at any size, and always free for development and testing. Each ee/ release additionally converts to MIT two years after publication.

Versions released before this license was adopted remain under their original license (FSL-1.1-MIT). See pricing and the subscription terms.

Documentation

Read the OpenWork docs.

Getting started (contributors)

The fastest path from a fresh clone to a running dev build.

Prerequisites

  • Node 24 — pinned in .nvmrc (nvm use picks it up).
  • pnpm 11 — pinned in package.json (packageManager); run corepack enable to use the pinned version automatically. Never use npm or yarn.

First run

git clone https://github.com/different-ai/openwork.git
cd openwork
corepack enable
pnpm install
pnpm dev   # launches the Electron desktop app with hot reload

Coding agents and tests should not open that window on your screen: they use the app in headless Chrome instead (see Headless web and AGENTS.md).

Repository layout

PathWhat lives there
apps/the desktop app: React UI (apps/app), Electron shell (apps/desktop), and openwork-server (apps/server) (MIT)
packages/shared core packages (MIT)
ee/OpenWork Den — the org control plane, MCP gateway, and inference (EE License, see Licensing)
evals/executable test specs built on @openwork/testkit — see evals/README.md
worlds/declarative dev/test environment definitions for pnpm world
docs/operator, feature, and release docs
.opencode/skills/repository agent skills (testing, release, Daytona, and more)

Testing

All executable coverage lives in evals/specs/**/*.test.ts; app-driving journeys use .e2e.test.ts.

pnpm --dir evals install --frozen-lockfile   # once
pnpm evals:pr specs/<name>.test.ts           # app-less PR-lane spec
pnpm evals:e2e <name> --local                # app-driving E2E journey, run locally

Runtime-observable changes need test evidence on the PR. AGENTS.md and evals/README.md describe the verification contract and vocabulary.

Sending a pull request

  1. Branch from dev (the default branch) and open your PR against dev.
  2. Keep the diff as small as possible, and include or update test evidence for runtime-observable changes.
  3. Read CONTRIBUTING.md for the licensing terms. By contributing you agree to the DCO, or under ee/ to the CLA; there is nothing separate to sign.

Local development

For one checkout, keep using pnpm dev; with no extra environment variables it reuses the existing shared dev profile.

To run multiple git worktrees at once, use:

pnpm dev:worktree

That sets OPENWORK_DEV_PROFILE=auto, derives a stable profile name from the worktree path, lets Electron choose a free CDP port, and asks Vite for a free dev-server port. You can also choose a named profile, for example OPENWORK_DEV_PROFILE=my-feature OPENWORK_ELECTRON_REMOTE_DEBUG_PORT=0 PORT=0 pnpm dev.

dev:worktree also defaults OPENWORK_ELECTRON_USE_MOCK_KEYCHAIN=1. A brand-new profile has no stored credentials, so on macOS the real keychain prompts as soon as Chromium persists an authenticated cookie, and that modal blocks Electron's main loop until it is dismissed. Set OPENWORK_ELECTRON_USE_MOCK_KEYCHAIN=0 if you specifically want the system keychain in an isolated profile.

Dev startup prints a banner like [openwork] dev profile=... cdp=http://127.0.0.1:9823; use it to find the profile directory and pass the CDP URL to local tooling.

If a second instance cannot get the profile lock it now says so and exits, instead of lingering with an open CDP port and no window.

Headless web (no Electron)

To run the OpenWork UI in a browser against a local openwork-server (no desktop shell):

pnpm world up dev-app-web --detach
pnpm world up dev-app-web --detach -- --browser   # also opens it in headless Chrome and prints a cdp address

pnpm dev:headless-web is a compatibility alias for the same script. The alias remains foreground by default and accepts --detach; world up is foreground unless --detach is explicit.

This is an isolated launcher:

  • Writes tmp/headless-server.json and never reads ~/.config/openwork/server.json
  • Authorizes the chosen workspace root automatically, and merges (never rewrites) that config on relaunch, so workspaces you add through the UI survive --replace
  • Starts Vite + openwork-server with a stable owner bearer forced into the UI. Crash-restarts keep open tabs working. The privileged host token stays on the server process and is never inlined into the Vite bundle.
  • Proxies Den Cloud calls same-origin: Vite serves /api/den (forwarded to the Den control plane) and the app pins its Den API there via VITE_DEN_API_BASE_URL, so Cloud calls are never CORS-blocked and stale localStorage base URLs are cleared on load
  • Publishes an owner-only runtime manifest at tmp/dev-headless-web.json (0600), and allows browser calls to the local server only from the web app's own origins — not every site you visit
  • Uses stable ports by default (web 5178, server 8778; falls back to free ports when taken, override with OPENWORK_WEB_PORT / OPENWORK_PORT)
  • Is single-instance as dev-app-web; stop it with pnpm world down dev-app-web before launching it again
  • Keeps Vite and the backend under one script lifecycle, so either sibling exiting stops the other instead of leaving an orphan
  • In detached mode, waits for health, prints non-secret outputs and receipt/log paths, and exits

Script-specific options must follow --:

pnpm world up dev-app-web --detach -- --replace
pnpm world up dev-app-web --detach -- --replace --keep-tokens

--replace restarts the headless runtime with fresh tokens; add --keep-tokens to retain the previous tokens. --rotate-tokens is also accepted by this script. These are not generic world options.

Open the printed Web URL. Cloud sign-in in headless web uses the copy/paste handoff (hosted Den cannot redirect session grants back to http://127.0.0.1):

  1. Account → Sign in (opens Den; the paste field opens in Settings)
  2. Sign in on Den
  3. Copy the OpenWork link / one-time code Den shows
  4. Paste it under Paste sign-in code → Finish sign-in

Point Den at a local stack with OPENWORK_DEV_DEN_PROXY_TARGET=http://127.0.0.1:3005 while pnpm dev:web-local is running. Set OPENWORK_DEV_HEADLESS_WEB_DEN_PROXY=0 to disable the Den wiring.

The other checked-in scripts include worlds/live-app-web.ts and worlds/live-desktop.ts. Both intentionally share installed production state and require their script-specific opt-in after --, for example pnpm world up live-desktop -- --allow-shared-state. List scripts and running receipts with pnpm world list. The headless production world is hard-limited to loopback; remote-access/public-host settings are refused because its browser session uses production credentials.

How do I install OpenWork MCP Gateway?
Copy the http config for Cursor, Claude Desktop, Claude Code, or VS Code on this page. It uses the publisher's install, not a PlugMCP proxy.
Does OpenWork MCP Gateway need an API key?
No required environment variable is listed on this record.
What transport does OpenWork MCP Gateway use?
OpenWork MCP Gateway is reached over HTTP.
When was OpenWork MCP Gateway last checked?
Last checked 2026-10-16. Your OpenWork org's skills, plugins, workflows, and connections through one OAuth MCP URL.

No tool list yet. Remote servers get one after the first health check.

plugmcp

Plug any tool into any agent. MCP servers for people who do not write servers. Gateway for volume, n8n for apps.

  • github.com/TODO
  • x.com/TODO
  • linkedin.com/company/TODO

PlugMCP, 2026

Product
  • Browse
  • Install
  • Host your own
  • Voice mode
  • Browser
Directory
  • All MCP servers
  • Agent skills
  • Categories
  • New
  • Voice
  • Submit a server
Developers
  • Docs
  • Blog
  • What is MCP
  • What is WebMCP
  • Status
Company
  • About
  • Contact
  • Terms
  • Privacy
  • DPA