話題のMCPにチャレンジ! MCPサーバーのFilesystemとFetchを動かしてみた

Model Context Protocol (MCP)はAnthropicが提唱するLLMにコンテキストを提供するプロトコルです。生成AIアプリケーションを構築する際に面倒なのはコンテキストの取得です。ファイルシステムやGitから文脈に沿ったコンテキストを取得してLLMに渡す必要があります。そのコンテキストの取得を共通化するのがMCPです。

IntroductionのページではMCPをUSB Type-Cに例えています。私もインターフェースの概念を教える時にはUSB Type-Cに例えます。MCPに準拠したMCPサーバーであればClaude DesktopでもCursorにでもコンテキストを提供できます。逆にMCPに準拠して生成AIアプリケーションを構築すれば提供されているMCPサーバーからコンテキストを取得できます。

MCPサーバーを動かす

GitHubで様々なMCPサーバーが公開されています。これらをビルドすることでMCPサーバーを起動することができます。gitからcloneすると分かるのですがMCPサーバーによってnode.jsで作られていたり、Pythonで作られていたりバラバラです。今回は使用用途が多いFilesystemとFetchを動かしてみたいと思います。

Filesystem

ローカルのファイルシステムにあるファイルをコンテキストに追加する時に使えます。

構築

動かすにはGitとnode.jsが必要です。AIエディタ『Cursor』のyoloモードに構築させてみました。Ctrl + I からエージェントに以下のプロンプトを与えてみると……。

@https://github.com/modelcontextprotocol/servers.git 
mcp serversをcloneしてFilesystemのmcp serverを構築して下さい。

凄いですね! 途中、ディレクトリ構成が間違っていた際には確認して正しいindex.tsの場所を見つけて処理を先に進めています。

手動で構築する場合は以下のコマンドで構築できます。

git clone https://github.com/modelcontextprotocol/servers.git
cd servers/src/filesystem
npm install
npm run build

実行

構築したMCPサーバーを動かすには以下のコマンドを実行します。最後のパラメーターはFilesystemのMCPサーバーがコンテキストを取得するパスです。今回は . を指定しているので実行時のパスに存在するファイルを読み取ります。

node dist/index.js .

正しく起動できたら以下のようなメッセージが表示されます。

Allowed directories: [ ‘パス’ ]

Fetch

Web上の指定のURLの情報をコンテキストに追加する時に使えます。

構築

pyproject.tomluv.lock が存在するのでpoetryかuvで動かすことができます。私の環境はpoetryだったのでpoetryで解説します。uvでの動かし方はreadme.mdに書いてあるのでそちらを参考にして下さい。

以下のコマンドで構築できます。

cd servers/src/fetch
poetry install

実行

以下のコマンドで実行できます。Filesystemと違って特に何も表示されません。

poetry run python -m mcp_server_fetch

MCPホストと接続する

今回はCursorと接続してみます。

『Cursor』のMCPの設定画面へ遷移し + Add new MCP Server ボタンをクリックします。

表示されたAdd MCP Serverダイアログに情報を入力し、Addボタンをクリックします。

入力する情報は以下の通りです。

Filesystem

項目設定値
NameMCPサーバーの名前を入力します。
『Cursor』はこの名前でMCPを使うかを判断します。
Typecommandを選択します。
Commandnodeのフルパス index.jsのフルパス 読み取り先のフルパス

Fetch

項目設定値
NameMCPサーバーの名前を入力します。
『Cursor』はこの名前でMCPを使うかを判断します。
Typecommandを選択します。
Commandpoetry –directory mcp_server_fetchのフルパス run python -m mcp_server_fetch

ポイントはフルパスで入力することです。『Cursor』から実行されるため『Cursor』の実行時パスからたどれる必要があります。相対パスで入力するのは難しいためフルパスで入力しましょう。nodeはpathが設定してあれば node だけで大丈夫です。fnmを使っている人は fnm envFNM_DIR を調べ使うバージョンのnode.exeのフルパスを調べましょう。

正常に接続されると緑のアイコンが表示されToolsに使えるツールが一覧表示されます。失敗すると赤のアイコンでToolsには何も表示されません。

動作確認

『Cursor』のAgentに「https://plus.cmknet.co.jpの新着記事を3つ教えてください。」と聞いてみました。

途中、 Called MCP tool fetch と出力されます。ここでMCPサーバーを呼び出していることが確認できます。出力結果も当ブログの技術ブログカテゴリの新着記事3つが抽出されています。

まとめ

MCPサーバーの動かし方について解説しました。MCPサーバーを使えば様々なコンテキストを容易に生成AIアプリケーションに連携することができます。Anthropicが提供しているMCPサーバーであればこの記事のやり方で動かすことができると思います。気になるMCPサーバーがあれば試してみてください。

この記事を書いた人
新技術基盤開発室の鈴村です。AWS初心者からAWSアンバサダーを目指すチャレンジをしています。やっとCLFとSAAとAIFの3冠です。現在はMLAを学習中です。
新技術基盤開発室の鈴村です。AWS初心者からAWSアンバサダーを目指すチャレンジをしています。やっとCLFとSAAとAIFの3冠です。現在はMLAを学習中です。
>お役立ち資料のダウンロード

お役立ち資料のダウンロード

ブログでは紹介しきれないシステム開発や導入におけるケーススタディを資料にまとめました。お気軽にダウンロードください。

CTR IMG