文件系统服务工具

mcpfs 是一个将 MCP 服务器挂载为文件系统的工具,支持动态添加服务器、懒加载和独立进程运行,适用于开发调试和集成场景。

  • by caffeinum
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 caffeinum/mcpfs

使用说明

                        ___     
  _ __ ___   ___ _ __  / __\___
 | '_ ` _ \ / __| '_ \/ _\/ __|
 | | | | | | (__| |_) / / \__ \
 |_| |_| |_|\___| .__/\/  |___/
                |_|            

mcp服务器作为文件系统。因为配置文件是工具死亡的地方。

为什么

我厌倦了这个循环:

  1. 将mcp添加到claude配置中
  2. 重启克劳德
  3. mcp失败(令牌已过期,包已更新,谁知道呢)
  4. 调试20分钟
  5. 放弃,删除mcp
  6. 下周重复

另外:一些mcp返回50k代币。祝你好运。

mcpfs修复了这个问题:

  • 不重新启动 -在claude运行时添加服务器
  • 懒加载 -服务器只有在您实际使用时才会生成
  • unix管道 - cat .result | jq '.data[0]' -在它进入您的上下文之前进行筛选
  • 独立进程 -mcp崩溃不会影响您的会话

安装

macos(自制):

brew install --cask macos-fuse-t/cask/fuse-t
brew install caffeinum/tap/mcpfs

macos(手动):

brew install --cask macos-fuse-t/cask/fuse-t
curl -L https://github.com/caffeinum/mcpfs/releases/latest/download/mcpfs_darwin_arm64.tar.gz | tar xz
mv mcpfs ~/.local/bin/

Linux:

sudo apt install libfuse-dev  # or: dnf install fuse-devel
curl -L https://github.com/caffeinum/mcpfs/releases/latest/download/mcpfs_linux_amd64.tar.gz | tar xz
mv mcpfs ~/.local/bin/

从源代码构建:

git clone https://github.com/caffeinum/mcpfs
cd mcpfs
make install

快速开始

# mount
mkdir -p ~/mcp
mcpfs mount ~/mcp

# add a server (in another terminal)
mcpfs add @github/mcp -- npx -y @modelcontextprotocol/server-github
mcpfs auth @github/mcp "ghp_yourtoken"

# use it
ls ~/mcp/@github/mcp/
cat ~/mcp/@github/mcp/search_repositories/.schema
echo '{"query":"mcpfs language:go"}' > ~/mcp/@github/mcp/search_repositories/.call
cat ~/mcp/@github/mcp/search_repositories/.result | jq '.items[0].html_url'

运作原理

服务器生命周期:服务器在首次访问时生成,保持活动状态以供重用,空闲5分钟后自动关闭。不是按请求-重复呼叫更快。

缓存: .result 将缓存在内存中,直到下一次 .call 写。多次读取它,管道传输它,grep它-无需重新执行。 .schema 每次取新的(工具可能会改变)。

独立进程:mcpfs独立运行。在不重新启动claude会话的情况下添加/删除服务器。如果mcp崩溃,只需再次访问它-它会重新启动。

克劳德码

告诉克劳德:

mcp servers are mounted at ~/mcp
to call a tool: echo '{"arg":"value"}' > ~/mcp/@server/mcp/tool/.call
to read result: cat ~/mcp/@server/mcp/tool/.result
to add new mcp: mcpfs add @name/mcp -- npx -y @package/name

claude现在可以动态添加和使用mcps。没有配置编辑。无需重新启动。

文件系统布局

~/mcp/
├── .config/servers.json     # server definitions (auto-managed)
├── @github/mcp/
│   ├── .schema              # all tools (fetched on read)
│   ├── .status              # connection state
│   └── search_repositories/
│       ├── .schema          # input schema for this tool
│       ├── .call            # write json here to execute
│       └── .result          # cached result from last call

命令

mcpfs mount <path>          # mount filesystem
mcpfs add @name -- <cmd>    # add stdio server
mcpfs add @name --url <u>   # add http server  
mcpfs auth @name <token>    # save auth token
mcpfs list                  # show servers

许可证

麻省理工学院