Skip to main content
Glama
TypeScript MCP Sample Server

TypeScript MCP Sample Server

by haneefdm

Sample

This is a Typescript sample for an MCP Server

Here's a tool creation example:

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:

npm install

Related MCP server: HelloWorld MCP Server

Run

npm start

Available Tools

1 tool
completionD

Inputs: model (required), prompt (required), options.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    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
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      D
      quality
      D
      maintenance
      A minimal Model Context Protocol server in TypeScript that demonstrates MCP-compliant resources and tools for LLMs, featuring simple resources and a basic tool that echoes messages or returns greetings.
      1
      5
      Apache 2.0
    • A
      license
      B
      quality
      D
      maintenance
      A demonstration TypeScript MCP server that showcases basic MCP concepts with simple tools (greeting, calculator), text resources, and prompt templates for learning the Model Context Protocol.
      2
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A simple demonstration MCP server that provides a basic 'say_hello' tool for greeting users by name, serving as a template for building MCP servers with TypeScript.
      6 npm
      1
      ISC