Một skeleton đầy đủ để bạn bắt đầu nhanh với Cloudflare Workers: routes, utils, services, bindings (KV/D1/R2), Durable Objects, cron.
- Node.js >= 18
- Wrangler CLI:
npm i -g wrangler
npm i
npm run dev
# hoặc
npm run deploy- Endpoint:
POST /mcp - Nếu gửi header
Accept: text/event-streamsẽ trả về SSE. - Tools hiện có:
hello,api.
- Registry:
src/mcp-tools/registry.ts - Scaffold tool:
npm run tool:scaffold <tool-name> "Description here" - Tool file output:
src/mcp-tools/<tool-name>.ts
Ví dụ scaffold:
npm run tool:scaffold ping "Return pong"Ví dụ initialize:
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"clientInfo": { "name": "client", "version": "0.1.0" }
}
}List tools:
{ "jsonrpc": "2.0", "id": 2, "method": "tools/list" }Call tool:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": { "name": "hello", "arguments": { "name": "Kilo" } }
}- KV:
wrangler kv namespace create KV→ cập nhậtwrangler.tomlvớiidtrả về. - D1:
wrangler d1 create mydb→ thêm binding trongwrangler.toml. Tạo bảng/migration:wrangler d1 execute mydb --file schema.sql. - R2: Tạo bucket trong Dashboard, rồi thêm binding với
bucket_name. - Durable Objects: bật mục
[durable_objects]và bindingCOUNTER. - Cron: bỏ comment khối
triggers.cronsvới lịchCRONmong muốn.
Bật routes trong wrangler.toml và đảm bảo zone nằm trong Cloudflare.
src/
index.ts
mcp-tools/
registry.ts
hello.ts
api.ts
routes/
hello.ts
api.ts
kv.ts
d1.ts
r2.ts
counter.ts
utils/
response.ts
cors.ts
services/
db.ts
storage.ts
types/
env.d.ts
do/
Counter.ts
tools/
scaffold-tool.mjs
template/
tool.ts
- Nếu chưa bật binding nào (KV/D1/R2/DO), hãy giữ nguyên comment trong
wrangler.tomlđểdeploykhông lỗi. compatibility_datenên cập nhật định kỳ để dùng API mới.