V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
enrolls
V2EX  ›  Python

用 Python 写了个异步 MCP Filesystem,小而简,欢迎拍砖

  •  
  •   enrolls ·
    harmonsir · 1 天前 · 790 次点击

    为什么还要做一个 MCP Filesystem 的 Python 实现?

    目前 MCP 生态里,很多能力是 Node.js 实现的,Python 这边要么只是封装一层,要么偏同步阻塞。对那种“我就想写个 async 小工具”的场景,其实不太友好:

    • 整条链路最好都是 async I/O,跟主流生态对齐
    • 不想为了这点能力额外引一堆依赖
    • 返回结构要规整,人能看懂还不够,AI 也得读得舒服

    所以在自己的 MCP 工具里,基于官方协议搞了一个「精简版」实现,主要特点:

    • 异步 I/O 实现:接口全部是 async,方便直接接到现有的 async Web 框架 / 任务系统
    • 无第三方依赖(基础操作):只用标准库,适合受限环境或者简单脚本项目
    • 结构体友好:返回体设计得比较规整,方便后面再封装成 dataclass / Pydantic 等
    • 代码简单有注释:逻辑刻意写得直白,没有做重度优化,更适合 fork 下来按自己需求魔改

    可以自行 TODO / 二次开发的方向包括:

    • 更严格的读写保证与错误处理(重试、限流、幂等等)
    • 目录边界策略调整:
      • 目前通过 DATA_DIR 做目录沙箱,防止越界访问,避免一上来就摸整个磁盘
      • 也可以根据业务需要去掉或替换为自定义根目录、甚至开放整盘访问

    Github 项目地址:

    mcp-filesystem-python

    技术含量不多,纯粹有相同需求的人可以不用再思考太多,直接用,也可以当作组件拼接到其他地方。

    2 条回复    2025-11-07 10:34:43 +08:00
    ruanimal
        1
    ruanimal  
       1 天前   ❤️ 1
    同级有相同的包和模块文件,逆天。。。
    enrolls
        2
    enrolls  
    OP
       1 天前
    @ruanimal 哦,顶,你是对的,谢谢你的修正。我自己是从 mcp_gateway.py 或者 app_with_stray.py 进的 [捂脸]
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2747 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 06:55 · PVG 14:55 · LAX 22:55 · JFK 01:55
    ♥ Do have faith in what you're doing.