AOJ Workbench

AOJ Workbench

Private remote HTTP MCP server that provides a unified endpoint to interact with Google Workspace services (Drive, Sheets, Gmail, Calendar, Docs, Forms) and other toolkits through the Composio provider layer.

Category
Visit Server

README

<div align="center">

AOJ Workbench

AOJ Workbench

One private MCP endpoint for your knowledge-work toolkits.

License: MIT TypeScript MCP Cloudflare Workers v4.0.0

Give an AI agent one URL and it can work through AOJ Workbench.

Quick Start . Provider Model . Docs

</div>


Remote Only

AOJ Workbench is a private remote HTTP MCP server hosted on Cloudflare Workers.

The supported client experience is:

https://your-worker.workers.dev/mcp

There is no supported local stdio server, local HTTP server, Docker runtime, or local bootstrap flow for MCP clients. Clients connect to the remote /mcp endpoint by URL.

Legacy local commands and Docker instructions from older versions are not part of the supported runtime model.

Why This Exists

AI agents can draft plans, reason over code, and summarize documents, but daily work spans many tools:

  • Gmail and Google Workspace
  • Outlook
  • Notion
  • Stripe
  • YouTube
  • other selected Composio-supported toolkits

AOJ Workbench gives agents one MCP endpoint. The target provider layer is the Composio SDK with managed auth. The current direct Google implementation is legacy migration scaffolding until provider replacement slices remove it.

Quick Start

1. Get The Endpoint

Use the deployed Worker URL:

https://your-worker.workers.dev/mcp

The Worker must already be deployed and configured with its MCP bearer token and the required Composio runtime secrets. Provider accounts are connected in Composio for the configured AOJ Workbench user.

2. Connect Claude Code

Use a descriptive MCP server name so agents understand the full surface area:

claude mcp add --scope user --transport http aoj-workbench https://your-worker.workers.dev/mcp

If bearer auth is enabled for the Worker, configure the same bearer token expected by the server.

3. Connect Codex

export AOJ_WORKBENCH_MCP_TOKEN="replace-with-worker-token"

codex mcp add aoj-workbench \
  --url https://your-worker.workers.dev/mcp \
  --bearer-token-env-var AOJ_WORKBENCH_MCP_TOKEN

Start a fresh Codex session after changing MCP config.

Provider Model

AOJ Workbench keeps one public MCP connector. Behind that connector, Composio SDK sessions discover and execute selected provider toolkit actions.

The direct Google Workspace modules that remain in the repo are legacy migration scaffolding. The supported runtime routes provider discovery and execution through the Composio native provider layer. Current AOJ Workbench capabilities include:

Service Operations Highlights
Drive 7 Search, enhanced search, read, create, update, batch operations
Sheets 12 Read/write cells, formulas, formatting, conditional formatting, freeze, column width
Gmail 30+ List, search, read, draft, send emails, manage labels, and work with attachments
Calendar 9 Full CRUD, natural language quickAdd, free/busy checks
Docs 5 Create, insert text, replace, rich text styling, insert tables
Forms 4 Create forms, add questions, read responses
70+ total

Live Forms execution requires an active Google Forms-capable connected account in Composio for AOJ_WORKBENCH_USER_ID.

Tools

v4 exposes two MCP tools:

Tool Purpose
search Discover provider/toolkit capabilities, schemas, auth status, and execution guidance
execute Run a selected provider toolkit operation

This keeps the MCP tool list small while avoiding separate client connectors for every provider.

Example direct operation call:

{
  "tool": "execute",
  "args": {
    "service": "gmail",
    "operation": "sendMessage",
    "args": {
      "to": "team@example.com",
      "subject": "Q1 report ready",
      "body": "The Q1 report is ready for review."
    }
  }
}

Example discovery call:

{
  "tool": "search",
  "args": {
    "service": "sheets",
    "operation": "updateCells"
  }
}

Architecture

MCP client
  |
  | Streamable HTTP
  v
Cloudflare Worker /mcp
  |
  | Composio SDK sessions and managed auth
  v
Provider toolkits

Persistent state belongs in Cloudflare services, primarily Workers KV. The user-facing MCP runtime is the Worker URL.

Security

  • MCP clients authenticate to the Worker with static bearer auth when configured.
  • Provider authorization belongs to Composio managed auth in the target architecture.
  • This server is not an OAuth authorization server for MCP clients.
  • Do not point MCP client auth metadata at provider OAuth.

See MCP Client Auth Boundary.

Development

Development commands are for contributors changing the Worker implementation, not for running the MCP server locally as a client dependency.

npm test
npm run type-check
npm run build:worker
npm run deploy:worker

Do not add local stdio, local HTTP, or Docker connection instructions back to user-facing docs.

Roadmap

  • [ ] Composio native provider — discovery, auth status, schema lookup, execution
  • [ ] Google provider replacement — migrate current direct Google capabilities behind Composio
  • [ ] Notion toolkit — selected private-workbench workflows
  • [ ] Stripe toolkit — selected private-workbench workflows
  • [ ] YouTube toolkit — selected private-workbench workflows
  • [ ] Outlook toolkit — selected private-workbench workflows
  • [x] Cloudflare Workers — remote HTTP MCP runtime

Contributing

This repo is TypeScript and Cloudflare Workers based. Keep changes aligned with the remote-only runtime boundary.

  1. Fork and create a feature branch.
  2. Follow existing TypeScript and ESLint conventions.
  3. Add tests for behavior changes.
  4. Run the relevant checks.
  5. Open a PR with a clear description.

License

MIT — see LICENSE for details.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured