Model Context Protocol (MCP) を試してみる (Windows)
はじめに
2024年11月26日にAnthropicがModel Context Protocol (MCP) を発表しました。
このMCPですが、API接続などを意識せずに、様々なツールと連携(参照、登録、更新)ができる画期的な仕組みです。RAGやファインチューニングといった手法がありますが、MCPが新たなアプローチになっていきそうです。
今回、Windows端末にデータベースを構築して、テーブルを作成して、Claudから参照してみようと思います。
構成
下記のような構成になっています。
Claude自体推論能力が高いといわれており、これらのツールをうまく使えそうなのと、Projects機能やArtifactもできるので、ClaudeでMCP経由で情報を得つつデータ分析や、他のツールへデータ連携していくといったこともできそうです。
活用できるサービス
2024年11月30日時点でAnthropicのGitHubにあがっているものは下記のようです。
- Filesystem - Secure file operations with configurable access controls
- GitHub - Repository management, file operations, and GitHub API integration
- GitLab - GitLab API, enabling project management
- Git - Tools to read, search, and manipulate Git repositories
- Google Drive - File access and search capabilities for Google Drive
- PostgreSQL - Read-only database access with schema inspection
- Sqlite - Database interaction and business intelligence capabilities
- Slack - Channel management and messaging capabilities
- Sentry - Retrieving and analyzing issues from Sentry.io
- Memory - Knowledge graph-based persistent memory system
- Puppeteer - Browser automation and web scraping
- Brave Search - Web and local search using Brave's Search API
- Google Maps - Location services, directions, and place details
- Fetch - Web content fetching and conversion for efficient LLM usage
環境構築
試す前に環境構築として下記ツールのインストールが必要となります。
順番に見ていきましょう。
- Claude Desktop Application
- uv
- Git
- SQLite
Claude Desktop Application
下記記事を参考にしてインストールします!
uv
uvはPythonのパッケージ管理ツールとなります。Claude Desktop ApplicationがMCP経由でデータにアクセスするときに使っていると思われます。
winget install --id=astral-sh.uv -e
Git
Gitはバージョン管理ツールです。今回、各MCPサーバがGitHubに公開しており、GitHubからMCPサーバを取得するときにこのツールを使います。
winget install git.git
SQLite
SQLiteは軽量のリレーショナルデータベース管理システム(RDBMS)です。
winget install sqlite.sqlite
SQLiteにテーブル作成、データ挿入
SQLiteを起動
コマンドプロンプトでSQLiteを起動します。
sqlite3
データベースを作成
テーブルを作成するためにまずはデータベースを作成します。
sqlite> .open test.db
テーブル作成
CRESTE文でテーブルを作成します。
Products(製品)テーブルを作成します。
テーブルの項目は、id、name(製品名)、price(製品の金額)とします。
CREATE TABLE products ( id INTEGER PRIMARY KEY, name TEXT, price REAL);
データ挿入
INSERT文でデータを挿入します。
INSERT INTO products (name, price) VALUES
('Widget', 19.99),
('Gadget', 29.99),
('Gizmo', 39.99);
テーブル、データの確認
下記コマンドでデータベースに存在するテーブルを確認できます。今回は「products」が出力されるはずです。
.tables
SELECT文でProductsテーブルに登録されているデータを確認します。3件表示されるはずです。
select * from products;
Claude Desktop Applicationの設定
それでは、Claude Desktop Applicationの設定をしていきましょう。
Developers Modeを有効化する
Claude Desktop Applicationの左上の三本線をクリックして「Help > Enable Developer Mode」をクリックします。
その後、ダイアログがっ表示されるので「Enable」をクリックします。
MCP設定ファイルを変更する
Claude Desktop Applicationの左上の三本線をクリックして「File > Settings...」をクリックします。
「Developer」の「Edit Config」をクリックします。
Explorerが表示されます。「claude_desktop_config.json」を開きます。
下記のように変更して保存します。
ファイルパスの区切りは「\」としてください。
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": [
"mcp-server-sqlite",
"--db-path",
"C:\\sqlite\\test.db"
]
}
}
}
ClaudeでMCPを試してみる
Claudeを閉じる
Claudeを一度閉じます。
Claudeを管理者モードで起動する
Claude Desktop Applicationを右クリックして、「管理者として実行」をクリックして管理者モードで起動しましょう。
MCPを試してみる
Claude Desktop ApplicationにProductsテーブルの件数を聞いてみましょう。
SQLiteのProductsテーブルの件数を教えて
下記のように、Claude Desktop ApplicationがSQLiteへ接続してテーブルの件数を調べて回答してくれました!
テーブルへのInsertもできます!
さいごに
いかがでしたか。今回SQLiteへの操作をClaudeにさせてみましたが、他のサービスへも操作が可能です。SNSを見るとさまざまな事例が出てき始めているので、私もドンドン試してみようと思います。
Discussion
参考になります!
私が躓いた点2点共有します
①sqliteのインストール先が、環境によって違う場所に入る可能性もあるようなので、
"C:\sqlite\test.db" のままだとうまく動きませんでした。
コマンドプロンプトで where test.db で検索して、test.dbが配置されているパスを確認して、jsonを書き換えたらうまく行きました
②jsonを書き換えてもうまく動かなくて、以下のブログに記載されているのですが、
をしたらうまく動きました。claudeのデスクトップアプリは動きが若干怪しいな。。。(プロセス見たら、複数起動されてた。。)
至らぬ点、失礼しました!
すごいーー
めっちゃ操作できる!!