Skip to main content
Glama
haneefdm

TypeScript MCP Sample Server

by haneefdm
README.md
# Sample

This is a Typescript sample for an MCP Server

Here's a tool creation example:

```typescript
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
```

TDQS

D1.7/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'completion' stands alone with no other tools to confuse it with.

Naming Consistency5/5

A single tool inherently has perfect naming consistency, as there are no other tool names to compare it against. The name 'completion' follows a clear, simple pattern with no deviations.

Tool Count2/5

A single tool is too few for a server named 'TypeScript MCP Sample Server', which suggests a broader purpose like code assistance or development tasks. One tool feels thin and insufficient for such a scope, limiting functionality.

Completeness1/5

The tool set is severely incomplete for the inferred domain of TypeScript development. With only a 'completion' tool and no description, it lacks essential operations like code analysis, refactoring, or error checking, leaving significant gaps in coverage.

Maintenance

ActivityInactive
ResponsivenessNo issues