mcpField
M
monkeymcp

monkeymcp

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

monkeymcp について

monkeymcp は .NET 9.0 で構築されたサンプルの MCP サーバーで、猴子のデータ検索、行程のシミュレーション、位置情報サービスを提供します。C# で MCP サーバーを構築する方法を学びたい開発者を対象とし、stdio と SSE の両方のトランスポートに対応しています。

主な機能

  1. 01全猴子データと名前による個別の猴子情報の取得
  2. 02猴子の移動経路と活動の生成
  3. 03Haversine 公式による行程距離の計算
  4. 04stdio と SSE の二つのトランスポート実装
  5. 05属性によるMCPツールの登録

活用シーン

  1. 01。NET で MCP サーバーを構築する方法の学習
  2. 02VS Code や Claude Desktop での MCP ツール呼び出しの検証
  3. 03カスタムツールサーバーの開始テンプレートとしての利用

MCP 対応

本プロジェクトは MCP サーバーであり、GetMonkeys、GetMonkey、GetMonkeyJourney、GetAllMonkeyJourneys などのツールを MCP クライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"jamesmontemagno-monkeymcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/jamesmontemagno/monkeymcp:2.0.3"
]
}
}
}
起動コマンドdocker run -i --rm docker.io/jamesmontemagno/monkeymcp:2.0.3

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocidocker.io/jamesmontemagno/monkeymcp:2.0.3

ツール

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

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

詳細

Monkey - Model Context Protocol (MCP) サーバー

概要

これは、.NET 9.0 で構築された Model Context Protocol(MCP)サーバーの実装です。MCP サーバーは、モデル駆動型システム内のさまざまなコンポーネント間のやり取りを可能にする通信プロトコルを提供します。この実装では、カスタムツールとサービスを備えた基本的な MCP サーバーのセットアップ方法を紹介します。

お試しください

VS Code と VS にすばやくインストール

Install Remote Server in VS Code Install Remote Server in VS Code Insiders

Install Docker Container in VS Code Install Docker Container in VS Code Insiders

Install Remote Server in Visual Studio Install Docker Container in Visual Studio

GitHub Copilot、Claude Desktop、その他の MCP クライアントを使用して VS Code で設定します:

オプション 1:リモート Azure Functions サーバー(推奨)
{
    "servers": {
        "monkeymcp": {
            "url": "https://func-monkeymcp-3t4eixuap5dfm.azurewebsites.net/",
            "type": "http"
        }
    },
    "inputs": []
}
オプション 2:Docker コンテナ
{
    "inputs": [],
    "servers": {
        "monkeymcp": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "jamesmontemagno/monkeymcp"
            ],
            "env": {}
        }
    }
}

機能

コアコンポーネント
  • MCP サーバー:ModelContextProtocol ライブラリ(バージョン 0.1.0-preview.2)を使用して構築
  • 標準入出力トランスポート:クライアントとの通信に stdio を使用
  • カスタムツールの統合:MCP ツールの作成と登録方法の例を含む
サービス
  • MonkeyService:API エンドポイントからサルのデータを取得するサンプルサービス

    • すべてのサルの一覧を取得したり、名前で特定のサルを検索したりするメソッドを提供
    • パフォーマンス向上のために結果をキャッシュ
  • MonkeyLocationService:サルのための独自の旅程やアクティビティを生成するサービス

    • サルの種の行動に基づき、ランダムな経路ポイントを作成
    • 種に応じたアクティビティ(毛づくろい、遠吠え、温泉入浴など)を生成
    • 健康統計と移動パターンを提供
    • 各旅程には、バナナを食べる、ほかのサルを掃除する、探索するといった楽しいアクティビティが含まれます
利用可能なツール

サーバーは、クライアントから呼び出せる複数のツールを公開します:

Monkey Tools
  • GetMonkeys:利用可能なすべてのサルのシリアル化された JSON リストを返します
  • GetMonkey:名前を指定して特定のサルの情報を取得します
  • GetMonkeyJourney:特定のサルのアクティビティと健康統計を含む、固有の経路を作成します
  • GetAllMonkeyJourneys:利用可能なすべてのサルの経路を生成します

構成オプション

ホスティング構成

このサーバーは Microsoft.Extensions.Hosting(バージョン 9.0.3)を使用しており、以下の機能を提供します。

  • 複数のソース(JSON、環境変数、コマンドライン)からの構成
  • サービスの依存関係の注入
  • ログ機能
ログオプション

複数のログプロバイダーを利用できます。

  • Console:標準出力にログを記録します
  • Debug:デバッグ目的でログを記録します
  • EventLog:システムイベントログにログを記録します(Windows で実行する場合)
  • EventSource:ETW(Event Tracing for Windows)との統合を提供します

はじめに

前提条件
  • .NET 9.0 SDK 以降
  • Model Context Protocol(MCP)の基本的な理解
サーバーの実行
  1. このリポジトリをクローンします
  2. プロジェクトディレクトリに移動します
  3. プロジェクトをビルドします:dotnet build
  4. VS Code またはその他のクライアントで構成します。
"monkeyserver": {
    "type": "stdio",
    "command": "dotnet",
    "args": [
        "run",
        "--project",
        "/Users/jamesmontemagno/GitHub/TestMCP/MonkeyMCP/MonkeyMCP.csproj"
    ]
}

プロジェクトへのパスを更新してください

サーバーの拡張

カスタムツールを追加するには:

  1. クラスを作成し、[McpServerToolType] 属性を付与します
  2. [McpServerTool] 属性を持つメソッドを追加します
  3. 必要に応じて [Description] 属性を追加し、ドキュメントを記述します

例:

[McpServerToolType]
public static class CustomTool
{
    [McpServerTool, Description("Description of what the tool does")]
    public static string ToolMethod(string param) => $"Result: {param}";
}

サーバー送信イベントの実装(MonkeyMCPSSE)

概要

MonkeyMCPSSE プロジェクトは、stdio トランスポートの代わりに HTTP 上のサーバー送信イベント(SSE)を使用する、Monkey MCP サーバーの代替実装を提供します。この実装はウェブサーバーとして動作するため、ウェブベースのクライアントや HTTP ベースの通信が必要なシナリオに適しています。

SSE のセキュリティに関するベストプラクティスについてはこちらをご覧ください

特長
  • HTTP ベースのトランスポート:デフォルトで http://localhost:3001 で動作します
  • サーバー送信イベント:サーバーからクライアントへのリアルタイムな一方向通信を可能にします
  • ASP.NET Core との統合:ASP.NET Core のウェブサーバー機能を使用して構築されています
  • HTTP 上の MCP:HTTP トランスポートを介して Model Context Protocol を実装します
SSE サーバーの実行
  1. MonkeyMCPSSE ディレクトリに移動します
  2. プロジェクトをビルドして実行します:
  3. VS Code または MCP Inspector npx @modelcontextprotocol/inspector を使用して接続し、実行します
実装の詳細

SSE 実装は ASP.NET Core に組み込まれたウェブサーバー機能を使用しながら、stdio バージョンと同じサルデータサービスとツールを維持します。これにより、コア機能を保ったままトランスポート方式を簡単に切り替えられます。

プロジェクト構成

  • /MonkeyMCP:メインのプロジェクトディレクトリ
    • MonkeyService.cs:サルデータを取得するサービスの実装
    • MonkeyTools.cs:サルデータにアクセスするための MCP ツール
    • Program.cs:MCP サーバーを構成して起動するエントリーポイント

依存関係

  • Microsoft.Extensions.Hosting(9.0.3):ホスティング基盤を提供します
  • ModelContextProtocol(0.1.0-preview.2):MCP サーバーの実装
  • System.Text.Json(9.0.3):JSON のシリアル化/逆シリアル化

ライセンス

このプロジェクトは MIT License の下で利用できます。

MonkeyLocationService の機能

MonkeyLocationService は、豊富なシミュレーション機能を提供します。

サルの種類の構成
  • ヒヒ:サバンナに生息し、社会的な毛づくろい行動や根を探す採食行動を行います
  • ホエザル:縄張りを示す遠吠えや葉を食べることで知られる、森林の住人です
  • ニホンザル:温泉や雪遊びを楽しむ山地のサルです
  • テングザル:泳ぎ、特徴的な鼻を見せびらかすマングローブのスペシャリストです
  • キンシコウ:暖を取るために身を寄せ合う、高地のアクロバットです
旅の構成要素
  • 経路ポイント:サルが移動した場所を示す GPS 座標
  • アクティビティ:エネルギーの消費や獲得を伴う、種特有の行動
  • 健康統計:エネルギー、幸福度、空腹度、社会性、ストレス、健康状態の指標
  • 時間の追跡:開始時刻と終了時刻、およびアクティビティの所要時間
  • 距離の計算:ハーバーサイン公式を使用した旅の総距離
含まれるユニークなアクティビティ
  • バナナ探しと食事
  • 相互の毛づくろい
  • 縄張りのマーキング
  • 温泉浴(マカク)
  • 泳ぎ(テングザル)
  • アクロバティックな演技
  • 社会的な交流
  • 採餌と探索

コメント

MCP は初めてですか?

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

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