C
Cf MCP
by @HeyGarrison
MCP server by HeyGarrison
Created 11/19/2025
Updated 26 days ago
README
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 productPOST /api/products- Create a new productPUT /api/products/:id- Update a productDELETE /api/products/:id- Delete a product
MCP Tools
The MCP endpoint wraps all REST operations as tools:
list_products- Query products with filtersget_product- Retrieve product detailscreate_product- Add new productsupdate_product- Modify existing productsdelete_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
- Add authentication (API keys, OAuth)
- Implement rate limiting
- Add caching with Cloudflare KV
- Connect to Cloudflare D1 for persistent storage
- Add streaming responses
- 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"
]
}
}
}