0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MCPについて理解する1

Posted at

はてなブログを見ればMCPMCPと盛り上がっているよう?なので管轄外ではありますが、興味を持った今日この頃。
久しぶりに時間もあるので時代に取り残されないように調べてみました。

MCPってなんぞ?

ModelContextProtocol直訳したらモデルの文脈に関する手順って意味になりますが、全くその通りっぽくて

AIアシスタントが、外部データやツールにアクセスするための共通ルールのことを指している

MCPを使用することでAI <-> データ・ツールの接続方式を標準化することができるっぽい

共通ルールについて知る

MCPについて軽く理解をする上で以下のルールは知っておかないといけない

  1. 共通言語はJSON-RPC
    例えば多国籍な人らと会議することになったら必要となるルールが共通言語。英語で話そう!というようにMCPではJSON-RPCでやり取りしよう!ってなっている

  2. initializeの役割
    クライアントがサーバーに呼びかけを行う際には必ずInitializeというメソッドを送る
    状況としては「自分の持っている機能を持っているよ!!」と「どんな機能を持っている??」というような自己紹介をしているみたいです

  3. 1.2.のフローが終わった後
    初期化が終わると、登録された関数の呼び出しだったり、何でもかんでも楽しめるらしい

理解すべき概念

MCPはHost/Client/Server/の三つの役割で成り立っています。

まず、ホストが複数のクライアントを作成します
次に作成されたクライアントがサーバーと1on1で通信を行い、AI機能を拡張させているという構造になっています。

スクリーンショット 2025-04-11 22.56.07.png

適当に参考にしてきて書いた(こんな感じらしい)

Host

ホストは軸の部分で以下の役割を持っている
・クライアントの作成と管理
・AIとの連携と指示
・複数のサーバーから仕入れた情報をもとに最適化を行う

Client

クライアントは特定サーバーとセッションすることを役割としている
・1クライアントにつきサーバーは一つという制限
それぞれ、DBサーバー用のクライアント・gitやファイルについてのクライアントなど一つのクライアントには一つしか役割を与えることができない。
・JSON-RPCで通信を行う
・通知やイベントに対応する
サーバーから受け取ったログや通知はクライアント側で受付、必要に応じてホストにフィードバックを行う。

Server

サーバーはAIが活用できる機能やデータを公開する役割

  • ツールなどの提供
    例えば、データベースの照会・ファイルの更新など色々な機能をエンドポイントとして公開してそれぞれはクライアントによって呼び出される
  • ホストや他のサーバーにアクセスすることはできない
    セキュリティを高い水準で保持するためにもあくまでクライアントの属人化のような役割でいる
    そのため、他サーバーや内部データに触れることはできない

土日は結局暇になるんで実際に作ってみます(ハナホジ)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?