PythonAnywhere MCP Server 是一个 Model Context Protocol(MCP)服务器,旨在作为 AI 驱动工具与 PythonAnywhere 账户之间的桥梁。通过暴露标准化接口,它允许语言模型和自动化客户端代表用户执行操作,例如编辑文件、部署 Web 应用或安排计划任务,同时保持细粒度控制和可审计性。
主要能力:
- 文件管理:读取、上传、删除文件以及列出目录树。同时支持通过直接访问日志文件进行调试(日志文件是 PythonAnywhere 上的普通文件)。
- ASGI Web 应用管理:创建、删除、重新加载和列出(如 PythonAnywhere ASGI 文档所述)。
- WSGI Web 应用管理:创建、删除、重新加载、修补、列出和获取信息。
- 计划任务管理:列出、创建、更新和删除。注意:如果任务在创建后很快被调度并在执行后被删除,这会使 LLM 能够执行任意命令。为此建议与 mcp-server-time 一起运行,因为模型容易混淆时间。
使用方式: MCP 协议定义明确,并被多种客户端支持,但安装方式因客户端而异。以下涵盖经过测试的情况。所有情况下都需要安装 uv 并确保其在 PATH 中可用。需要准备好 PythonAnywhere API 令牌和用户名,可在 PythonAnywhere 账户的 API 部分找到或生成。如果账户位于 eu.pythonanywhere.com,还需设置 PYTHONANYWHERE_SITE 为 eu.pythonanywhere.com(默认是 www.pythonanywhere.com)。
- MCP Bundle(适用于 Claude Desktop):打开 Claude Desktop;下载最新的 .mcpb 文件;双击下载的 .dxt 文件或将文件拖入窗口;配置 PythonAnywhere API 令牌和用户名;重启 Claude Desktop。
- GitHub Copilot in PyCharm:将其添加到 mcp.json 中。
- Claude Desktop(手动设置)和 Cursor:将其添加到 claude_desktop_config.json(对于 Claude Desktop)或 mcp.json(对于 Cursor)中。
适用场景与限制: 将 LLM 直接与 PythonAnywhere 账户集成提供了强大的能力,但也引入了风险。强烈建议保持人工监督,尤其是在修改或删除文件等敏感操作中。如果同时运行多个 MCP 服务器,需谨慎——特别是如果任何服务器可以访问您无法控制的外部资源(如 GitHub issues)。这些可能成为攻击向量。服务器使用 Python MCP SDK 与 pythonanywhere-core 包(文档)连接,该包封装了 PythonAnywhere API 的一个子集,未来可能根据需要扩展。
其他事实(如确切的定价、平台支持细节等)暂未提供。