mcpField
M
My First MCP Server

My First MCP Server

ローカル
github.com/enriquetecfan11開発ツール045 週間前に更新

My First MCP Server について

SSE ベースのサーバーを構築する開発者向けの、Express と Node.js による MCP サーバーテンプレートです。外部 HTTP API を使うネットワーク確認とユーザー操作のツール例を備えています。

主な機能

  1. 01SSE と HTTP エンドポイント
  2. 02ネットワーク・API 状態確認ツール
  3. 03ユーザー取得・作成ツール
  4. 04拡張可能なツールモジュール

活用シーン

  1. 01Express ベースの MCP サーバーの開始
  2. 02API の状態とユーザー操作の公開
  3. 03サンプルツールの別ドメインへの適用

MCP 対応

`GET /sse` で SSE 経由の MCP ツールを公開し、`POST /messages` でメッセージを受け付けます。MCP クライアントは SSE エンドポイントに接続し、メッセージエンドポイントへツール要求を送ります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

はじめての SSE MCP サーバー

Model Context Protocol (MCP) に基づくサンプルサーバーです。HTTP + Server-Sent Events (SSE) を介してツールを公開し、ローカルのユーザー API およびステータス API と連携します。

このリポジトリは、Express + SSE に基づく Node 用の MCP サーバーをさらに作成するためのテンプレート/ボイラープレートとして設計されています。このプロジェクトをクローンし、名前を変更して、サンプルツールを独自のドメインや API に合わせて調整することを想定しています。

目次


🇪🇸 スペイン語ドキュメント

概要

myfirstmcpserver は、次の機能を備えた MCP サーバーです。

  • Express を使用して、SSE エンドポイント(GET /sse)と HTTP エンドポイント(POST /messages)を公開します。
  • MCP ツールを登録するために、公式 SDK @modelcontextprotocol/sdk を使用します。
  • ネットワークおよびユーザー操作のため、外部 HTTP API(デフォルトは http://localhost:3001)に接続します。

技術的な詳細については、内部仕様書 docs/spec.md を参照してください。

主な機能
  • SSE トランスポート:MCP SDK の SSEServerTransport に基づく統合です。
  • ドメイン別のグループ化:
    • networkTools:API の接続性とステータスに関連するツールです。
    • userTools:外部 API を介してユーザーを一覧表示および作成するツールです。
  • 拡張しやすい設計:新しいツールグループや操作を簡単に追加できます。

注:リポジトリ名は STDIO に言及していますが、このテンプレートは純粋な STDIO ではなく、Express + SSE に基づいています。

このテンプレートの使用方法
  1. このリポジトリをクローンするか、GitHub の template として使用します。
  2. 必要に応じて、package.json のパッケージ名と説明を変更します。
  3. 必要に応じて、src/config/server.js の McpServer の name を変更します。
  4. 次のファイルにあるサンプルツールを調整または削除します。
    • src/tools/networkTools.js
    • src/tools/userTools.js 独自のドメインに合わせて、同じパターンで新しい initializeXTools モジュールを作成します。
  5. 環境変数 API_BASE_URL を設定して、実際の API を指定します。
  6. 新しいプロジェクトに合わせて、README.md と docs/spec.md のドキュメントを調整します。
要件
  • Node.js ≥ 18(Node のネイティブ fetch を使用します)。
  • npm(パッケージマネージャー)。
インストール

プロジェクトのルートから実行します。

npm install
実行
  • 開発モード(nodemon を使用):
npm run dev
  • 通常モード:
npm start

デフォルトでは、サーバーは http://localhost:3000 で起動します。SSE エンドポイントは次のとおりです。

  • GET http://localhost:3000/sse

MCP メッセージエンドポイントは次のとおりです。

  • POST http://localhost:3000/messages
MCP クライアントでの使用

このサーバーは、SDK で定義されている SSE トランスポート(SSEServerTransport)をサポートするMCP クライアントから利用することを想定しています。

一般的に、クライアントは次の操作を行います。

  • GET /sse に対して SSE 接続を開きます。
  • MCP リクエスト(ツール)を JSON 形式で POST /messages に送信します。

外部 SSE エンドポイントの設定方法については、使用する MCP クライアントのドキュメントを参照してください。

利用可能な MCP ツール

ツールは McpServer のインスタンスに登録され、詳しい説明は docs/spec.md に記載されています。概要は次のとおりです。

  • 🔗 ネットワークツール(src/tools/networkTools.js):
    • ping({ url }):fetch(url) を実行し、ステータスコードまたはエラーを返します。
    • apiStatus():http://localhost:3001/status を呼び出し、ステータスの JSON を返します。
  • 👤 ユーザーツール(src/tools/userTools.js):
    • getUsers():http://localhost:3001/users からユーザー一覧を取得します。
    • createUser({ name, email }):名前と姓を分けて新しいユーザーを作成し、POST を http://localhost:3001/users に送信します。
外部 API

このプロジェクトには、http://localhost:3001 の外部 API の実装は含まれていません。 この API を利用するだけです。少なくとも次のサービスが存在することを想定しています。

  • GET /status — ステータス情報を返します。
  • GET /users — ユーザーの配列を返します。
  • POST /users — 適切な JSON ボディを指定して、新しいユーザーを作成します。

データ構造の例については、docs/spec.md を参照してください。


🇬🇧 英語のドキュメント

概要

myfirstmcpserver は、次の機能を備えた**Model Context Protocol(MCP)**サーバーです。

  • Express を使用して、SSE エンドポイント(GET /sse)と HTTP エンドポイント(POST /messages)を公開します。
  • 公式の @modelcontextprotocol/sdk を使用して、MCP ツールを登録します。
  • 外部 HTTP API(デフォルトでは http://localhost:3001)に接続して、ネットワークやユーザーに関する操作を行います。

技術的な詳細については、docs/spec.md の内部仕様を確認してください。

機能
  • SDK の SSEServerTransport を使用した SSE トランスポート。
  • ドメイン別のツールグループ化:
    • networkTools:接続性と API のヘルスチェック。
    • userTools:外部 API を介したユーザーの一覧表示と作成。
  • 拡張しやすい設計:新しいツールグループや操作を簡単に追加できます。

注:リポジトリ名に STDIO とありますが、このテンプレートは純粋な STDIO トランスポートではなく、 Express + SSE を使用しています。

このテンプレートの使い方
  1. このリポジトリをクローンするか、GitHub で テンプレート として使用します。
  2. 必要に応じて、package.json のパッケージの name と description を更新します。
  3. 必要に応じて、src/config/server.js の McpServer の name を変更します。
  4. 次のファイルにあるサンプルツールを調整または削除し、
    • src/tools/networkTools.js
    • src/tools/userTools.js 同じパターンに従って新しい initializeXTools モジュールを作成します。
  5. API_BASE_URL 環境変数を、実際の API を指すように設定します。
  6. 実際のプロジェクトの内容を説明するように、この README.md と docs/spec.md を調整します。
必要条件
  • Node.js ≥ 18(Node.js 組み込みの fetch を使用します)。
  • パッケージマネージャーとして npm。
セットアップ

プロジェクトのルートから実行します。

npm install
実行
  • 開発モード(nodemon を使用):
npm run dev
  • 通常モード:
npm start

デフォルトでは、サーバーは http://localhost:3000 でリッスンします。主なエンドポイントは次のとおりです。

  • GET http://localhost:3000/sse — MCP 用の SSE エンドポイント。
  • POST http://localhost:3000/messages — MCP メッセージ用のエンドポイント。
MCP クライアントからの利用

このサーバーは、SDK で実装されている SSE トランスポートに対応した MCP クライアントからの利用を想定しています。

一般に、クライアントは次の操作を行います。

  • GET /sse で SSE 接続を開きます。
  • MCP ツールのリクエストを JSON として POST /messages に送信します。

外部の SSE MCP サーバーを指定するための正確な設定形式については、お使いの MCP クライアントのドキュメントを参照してください。

利用可能な MCP ツール

ツールは McpServer インスタンスに登録されています。詳しくは docs/spec.md を参照してください。 概要は次のとおりです。

  • 🔗 ネットワークツール(src/tools/networkTools.js):
    • ping({ url }):fetch(url) を実行し、HTTP ステータスコードまたはエラーを返します。
    • apiStatus():http://localhost:3001/status を呼び出し、ステータス JSON を返します。
  • 👤 ユーザーツール(src/tools/userTools.js):
    • getUsers():http://localhost:3001/users からユーザー一覧を取得します。
    • createUser({ name, email }):フルネームを姓と名に分割し、POST を http://localhost:3001/users に送信して新しいユーザーを作成します。
外部 API

このプロジェクトには、http://localhost:3001 の外部 API の実装は含まれていません。 この API を利用するだけです。少なくとも次のサービスが存在することを想定しています。

  • GET /status — 一般的なステータス情報を返します。
  • GET /users — ユーザーの配列を返します。
  • POST /users — 適切な JSON ボディを指定して、新しいユーザーを作成します。

リクエストデータの例は docs/spec.md にあります。


作成者:Enrique Rodriguez Vela

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。