MCP Server with Cloudflare Workers

MCP Server with Cloudflare Workers

An open standard server implementation that enables AI assistants to directly access APIs and services through Model Context Protocol, built using Cloudflare Workers for scalability.

sivakumarl

Developer Tools
Visit Server

README

MCP Server with Cloudflare Workers

Introduction

Model Context Protocol (MCP) is an open standard that enables AI agents and assistants to interact with services. By setting up an MCP server, you can allow AI assistants to access your APIs directly.

Cloudflare Workers, combined with the workers-mcp package, provide a powerful and scalable solution for building MCP servers.

Prerequisites

Before starting, ensure you have:


Getting Started

Step 1: Create a New Cloudflare Worker

First, initialize a new Cloudflare Worker project:

npx create-cloudflare@latest my-mcp-worker
cd my-mcp-worker

Then, authenticate your Cloudflare account:

wrangler login

Step 2: Configure Wrangler

Update your wrangler.toml file with the correct account details:

name = "my-mcp-worker"
main = "src/index.ts"
compatibility_date = "2025-03-03"
account_id = "your-account-id"

Installing MCP Tooling

To enable MCP support, install the workers-mcp package:

npm install workers-mcp

Run the setup command to configure MCP:

npx workers-mcp setup

This will:

  • Add necessary dependencies
  • Set up a local proxy for testing
  • Configure the Worker for MCP compliance

Writing MCP Server Code

Update your src/index.ts to define your MCP server:

import { WorkerEntrypoint } from 'cloudflare:workers';
import { ProxyToSelf } from 'workers-mcp';

export default class MyWorker extends WorkerEntrypoint<Env> {
  /**
   * A friendly greeting from your MCP server.
   * @param name {string} The name of the user.
   * @return {string} A personalized greeting.
   */
  sayHello(name: string) {
    return `Hello from an MCP Worker, ${name}!`;
  }

  /**
   * @ignore
   */
  async fetch(request: Request): Promise<Response> {
    return new ProxyToSelf(this).fetch(request);
  }
}

Key Components:

  • WorkerEntrypoint: Manages incoming requests and method exposure.
  • ProxyToSelf: Ensures MCP protocol compliance.
  • sayHello method: An example MCP function that AI assistants can call.

Adding API Calls

You can extend your MCP server by integrating with external APIs. Here's an example of fetching weather data:

export default class WeatherWorker extends WorkerEntrypoint<Env> {
  /**
   * Fetch weather data for a given location.
   * @param location {string} The city or ZIP code.
   * @return {object} Weather details.
   */
  async getWeather(location: string) {
    const response = await fetch(`https://api.weather.example/v1/${location}`);
    const data = await response.json();
    return {
      temperature: data.temp,
      conditions: data.conditions,
      forecast: data.forecast
    };
  }

  async fetch(request: Request): Promise<Response> {
    return new ProxyToSelf(this).fetch(request);
  }
}

Deploying the MCP Server

Once your Worker is set up, deploy it to Cloudflare:

npx wrangler deploy

After deployment, your Worker is live and AI assistants can discover and use your MCP tools.

To update your MCP server, redeploy with:

npm run deploy

Testing the MCP Server

To test your MCP setup locally:

npx workers-mcp proxy

This command starts a local proxy allowing MCP clients (like Claude Desktop) to connect.


Security

To secure your MCP server, use Wrangler Secrets:

npx wrangler secret put MCP_SECRET

This adds a shared-secret authentication mechanism to prevent unauthorized access.


Conclusion

Congratulations! You have successfully built and deployed an MCP server using Cloudflare Workers. You can now extend it with more features and expose new tools for AI assistants.

For more details, check the Cloudflare MCP documentation.


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
MCP Package Docs Server

MCP Package Docs Server

Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.

Featured
Local
TypeScript
Claude Code MCP

Claude Code MCP

An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.

Featured
Local
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.

Featured
Local
JavaScript
Linear MCP Server

Linear MCP Server

Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.

Featured
JavaScript
mermaid-mcp-server

mermaid-mcp-server

A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.

Featured
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP server to provide Jira Tickets information to AI coding agents like Cursor

Featured
TypeScript
Linear MCP Server

Linear MCP Server

A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Featured
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.

Featured
Python