MCP Server Boilerplate

Integrations

  • Enables configuration of the MCP server through environment variables, supporting settings for port configuration, environment mode, and OAuth settings.

  • Provides the HTTP transport layer for the MCP server, allowing it to serve MCP resources, tools, and prompts over a RESTful API interface.

  • Serves as the runtime environment for the MCP server, enabling both HTTP and stdio transport options.

MCP サーバー ボイラープレート

TypeScript と Express を使用して構築された、モデル コンテキスト プロトコル (MCP) の定型サーバー実装。

目次

概要

このプロジェクトは、モデルコンテキストプロトコル(MCP)に準拠したサーバーを実装します。MCPにより、アプリケーションは標準化された方法でLLMのコンテキストを提供できるようになります。MCPには以下のものが含まれます。

  • HTTPおよびstdioトランスポートオプションを備えた完全に構成されたMCPサーバー
  • 主要な機能を実証するためのサンプルリソース、ツール、プロンプト
  • 型安全性と開発者エクスペリエンスの向上を実現する TypeScript サポート
  • HTTPトランスポート層の高速統合

プロジェクト構造

mcp-server-boilerplate/ ├── .env # Environment variables ├── .env.example # Example environment variables ├── .gitignore # Git ignore file ├── package.json # Project dependencies and scripts ├── tsconfig.json # TypeScript configuration ├── src/ │ ├── index.ts # Main HTTP server entry point │ ├── stdio.ts # Stdio server entry point │ ├── resources/ # MCP resources │ │ ├── index.ts # Resource registration │ │ ├── infoResource.ts # Static info resource │ │ └── greetingResource.ts # Dynamic greeting resource │ ├── tools/ # MCP tools │ │ ├── index.ts # Tool registration │ │ ├── calculatorTool.ts # Sample calculator tool │ │ └── timestampTool.ts # Sample timestamp tool │ └── prompts/ # MCP prompts │ ├── index.ts # Prompt registration │ ├── greetingPrompt.ts # Sample greeting prompt │ └── analyzeDataPrompt.ts # Sample data analysis prompt └── dist/ # Compiled JavaScript output

はじめる

前提条件

  • Node.js (v18以降)
  • npmまたはyarn

インストール

リポジトリをクローンし、依存関係をインストールします。

git clone https://github.com/yourusername/mcp-server-boilerplate.git cd mcp-server-boilerplate npm install

環境変数

サンプル環境ファイルをコピーし、必要に応じて変更します。

cp .env.example .env

利用可能な環境変数:

  • PORT : HTTPサーバーのポート(デフォルト: 3000)
  • NODE_ENV : 環境モード(開発、本番)
  • OAuth設定(必要な場合)

サーバーの実行

HTTPサーバー

HTTP サーバーをビルドして起動します。

npm run build npm start

自動再起動を使用した開発の場合:

npm run dev

サーバーはhttp://localhost:3000/mcp (または .env ファイルで指定されたポート) で利用できます。

標準モード

サーバーを stdio モード (コマンドライン ツール用) で実行するには:

npm run start:stdio

自動再起動を使用した開発の場合:

npm run dev:stdio

リソース

定型文には次のサンプル リソースが含まれています。

  1. 静的情報リソース: info://server
    • サーバーに関する基本情報を提供します
  2. 動的グリーティングリソース: greeting://{name}
    • 指定された名前パラメータを使用してパーソナライズされた挨拶を生成します

リソースにアクセスするには:

  • MCPプロトコルを通じて
  • MCPクライアントライブラリの使用

ツール

定型文には次のサンプル ツールが含まれています。

  1. 電卓: 基本的な算術演算を実行します
    • パラメータ:
      • operation : 実行する演算(加算、減算、乗算、除算)
      • a : 最初の数字
      • b : 2番目の数字
  2. タイムスタンプ: 現在の時刻をさまざまな形式で提供します
    • パラメータ:
      • format : 出力形式 (iso、unix、readable)

プロンプト

定型文には次のサンプルプロンプトが含まれています。

  1. 挨拶: パーソナライズされた挨拶プロンプトを作成します
    • パラメータ:
      • name : 挨拶する名前
      • formal :フォーマルな挨拶スタイルを使用するかどうか(オプション)
  2. データ分析: データ分析のプロンプトを作成します
    • パラメータ:
      • data :分析するデータ
      • format : データ形式 (json、csv、テキスト)
      • instructions :追加の分析指示(オプション)

サーバーの拡張

リソースの追加

新しいリソースを追加するには:

  1. src/resources/に新しいファイルを作成します (例: myResource.ts )
  2. リソースハンドラーを実装する
  3. src/resources/index.tsに登録する

例:

// myResource.ts import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; export function myResource(server: McpServer): void { server.resource('my-resource', 'my-resource://path', async uri => ({ contents: [ { uri: uri.href, text: 'My resource content', }, ], })); } // Then add to resources/index.ts import { myResource } from './myResource.js'; export function registerResources(server: McpServer): void { // ...existing resources myResource(server); }

ツールの追加

新しいツールを追加するには:

  1. src/tools/に新しいファイルを作成します (例: myTool.ts )
  2. ツールハンドラーを実装する
  3. src/tools/index.tsに登録する

例:

// myTool.ts import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { z } from 'zod'; export function myTool(server: McpServer): void { server.tool('my-tool', { param: z.string() }, async ({ param }) => ({ content: [ { type: 'text', text: `Processed: ${param}`, }, ], })); } // Then add to tools/index.ts import { myTool } from './myTool.js'; export function registerTools(server: McpServer): void { // ...existing tools myTool(server); }

プロンプトの追加

新しいプロンプトを追加するには:

  1. src/prompts/に新しいファイルを作成します(例: myPrompt.ts
  2. プロンプトハンドラーを実装する
  3. src/prompts/index.tsに登録する

例:

// myPrompt.ts import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { z } from 'zod'; export function myPrompt(server: McpServer): void { server.prompt('my-prompt', { topic: z.string() }, ({ topic }) => ({ messages: [ { role: 'user', content: { type: 'text', text: `Please explain ${topic} in simple terms.`, }, }, ], })); } // Then add to prompts/index.ts import { myPrompt } from './myPrompt.js'; export function registerPrompts(server: McpServer): void { // ...existing prompts myPrompt(server); }

テストとデバッグ

MCP サーバーをテストするには、以下を使用できます。

  • MCPインスペクターツール
  • MCP クライアント ライブラリ
  • 直接 HTTP リクエスト (デバッグ用)

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

アプリケーションがサンプル リソース、ツール、およびプロンプトを使用して LLM の標準化されたコンテキストを提供できるようにする、すぐに使用できるモデル コンテキスト プロトコル (MCP) サーバーのスターター実装。

  1. Table of Contents
    1. Overview
      1. Project Structure
        1. Getting Started
          1. Prerequisites
          2. Installation
          3. Environment Variables
        2. Running the Server
          1. HTTP Server
          2. Stdio Mode
        3. Resources
          1. Tools
            1. Prompts
              1. Extending the Server
                1. Adding Resources
                2. Adding Tools
                3. Adding Prompts
              2. Testing and Debugging
                1. License

                  Related MCP Servers

                  • A
                    security
                    A
                    license
                    A
                    quality
                    A beginner-friendly Model Context Protocol (MCP) server that helps users understand MCP concepts, provides interactive examples, and lists available MCP servers. This server is designed to be a helpful companion for developers working with MCP. Also comes with a huge list of servers you can install.
                    Last updated -
                    3
                    9
                    36
                    JavaScript
                    Apache 2.0
                  • A
                    security
                    A
                    license
                    A
                    quality
                    An educational implementation of a Model Context Protocol server that demonstrates how to build a functional MCP server for integrating with various LLM clients like Claude Desktop.
                    Last updated -
                    1
                    88
                    Python
                    MIT License
                    • Apple
                    • Linux
                  • -
                    security
                    -
                    license
                    -
                    quality
                    A specialized server that helps users create new Model Context Protocol (MCP) servers by providing tools and templates for scaffolding projects with various capabilities.
                    Last updated -
                    1
                    TypeScript
                  • -
                    security
                    A
                    license
                    -
                    quality
                    A Model Context Protocol (MCP) server implementation that enables LLMs to interact with the Osmosis protocol, allowing for querying and transaction functionality through natural language.
                    Last updated -
                    9
                    TypeScript
                    MIT License
                    • Apple

                  View all related MCP servers

                  ID: dj0ge6bwh8