83 lines
2.5 KiB
Markdown
83 lines
2.5 KiB
Markdown
# مثال
|
|
|
|
هذا مثال بلغة جافا سكريبت لخادم MCP
|
|
|
|
إليك مثال على تسجيل أداة حيث نسجل أداة تقوم بإجراء مكالمة وهمية إلى LLM:
|
|
|
|
```javascript
|
|
this.mcpServer.tool(
|
|
'completion',
|
|
{
|
|
model: z.string(),
|
|
prompt: z.string(),
|
|
options: z.object({
|
|
temperature: z.number().optional(),
|
|
max_tokens: z.number().optional(),
|
|
stream: z.boolean().optional()
|
|
}).optional()
|
|
},
|
|
async ({ model, prompt, options }) => {
|
|
console.log(`Processing completion request for model: ${model}`);
|
|
|
|
// Validate model
|
|
if (!this.models.includes(model)) {
|
|
throw new Error(`Model ${model} not supported`);
|
|
}
|
|
|
|
// Emit event for monitoring/metrics
|
|
this.events.emit('request', {
|
|
type: 'completion',
|
|
model,
|
|
timestamp: new Date()
|
|
});
|
|
|
|
// In a real implementation, this would call an AI model
|
|
// Here we just echo back parts of the request with a mock response
|
|
const response = {
|
|
id: `mcp-resp-${Date.now()}`,
|
|
model,
|
|
text: `This is a response to: ${prompt.substring(0, 30)}...`,
|
|
usage: {
|
|
promptTokens: prompt.split(' ').length,
|
|
completionTokens: 20,
|
|
totalTokens: prompt.split(' ').length + 20
|
|
}
|
|
};
|
|
|
|
// Simulate network delay
|
|
await new Promise(resolve => setTimeout(resolve, 500));
|
|
|
|
// Emit completion event
|
|
this.events.emit('completion', {
|
|
model,
|
|
timestamp: new Date()
|
|
});
|
|
|
|
return {
|
|
content: [
|
|
{
|
|
type: 'text',
|
|
text: JSON.stringify(response)
|
|
}
|
|
]
|
|
};
|
|
}
|
|
);
|
|
```
|
|
|
|
## التثبيت
|
|
|
|
شغّل الأمر التالي:
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
## التشغيل
|
|
|
|
```bash
|
|
npm start
|
|
```
|
|
|
|
**إخلاء المسؤولية**:
|
|
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. للمعلومات الهامة، يُنصح بالاعتماد على الترجمة البشرية المهنية. نحن غير مسؤولين عن أي سوء فهم أو تفسير ناتج عن استخدام هذه الترجمة. |