esa MCP Worker
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@esa MCP Workersearch for posts about API design in the dev team"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
esa MCP Worker
A small Cloudflare Worker that reads and writes esa through MCP. Cloudflare Access Managed OAuth handles client authentication. The Worker verifies the Access JWT and calls esa with one deployment secret.
Design
The normal request path contains one /mcp endpoint, Access JWT verification, MCP dispatch, and an esa API request. The project has no custom OAuth server, admin UI, KV/D1 state, audit pipeline, connection tracking, observer, or post cache.
Six esa tools are always available:
Tool | Purpose |
| Read posts as metadata, outline, excerpt, or bounded Markdown |
| Run one search or up to ten searches concurrently |
| Read selected Markdown heading sections |
| Create a post |
| Update selected post fields |
| Apply ordered text replacements, section replacements, and appends |
When GitHub App settings are present, five lightweight repository tools are added:
Tool | Purpose |
| Read a commit SHA and file catalog |
| Read up to twelve files or line ranges |
| Create one atomic implementation commit |
| Read checks and commit statuses once |
| Fast-forward the default branch after successful checks |
The GitHub flow has no audit wrapper, coding checklist payload, server-side polling, write-confirmation flag, or partial-success fallback.
Related MCP server: basecamp-mcp
Requirements
Node.js 24.11 or later
pnpm 10.11.1
A Cloudflare account
An esa personal access token
Setup
Install dependencies and verify the project:
pnpm install --frozen-lockfile
pnpm verifyConfigure Worker variables:
ESA_DEFAULT_TEAM=your-team
TEAM_DOMAIN=https://your-team.cloudflareaccess.com
POLICY_AUD=your-access-application-audStore the esa token as an encrypted Worker secret:
pnpm exec wrangler secret put ESA_ACCESS_TOKENDeploy the Worker, then protect /mcp with a Cloudflare Access self-hosted application and enable Managed OAuth.
pnpm run deployUse this MCP URL:
https://YOUR-WORKER.workers.dev/mcpCloudflare Access returns authentication failures before requests reach the Worker.
Optional GitHub tools
Set these values together to enable repository tools:
GITHUB_REPOSITORY=owner/repository
GITHUB_APP_ID=123
GITHUB_APP_INSTALLATION_ID=456
GITHUB_DEFAULT_BRANCH=main
GITHUB_BRANCH_PREFIX=mcp/
GITHUB_REQUIRED_CHECK_NAMES=build,testStore the downloaded GitHub App private key as a Worker secret:
pnpm exec wrangler secret put GITHUB_APP_PRIVATE_KEYGrant the GitHub App repository access and the permissions required by the tools: Contents read/write, Checks read, and Commit statuses read.
OpenAPI generation
openapi.yaml is the canonical source for public tool titles, descriptions, annotations, input schemas, and TypeScript input types. The generator uses openapi-typescript for types and Zod's JSON Schema converter for runtime validation:
pnpm generatepnpm verify runs generate:check and fails when generated code is stale.
Errors
Tool failures use isError: true and one English message. Upstream HTTP status codes are exposed as upstream_status; the Worker does not map them to custom domain status codes.
Write tools do not use confirm_write. Pass expected_revision_number for esa changes and expected Git/blob SHAs for repository changes that depend on a prior read.
See docs/reference.md for the detailed behavior and SECURITY.md for reporting.
License
MIT Copyright (c) 2026 Ierllow
This server cannot be deployed
Maintenance
Related MCP Connectors
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Create, schedule, and publish social posts, manage accounts, and read analytics as MCP tools.
Notes, files, GitHub, and Drive through one MCP connection.
Notes, files, GitHub, and Drive through one MCP connection.
Related MCP Servers
- AlicenseCqualityCmaintenanceProvides MCP (Model Control Protocol) tools for accessing and interacting with Google Chat spaces and messages through OAuth2 authentication.525MIT
- AlicenseNot gradedqualityDmaintenanceMCP server exposing Basecamp CLI commands as tools for project management, todos, messages, and more.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server providing maximum practical control over GitHub via REST and GraphQL APIs, exposing 22 tools for repository management, file operations, issues, PRs, Actions, and more.MIT
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to GitHub repositories and issues through standardized MCP tools, with caching to handle API rate limits.1MIT