MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

MCP server by HeyGarrison

Created 11/19/2025
Updated 26 days ago
Repository documentation and setup instructions

CF-MCP: REST API + MCP Server on Cloudflare Workers

A single Cloudflare Worker that serves both a REST API and an MCP (Model Context Protocol) interface.

Architecture

┌─────────────────────────────────────┐
│   Cloudflare Worker (Edge)          │
│                                      │
│  ┌────────────────────────────────┐ │
│  │  Hono Router                   │ │
│  │                                │ │
│  │  /api/*  ─── REST API          │ │
│  │                                │ │
│  │  /mcp    ─── MCP Protocol      │ │
│  │               (wraps REST)     │ │
│  └────────────────────────────────┘ │
└─────────────────────────────────────┘

Features

REST API Endpoints

  • GET /api/products - List all products (with filtering)
  • GET /api/products/:id - Get a single product
  • POST /api/products - Create a new product
  • PUT /api/products/:id - Update a product
  • DELETE /api/products/:id - Delete a product

MCP Tools

The MCP endpoint wraps all REST operations as tools:

  • list_products - Query products with filters
  • get_product - Retrieve product details
  • create_product - Add new products
  • update_product - Modify existing products
  • delete_product - Remove products

Getting Started

Install Dependencies

npm install

Run Locally

npm run dev

The server will start at http://localhost:8787

Test REST API

# List all products
curl http://localhost:8787/api/products

# Get a specific product
curl http://localhost:8787/api/products/1

# Filter by category
curl http://localhost:8787/api/products?category=Electronics

# Create a product
curl -X POST http://localhost:8787/api/products \
  -H "Content-Type: application/json" \
  -d '{"name":"Laptop","price":999,"description":"Powerful laptop","category":"Electronics"}'

Test MCP Endpoint

# List available tools
curl -X POST http://localhost:8787/mcp \
  -H "Content-Type: application/json" \
  -d '{"method":"tools/list","params":{}}'

# Call a tool
curl -X POST http://localhost:8787/mcp \
  -H "Content-Type: application/json" \
  -d '{"method":"tools/call","params":{"name":"list_products","arguments":{"category":"Electronics"}}}'

Deploy to Cloudflare

npm run deploy

After deployment, your API will be available globally on Cloudflare's edge network!

Key Patterns Demonstrated

1. REST-to-MCP Translation

Each REST endpoint maps to an MCP tool:

  • REST parameters → MCP tool arguments
  • REST responses → MCP tool results
  • REST authentication → MCP tool context

2. Edge Deployment

  • Single worker serves both interfaces
  • Global distribution via Cloudflare's network
  • Low latency for both REST and MCP calls

3. Unified Codebase

  • Share business logic between REST and MCP
  • DRY principle: define operations once
  • Easy to maintain and extend

Project Structure

cf-mcp/
├── src/
│   ├── index.ts      # Main Hono app + routing
│   ├── api.ts        # REST API endpoints
│   └── mcp.ts        # MCP protocol handler
├── wrangler.toml     # Cloudflare config
├── package.json
└── tsconfig.json

Next Steps

  1. Add authentication (API keys, OAuth)
  2. Implement rate limiting
  3. Add caching with Cloudflare KV
  4. Connect to Cloudflare D1 for persistent storage
  5. Add streaming responses
  6. Implement pagination

Learn More

Course Title

"From the Edge and Back: Turn Any REST API into an MCP Server"

A practical, code-heavy session showing how to wrap any REST API with the Model Context Protocol and deploy it to Cloudflare Workers for lightning-fast, globally distributed access.

Quick Setup
Installation guide for this server

Install Package (if required)

npx @modelcontextprotocol/server-cf-mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "heygarrison-cf-mcp": { "command": "npx", "args": [ "heygarrison-cf-mcp" ] } } }