お疲れ様です!IT業界で働くアライグマです!
「GPTやClaudeに、自分のPC内にある売上データを見せたいけど、アップロードするのはセキュリティ的に怖い……」
「API経由でデータを送るコードを書くのが毎回面倒くさい……」
そんな悩みを解決する新しい標準プロトコル、「MCP (Model Context Protocol)」をご存知でしょうか?
これを使えば、LLM(AI)があなたのPCの中身を「安全」かつ「構造化」された状態で直接見に行けるようになります。
この記事では、Pythonを使って独自のMCPサーバーを構築し、ローカルのSQLiteデータベースをClaude Desktopから操作可能にする方法を完全ハンズオン形式で解説します。
APIに依存した古い開発フローから脱却し、AIとツールがシームレスにつながる未来の開発体験を手に入れましょう。
MCP (Model Context Protocol) とは?
MCPは、AIモデル(Claudeなど)と、外部データやツール(ファイルシステム、DB、GitHubなど)を標準化された手順で接続するためのオープンプロトコルです。
これまでは、AIに外部データを見せるために都度「RAG(検索拡張生成)」の仕組みを作ったり、API連携コードを書く必要がありました。しかしMCPを使えば、一度「サーバー」を作っておくだけで、対応するあらゆるAIクライアントからその機能を利用できるようになります。
特にオンプレミス環境にある秘匿データを扱う場合、外部クラウドにデータを上げずに済むMCPは非常に相性が良いのです。
IT女子 アラ美PythonによるMCPサーバー実装【完全コード】
では、実際に「ローカルのSQLiteデータベースから商品情報を検索するMCPサーバー」を作ってみましょう。
今回の実装では、Windows (WSL2) やMacなどのローカル環境を想定しています。
以下のグラフは、従来のAPI個別実装とMCPによる共通化の工数比較イメージです。


一度サーバーを作ってしまえば、クライアントが増えても工数がかさまないのがMCPのメリットです。
環境構築
まず、必要なライブラリをインストールします。UVなどのモダンなパッケージマネージャを使うのがおすすめです。
# プロジェクト作成と依存関係のインストール
mkdir my-mcp-server
cd my-mcp-server
uv init
uv add "mcp[cli]" sqlite3
サーバーコードの実装
次に、server.pyを作成し、以下のコードを記述します。
このコードは、AIに対して「私は search_products というツールを持っています」と自己紹介し、AIからのリクエストに応じてSQLを実行する役割を果たします。
from mcp.server.fastmcp import FastMCP
import sqlite3
# サーバーの初期化
mcp = FastMCP("SQLite Explorer")
DB_PATH = "./products.db"
@mcp.tool()
def search_products(keyword: str) -> str:
"""商品データベースから、指定されたキーワードを含む商品を検索します。"""
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
# 簡易的なSQL実行(本番ではSQLインジェクション対策を徹底してください)
query = "SELECT name, price, stock FROM products WHERE name LIKE ?"
cursor.execute(query, (f"%{keyword}%",))
results = cursor.fetchall()
conn.close()
if not results:
return "該当する商品は見つかりませんでした。"
# AIが読みやすい形式で返す
response = []
for r in results:
response.append(f"商品名: {r[0]}, 価格: {r[1]}円, 在庫: {r[2]}")
return "\n".join(response)
if __name__ == "__main__":
mcp.run()



@mcp.tool() をつけるだけでツール化できるんですね! シンプル!MCPサーバー運用の注意点とセキュリティ
非常に便利なMCPですが、ローカルデータを扱う以上、セキュリティには細心の注意が必要です。
特にTrail of Bitsのセキュリティ監査でも指摘されるような、予期せぬデータ漏洩リスクを防ぐ設計が求められます。
読み取り専用(ReadOnly)の原則徹底
最初はデータの参照(SELECT)のみを許可し、更新・削除機能は実装しないようにしましょう。
特に DROP TABLE や DELETE などの危険なクエリが実行されないよう、接続ユーザーの権限をDB側で絞るのがベストプラクティスです。
ネットワーク分離と接続制限
MCPサーバーをインターネットに公開せず、必ずローカルネットワーク内(localhost)でのみ動作させる設定にします。
もし社内LANで共有する場合は、Firewall設定を行い、許可されたIPアドレス以外からの接続を遮断してください。
また、認証トークンを実装し、Claude Desktop側での設定時にトークン必須にするのも有効です。
実行ログの監視による監査
AIがどのようなクエリを実行したかをログに残し、予期しないデータアクセスがないか定期的に確認してください。
ログはローカルファイルに出力するだけでなく、Dockerコンテナの標準出力として管理し、監視ツールでアラート設定をしておくと安心です。



ケーススタディ:在庫管理業務の劇的効率化
ここでは、SIerからWeb系へ転職せずとも、今の現場で技術導入を進めた成功事例を紹介します。
実際に、このMCPサーバー導入によって業務フローが改善した事例を紹介します。
あるECサイト運営チーム(3名)では、これまで在庫確認のためにエンジニアにSQL発行を依頼していました。
- Before: 営業担当が「この商品の在庫ある?」とSlackで質問し、エンジニアが作業を中断してSQLを実行するフローでした。このやり取りが1日平均15件発生し、エンジニアの作業時間が毎日約1時間削られていました。
- Action: 上記のMCPサーバーを社内LAN内のRaspberry Piに構築し、営業チーム全員のClaude Desktop(チームプラン)に接続設定を行いました。エンジニアは「商品DB参照ツール」として機能を公開し、検索クエリのみを許可する設定を施しました。
- After: 導入翌日からエンジニアへの問い合わせ件数は0件になり、月間で20時間以上の工数削減を達成しました。営業担当も「顧客との電話中にその場で在庫回答できるようになった」と喜び、成約率が15%向上するという副次効果も生まれました。



サービス比較:AI学習プラットフォーム
最後に、PythonやAI活用スキルをより深く学ぶためのプラットフォームを紹介します。上流工程へのキャリアシフトを目指す上でも、技術の基礎体力は必須です。
本記事で解説したようなAI技術を、基礎から体系的に身につけたい方は、以下のスクールも検討してみてください。
| 比較項目 | DMM 生成AI CAMP | Aidemy Premium |
|---|---|---|
| 目的・ゴール | ビジネス活用・効率化非エンジニア向け | エンジニア転身・E資格Python/AI開発 |
| 難易度 | プロンプト作成中心 | コード記述あり |
| 補助金・給付金 | リスキリング補助金対象 | 教育訓練給付金対象 |
| おすすめ度 | 今の仕事に活かすなら | AIエンジニアになるなら |
| 公式サイト | 詳細を見る | − |



まとめ
MCPは、まだ登場したばかりの技術ですが、そのポテンシャルは計り知れません。
Pythonを使えば、わずか数十行のコードで「自分だけのAIアシスタント」を強化できます。
- セキュリティ: データはローカル(または自社サーバー)に残したまま活用できる
- 拡張性: 一度サーバーを作れば、様々なAIクライアントから使い回せる
- 手軽さ: Pythonのデコレータ一つでツール化が可能
ぜひ、まずは手元の小さな便利ツールをMCP化して、モダンな開発体験を味わってみてください。













