mcpField
M
MCP Server Sample

MCP Server Sample

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

MCP Server Sample について

プロトコルの基礎を学ぶ開発者向けの、GoによるMCPサーバーの基本実装です。標準入出力でJSONメッセージを処理し、基本的なメッセージ型とエラー処理を定義します。

主な機能

  1. 01標準入出力によるJSONメッセージ処理
  2. 02基本的なMCPプロトコル型
  3. 03エラー処理
  4. 04Goによるサーバー構成

活用シーン

  1. 01MCPサーバーの基本実装を学ぶ
  2. 02ツールやリソースを追加する土台として使う

MCP 対応

標準入出力でJSONメッセージを処理する基本的なMCPサーバーを実装します。ツールやリソースの実装は拡張項目として記載されています。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

プロジェクトの README より

MCP Server Sample

このプロジェクトは、Model Context Protocol (MCP) に準拠したサーバーの基本実装です。MCPは、モデルとローカルで実行されているMCPサーバー間の通信を可能にするプロトコルです。

機能

  • 標準入出力を介したJSONメッセージの処理
  • MCPプロトコルに準拠した基本的な型定義
  • エラーハンドリング機能

プロジェクト構造

.
├── main.go              # メインサーバーの実装
├── go.mod              # Goモジュール定義
└── server/
    └── types.go        # MCPプロトコルの型定義

主要コンポーネント

ServerInfo (main.go)

サーバーの基本情報を管理する構造体です。

type ServerInfo struct {
    Name    string `json:"name"`
    Version string `json:"version"`
}
Server (main.go)

MCPサーバーの基本機能を提供する構造体です。

type Server struct {
    info         ServerInfo
    capabilities map[string]interface{}
}
MCP メッセージ型 (server/types.go)
  • Request: クライアントからのリクエストを表現
  • Response: サーバーからのレスポンスを表現
  • Error: エラー情報を表現

セットアップ

  1. リポジトリのクローン:
git clone <repository-url>
cd mcp-server-sample
  1. 依存関係のインストール:
go mod tidy
  1. サーバーの実行:
go run main.go

拡張

このサーバーは以下の機能を追加することで拡張できます:

  1. ツールの実装

    • 特定の機能を提供するツールの追加
    • ツールのパラメータとレスポンスの定義
  2. リソースの実装

    • 静的/動的リソースの追加
    • リソーステンプレートの定義
  3. メッセージハンドラー

    • 特定のメソッドに対するハンドラーの実装
    • カスタムエラーハンドリング

生成AI

このドキュメントは生成AIの支援を受けて作成されています。

ライセンス

このプロジェクトはMITライセンスの下で公開されています。

コメント

MCP は初めてですか?

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

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