83 lines
2.2 KiB
Markdown
83 lines
2.2 KiB
Markdown
# Örnek
|
||
|
||
Bu, bir MCP Sunucusu için JavaScript örneğidir
|
||
|
||
Bir aracın kaydedildiği ve bu aracın LLM'e sahte bir çağrı yaptığı bir araç kayıt örneği:
|
||
|
||
```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)
|
||
}
|
||
]
|
||
};
|
||
}
|
||
);
|
||
```
|
||
|
||
## Kurulum
|
||
|
||
Aşağıdaki komutu çalıştırın:
|
||
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
## Çalıştırma
|
||
|
||
```bash
|
||
npm start
|
||
```
|
||
|
||
**Feragatname**:
|
||
Bu belge, AI çeviri servisi [Co-op Translator](https://github.com/Azure/co-op-translator) kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayın. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucu oluşabilecek yanlış anlamalar veya yorum hatalarından sorumlu değiliz. |