Zenn
🌊

【AIエージェント】MCPサーバーって何?

2025/03/10に公開
12

1.はじめに

MCPサーバーとは「AIにツールを持たせるための標準プロトコル」です。
いわばAI用USB-Cポートのようなもので、これを使うとAIがファイル操作やAPI呼び出しなど様々な機能を外部ツールとして取り込めます。

その威力を、AI開発ツールのClineやCursorを例に、業務改善アプリからWebサイト制作、モダンなWebアプリ開発、そしてUI/UXデザインにどんな変化が起きるのかを深掘りしていきます。
コード例も交えて解説しますので、AIアシスタントに魔法の杖を持たせたい開発者は必見です!


2.MCPサーバーの歴史

まずMCPサーバーとは何者なのか、簡単に説明しましょう。
MCPは Model Context Protocol(モデル・コンテキスト・プロトコル)の略で、Anthropic社が提唱したオープンソースのプロトコルです。これによってAIモデル(LLM)が外部のデータソースやツールにアクセスできるようになります。

「MCPはAIアプリ用のUSB-Cポートのようなもの。USB-Cがデバイスと周辺機器を標準化された方法で繋ぐように、MCPはAIモデルと様々なデータソース・ツールをつなぐ標準手段を提供する。」

参考文献

要するに、MCP対応のAIアシスタントに好きな“周辺機器”を後付けできるようになるんです。
例えば「ファイルシステム読み書き」「データベース問い合わせ」「外部API利用」「ブラウザ操作」など、欲しい機能ごとに小さなMCPサーバー(≒ツールの詰まった箱)を用意し、それをAIにポンと繋げるイメージです。

これまではAIに新機能を持たせるにはカスタムコードを書いて統合する必要がありましたが、MCPのおかげでプラグ&プレイに近い感覚で機能追加が可能になりました。

実際、Anthropicの提供するClaudeや、IDE拡張のCursor、VS CodeのエージェントClineなど多くのAIホストがMCPに対応し始めています。
MCPサーバー側も、SlackやGmail、Notion、GitHub、データベース(PostgresやSQLite)、ブラウザ操作、クラウド操作など幅広い公式・コミュニティ実装がどんどん増えています。

2-1. MCP対応ツールの一覧

現在のMCPの対応ツールですが、以下の一覧のように、『AIにやらせたいこと』をほぼ一通りカバーする勢いです。

カテゴリ 内容
ファイルシステム操作 ローカルファイルの安全な読み書き
DB問い合わせ Postgres/SQLiteからクエリ実行
Git/GitHub操作 リポジトリの検索、Issue管理
ウェブ検索・スクレイピング Brave検索APIの利用、Puppeteerでのブラウザ自動操作
チャットの送受信 Slack、Discord、Teams
クラウド操作 AWS、Cloudflare、Docker、Kubernetes管理
参考文献

2-2. MCPを利用するメリット

MCPを利用するメリットは標準化にあります。
昔ながらの方法でそれぞれのAPIとAIを繋ぐと、例えば「GPTに社内のRedmineチケットを取らせたい」と思ったら、フックするコードを自前で書いてプロンプトに埋め込んで…と結構大変。

でもMCPなら共通インターフェースで接続できるので、LLM側(AIアシスタント側)は道具が何であれ同じ手順で扱えるんです。
この標準規格のおかげで、

他社製LLMへの乗り換えもツール側のコードはそのまま再利用OK

コミュニティ製の便利ツールをそのまま使える。

データを社内に留めたままAIに処理させることも可能。

といったメリットがあります。
まさに 「AIエージェントで複雑なワークフローを構築するための新インフラ」 という位置付けで、これを活用しない手はありません。

では、実際このMCPサーバーをどう使うのか?ここから具体例に入っていきます。


3.業務改善AIアプリでMCPを活用するには?

まずは、業務改善AIアプリを作る場合です。
社内の様々な情報やツールにアクセスして、面倒な定型業務をAIが肩代わりしてくれる。
そんな夢のようなアプリがMCPでかなり現実味を帯びてきます。

例えば、「社内のJiraチケットを集計して進捗レポートを作成するAI」を考えてみましょう。
このAIに必要な能力は何でしょう? JiraのAPIからチケット情報を取得すること、社内WikiやSlackから関連情報を引っ張ってくること、場合によっては結果をSlackに投稿すること…など、結構いろんな社内システム連携が必要ですよね。

普通なら、それぞれのAPIを叩くコードを書いてAIに教え込む(プロンプトを工夫する)必要があります。でもMCP対応のAIなら話は別。「Jiraにアクセスするツール」「Slackにアクセスするツール」を後付けできるのです。

参考文献

つまり、自然言語で「○○なツール作って」と頼むとAIが裏でMCPサーバー実装を書き、エージェントに組み込んでしまうのです。

3-1. 自前でMCPサーバーを書く

Clineのような高度なことができるのは現状一部ですが、自前でMCPサーバーを書くこと自体もそこまで難しくありません。

公式のSDK(Python版・TypeScript版など) が用意されており、数十行のコードでカスタムツールをサーバー化できます。

例えば、「2つの数字を足し算する」の超シンプルなMCPサーバーをTypeScriptで書くと以下のようになります(機能は地味ですがMCPサーバーの構造理解にはちょうど良いサンプルです)。

2つの数字を足し算する
import { Server } from "@modelcontextprotocol/sdk/server";
import { StdioServerTransport, CallToolRequestSchema, ListToolsRequestSchema, McpError, ErrorCode } from "@modelcontextprotocol/sdk";

// 1. サーバーを初期化(名前とバージョンを設定)
const server = new Server({ name: "my-mcp-server", version: "1.0.0" }, { capabilities: { tools: {} } });

// 2. ツール一覧要求が来たときに応答するハンドラを登録
server.setRequestHandler(ListToolsRequestSchema, async () => {
  return {
    tools: [
      {
        name: "calculate_sum",
        description: "Add two numbers together",       // ツールの説明
        inputSchema: {                                // 入力のパラメータ仕様をJSON Schemaで定義
          type: "object",
          properties: {
            a: { type: "number" },
            b: { type: "number" }
          },
          required: ["a", "b"]
        }
      }
    ]
  };
});

// 3. ツール実行要求が来たときのハンドラを登録
server.setRequestHandler(CallToolRequestSchema, async (request) => {
  if (request.params.name === "calculate_sum") {
    const { a, b } = request.params.arguments;       // リクエストからパラメータ取得
    return { toolResult: a + b };                    // 計算結果をレスポンスとして返す
  }
  // 定義していないツール名が呼ばれた場合の例外
  throw new McpError(ErrorCode.ToolNotFound, "Tool not found");
});

// 4. サーバーを起動(標準入出力経由でホストと通信するモード)
const transport = new StdioServerTransport();
await server.connect(transport);

このコードを実行すると、calculate_sumという名前のツールを持つMCPサーバーが起動します。
ListToolsリクエストに対してはツール一覧(ここでは加算ツール一つ)を返し、CallToolリクエストに対しては足し算を行って結果を返しています。

これをAI(MCPホスト側)に認識させれば、「9999 + 1 の合計は?」という質問に対してAIは裏でcalculate_sumツールを呼び出し、結果10000を取得して回答してくれるようになる、という寸法です。

実際にAIからこのサーバーを使うには、AI側にサーバーを登録する必要があります。
例えばClaude Desktop(Anthropicのデスクトップ版AI)なら設定JSONに以下のように追記します。

MCPの設定JSON
{
  "mcpServers": {
    "my-mcp-server": {
      "command": "node",
      "args": [ "/Users/あなたのユーザ名/mcp-server/build/index.js" ]
    }
  }
}

この設定で、AIから見ると「my-mcp-serverという外部ツール群」が使える状態になります。
あとはAIが賢く質問を解析して 「あ、これ計算ツールを呼べば早いわ」と判断すれば自動でCallToolしてくれる わけです。

3-2. 既存のMCPサーバーを使用する

「自分で作るのは大変そう…」と思った方に朗報。実はすでに多くのMCPサーバーが自由に使える形で公開されています。

Graphlit社の提供するオープンソースMCPサーバーでは、一歩進んで社内データの一括インデックス化までできます。Graphlitのブログによれば、

「SlackからGmail、Podcastのフィードに至るあらゆる情報をGraphlitプロジェクトに取り込み、MCPクライアントから関連コンテンツを検索・取得できる」

参考文献

とのことで、社内外の情報を全部MCP経由でLLMに食わせてしまおうという発想です。
要は業務データのレイク(湖)を作って、それをAIが好きなタイミングで汲み出せるようになるわけですね。

このように、MCPサーバーを駆使すれば 「AI×業務改善」の可能性が大幅アップします。
人間があちこちのシステムを開いてコピペして…という手間が省け、AIに「売上データまとめてグラフ作って」とか言えば裏でツールを動員して結果を返してくれる。
夢のようですが、技術的にはもう目の前にあります。


4.Webサイト制作でMCPを使う

次にWebサイトやアプリの開発シーンでのMCP活用を見てみましょう。
こちらは開発者向けAIアシスタントの世界ですね。昨今、コードを書くだけでなくバグ修正やテストまで手伝ってくれるAIが台頭していますが、MCPはまさにそうした開発系AIの腕を増やす役割を果たしています。

例えば、Webフロントエンドを作っているとき、「自動でブラウザを操作してバグを見つけて修正までしてくれるAI」 がいたら便利だと思いませんか?

そんな夢の機能も、MCPを通じたツールで可能になりつつあります。
実際、前述のClineはWeb開発タスク中にヘッドレスブラウザ(画面の見えない自動操作ブラウザ)を起動して、自分でサイトをクリックしたり入力したりスクロールしたりして、エラーや見た目の不具合を検知・修正してくれます。

Web制作では他にも、サーバーサイド開発やAPI構築でAIが活躍する場面があるでしょう。

FileSystemツール

プロジェクトのファイルを読んだり書いたり。これでAIが大規模プロジェクトの必要なファイルを開いて読めますし、設定ファイルを書き換えたりも可能になります。

Terminal/Shellツール

ターミナルコマンドを実行。
AIがnpm run devやpytestを実行し、エラーが出たらキャッチしてコード修正することが可能です。clineがまさにこれをやっていますね。

Git操作ツール

コードのバージョン管理。
ブランチの切り替えや差分取得もできるようになれば、「この機能、過去のコミットではどうだった?」という質問にAIが過去ログを漁って答えることも、近い将来可能になりそうです。


5.最後に

MCPサーバーの活用が持つ可能性をお分かりいただけたでしょうか?
業務改善アプリではAI秘書が社内システムを渡り歩き、Web開発ではAIペアプログラマーがブラウザからサーバーまで駆け回る。

まさに次世代の仕事風景が垣間見えてきます。

もちろん、現時点では「すべて実用段階!」とは言えません。
MCPへの対応も発展途上ですし、ツールの品質やセキュリティも玉石混交でしょう。
でも、標準規格として各社が採用し始めたことには大きな意味があります。

みんながUSB-Cを使えばデバイスも充電器も統一されたように、みんながMCPを使えばAIエージェントとツールの接続方式が統一され、エコシステムが出来上がるはずです。

本記事が、MCPへの理解の助けになれば幸いです。

12

Discussion

ログインするとコメントできます