Files
2026-07-13 13:31:35 +08:00

83 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 範例
這是一個用於 MCP Server 的 JavaScript 範例
以下是一個工具註冊的範例,我們註冊了一個會對 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
```
**免責聲明**
本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或誤釋負責。