2025年5月12日月曜日

OpenWebUI で Filesystem MCP Server を使ってローカルにあるファイルなどを操作する

OpenWebUI で Filesystem MCP Server を使ってローカルにあるファイルなどを操作する

概要

各種設定などは前回のものを流用しています

環境

  • Ubuntu 24.04
  • OpenWebUI 0.6.7
  • LiteLLM Proxy 1.68.1
  • Python 3.12.9
    • mcpo 0.0.13
    • mcp 1.8.0
  • secure-filesystem-server - v0.2.0

config.json

{
  "mcpServers": {   
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/home/devops"
      ]
    }
  }
}

/home/devops の部分は MCP サーバにファイルやディレクトリの操作を許可するパスをフルパスで指定します

OpenWebUI から接続の追加

これは前回までと全く同じです
URL は適宜変更してください

設定 -> ツール -> 追加

  • URL -> http://192.168.0.100:8000/filesystem
  • Auth -> Bearer top-secret

動作確認

あとは質問するだけですがいろいろと工夫が必要だったのでポイントを紹介します

  • フルパスで指定すること
    • 相対パスでは MCP サーバが起動しているパスからの相対パスで検索しようとするのでフルパスで指定したほうがいい
  • 質問に工夫が必要なケースがある
    • OK /home/devops/api 配下のファイルでファイル名に py が含まれるファイルの一覧を表示してください
    • NG /home/devops/api 配下に py で終わる拡張子のファイルの一覧を表示してください
    • 以下のようなクエリとなる質問にしなければならない
    • 拡張子などを質問に含めると pattern が「.*\\.py」というマッチしない条件になったりする
curl -X POST \
     -H "Authorization: Bearer top-secret" \
     -H "Content-Type: application/json" \
     -d '{"path": "/home/devops/api", "pattern": "py", "excludePatterns": []}' \
     http://localhost:8000/filesystem/search_files
  • Filesystem MCP サーバが実装している機能を確認したほうがいいかも (参考サイトのURL参照)
  • 便利な使い方はいろいろあるがローカルにあるプログラムへのパスを指定して「このファイルが何をしているか説明して」というのは便利
    • 今までは自分でコピペしてコンソールなどに食わせていたのがそれをしなくて済む
    • ただそのあと直接ファイルを編集してなどはできなかった (質問の仕方なのかそういった機能がないのかは不明)

最後に

Filesystem MCP サーバを OpenWebUI に導入してみました
自然言語でローカルのファイルを操作できるようになるのは便利かなと思います
ただシェルが扱えればわざわざ MCP サーバを導入するレベルでもないかなとは思いました

参考サイト

0 件のコメント:

コメントを投稿