yhwancha

MCP Server TypeScript Starter

Community yhwancha
Updated

mkdir weather cd weather

MCP Server TypeScript Starter

This is a starter template for creating a Model Context Protocol (MCP) server using TypeScript. It provides a basic setup with a sample tool implementation to help you get started with building your own MCP server.

Features

  • TypeScript configuration
  • Basic MCP server setup
  • Sample tool implementation
  • Type-safe development environment

Getting Started

Follow these steps to create your own MCP server:

# Create a new directory for your project
mkdir <project_name>
cd <project_name>

# Initialize a new npm project
npm init -y

# Install dependencies
npm install @modelcontextprotocol/sdk zod
npm install -D @types/node typescript

# Create source directory and main file
mkdir src
touch src/index.ts

Project Structure

.
├── src/
│   └── index.ts    # Main server implementation
├── package.json    # Project dependencies and scripts
└── tsconfig.json   # TypeScript configuration

Development

  1. Implement your tools in src/index.ts
  2. Build the project:
    npm run build
    

Adding New Tools

To add a new tool, use the server.tool() method. Example:

server.tool(
  "tool-name",
  "tool-description",
  { 
    // Define your tool's parameters using Zod schema
    param: z.string().describe("parameter description") 
  },
  async ({ param }) => {
    // Implement your tool logic here
    return {
      content: [
        {
          type: "text",
          text: `Tool executed with parameter: ${param}`,
        },
      ],
    };
  },
);

MCP Server Configuration

You can configure multiple MCP servers in your project. Here's an example configuration:

{
    "mcpServers": {
        "<server_name>": {
            "command": "<command>",
            "args": [
                "--directory",
                "/ABSOLUTE/PATH/TO/PARENT/FOLDER/<project_name>",
                "run",
                "<script_name>"
            ]
        }
    }
}

This configuration specifies:

  • <server_name>: A unique identifier for your MCP server
  • command: The command to run your script (e.g., python, node, uv)
  • args: An array of command-line arguments
    • --directory: Sets the working directory for the script
    • Other arguments specific to your command and script needs

You can configure multiple servers by adding more entries to the mcpServers object.

License

ISC# venmo-mcp

mcp-spotify

MCP Server · Populars

MCP Server · New

    chatmcp

    mcpso

    directory for Awesome MCP Servers

    Community chatmcp
    TBXark

    MCP Proxy Server

    An MCP proxy server that aggregates and serves multiple MCP resource servers through a single HTTP server.

    Community TBXark
    ttommyth

    interactive-mcp

    Ask users questions from your LLM! interactive-mcp: Local, cross-platform MCP server for interactive prompts, chat & notifications.

    Community ttommyth
    lpigeon

    ros-mcp-server

    The ROS MCP Server is designed to support robots in performing complex tasks and adapting effectively to various environments by providing a set of functions that transform natural language commands, entered by a user through an LLM, into ROS commands for robot control.

    Community lpigeon
    emicklei

    melrose-mcp

    interactive programming of melodies, producing MIDI

    Community emicklei