1時間で実装するMCPサーバー構築ガイド|AIと自社データを安全に連携する方法

本記事は、Claude DesktopなどのAIアシスタントに、自社のデータベースや独自の計算ロジック、ローカルファイルを安全に操作させたい開発者に向けた実践ガイドです。

単なるWebサーバーの構築ではなく、Model Context Protocol (MCP) の仕様に基づき、AIが理解・実行可能な「ツール」「リソース」を実装する手順を解説します。

公式SDK(TypeScript/Python)を活用し、環境構築からデバッグ、Claude Desktopへの連携までを最短ルートで習得します。

MCP(Model Context Protocol)の本質を理解する

従来のAPI開発とMCPサーバー開発は、その「目的」と「通信方式」が大きく異なります。コードを書く前に、AIがどのようにサーバーを利用するかを理解しましょう。

なぜREST APIではなくMCPなのか?

通常のWeb APIは「人間やアプリ」が使うために設計されていますが、MCPは**「AIモデル」が使うために最適化されたプロトコル**です。

  • コンテキストの注入: AIが必要な情報を自ら探索できる仕組み(Resources)。
  • ツールの実行: AIが関数を呼び出し、その結果を受け取って回答を生成する仕組み(Tools)。
  • 標準化: Claude DesktopやIDEなど、MCP対応クライアントであればどこでも同じサーバーが動く。

3つの主要概念:Resources, Prompts, Tools

MCPサーバーを構築する際は、以下の3つの機能を実装するかどうかを設計します。

機能役割具体例
ResourcesAIに「読む」データを提供するログファイルの中身、DBの特定テーブル、APIのレスポンス
ToolsAIに「実行」させる機能を提供するSQLクエリの実行、Slack通知の送信、ファイル保存
PromptsAIへの指示テンプレートを提供する「コードレビューして」「バグ報告書を書いて」などの定型文

開発環境のセットアップ

1時間で完走するために、ゼロから書くのではなく公式SDKとプロジェクトテンプレートを使用します。

前提条件

  • Node.js (v18以上) または Python (3.10以上)
  • Claude Desktop App(動作確認用クライアントとして必須)
  • UV (Pythonの場合の推奨パッケージマネージャ)

クイックスタート(Scaffolding)

手動でファイルを作るのではなく、公式の作成コマンドを使用します。

TypeScriptの場合:

Bash

npx @modelcontextprotocol/create-server my-mcp-server

Pythonの場合:

Bash

uv init my-mcp-server

# 依存関係に `mcp` を追加

この時点で、基本的なディレクトリ構成と、Stdio(標準入出力)で通信するためのボイラープレートコードが生成されます。

実践:シンプルな「計算ツール」サーバーを作る

ここでは「AIに複雑な計算をさせる」または「ローカルの特定ファイルを取得させる」サーバーを例に、実装フローを解説します。

ここでいう「計算ツール」とは、AI自身に計算させるのではなく、
「計算ロジックを持つ関数をMCP Toolとして公開し、AIがそれを呼び出す」 という意味です。
例えば、以下のような用途が該当します。

  • 売上データを受け取り、月次・前年同月比を計算する
  • 複雑な手数料・割引ロジックを適用して金額を算出する
  • 自社独自の評価指標(スコアリング)を返す

本セクションでは、その最小構成として「数値を受け取り、計算結果を返すシンプルなTool」を例に、
MCPサーバー実装の流れを解説します。

手順1:サーバーインスタンスの生成

まずはサーバーの本体を定義します。MCPサーバーはHTTPポートをリッスンするのではなく、標準入出力(Stdio) を介してJSON-RPCメッセージをやり取りするのが基本です。これにより、ローカルで安全に動作します。

手順2:Tool(機能)の定義

AIが呼び出せる関数を定義します。例えば「2つの数値を受け取り、合計や比率を計算して返す」ツールを作る場合、以下の情報をコードに記述します。

  1. 名前: calculate_metrics
  2. 説明: 例「売上金額とコストを受け取り、利益と利益率を計算する」
  3. スキーマ: 数値(number)型の引数を定義

Claudeは「利益率を計算して」といった自然言語の指示から、このToolを選択し、必要な引数を自動で埋めて実行します。

実装のポイント:

AIはこの「説明文」を読んでツールを使うかどうかを決めます。関数の中身以上に、説明文(Description)の精度が重要です。

手順3:Resource(データ)の公開

ローカルにある app.log などのファイルを、AIが memo://logs/app.log のようなURIで読めるようにマッピングします。これにより、Claudeに対して「最新のログを分析して」と頼めるようになります。

接続とデバッグ:Claude Desktopとの連携

Claude Desktopでは、MCPサーバーの情報を
ユーザーごとの設定ファイル(claude_desktop_config.json)に手動で登録します。
このファイルは初期状態では存在しない場合もあり、その場合は自分で作成します。

MCPサーバーは単体で起動しても(標準入出力で待機するため)何も起きません。クライアント(Claude Desktop)に登録して初めて機能します。

設定ファイルへの記述

Claude Desktopの設定ファイル(claude_desktop_config.json)に、作成したサーバーのパスを記述します。

JSON

{

  "mcpServers": {

    "my-weather-server": {

      "command": "node",

      "args": ["/path/to/my-mcp-server/build/index.js"]

    }

  }

}

設定ファイルの場所はOSごとに異なります。

  • macOS:
    ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:
    %APPDATA%\Claude\claude_desktop_config.json

ファイルが存在しない場合は、同名で新規作成してください。

MCP Inspectorを使ったデバッグ

いきなりClaudeに繋ぐ前に、MCP Inspector という開発者用ツールを使ってテストします。

MCP Inspectorは、Claude Desktopと接続する前に
「サーバー単体として正しくMCP仕様を満たしているか」を確認するためのツールです。

Bash

npx @modelcontextprotocol/inspector node build/index.js

ブラウザ上でGUIが立ち上がり、ツールの呼び出しやリソースの読み込みをボタン一つでテストできます。ここでエラーが出なければ、Claude上でも動作します。

トラブルシューティングとTips

初心者がハマりやすいポイントとその対処法をまとめました。

よくあるエラーと対策

  • AIがツールを使ってくれない: ツールの description が曖昧な可能性があります。プロンプトエンジニアリングと同様に、具体的に書き直してください。
  • 接続エラー(Connection refused): Stdio通信をしているか確認してください。MCPはデフォルトではHTTPサーバーとして動作しません。
  • 環境変数の不足: APIキーなどが必要な場合、設定ファイルの env プロパティで渡す必要があります。

セキュリティの考慮事項

MCPサーバーは、AIにPC内の操作権限を与えるのと同義です。

  • ファイル削除や外部送信などの危険なツールを作成する場合は、必ず isUserApprovalRequired(ユーザー承認が必要)のような確認フローを挟むか、読み取り専用(Read-only)から始めることを推奨します。

まとめ:自作MCPサーバーでAIの可能性を拡張する

MCPサーバーを構築することで、ClaudeなどのAIモデルは単なる「チャットボット」から、あなたのPCや社内システムを操作できる「エージェント」へと進化します。

次のステップ

  1. SQLite連携: ローカルのDBをAIに分析させるResourceを作る。
  2. 外部API連携: NotionやSlackのAPIを叩くToolを作る。
  3. SSE (Server-Sent Events) 対応: リモートサーバーとしてデプロイし、チーム全員で共有する。

まずは公式SDKの「Hello World」を動かし、自分の手元のファイルをAIに読ませる感動を体験してください。

SaaS連携基盤なら「JOINT」にお任せください

ストラテジットは 「AIとSaaSの力をすべての企業に」 をミッションに、連携ツールであり連携基盤でもあるJOINT シリーズを展開しています。
まずは “どんな連携が可能か知りたい” という段階でも、お気軽にご相談ください。

  • SaaSベンダー向けiPaaS「JOINT iPaaS for SaaS
    SaaSベンダーが自社製品に連携機能を簡単に組み込めるEmbedded iPaaS
  • SaaS利用者向けiPaaS「JOINT iPaaS for Biz
    SaaS利用企業向けのデータ連携・業務自動化ソリューション
  • 生成AI連携基盤「JOINT AI Flow
    AIが必要なデータを探し出し、業務フローに沿ってつなげる新しいAI連携サービス

これらのソリューションを通じて、ベンダー・利用企業双方に「つながる価値」を提供します。

自社SaaSの満足度を上げたいSaaSベンダー様、まずは話だけでも聞いてみたいといった企業様は、ストラテジットが提供する 『JOINT』プロダクトを是非ご検討ください。

◆無料相談はこちらよりお気軽にご連絡ください。
◆ストラテジットに関する詳細はこちら

シェアする

アバター画像

この記事を書いた人

株式会社ストラテジット