isolated-pymcp
一个安全的隔离环境,用于结合模型上下文协议(MCP)和语言服务器协议(LSP)探索 Python 开发。
概述
本项目创建了一个隔离的容器环境,结合了 MCP 和 LSP 的能力,用于 Python 开发。通过利用这两种协议的互补优势,我们使 LLM(大语言模型)能够访问强大的代码智能功能,同时保持严格的安全边界。
项目包括全面的算法分析能力、Claude Code 集成以及 Python 环境中使用 MCP 和 LSP 的教育材料。主要功能包括:
- 带复杂度分析的高级算法实现
- 用于 GitHub 问题解决的自定义 Claude 命令
- 结构化的项目开发里程碑
- Claude Code 培训的教育课程材料
- 标准化的分支命名和编码规范
架构
安全模型
项目实现了最小权限架构原则:
- 容器与主机系统隔离
- 容器内以非 root 用户执行
- 限制端口暴露(仅绑定到本地主机)
- 通过 GitHub Secrets 管理密钥
- 对容器的资源限制(内存、CPU)
- 输入验证和清理
- 组件之间的明确安全域边界
详见 SECURITY.md 以获取全面的安全指南和最佳实践。
核心组件
- Pydantic Run-Python:通过 MCP 执行 Python 代码
- MultilspyLSP:将 LSP 能力桥接到 MCP
- Python LSP Server:提供代码智能(补全、分析、诊断)
- Client Interfaces:多种访问方法,使用相同的安全模型
集成点
组件 | 协议 | 功能 |
Run-Python | MCP | 代码执行和输出捕获 |
MultilspyLSP | MCP+LSP | 代码智能桥接 |
Python LSP | LSP | 静态分析和补全 |
Claude Code | - | AI 辅助分析和探索 |
快速开始
- 初始设置:
- 设置密钥管理:
- 构建并运行容器:
- 测试环境:
命令参考
运行
make
或 gmake help
以获取完整命令列表。主要命令:
make build
- 构建 Docker/Podman 镜像
make run
- 启动容器并挂载卷
make test
- 验证 MCP 服务器连接性
make analyze ALGO=fibonacci
- 通过 MCP 分析算法
make claude-analyze ALGO=fibonacci
- 使用 Claude 分析代码
make tangle
- 从 org 源生成配置文件
make detangle
- 将修改后的配置文件更新回 org 源
make install-mcp
- 使用 UV 安装 MCP CLI
make pytest
- 运行所有 Python 测试
make lint
- 运行所有 linter(isort、black、mypy、flake8)
自定义 Claude 命令
项目包含以下自定义 Claude 命令:
/fix-github-issue
- 分析和修复 GitHub 仓库中的问题
/create-pr
- 创建标准化格式的拉取请求
/analyze-algorithm
- 对算法实现进行详细分析
直接使用 MCP Run Python
您可以使用 Deno 直接与 MCP Run Python 服务器交互。调用 Python 代码的正确 JSON-RPC 格式如下:
示例用法:
访问本仓库中的算法:
提交更改前,请始终运行:
gmake help
- 验证所有目标均已记录
gmake lint
- 确保代码通过风格检查
gmake test
- 验证功能正常
项目使用 org-mode 进行文学编程。配置文件通过
env-setup.org
的 tangle 过程生成。如果直接修改生成的文件,请使用 detangle 将更改传播回 org 源。脚本
scripts/
目录中包含实用脚本,包括设置工具、MCP 管理和分析工具。使用 ls -la scripts/
查看所有可用脚本。开发流程
项目采用 org-mode 的文学编程方法。关键开发文件:
env-setup.org
- 包含 Emacs、VSCode 和 Claude Code 的配置
SETUP.org
- 包含一般设置说明和文档
Makefile
- 提供常见开发任务的自动化
CLAUDE.md
- 包含 Claude Code 在本仓库中工作的指南
修改时:
- 对于配置:编辑 org 文件并运行
make tangle
- 对于实现:遵循标准 Git 工作流程和常规提交
- 对于测试:将算法添加到
algorithms/
目录并使用make analyze
分支和问题管理
项目维护标准化的分支命名规范:
- 始终从 GitHub 问题创建分支
- 遵循格式:
<type>/<issue-number>-<short-description>
- 类型应匹配常规提交(feat、fix、docs 等)
项目里程碑
项目围绕以下关键里程碑组织:
- 安全增强 - 加强容器隔离和访问控制
- 性能优化 - 提高算法分析速度和资源效率
- 可用性和开发者体验 - 增强工具和文档
- 集成和扩展性 - 添加对更多协议和平台的支持
- 文档和社区 - 创建教育材料和指南
项目目标
- 展示 MCP 和 LSP 的安全集成
- 提供隔离 AI 代码分析的参考架构
- 支持 Python 算法实现的探索
- 在维护安全的同时支持多种客户端接口
- 创建 Claude Code 和 MCP 使用的教育资源
- 构建一个友好的算法分析平台
教育资源
项目包含学习 Claude Code 和 MCP 的教育材料:
docs/courses/claude-code-course.org
- 为期两天的 Claude Code 综合课程
docs/courses/examples/
- Claude Code 和 MCP 集成的示例代码
docs/courses/exercises/
- 学习 Claude Code 的实践练习
课程涵盖:
- API 设置和配置
- AWS Bedrock 集成
- 自定义 Claude 命令
- 使用 Claude 进行代码审查
- 多语言支持
- MCP 服务器开发和集成
参考资料
- Anthropic: Introducing the Model Context Protocol - MCP 作为连接 AI 助手与数据源的开放标准的官方公告。
- Model Context Protocol Documentation - 解释 MCP 概念、架构和实现细节的全面文档。
- Model Context Protocol GitHub - 官方 GitHub 组织,包含协议规范、SDK 和参考实现。
- Anthropic MCP Documentation - 使用 MCP 与 Claude 集成的指南和最佳实践。
- Claude Code Documentation - Claude Code CLI 的官方文档。
- Microsoft MultilspyLSP - 用于创建语言服务器客户端的 Python 库,支持本项目的 LSP 集成。
- Python LSP Server - 本项目使用的语言服务器协议的 Python 实现。
- Language Server Protocol - 支持编辑器无关语言智能的 LSP 标准背景。
- MultilspyLSP MCP Server - 提供 LSP 能力的 MCP 服务器参考实现。
- Hacker News: Model Context Protocol Discussion - 关于 MCP 的社区讨论,包括安全考虑和集成方法的观点。
- Simon Willison: MCP Run Python - 对 MCP run-python 实现及其实际应用的详细探索。
许可证
MIT 许可证
- Author:waytomcp
- URL:https://www.waytomcp.com/article/aygp-dr/isolated-pymcp
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!