chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
# Sample
|
||||
|
||||
This is a JavaScript sample for an MCP Server
|
||||
|
||||
Here's an example of a tool registration where we register a tool that makes a mock call to an 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)
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
);
|
||||
```
|
||||
|
||||
## Install
|
||||
|
||||
Run the following command:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
## Run
|
||||
|
||||
```bash
|
||||
npm start
|
||||
```
|
||||
Reference in New Issue
Block a user