ساخت سرور MCP با احراز هویت روی Cloudflare Worker
خلاصهٔ کاملتر
به گفتهٔ نویسنده، سرورهای MCP (پروتکل Model Context) یه راه راحت برای این هستن که اپهای هوش مصنوعی مثل Claude، Gemini و ChatGPT بتونن به محصول تو وصل بشن. این مقاله میخواد قدمبهقدم یه سرور MCP بسازه، احراز هویت بهش اضافه کنه و بهشکل یه Cloudflare Worker دیپلویش کنه، ولی در کنارش وقت میذاره تا توضیح بده هر بخش دقیقاً چطوری کار میکنه.
برای شروع، از سه تا کتابخونهٔ اصلی استفاده میشه: SDK رسمی MCP، کتابخونهٔ agents از Cloudflare که یه adaptor برای هندلکردن درخواستهای MCP داره، و zod برای اعتبارسنجی و تعریف اسکیمای ورودی. هر سرور MCP یه سری «ابزار» (tool) داره که خیلی شبیه اندپوینتهای API هستن و هرکدوم اسم، توضیح، اسکیمای ورودی و یه تابع برای هندلکردن درخواست دارن.
نویسنده بهعنوان مثال یه ابزار ساده به اسم calculator میسازه که چهار عمل اصلی رو انجام میده:
server.registerTool('calculator', {
description: 'Perform basic math operations',
inputSchema: {
operation: z.enum(['add', 'subtract', 'multiply', 'divide']),
a: z.number(),
b: z.number(),
},
}, async ({ operation, a, b }) => { /* ... */ });بعد از وصلکردن این سرور به تابع fetch ورکر، میشه اون رو مثلاً تو Claude Desktop بهعنوان یه Connector اضافه کرد و تست گرفت. نویسنده توضیح میده که MCP زیر کاپوت از JSON-RPC استفاده میکنه؛ کلاینت با درخواست tools/list میفهمه چه ابزارهایی موجوده و با tools/call اونها رو صدا میزنه.
در بخش پایانی، مقاله سراغ احراز هویت و کنترل دسترسی میره. نویسنده میگه تو حالت پیشفرض هر کسی میتونه به سرور وصل بشه و از ابزارها استفاده کنه، که برای بعضی سرورها (مثل ارائهٔ داکیومنت عمومی) اشکالی نداره؛ ولی برای خیلی از سرورها لازمه بدونی کاربر کیه و آیا اجازهٔ اون tool call خاص رو داره یا نه.
نکات کلیدی:
- آموزش عملی ساخت یه سرور MCP، افزودن احراز هویت و دیپلوی روی Cloudflare Worker
- سرورهای MCP میذارن اپهای هوش مصنوعی مثل Claude و ChatGPT به محصولت وصل بشن
- از SDK رسمی MCP، کتابخونهٔ agents کلادفلر و zod استفاده میشه
- هر ابزار MCP اسم، توضیح، اسکیمای ورودی و تابع هندلر داره و ارتباط با JSON-RPC (tools/list و tools/call) انجام میشه
- بدون احراز هویت هر کسی به سرور دسترسی داره؛ برای کنترل دسترسی باید هویت و مجوز کاربر بررسی بشه




