Skip to main content

mcp_server-filesystem

許可したフォルダの中だけを読み書きできる、Python製のMCPサーバーです。

  • Python MCP SDK (mcp v2) を使用し、最新のMCP仕様に対応
  • 通信方式は stdio
  • 各ツールは outputSchema / structuredContent(構造化出力)に対応

ツール

ツール 説明 引数
list_allowed_directories 許可フォルダの一覧を返す なし
list_directory フォルダ内のファイル・フォルダ一覧を返す path
read_file テキストファイルを読む path, encoding(既定 utf-8)
write_file ファイルに書き込む/追記する path, content, append, encoding

使い方

起動時の引数に、許可するフォルダを1つ以上指定します。

uvx filesystem-mcp ~/Documents/work ~/tmp

ソースから動かす場合は uv sync してから次のようにします。

uv run filesystem-mcp ~/Documents/work ~/tmp
uv run python -m filesystem_mcp ~/Documents/work

引数に指定したフォルダ(とその中のフォルダ)以外へのアクセスはエラーになります。 .. やシンボリックリンクで外へ抜けようとした場合も、実体パスで判定してブロックします。

クライアントへの登録

uvx を使うと、事前のインストールなしで実行できます(初回に自動で取得されます)。

PyPIから実行する場合:

uvx filesystem-mcp ~/Documents/work

pip でインストールすることもできます。

pip install filesystem-mcp
filesystem-mcp ~/Documents/work

開発中のローカルのフォルダから実行する場合:

uvx --from /path/to/mcp_server-filesystem filesystem-mcp ~/Documents/work

GitHubから直接実行する場合:

uvx --from git+https://github.com/kujirahand/mcp_server-filesystem filesystem-mcp ~/Documents/work

最後の引数(1つ以上)が許可フォルダです。

Claude Code

claude mcp add filesystem -- uvx filesystem-mcp ~/Documents/work

登録を確認するには claude mcp list、外すには claude mcp remove filesystem です。

Codex CLI

codex mcp add filesystem -- uvx filesystem-mcp ~/Documents/work

~/.codex/config.toml に直接書く場合は次のようになります。

[mcp_servers.filesystem]
command = "uvx"
args = ["filesystem-mcp", "~/Documents/work"]

一覧は codex mcp list、削除は codex mcp remove filesystem です。

Claude Desktop

設定ファイル claude_desktop_config.json に次のように書きます。

{
  "mcpServers": {
    "filesystem": {
      "command": "uvx",
      "args": ["filesystem-mcp", "~/Documents/work"]
    }
  }
}

MCP Inspector で動作確認する

MCP Inspector を使うと、 クライアントに登録しなくてもツールを手軽に試せます(Node.js が必要です)。

GUIで確認する

npx -y @modelcontextprotocol/inspector uv run filesystem-mcp ~/Documents/work

ブラウザが開いたら、左側の Connect を押して接続し、Tools タブで List Tools を押すとツール一覧が出ます。ツールを選んで引数を入れ、 Run Tool を押すと結果(構造化出力を含む)を確認できます。

PyPIの公開版で確認したいときは、uv run の部分を置き換えます。

npx -y @modelcontextprotocol/inspector uvx filesystem-mcp ~/Documents/work

コマンドラインで確認する

--cli を付けるとブラウザを開かずに結果がJSONで返るので、動作確認や自動化に便利です。

ツールの一覧:

npx -y @modelcontextprotocol/inspector --cli uv run filesystem-mcp ~/Documents/work \
  --method tools/list

許可フォルダの確認:

npx -y @modelcontextprotocol/inspector --cli uv run filesystem-mcp ~/Documents/work \
  --method tools/call --tool-name list_allowed_directories

フォルダの一覧:

npx -y @modelcontextprotocol/inspector --cli uv run filesystem-mcp ~/Documents/work \
  --method tools/call --tool-name list_directory --tool-arg path=$HOME/Documents/work

ファイルの書き込みと読み込み(--tool-arg は引数の数だけ並べます):

npx -y @modelcontextprotocol/inspector --cli uv run filesystem-mcp ~/Documents/work \
  --method tools/call --tool-name write_file \
  --tool-arg path=$HOME/Documents/work/memo.txt --tool-arg content=こんにちは

npx -y @modelcontextprotocol/inspector --cli uv run filesystem-mcp ~/Documents/work \
  --method tools/call --tool-name read_file --tool-arg path=$HOME/Documents/work/memo.txt

許可フォルダの外を指定すると "isError": true許可されていないパスです というメッセージが返ります。

テスト

uv run pytest

PyPIへの公開(メンテナ向け)

  1. pyproject.tomlversion を上げる

  2. ビルドして中身を確認する

    rm -rf dist
    uv build
    uv run --with twine twine check dist/*
    
  3. TestPyPIで動作を確かめる(任意)

    uv publish --publish-url https://test.pypi.org/legacy/ --token <TestPyPIのトークン>
    uvx --index-url https://test.pypi.org/simple/ --index-strategy unsafe-best-match \
      filesystem-mcp ~/Documents/work
    
  4. PyPIへ公開する

    uv publish --token <PyPIのトークン>
    

    トークンは https://pypi.org/manage/account/token/ で発行します (環境変数 UV_PUBLISH_TOKEN でも渡せます)。

  5. 公開後の確認

    uvx filesystem-mcp ~/Documents/work
    

ライセンス

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

filesystem_mcp-1.0.0.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

filesystem_mcp-1.0.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file filesystem_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: filesystem_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.8

File hashes

Hashes for filesystem_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 338df106f958ad0b6d0bb40b78e82d1f700475d1e8a8e821e8b3404b66989b1e
MD5 03f000f552c7026c3f28e54914e2529c
BLAKE2b-256 923593abfc0176a41c543a163382ed0d5ccf1946a0d1be2cfa7671c372971431

See more details on using hashes here.

File details

Details for the file filesystem_mcp-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for filesystem_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 376071b31aa912c800f847f7060e59e82948d353b0c683f9e809fd1010c0d770
MD5 d04aed702b3d341ad348e3e6cef77230
BLAKE2b-256 6517155f61caa8d8081be38ddfe84bfd913201809465d13fc9efd1c11a07944e

See more details on using hashes here.

Release history Release notifications | RSS feed

1.0.2

2 files

1.0.1

2 files

This release

1.0.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page