こんにちは。本日はサイオステクノロジーのアドベントカレンダー「サイオス社員が今年一年で新たに学んだ技術」の最終日の内容をお届けします。
今回のテーマ、MCP(Model Context Protocol)はチャットAIが外部のサービスを操作できるようにするツールです。
今回はClaude Desktopを使ったMCPの入門としてファイル操作とNotionページの編集を試してみました。
Claudeには基本無料で使うことができますが、最新のモデルClaude3.5 Sonnetは比較的すぐに1日の使用量上限に達してしまうため、本格的に使う場合はProfessional Planへのアップグレードをおすすめします。
環境のセットアップ
MCPの使用にはClaude DesktopとNode.jsが必要です。以下のサイトからあらかじめインストールしておきます。なお、この投稿ではWindows環境を前提としております。
Claude Desktop
https://claude.ai/download
Node.js
https://nodejs.org/en/download/prebuilt-installer/current
インストールできたら、Claude DesktopのSettingsからDeveloper>Edit Configを選択し、claude_desktop_config.jsonを開きます。
このファイルをプラグインのドキュメントを参考に変更します。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"ここに操作したいディレクトリの完全パスを入力"
]
}
}
}
Claude Desktopを再起動します。(念のため、Claude Desktopは管理者権限で実行されるようにします。)
正常に反映されている場合、Available MCP Toolsの一覧にファイル操作のためのツールが確認できます。
MCPを使ったファイル操作
それではファイル操作を指示してみましょう。今回はあらかじめ「走れメロス」の冒頭部分をテキストファイルとして保存した状態でフォルダの中身を確認させます。途中スクリプトの実行許可を求められますので適宜許可します。
ファイルを認識し、中身まで確認できています。
書き込みについても試してみましょう。花の名前と花言葉の一覧をcsvで作成させます。
フォルダを確認すると、きちんとcsvファイルとして作成されています。
次に、編集をお願いしてみます。1つの花に対して複数の花言葉があるため、それぞれを別のカラムに分けるよう指示します。
期待通りに動作しています。
Notion APIの設定
Notionとの連携を試してみます。NotionのAPI設定がされていない場合は、NotionAPIの設定を行います。
まず、Notionのintegrationページから、新しいインテグレーションを作成します。
インテグレーション名に任意の名前、関連ワークスペースにアクセスしたいワークスペースを選択します。
作成できたら、APIキーをコピーしておきます。
編集したいページにアクセスし、右上の…(3点リーダー)から、接続>作成したコネクションを選択して接続します。
MCPでNotionを編集する
ここからは、MCPの設定を行います。
NotionのMCPはリポジトリをローカルにクローンする必要があるため、Githubページの案内通りクローンし、任意のディレクトリにパッケージをインストールします。
git clone https://github.com/v-3/notion-server.git
cd .\notion-server
npm install
ファイル操作の時と同じく、claude_desktop_config.jsonに設定値を追記し、Claude Desktopを再起動します。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"ここに操作したいディレクトリの完全パスを入力"
]
},
"notion": {
"command": "node",
"args": [
"ここにクローンしたリポジトリ内buildフォルダへの完全パスを入力"
],
"env": {
"NOTION_API_KEY": "ここにNotionのAPIキーを入力"
}
}
}
}
Claude Desktopからページ内容を更新してみます。現状はプロンプトでページID(URLの「-」以下の部分)を指定しないと上手く動作しないようです。今回は先ほど作成した花言葉一覧のファイルの変更し、履歴をNotion上に記録するようお願いします。
Notionでページを確認すると、確かに履歴が記録されています。
Claudeから呼び出せるMCPは数多く作られており、一覧はGithub上で公開されています。
https://github.com/modelcontextprotocol/servers
MCPによって導入方法は少し異なる場合がありますが、普段お使いのアプリのMCPがあればぜひ試してみてください。