Skip to main content
Glama
mcp-blanko

mcp-blanko

by KI4JLU

mcp-blanko

A template for building your own MCP (Model Context Protocol) server in TypeScript.

Includes placeholder tools, dual transport support (stdio + SSE), and a simple pattern for adding your own tools.

Quick Start

npm install
npm run build
npm start

Related MCP server: TypeScript MCP Server Boilerplate

Project Structure

src/
├── index.ts          # Entry point — transport selection
├── server.ts         # Server setup & tool registration
└── tools/
    ├── hello-world.ts      # Simple greeting tool
    ├── complex-input.ts    # Rich input schema with error handling
    ├── async-operation.ts  # Simulated long-running task
    ├── external-api.ts     # Placeholder for API integration
    └── file-operation.ts   # Local file read/write

Adding Your Own Tool

  1. Create a new file in src/tools/:

import { z } from "zod";
import type { ToolDefinition } from "../server.js";

export const myTool: ToolDefinition = {
  name: "my_tool",
  description: "What this tool does",
  inputSchema: z.object({
    param: z.string().describe("Description of param"),
  }),
  handler: async ({ param }) => {
    return {
      content: [{ type: "text", text: `Result: ${param}` }],
    };
  },
};
  1. Register it in src/server.ts:

import { myTool } from "./tools/my-tool.js";

const tools: ToolDefinition[] = [
  // ... existing tools
  myTool,
];
  1. Build and run:

npm run build && npm start

Transport Modes

stdio (default)

npm start
# or
npm run start:stdio

SSE (HTTP)

npm run start:sse
# or
MCP_PORT=3001 node dist/index.js --transport=sse

The SSE endpoint will be available at http://localhost:3001/sse.

Configuration

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-blanko": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-blanko/dist/index.js"]
    }
  }
}

Claude Code

claude mcp add mcp-blanko node /absolute/path/to/mcp-blanko/dist/index.js

Docker Deployment

Build and run with Docker Compose:

docker compose up -d

The SSE endpoint will be available at http://localhost:3001/sse. Put a reverse proxy (e.g., nginx, Caddy, Traefik) in front for HTTPS.

Or build and run manually:

docker build -t mcp-blanko .
docker run -d -p 3001:3001 mcp-blanko

Environment Variables

Variable

Default

Description

MCP_TRANSPORT

stdio

Transport mode: stdio or sse

MCP_PORT

3001

HTTP port for SSE transport

MCP_FILES_DIR

cwd

Base directory for the file operation tool

License

MIT

Available Tools

5 tools
fetch_dataC

Placeholder for a tool that calls an external API. Replace the handler with your own API logic.

Inputs: endpoint (required), method.

hello_worldA

A simple greeting tool. Takes a name and returns a personalized greeting.

Inputs: name (required).

long_running_taskC

Demonstrates an async tool that simulates a long-running operation (e.g., data processing, report generation).

Inputs: taskName (required), durationMs.

manage_fileC

Demonstrates reading and writing local files. Operates within a configurable base directory.

Inputs: action (required), filePath (required), content.

process_orderD

Demonstrates a tool with a rich input schema: nested objects, enums, optional fields, and error handling.

Inputs: items (required), customer (required), notes, priority.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    C2.7/5.0

    Scored across 5 tools

    Disambiguation4/5

    Each tool has a distinct purpose (API call, greeting, async task, file management, order processing), so there is little risk of confusion. However, 'fetch_data' is vaguely named and could overlap with 'long_running_task' in concept.

    Naming Consistency5/5

    All tool names use lowercase with underscores, following a consistent pattern. The names are descriptive and predictable.

    Tool Count4/5

    With 5 tools, the count is reasonable for a small demonstration server. It is slightly below the typical 3-15 range for a focused domain, but acceptable for a placeholder set.

    Completeness2/5

    The tools are unrelated demonstrations covering disparate domains (API, greeting, file I/O, order processing). There is no coherent domain, so coverage is severely incomplete for any real-world use case.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A production-ready Model Context Protocol server template in TypeScript that enables building MCP servers with dynamic tool registration, dual transport (stdio + HTTP), and pluggable authentication.
      7 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides a starting template for building MCP servers with TypeScript, including examples of tools and resources to accelerate development.
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      A minimal TypeScript MCP server template with example tool, Zod validation, stdio transport, and dotenv setup.
      23 npm
      MIT
    • A
      license
      C
      quality
      D
      maintenance
      A TypeScript template for building MCP servers with placeholder tools and dual transport support (stdio + SSE).
      5
      MIT