宇宙一わかりやすいMCP入門 〜「仕組み」ではなく「何ができるか」を考えよう!〜
MCPって聞いたことある?〜Aくんの新発見〜
この記事の読み方
「MCPとは何か?」を最初に定義するのではなく、「MCPで何ができるか?」から始めます。
なぜなら、多くの技術記事は「プロトコルとは...」という仕組みの説明で始まり、
そこで挫折してしまう読者が多いからです。この記事を読み終えた後で「MCPとは何か?」を改めて調べてみてください。
きっと、より深く理解できるはずです。
「美咲さん、ちょっと面白いものを見つけたんだ」
Aくんが昼休みのオフィスで、興奮気味に美咲に声をかけた。相変わらず新しい技術には目がない彼だ。
「何ですか?また新しいフレームワークですか?」
美咲は少し苦笑いを浮かべながら聞き返す。Aくんの新技術への情熱は尊敬するけれど、ついていくのが大変なのも事実だった。
「MCPっていうものなんだけど、Model Context Protocolの略らしくて...」
「はい、ストップ」
突然、結愛がAくんの説明を遮った。いつの間にか二人の会話を聞いていたらしい。
「Aくん、また『プロトコル』とか専門用語から説明しようとしてるでしょ?」
「えっ、でも実際にプロトコルだし...」
「そうやって難しい言葉から始めるから、みんな『おなかいっぱい』になって離脱しちゃうのよ」
結愛は呆れたような表情で言った。
プロトコルって言われても...
「そもそも『プロトコル』って何ですか?」
美咲が率直に疑問をぶつける。実は彼女のような素直な疑問こそが、多くの人が感じていることなのだ。
「えーっと...」
Aくんが答えに困っていると、結愛が口を開いた。
「美咲ちゃん、TCPって聞いたことある?」
「はい、なんとなく...でも正確には分からないです」
「でもWebブラウザとWebサーバーなら分かるでしょ?」
「それは分かります!ChromeでGoogleを開くとか」
結愛は満足そうにうなずいた。
身近な例から理解してみよう
「そうそう。実はこんな感じなのよ」
結愛がホワイトボードに図を描き始めた。
ホスト(人間) → ブラウザ ←→ TCP ←→ Webサーバー
(Chrome) (Google)
「TCPって何かよく分からなくても、人間がChromeを操作してGoogleにアクセスできるのは分かるでしょ?」
「確かに!普段使ってますね」
美咲は納得したような表情を見せる。
「MCPも全く同じ考え方なのよ」
結愛が新しい図を描いた。
ホスト(AI) → MCPクライアント ←→ MCPサーバー
(Claude Desktop内蔵) (GitHub MCP)
「つまり、AI(ホスト)が、アプリに内蔵されたMCPクライアントを使って、MCPサーバーにアクセスして色々な機能を使えるようになる、ってことですか?」
「そうそう!Webと同じ構造なのよ。人間がブラウザを操作するように、AIがMCPクライアントを操作してサーバーにアクセスするの」
結愛が補足する。
美咲の理解が早くて、Aくんも少し感心した。
「なるほど、これなら確かに分かりやすい!『プロトコル』って聞いた瞬間に思考停止しちゃうところでした」
Aくんも納得している。
「でも、MCPサーバーってなんで必要なんだろう?AIって万能に見えるけど...」
「あー、それね」
結愛は少し考えてから話し始めた。
AIって意外と知らないことが多いんだね
「美咲ちゃん、ChatGPTやClaudeって何でも知ってるように見える?」
結愛が質問を続ける。
「はい!すごく物知りですよね。でも...」
美咲が少し困ったような表情を見せる。
「でも?」
「最新のニュースとか、全然知らないんです。『2025年の最新情報は分からない』って言われちゃいます」
「そうそう!それがまず一つ目の限界よ」
結愛がうなずく。
「AIは学習した時点での知識しか持ってない。だから『今日のニュース』とか『最新の技術動向』は知らないのよ」
コピペ作業、みんなやってるよね?
「それに...」
Aくんが思い出したように言った。
「僕たち、AIにコードレビューしてもらう時、いつもファイルの中身をコピペしてるよね」
「あー!確かに毎回コピペしてます!」
美咲が手を叩いた。
「プログラムのバグを見つけてもらいたい時とか、設定ファイルをチェックしてもらいたい時とか...」
「そうそう。データベースの中身を調べてもらいたい時も、わざわざSQL実行して結果をコピペして...」
Aくんも苦笑いしながら続ける。
結愛が少し呆れたような表情を見せた。
「つまり、あなたたちはAIの『パシリ』をやってるってことよ」
人間がAIのパシリ!?
「パシリって...」
美咲が困惑する。
「考えてみて。本当はAIに『このファイルの内容を確認して』って言えたら楽なのに、実際には:
- ファイルを開く(人間の作業)
- 内容をコピーする(人間の作業)
- AIに貼り付ける(人間の作業)
- ようやくAIが分析開始
これって、人間がAIのために働いてるってことでしょ?」
「言われてみれば...」
Aくんも納得している。
「データベースの場合はもっと大変」
結愛が続ける。
- SQLを書く(人間)
- 実行する(人間)
- 結果を整形する(人間)
- AIにコピペする(人間)
- やっとAIが分析
「完全にAIの秘書やってるじゃない」
MCPで変わる関係性
「でも、MCPがあると?」
美咲が興味深そうに聞く。
「AIが直接ファイルを読める。データベースにもアクセスできる。GitHubのリポジトリも見られる」
結愛の説明が続く。
「つまり、『このプロジェクトのコードを見て問題点を教えて』って言うだけで、AIが勝手にファイルを読み回って分析してくれるの」
「え!それすごい便利じゃないですか!」
美咲の目が輝いた。
「確かに。僕たちが『パシリ』をやらなくて済むってことか」
Aくんも理解が進んできた。
効率性の革命
「効率性が全然違うのよ」
結愛が熱を込めて説明する。
「今まで:人間が情報を集めてAIに渡す
これから:AIが必要な情報を自分で取りに行く
この違いは大きいわよ」
「なるほど...」
Aくんが考え込んでいる。
「でも、どうやってAIがファイルにアクセスするんだろう?セキュリティとか大丈夫なの?」
「いい質問ね。それがMCPサーバーの役割なのよ」
結愛が意味深に微笑む。
「でも、具体的にどんなMCPサーバーがあるんですか?」
美咲が次の疑問を口にする。
「そこよ!」結愛がニヤリと笑う。
「最初の疑問は『MCPとは何か』だったわよね。これは抽象的な疑問。でも『どんなMCPサーバーがあるのか?』という具体的な疑問に昇華することで本質が見えてくるのよ」
「確かにそうだね。次はMCPサーバーの種類について調べてみよう。」
MCPサーバーって何があるの?〜具体例で理解する〜
「じゃあ、実際にどんなMCPサーバーがあるか見てみましょうか」
結愛がホワイトボードに向かいながら言った。
「楽しみです!」
美咲が身を乗り出す。
ファイルシステムサーバー
「まずは基本中の基本。ファイルシステムサーバー」
結愛が説明を始めた。
「これがあると、AIが直接ファイルを読んだり書いたりできるのよ」
「具体的にはどんな使い方があるんですか?」
美咲が質問する。
「例えば...」
Aくんが考えながら言った。
「『この設定ファイルに問題がないかチェックして』って言うだけで、AIが勝手にファイルを読んで分析してくれる?」
「そういうこと!コピペ不要よ」
結愛が満足そうにうなずく。
「あと、『ログファイルを分析してエラーの原因を教えて』とか、『プロジェクト全体のコード品質をチェックして』みたいなことも」
「それは便利すぎる...」
美咲が目を丸くした。
データベースサーバー
「次はデータベース系。PostgreSQLサーバーとかSQLiteサーバーとか」
「あー!これ欲しかった!」
Aくんが声を上げた。
「いつもSQLの結果をコピペしてたもんね」
美咲も共感している。
「そうそう。『売上データから傾向を分析して』って言うだけで、AIが勝手にSQLを書いて実行して、結果を分析してくれるの」
結愛の説明に二人とも感心している。
「BI的な使い方もできるってことか。これは革命的だな」
Aくんが興奮気味だった。
開発者向けサーバー
「開発者には嬉しいのがGitサーバーとGitHubサーバー」
「GitHubサーバー?」
美咲が首をかしげる。
「『このプルリクエストをレビューして』って言うだけで、AIがGitHubにアクセスして、コードの変更内容を確認して、レビューコメントを書いてくれるのよ」
「すごい!それってもう人間のレビュアーいらないじゃないですか?」
「まあ、最終的な判断は人間がするべきだけど、明らかなバグとかコーディング規約違反は見つけてくれそうね」
結愛が補足する。
サーバーは常時起動じゃない
「ちょっと待って、質問があります」
Aくんが手を上げた。
「MCPサーバーって、常にどこかで動いてるの?なんかサーバーって聞くと、どこかのクラウドで24時間動いてるイメージが...」
「あー、それは誤解ね」
結愛が首を振る。
「MCPサーバーは必要な時だけ起動すればいいの。しかもローカルのパソコンで動かすことも多いわよ」
「え、そうなんですか?」
美咲が驚く。
「うん。たとえば、AIは文字数を数えるのが苦手だって知ってる?」
「知ってる知ってる!」
Aくんが手を上げた。
「AIって、文字じゃなくて『トークン』っていう単位で文章を処理するんだ。だから文字数の正確なカウントが苦手なんだよね」
「そうそう!Aくん、よく知ってるじゃない」
結愛が感心している。
「『この文章は何文字ですか?』って聞いても、だいたい間違った答えが返ってくるの」
「確かに...言われてみれば、文字数を正確に答えてもらったことないかも」
美咲も思い当たる節があるようだった。
簡単なツールでMCPサーバー
「でも、これって簡単なスクリプトで解決できるのよ」
結愛がホワイトボードにコードを書き始めた。
def count_string(text: str) -> int:
return len(text)
「たったこれだけ?」
美咲が目を丸くする。
「そう。このシンプルな関数を、MCPサーバーとしてAIに提供できるの。AIが文字数を知りたい時だけ、このツールを呼び出す仕組みよ」
「なるほど!MCPサーバーって、必ずしも大きなシステムじゃなくて、小さなツールでもいいんですね」
Aくんが理解した。
「そういうこと。必要な時だけ使用する、最小構成のツール提供。これもMCPサーバーの一つの形なのよ」
「ただし、実際のMCPサーバーにするためにはもう少し複雑な仕組みが必要になるの。でもSDKが用意されてるので、簡単に実装できるのよ」
「もし興味があったらコメントで教えてくださいね」美咲があさっての方向を見ながらウインクしている。
「美咲さん、誰と話してんの?」Aくんが不思議そうに言った。
まとめ
「MCPって、AIの弱点を補完するツールなんですね」
美咲が整理してくれた。
「そうそう。ファイルアクセス、データベース操作、Git連携から、文字数カウントのような小さなツールまで。MCPサーバーがあることで、AIができることの幅がぐっと広がるのよ」
結愛が満足そうにうなずく。
「『MCPとは何か』がやっと理解できました!」
Aくんも納得した表情だった。
「でも、もっと詳しく知りたくなってきました。他にどんなことができるんでしょう?」
美咲の興味は尽きないようだ。
「それなら、いくつか参考になるサイトを紹介するわね」
結愛がスマートフォンを取り出した。
次のステップ
「まずは公式ドキュメントね。本記事を読んだ後なら、きっと理解しやすいはずよ」
「それから、MCPの公式GitHubアカウント。面白いのは、これがAnthropic社のアカウントじゃないってことなの」
「え?なんでですか?」
美咲が首をかしげる。
「自社で手柄を独占するんじゃなくて、コミュニティ全体を育てることを目指してるのよ。技術の発展って、みんなで協力した方が早いからね」
結愛が説明する。
「なるほど、それで独立したアカウントなんですね」
Aくんが納得している。
「最後に、実際のMCPサーバー一覧。ここを見ると、本当にたくさんのサーバーがあることが分かるわよ」
「各言語のSDKへのリンクもあるから、実際に作ってみたくなったら参考にしてみて」
「すごい!こんなにたくさんあるんですね」
美咲が画面を覗き込んでいる。
「次は実装編の解説だね」
Aくんが期待を込めて言った。
「ま、まぁ読者の要望があれば考えるわ」
結愛が面倒くさそうに答えたが、少し嬉しそうでもあった。
三人とも、MCPという技術が身近で実用的なものだと理解できた。そして、さらに深く学んでいきたいという気持ちも芽生えていた。
Discussion