Claude デスクトップアプリに MCP サーバを設定してコラムの原稿作成などが色々捗るようにする

Claude デスクトップアプリ に、「Model Context Protocol (MCP) サーバ」 を設定して、ローカルにある参考資料などをみながらのコラムの原稿案作成、マークダウン形式での保存までお願いできる環境を作ってみたというお話。

AI の利用はもう当たり前になってきた今日この頃、仕事も含めて、個人的に AI サービスとしては ChatGPT と Claude に課金 (どちらも Pro アカウント) してて、この 2 つが圧倒的メイン。

Gmemini や NotebookLM に関しては会社で使ってる Google Workspace の方に標準でついてる範囲で利用してたり、最近は Cursor なんかも試してたりもします。

そんな中、主にソースコード書く方じゃなくて、会社のサイトとかで掲載するコラムなどの執筆環境を効率化したいっていう用途の方で、Cursor に本格的に課金するか悩んでたんですけども、Claude デスクトップアプリ (ベータ版) に、「Model Context Protocol (MCP) サーバ」 を設定すれば、色々捗るのでは? と思い立ってやってみた記録。

何がしたかったのか

「会社のサイトとかで掲載するコラムなどの執筆環境を効率化」について、具体的には下記のような要望をかなえられるといいな、という感じ。

  • 過去に自分が書いた記事の内容や文体を参考に精度の高い原稿の草案を作ってもらいたい
  • 草案作成時に参照する参考資料をこちらで指定したい
  • 参考にした資料から、出典情報を反映したりしたい
  • 作った草案を Markdown 形式のファイルとして自動で保存して欲しい

前提として、自分のローカル環境には、下記のようなデータがあります (使いやすさを考慮して基本は Markdown 形式)。

  • 過去に自分が書いたすべての記事を Markdown 形式にしたファイルがある (1 記事につき 1 ファイル)
  • 参考資料として、例えば WCAG をはじめ、WCAG の Understanding (解説書)Techniques (達成方法集) を Markdown 形式にしたファイルがある (過去にプログラムを書いて取得した)
  • その他にも、自分の専門分野について必要な資料などは見つけたら Markdown 形式で保存して手元にためている

なので、AI にローカルにためてある参考資料を読んだり、検索したりしてもらいながら、与えたテーマに基づいて原稿の草案を書いてもらい、それを Markdown 形式でローカルに保存してもらって、あとはそれをちょこちょこ手直し (この手直しの際も誤字脱字の発見みたいな校正については AI に手伝ってもらいますけども) して最終的に公開できる原稿を作りたい。

そのためには、AI が下記のことをできないといけない。

  • ローカルにある参考資料を読んだり検索したりできること
  • 作った草案を指定のフォルダに Markdown 形式で保存できること
  • (あとこれはおまけだけど) 参考資料を URL として与えたら、その内容を Markdown 形式にして資料フォルダに保存したりもして欲しい

今回のレシピ

ということで、上記を実現するために、Claude デスクトップアプリと、いくつかの MCP サーバを設定してみました。

材料は下記の通り。

ちなみに、私の環境は Windows 11 Pro (24H2) ですので、その前提で書いています。OS が違うと設定ファイルの書き方なども変わるので、その辺は適時読みかえてください。

あと、下記はインストール済みという前提です。

  • Node.js (私の環境では v22.14.0)
  • Python (同 v3.13.2)

Claude デスクトップアプリの準備

Claude デスクトップアプリで MCP サーバを使用するためには、開発者モードに変更しないといけません。ということで設定を変えます。

この設定変更するときの画面をキャプチャし忘れたのですが、開発者モードに変更すると設定から開発者向けの項目が見えるようになります。

Claude デスクトップアプリの設定画面例(開発者モード)

一旦、開発者モードに変更できたら Claude デスクトップアプリは閉じてしまって大丈夫です。MCP サーバの準備に入りましょう。

MCP サーバの準備

前述の通り、今回使用するのは下記の 2 つの MCP サーバです。

どちらも Model Context Protocol の公式 GitHub リポジトリで公開されているもので、MCP サーバを自分で開発する際にもとても参考になります。

Filesystem MCP Server」 は、Node.js を使用した MCP サーバで、様々なファイル操作、例えばファイルの読み書き、ファイルの検索や移動、ディレクトリの作成や削除、メタデータの取得などが行えます。

今回、私がやりたいことのキモになる MCP サーバですね。

Fetch MCP Server」 の方は、URL を指定して、Web コンテンツをフェッチする機能を提供する MCP サーバ。Python で実装されています。取得した HTML を Markdown 形式に変換するなんてことが簡単にできるようになります。

Claude は現状で外部の URL にアクセスできないため、この MCP サーバはとても有用です。

Filesystem MCP Server のインストール

では実際にインストールしていきましょう。PowerShell を開いて、下記のコマンドを実行します。

npm install -g @modelcontextprotocol/server-filesystem

これで、グローバルに @modelcontextprotocol/server-filesystem がインストールされます。

Claude デスクトップアプリに MCP サーバを登録するには、claude_desktop_config.json というファイルを編集します。

ファイルの場所は通常、下記になりますが、設定画面の 「開発者」 から 「構成を編集」 ボタンを押せば、ファイルの保存場所が開きます。

C:\Users\[username]\AppData\Roaming\Claude

で、Filesystem MCP Server の README.md では、下記のように npx で使用する例が載ってるんですけども、Windows 11 環境だとこの指定は動作しないので、面倒なんですが、変更していきます。

// 下記のサンプルをそのまま使っても Windows 環境では動作しない
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/path/to/other/allowed/dir"
      ]
    }
  }
}

まず、2 つのファイルのパスを調べます (3 つ目は自分で任意の場所を決めればよい)。

  1. @modelcontextprotocol/server-filesystem パッケージ内の index.js ファイルの場所
  2. Node.js の実行ファイル (node.exe) の場所
  3. Claude にアクセスを許可する作業ディレクトリ

(1) については、

npm root -g

で、グローバルにインストールされた npm パッケージのルートディレクトリがわかりますので (例えば下記のような感じ)、

C:\Users\[username]\AppData\Roaming\npm\node_modules

その中から、@modelcontextprotocol/server-filesystem/dist と入っていくと index.js があると思います。そのパスをコピーしておいてください。

(2) については、Node.js のインストールされた場所に node.exe があるので、そのパスをコピーしておきます。例えば下記のような感じになるでしょう。

C:\Program Files\nodejs\node.exe

(3) について、今回私は、AI 用に下記の場所にディレクトリを作って、そこの中だけを AI が触れるようにしました。必要に応じてこのディレクトリを Git 管理します (ドライブが H なのは私の環境でたまたまなので、任意でよいです)。

H:\AI_Workspace

それらを claude_desktop_config.json に反映すると下記のようになります。

{
  "mcpServers": {
    "filesystem": {
      "command": "C:/Program Files/nodejs/node.exe",
      "args": [
        "C:/Users/[username]/AppData/Roaming/npm/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js",
        "H:/AI_Workspace"
      ]
    }
  }
}

command には、npx ではなく、Node.js の実行ファイルを直接指定します。

args の最初の値が @modelcontextprotocol/server-filesystem パッケージの index.js を直接指定したもの。続けて、アクセスを許可するディレクトリのパスです。

この許可ディレクトリは複数指定できるので、別のドライブにある場所を追加してもよいです。

ちなみに、Windows でパスをコピーすると ¥ が区切り文字として入ると思いますが、これをそのまま JSON に突っ込むとエラーになるので、エスケープしましょう。

私は面倒くさいので ¥/ に変換しています (これでも大丈夫)。

Fetch MCP Server のインストール

続けて Fetch MCP Server のインストールをやってきましょう。PowerShell を開いて、下記のコマンドを実行します。

pip install mcp-server-fetch

次に、uv (Python パッケージマネージャ) をインストールします。同じく、PowerShell から下記を実行しましょう。

-ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

インストールが完了したら、以下のコマンドを実行して、uvx の実行ファイルの場所をコピーしておきます。

Get-Command uvx

パスは下記のように表示されますので、Source の部分に表示されたパスをコピー。

CommandType     Name        Version     Source
-----------     ----        -------     ------
Application     uvx.exe     0.0.0.0     C:\Users\[username]\.local\bin\uvx.exe

これら情報を持って、claude_desktop_config.json に追記です ("fetch" の部分)。

{
  "mcpServers": {
    "fetch": {
      "command": "C:/Users/[username]/.local/bin/uvx.exe",
      "args": ["mcp-server-fetch"]
    },
    "filesystem": {
      "command": "C:/Program Files/nodejs/node.exe",
      "args": [
        "C:/Users/[username]/AppData/Roaming/npm/node_modules/@modelcontextprotocol/server-filesystem/dist/index.js",
        "H:/AI_Workspace"
      ]
    }
  }
}

これで、2 つの MCP サーバが Claude デスクトップアプリに登録されました。あとは正常に動作するかの確認です。

Claude デスクトップアプリの起動

設定が完了したら Claude デスクトップアプリを起動します。設定に問題があると下記の例の様にエラーが表示されますので、その場合は設定ファイルやログを確認です。

Claude デスクトップアプリで MCP サーバのエラーが表示されている例

問題なく起動すると、チャット入力欄に 「利用可能な MCP ツール」 という項目が追加されます。こうなっていれば正しく設定がされたという状態。

Claude デスクトップアプリで MCP サーバが正しく認識された例

この状態で、MCP サーバの機能は普通にプロンプトから利用できます。試しに Claude に対して、URL を指定し、『リンク先の主要コンテンツをマークダウン形式のファイルにして』 などとお願いしてみましょう。

通常だと Claude は外部の URL にアクセスできないので、『私、外部リンクは見られないっす』 みたいな返事をしてくると思いますが、先ほど設定した Fetch MCP Server のおかげで、外部 URL にアクセスできるようになっていると思います。

ただし、チャット内で最初に MCP サーバの機能を使おうとした際には、確認画面が表示されます。

Claude デスクトップアプリで MCP サーバを使用しようとした場合の確認ダイアログ例

問題なければ 「このチャットで許可」 もしくは 「一度だけ許可」 を選択すれば指示が実行されます。

ファイル操作系に関しても、一度 『H:/AI_Workspace の中にあるファイル見られる?』 みたいに聞くと、同じく、Filesystem MCP Server を使用するための確認ダイアログが出た後、『見られますよ、何します?』 みたいな感じで返答が返ってくるので、『H:/AI_Workspace/MyArticles に入ってる内容から○○を探して』 みたいにお願いすると指示を実行してくれます。

ここまで動作すれば、あとは実践ですね。

実際に原稿を書いてもらう

ということで、実際にプロンプトを投稿して、原稿の草案を作ってもらいましょう。

私の会社のコラムで、JIS X 8341-3:2016 (WCAG 2.0) の達成基準について簡単に解説するコラムシリーズみたいのがあるんですが、これの記事を作ってもらうことにします。

下記のようなプロンプトを試してみました。

`H:/AI_Workspace/resource/MyArticles` 内に「JIS X 8341-3を読み解く」シリーズの記事データがあるので、
これらの既存記事の文書構成と文体を参考に、WCAG 2.0における「1.3.3 感覚的な特徴」についての原稿を書いてください。
WCAGの達成基準や達成方法に関する参考データとして `H:/AI_Workspace/resource/WCAG/` フォルダ内にある情報を使ってください。
参考データから引用した場合は出典として示してください。
書いた原稿は `H:/AI_Workspace/dist` にマークダウン形式のファイルとして保存してください。

実際に実行されている過程をキャプチャしたのが下記。

途中で MCP サーバを実行するために複数回確認が入りますが、意図した通り、まずは過去記事を読んで、そのあとで参考資料も検索しながら求めた内容の原稿を作ってくれています (作った原稿は、指示通り、Markdown 形式で指定したフォルダ内に書き出してくれました。賢い)。

Claude デスクトップアプリで MCP サーバを使用したプロンプト実行例

できあがってきた原稿は、私が過去に書いた記事の体裁に寄せて書かれていました。例えば最初に原文を引用しながら達成基準の簡単な説明をして、その後でよくない実装例や、正しい実装例を具体的にソースコードを挙げながら書くといった文章構成も過去の記事をきちんと踏襲してくれています。

さすがにそのまま、未修正では使えないものの、草案としてはかなり精度が高い印象を受けました。これは狙い通りに仕事が捗りそう。

今回の Claude デスクトップアプリ + MCP サーバでは、Cursor のような、所謂、IDE 的な使い方はできませんが、手元に AI が参考にできる資料、データが沢山ある場合は、今回のように精度の高い原稿案を作ってもらったり、他の仕事であれば提案書やプレゼン資料なんかの原案作成なんかにも活用できそうです。


余談

ちょっとだけ気になるのは、表向きの動作には一切問題がないんだけど、ログを見ると下記のように、resources/listprompts/list に定期的にクライアントが問い合わせては、そのメソッドはないよっていうエラーが MCP サーバから帰ってて、これは Claude デスクトップアプリ側の問題な気もするけど、ちょっと気になるかも。

2025-04-01T09:28:27.440Z [filesystem] [info] Message from client: {"method":"resources/list","params":{},"jsonrpc":"2.0","id":5557}
2025-04-01T09:28:27.440Z [filesystem] [info] Message from server: {"jsonrpc":"2.0","id":5557,"error":{"code":-32601,"message":"Method not found"}}
2025-04-01T09:28:27.441Z [filesystem] [info] Message from client: {"method":"prompts/list","params":{},"jsonrpc":"2.0","id":5558}
2025-04-01T09:28:27.441Z [filesystem] [info] Message from server: {"jsonrpc":"2.0","id":5558,"error":{"code":-32601,"message":"Method not found"}}

記事をここまで御覧頂きありがとうございます。
この記事が気に入ったらサポートしてみませんか?