تطوير خادم MCP: النشر على Vercel باستخدام Next.js لتطبيقات SaaS
إذا كنت تبني منتجات SaaS في 2025-2026، فقد لاحظت على الأرجح أن كل مدير منتج يريد الآن "ميزات ذكاء اصطناعي". منطقي بما فيه الكفاية. لكن السؤال الحقيقي ليس ما إذا كان يجب إضافة الذكاء الاصطناعي -- بل كيفية منح نماذج الذكاء الاصطناعي إمكانية الوصول الآمن والمنظم إلى بيانات تطبيقك وقدراته. هذا بالضبط ما يحله Model Context Protocol (MCP)، ونشر خوادم MCP على Vercel مع Next.js أصبح أحد أكثر الأنماط العملية التي رأيتها لفرق SaaS التي تريد التحرك بسرعة دون إنشاء بنية تحتية جديدة.
لقد قضيت الأشهر القليلة الماضية في بناء خوادم MCP للعملاء -- بعضها إعدادات بسيطة لخدمة الأدوات، والبعض الآخر مع تدفقات مصادقة متعددة المستأجرين معقدة. تغطي هذه المقالة كل ما تعلمته عن بناء وتوزيع وتوسيع خوادم MCP على Vercel مع Next.js.

جدول المحتويات
- ما هو MCP ولماذا يجب أن تهتم فرق SaaS
- نظرة عامة على البنية: MCP على Vercel
- إعداد خادم MCP في Next.js الخاص بك
- تنفيذ أدوات وموارد MCP
- المصادقة والبيئات المتعددة المستأجرين
- النشر على Vercel: التكوين والمشاكل
- تحسين الأداء والتوسع
- المراقبة والملاحظة
- تحليل التكاليف: تشغيل خوادم MCP على Vercel
- الأسئلة الشائعة
ما هو MCP ولماذا يجب أن تهتم فرق SaaS
Model Context Protocol (MCP) هي معيار مفتوح -- تم تطويره في الأصل من قبل Anthropic والآن موجود على نطاق واسع -- يحدد كيفية تفاعل نماذج الذكاء الاصطناعي مع الأدوات والمصادر الخارجية. فكر فيه باعتباره منفذ USB-C للذكاء الاصطناعي: واجهة موحدة يمكن لأي عميل ذكاء اصطناعي استخدامها للاتصال بأي خادم متوافق مع MCP.
قبل MCP، إذا كنت تريد Claude أو GPT أو أي نموذج آخر للتفاعل مع تطبيق SaaS الخاص بك، كنت ستبني تكاملات مخصصة لكل مزود ذكاء اصطناعي. استدعاء الوظائف مع OpenAI يبدو مختلفاً عن استخدام الأدوات مع Anthropic. يغير MCP ذلك. تقوم ببناء خادم واحد، وأي عميل متوافق مع MCP يمكنه استخدامه.
بالنسبة لفرق SaaS، هذا مهم لأن:
- يتوقع المستخدمون الخاص بك تكاملات الذكاء الاصطناعي. بحلول منتصف عام 2026، يُبلغ حوالي 68% من مستخدمي B2B SaaS عن استخدام مساعدي الذكاء الاصطناعي جنباً إلى جنب مع أدواتهم الأساسية (Gartner، الربع الأول 2026).
- MCP يصبح القياس الافتراضي. Claude Desktop و Cursor و Windsurf و VS Code Copilot وعشرات من العملاء الآخرين يدعمون الآن MCP بشكل محلي.
- بناء خادم MCP أرخص من بناء تكاملات مخصصة لكل مزود ذكاء اصطناعي.
MCP مقابل تكاملات API التقليدية
| الجانب | API التقليدية | خادم MCP |
|---|---|---|
| توافقية العميل | واحد لواحد لكل مزود | أي عميل متوافق مع MCP |
| الاكتشاف | قراءة التوثيق اليدوية | اكتشاف تلقائي للأدوات/الموارد |
| تدفق المصادقة | مخصص لكل تكامل | معايير OAuth 2.1 / مفاتيح API |
| عبء الصيانة | عالي (N تكاملات) | منخفض (1 خادم) |
| البيانات في الوقت الفعلي | الاستقصاء أو webhooks | أحداث مرسلة من الخادم / البث |
| وقت الإعداد | أيام لأسابيع لكل عميل | ساعات للخادم، دقائق لكل عميل |
نظرة عامة على البنية: MCP على Vercel
إليك البنية التي استقررت عليها بعد التكرار من خلال عدة أساليب:
┌─────────────────┐ ┌──────────────────────┐ ┌─────────────────┐
│ عملاء MCP │ │ Vercel (Next.js) │ │ خادم SaaS │
│ │ │ │ │ الخاص بك │
│ - Claude │────▶│ /api/mcp (HTTP+SSE) │────▶│ - قاعدة البيانات│
│ - Cursor │ │ /api/mcp/sse │ │ - APIs │
│ - تطبيقات │◀────│ /api/auth/[...mcp] │ │ - الخدمات │
│ مخصصة │ └──────────────────────┘ └─────────────────┘
└─────────────────┘
الفكرة الرئيسية: خادم MCP الخاص بك لا يحل محل API الموجود لديك. يجلس أمامه كطبقة ترجمة. يكشف خادم MCP عن أدوات وموارد تعين إلى وظائف SaaS الموجودة لديك، لكن بصيغة يمكن لنماذج الذكاء الاصطناعي اكتشافها واستخدامها.
على Vercel، يعمل هذا كوظائف بدون خادم. تدعم أحدث مواصفات MCP (v2025-12) HTTP مع Server-Sent Events (SSE) كنقل، والذي يعمل بشكل جيد مع دعم البث على Vercel في معالجات مسارات Next.js.
لماذا Next.js على Vercel؟
يمكنك بناء خادم MCP مع أي إطار عمل -- Express أو Fastify أو Hono أو ما يشاء. لكن Next.js على Vercel يوفر لك بعض المزايا الحقيقية لـ SaaS:
- موقعك التسويقي وتطبيقك وخادم MCP يعيشون في مستودع واحد. بنية تحتية أقل للإدارة.
- حد وسيط متطور يتعامل مع المصادقة قبل أن تصل الطلبات إلى نقاط نهاية MCP الخاصة بك.
- دعم البث على Vercel يعمل بشكل جيد مع نقل MCP القائم على SSE.
- التوسع التلقائي -- لا تفكر في الخوادم.
- إذا كنت تقوم بتشغيل Next.js بالفعل (واحصائياً، فأنت على الأرجح)، فلا توجد بنية تحتية جديدة على الإطلاق.
نقوم الكثير من تطوير Next.js في Social Animal، وأصبح هذا النمط أحد أكثر البنى المطلوبة لدينا.

إعداد خادم MCP في Next.js الخاص بك
دعنا نبني هذا. أفترض أنك تعمل على Next.js 15+ مع App Router.
تثبيت الاعتماديات
pnpm add @modelcontextprotocol/sdk zod
pnpm add -D @types/node
تتضمن حزمة @modelcontextprotocol/sdk (v1.12+ اعتباراً من أوائل 2026) كل ما تحتاجه لنقل HTTP+SSE. الإصدارات السابقة دعمت فقط stdio، الذي لا يعمل بدون خادم.
إنشاء معالج مسار MCP
// app/api/mcp/route.ts
import { McpServer } from '@modelcontextprotocol/sdk/server';
import { httpTransport } from '@modelcontextprotocol/sdk/server/http';
import { z } from 'zod';
const server = new McpServer({
name: 'your-saas-mcp',
version: '1.0.0',
description: 'MCP server for YourSaaS platform',
});
// تسجيل الأدوات (سنوضح هذه بعد ذلك)
server.tool(
'get-projects',
'List all projects for the authenticated user',
{
status: z.enum(['active', 'archived', 'all']).optional().default('active'),
limit: z.number().min(1).max(100).optional().default(20),
},
async ({ status, limit }, context) => {
// منطق العمل الفعلي هنا
const projects = await fetchProjects(context.auth.userId, { status, limit });
return {
content: [
{
type: 'text',
text: JSON.stringify(projects, null, 2),
},
],
};
}
);
const handler = httpTransport(server, {
sessionManagement: true,
cors: {
origin: '*', // قيد هذا في الإنتاج
},
});
export const GET = handler;
export const POST = handler;
export const DELETE = handler;
نقطة نهاية SSE للبث
يفضل بعض عملاء MCP نقل SSE للعمليات التي تعمل لفترة طويلة:
// app/api/mcp/sse/route.ts
import { sseTransport } from '@modelcontextprotocol/sdk/server/sse';
import { server } from '../mcp-server'; // استخراج تكوين الخادم إلى وحدة مشتركة
export const GET = sseTransport(server, {
// Vercel لديها مهلة زمنية 30 ثانية على Hobby و 300 ثانية على Pro
// للعمليات التي تعمل لفترة طويلة، ستحتاج على الأقل إلى خطة Pro
keepAliveInterval: 15000,
});
تنفيذ أدوات وموارد MCP
هنا يحدث العمل الحقيقي. يميز MCP بين الأدوات (الإجراءات التي يمكن للذكاء الاصطناعي القيام بها) و الموارد (البيانات التي يمكن للذكاء الاصطناعي قراءتها). الحصول على هذا بشكل صحيح يحدث الفرق بين خادم MCP الذي يحبه عملاء الذكاء الاصطناعي وخادم يكافحون معه.
تصميم أدوات جيدة
الخطأ الأكبر الذي أراه: الأدوات التي تكون دقيقة جداً أو واسعة جداً. إذا كشفت 50 أداة صغيرة، تشعر نماذج الذكاء الاصطناعي بالإرباك. إذا كشفت 3 أدوات ضخمة تأخذ كل منها 20 معامل، تخطئ النماذج.
قاعدتي الأساسية: أداة واحدة لكل نية مستخدم. إذا قال المستخدم "أخبرني بفواتيري الأخيرة"، فهذه أداة واحدة. لا تقسمها إلى list-invoices + filter-invoices + format-invoices.
// جيد: نية واضحة ومعاملات معقولة
server.tool(
'search-customers',
'Search for customers by name, email, or account ID. Returns matching customer profiles with recent activity.',
{
query: z.string().describe('Search term - can be name, email, or account ID'),
includeInactive: z.boolean().optional().default(false),
},
async ({ query, includeInactive }, context) => {
const customers = await customerService.search({
query,
tenantId: context.auth.tenantId,
includeInactive,
});
return {
content: [{
type: 'text',
text: JSON.stringify(customers.map(c => ({
id: c.id,
name: c.name,
email: c.email,
plan: c.plan,
mrr: c.mrr,
lastActive: c.lastActiveAt,
})), null, 2),
}],
};
}
);
كشف الموارد
الموارد هي بيانات للقراءة فقط يمكن لعملاء الذكاء الاصطناعي سحبها كسياق. فكر فيها كملفات يمكن للنموذج الإشارة إليها:
server.resource(
'api-docs',
'Your SaaS API documentation',
'text/markdown',
async () => {
const docs = await fs.readFile('./docs/api-reference.md', 'utf-8');
return { content: docs };
}
);
// مورد ديناميكي مع قالب URI
server.resourceTemplate(
'project/{projectId}/analytics',
'Analytics summary for a specific project',
'application/json',
async ({ projectId }, context) => {
const analytics = await analyticsService.getSummary(projectId, context.auth.tenantId);
return { content: JSON.stringify(analytics) };
}
);
المصادقة والبيئات المتعددة المستأجرين
هذا هو الجزء الذي يحصل الجميع على خطأ في المحاولة الأولى. MCP يدعم OAuth 2.1 للمصادقة، وإذا كنت تبني SaaS متعدد المستأجرين، فأنت بالتأكيد تحتاج هذا.
تدفق OAuth 2.1 لـ MCP
// middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export function middleware(request: NextRequest) {
if (request.nextUrl.pathname.startsWith('/api/mcp')) {
const authHeader = request.headers.get('authorization');
if (!authHeader?.startsWith('Bearer ')) {
return NextResponse.json(
{ error: 'Missing or invalid authorization header' },
{ status: 401 }
);
}
// تحقق من الرمز وحقن سياق المستأجر
// هنا حيث يتصل نظام المصادقة الموجود لديك
}
}
export const config = {
matcher: '/api/mcp/:path*',
};
لنقطة نهاية اكتشاف OAuth التي يحتاجها عملاء MCP:
// app/.well-known/oauth-authorization-server/route.ts
export function GET() {
return Response.json({
issuer: 'https://your-saas.com',
authorization_endpoint: 'https://your-saas.com/oauth/authorize',
token_endpoint: 'https://your-saas.com/api/oauth/token',
registration_endpoint: 'https://your-saas.com/api/oauth/register',
scopes_supported: ['mcp:read', 'mcp:write', 'mcp:admin'],
response_types_supported: ['code'],
code_challenge_methods_supported: ['S256'],
});
}
عزل المستأجرين المتعددين
يجب أن تكون كل استدعاءة أداة MCP محدودة للمستأجر المصرح. أستخدم نمط حيث يتم حقن سياق المصادقة في كل معالج أداة تلقائياً:
const withTenant = (handler) => async (params, context) => {
const tenant = await resolveTenant(context.auth.token);
if (!tenant) throw new McpError('Invalid tenant');
return handler(params, { ...context, tenant });
};
لا تثق أبداً في معاملات الأدوات لتحديد الهوية المستأجرة. استمد دائماً من رمز المصادقة.
النشر على Vercel: التكوين والمشاكل
تكوين vercel.json
{
"functions": {
"app/api/mcp/route.ts": {
"maxDuration": 60
},
"app/api/mcp/sse/route.ts": {
"maxDuration": 300
}
},
"headers": [
{
"source": "/api/mcp/(.*)",
"headers": [
{ "key": "Cache-Control", "value": "no-store" }
]
}
]
}
المشاكل التي لا يخبرك أحد عنها
1. مهل انتهاء الوظائف. يقتصر خطة Vercel Hobby على 30 ثانية. يحصل Pro على 300 ثانية. لأدوات MCP التي تستدعي APIs بطيئة أو تعالج البيانات، تحتاج على الأقل إلى Pro. بسعر 20 دولار/شهر لكل عضو في الفريق، لا تثير قضية لمعظم فرق SaaS.
2. البدايات الباردة. قد تضيف بدايات بدون خادم بارد 200-800 ملي ثانية إلى الطلب الأول. عملاء MCP بشكل عام يتعاملون مع هذا بشكل جيد -- هم لا يتوقعون استجابات أقل من 50 ملي ثانية. لكن إذا أزعجك، استخدم cron على Vercel للحفاظ على الوظائف دافئة.
3. SSE والبث. Vercel يدعم استجابات البث، لكن هناك حالات حدية مع طبقة CDN الخاصة بهم. اضبط Cache-Control: no-store على جميع مسارات MCP. تعلمت هذا بالطريقة الصعبة عندما تسببت استجابات SSE المخزنة في أن يتلقى العملاء قوائم أدوات قديمة.
4. حجم جسم الطلب. تقتصر Vercel أجسام الطلب على 4.5 ميغابايت على وظائف بدون خادم. إذا تعاملت أدوات MCP الخاصة بك مع تحميلات الملفات أو الحمولات الكبيرة، ستحتاج إلى استخدام عناوين URL التحميل الموقعة بدلاً من ذلك.
5. متغيرات البيئة. لا تنسَ تعيين URL العام لخادم MCP الخاص بك كمتغير بيئة. أثناء التطوير، ستستخدم شيئاً مثل ngrok أو عناوين URL معاينة Vercel، لكن في الإنتاج، يجب أن يكون المجال الكنسي الخاص بك.
# .env.production
MCP_SERVER_URL=https://your-saas.com/api/mcp
MCP_SERVER_NAME=your-saas-mcp
تحسين الأداء والتوسع
استراتيجيات التخزين المؤقت
يمكن تخزين استجابات أدوات MCP مؤقتاً عندما لا تتغير البيانات بشكل متكرر:
import { unstable_cache } from 'next/cache';
const getCachedAnalytics = unstable_cache(
async (tenantId: string, projectId: string) => {
return analyticsService.getSummary(tenantId, projectId);
},
['analytics-summary'],
{ revalidate: 300 } // 5 دقائق
);
تجميع الاتصالات
إذا كانت أدوات MCP الخاصة بك تصل إلى قاعدة بيانات، استخدم تجميع الاتصالات. على Vercel، كل استدعاء وظيفة يحصل على سياق تنفيذ خاص به، لذا بدون تجميع، ستستنزف اتصالات قاعدة البيانات بسرعة.
import { Pool } from '@neondatabase/serverless';
// محرك Neon بدون خادم يتعامل مع تجميع الاتصالات تلقائياً
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
});
أوصي بـ Neon أو PlanetScale لأدوات MCP المدعومة بقاعدة البيانات على Vercel. كلاهما يتعامل مع نموذج الاتصال بدون خادم بشكل جيد.
المقاييس
إليك ما قمنا بقياسه عبر عدة نشرات إنتاجية MCP على Vercel Pro:
| المقياس | البداية الباردة | دافئة | P99 |
|---|---|---|---|
| أداة بسيطة (بدون قاعدة بيانات) | 420ms | 45ms | 180ms |
| أداة مدعومة بقاعدة البيانات (Neon) | 680ms | 95ms | 320ms |
| أداة مع API خارجي | 850ms | 280ms | 1200ms |
| إعداد اتصال SSE | 520ms | 60ms | 250ms |
| اكتشاف الأداة (قائمة) | 380ms | 30ms | 120ms |
هذه الأرقام جيدة لتفاعلات عملاء الذكاء الاصطناعي. تأخذ النماذج ثوان لتوليد الاستجابات على أي حال -- لن يكون خادم MCP الخاص بك هو الاختناق.
المراقبة والملاحظة
تحتاج إلى معرفة ما يحدث في الإنتاج. لخوادم MCP احتياجات ملاحظة فريدة لأن "المستخدمين" هم نماذج ذكاء اصطناعي وليسوا بشراً.
ما يجب تتبعه
- تكرار استدعاء الأداة -- أي أدوات تستخدمها النماذج بالفعل؟
- معدلات الخطأ لكل أداة -- هل أداة معينة تفشل أكثر من غيرها؟
- توزيع الرموز/المستأجرين -- هل مستأجر واحد يضرب خادمك بقوة؟
- أحجام حمولة الاستجابة -- هل الاستجابات الضخمة تهدر نوافذ سياق النموذج
// وسيط تسجيل بسيط لأدوات MCP
const withLogging = (toolName: string, handler: Function) => {
return async (params: any, context: any) => {
const start = performance.now();
try {
const result = await handler(params, context);
const duration = performance.now() - start;
console.log(JSON.stringify({
type: 'mcp_tool_invocation',
tool: toolName,
tenant: context.auth?.tenantId,
duration,
success: true,
responseSize: JSON.stringify(result).length,
}));
return result;
} catch (error) {
console.error(JSON.stringify({
type: 'mcp_tool_error',
tool: toolName,
tenant: context.auth?.tenantId,
error: error.message,
}));
throw error;
}
};
};
قم بتوجيه هذه السجلات إلى Axiom (السجلات المتكاملة من Vercel) أو Datadog أو ما تستخدمه بالفعل. تجعل Vercel's Log Drains هذا مباشراً.
تحليل التكاليف: تشغيل خوادم MCP على Vercel
دعنا نتحدث عن المال. إليك تفصيل التكاليف الواقعي لمتوسط SaaS يقوم بتشغيل خادم MCP على Vercel في 2026:
| المكون | Hobby | Pro | Enterprise |
|---|---|---|---|
| الخطة الأساسية | $0/mo | $20/mo لكل مقعد | مخصص |
| استدعاءات الوظائف (مضمونة) | 100K | 1M | مخصص |
| استدعاءات إضافية | N/A | $0.60 لكل 1M | قابل للتفاوض |
| النطاق الترددي (مضمون) | 100GB | 1TB | مخصص |
| أقصى مدة للوظيفة | 30s | 300s | 900s |
| وسيط حد متقدم | مضمون | مضمون | مضمون |
| المتوقع شهرياً (10K طلب MCP/يوم) | غير قابل للتطبيق | ~$25-40 | مخصص |
بالنسبة لمعظم منتجات SaaS، يتعامل خطة Pro مع حركة MCP بشكل مريح. في 10000 استدعاء أداة MCP يومياً (وهو نشط تماماً)، ينتهي بك الحال إلى ~300K تنفيذ وظيفة شهرياً -- بشكل جيد ضمن التخصيص المضمون من Pro.
قارن هذا بتشغيل خادم MCP مخصص على AWS: ستحتاج على الأقل إلى مثيل EC2 ($30-50/mo) وموازن تحميل ($18/mo) ووقتك في إدارة البنية التحتية. Vercel تفوز بالبساطة التشغيلية.
إذا كنت تقيم البنية الصحيحة لـ SaaS الخاص بك، يمكننا مساعدتك على تحديد النطاق. تحقق من صفحة التسعير أو تواصل معنا مباشرة.
الأسئلة الشائعة
ما هو Model Context Protocol (MCP) وكيف يختلف عن استدعاء الوظائف؟ MCP هي معيار مفتوح لربط نماذج الذكاء الاصطناعي بأدوات وبيانات خارجية. على عكس استدعاء الوظائف الخاص بمزود معين (استدعاء الوظائف من OpenAI واستخدام الأدوات من Anthropic)، MCP عام. تقوم ببناء خادم MCP واحد، وأي عميل متوافق -- Claude أو Cursor أو تطبيقات مخصصة -- يمكنه اكتشاف واستخدام أدواتك تلقائياً. يتطلب استدعاء الوظائف تحديد الأدوات بشكل منفصل لكل مزود ذكاء اصطناعي.
هل يمكنني نشر خادم MCP على خطة Vercel Hobby المجانية؟ من الناحية التقنية نعم، لكنني لن أوصي به للإنتاج. مهلة الدالة البالغة 30 ثانية مقيدة جداً لأدوات MCP التي تستعلم قواعد البيانات أو تستدعي APIs خارجية. تحصل أيضاً على استدعاءات محدودة (100K/شهر). خطة Pro بسعر $20/شهر لكل مقعد هي الحد الأدنى الذي أقترحه لأي حمل عمل حقيقي.
كيف أتعامل مع المصادقة بين عملاء MCP و SaaS الخاص بي؟
تدعم مواصفات MCP OAuth 2.1. تكشف عن نقطة نهاية .well-known/oauth-authorization-server التي يكتشفها عملاء MCP تلقائياً. عندما يتصل المستخدم عبر عميل ذكاء اصطناعي مثل Claude، يتم إعادة توجيهه إلى تدفق OAuth المعياري الخاص بك، ومنح الأذونات، ويستقبل العميل رمز وصول ذو نطاق. يتم إرسال هذا الرمز مع كل طلب MCP.
ما الفرق بين أدوات MCP وموارد MCP؟ الأدوات هي إجراءات -- أشياء يمكن للذكاء الاصطناعي القيام بها (إنشاء مشروع أو إرسال بريد إلكتروني أو تشغيل استعلام). الموارد هي البيانات -- أشياء يمكن للذكاء الاصطناعي قراءتها للسياق (التوثيق أو ملفات التكوين أو ملخصات التحليلات). يتم استدعاء الأدوات عند الطلب؛ يتم تحميل الموارد في نافذة سياق النموذج. صمم الأدوات للإجراءات والموارد لمواد مرجعية.
كم عدد أدوات MCP التي يجب أن يكشف عنها خادمي؟ من تجربتي، 5-15 أداة هي الحد الأمثل لمعظم منتجات SaaS. أقل من 5 وخادم MCP الخاص بك ليس مفيداً جداً. أكثر من 20 وتبدأ نماذج الذكاء الاصطناعي في اتخاذ قرارات سيئة لاختيار الأداة. قم بتجميع العمليات ذات الصلة في أداة واحدة مع خيارات معاملات بدلاً من كشف كل عملية CRUD بشكل منفصل.
هل يعمل هذا مع أطر عمل أخرى غير Next.js؟
بالتأكيد. @modelcontextprotocol/sdk يعمل مع أي إطار عمل Node.js. يمكنك استخدام Hono أو Express أو حتى Astro مع نقاط نهاية SSR. Next.js على Vercel مجرد مزيج مريح بشكل خاص لأن دعم البث المدمج ووسيط الحافة والنشر بدون تكوين. إذا كنت تستخدم مكدس مختلف، فقد بنى فريق تطوير الأنظمة الأساسية بدون رأس الخاص بنا خوادم MCP عبر أطر عمل متعددة.
كيف أختبر خادم MCP الخاص بي أثناء التطوير؟ مفتش MCP (جزء من مجموعة أدوات MCP الرسمية) هو أفضل صديق لك. يتصل بخادمك المحلي ويسمح لك باستدعاء الأدوات وتصفح الموارد وتصحيح الاستجابات بشكل تفاعلي. للاختبارات الآلية، اكتب اختبارات تكامل تقوم بتجميع خادم MCP الخاص بك في العملية واستدعاء الأدوات برمجياً -- يدعم SDK هذا دون الحاجة إلى نقل HTTP.
ماذا يحدث عندما يحدث بداية باردة على وظائف Vercel أثناء طلب MCP؟ عملاء MCP مصممون لتحمل التأخير -- عادة ما يكونون في انتظار استجابات نماذج الذكاء الاصطناعي التي تستغرق ثوان على أي حال. بداية باردة بقيمة 400-800 ملي ثانية غير محسوسة عملياً. إذا كنت مهتماً، تتيح خطة Vercel Pro تكوين تسخين قائم على cron، ويتضمن SDK منطق إعادة محاولة تلقائية لحالات الفشل العابرة. على مدى ستة أشهر من الاستخدام الإنتاجي، لم تكن البدايات الباردة مشكلة يبلغ عنها المستخدمون لعملائنا.