内容
# Python MCP 服务器
一个用于执行 Python 代码和管理 Python 环境的模型上下文协议(MCP)服务器。该服务器允许 Claude 和其他大型语言模型(LLM)运行 Python 代码、管理文件和处理 Python 包。
[](https://github.com/Timtech4u/python-mcp-server)
## 功能
- **代码执行**:运行 Python 代码片段或执行 Python 文件
- **文件管理**:列出、读取和写入 Python 文件
- **Python 环境**:检查 Python 版本和环境详细信息
- **可配置执行**:设置超时时间、工作目录和命令行参数
## 前置条件
在使用此 MCP 服务器之前,请确保您已安装:
- [Node.js](https://nodejs.org/) 16 或更高版本
- [Python](https://www.python.org/downloads/) 并使其在您的系统路径中可用
- [Claude Desktop](https://claude.ai/download) 或 [Cline](https://github.com/saoudrizwan/cline) 已安装
## 安装
1. 克隆此仓库:
```bash
git clone https://github.com/Timtech4u/python-mcp-server.git
cd python-mcp-server
```
2. 安装依赖项:
```bash
npm install
```
3. 构建项目:
```bash
npm run build
```
## 配置
### 对于 Claude Desktop
1. 打开您的 Claude Desktop 配置文件:
- macOS:`~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows:`%APPDATA%\Claude\claude_desktop_config.json`
2. 添加 Python MCP 服务器配置:
```json
{
"mcpServers": {
"python": {
"command": "node",
"args": [
"/absolute/path/to/python-mcp-server/dist/index.js"
],
"disabled": false,
"autoApprove": [
"execute_python_code",
"execute_python_file",
"check_python_version",
"list_python_files",
"read_python_file",
"write_python_file"
]
}
}
}
```
3. 将 `/absolute/path/to/python-mcp-server` 替换为实际的仓库克隆路径。
4. 重启 Claude Desktop。
### 对于 Cline
1. 打开您的 Cline MCP 设置文件:
- macOS:`~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
- Windows:`%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json`
2. 添加 Python MCP 服务器配置:
```json
{
"mcpServers": {
"python": {
"command": "node",
"args": [
"/absolute/path/to/python-mcp-server/dist/index.js"
],
"disabled": false,
"autoApprove": [
"execute_python_code",
"execute_python_file",
"check_python_version",
"list_python_files",
"read_python_file",
"write_python_file"
]
}
}
}
```
3. 将 `/absolute/path/to/python-mcp-server` 替换为实际的仓库克隆路径。
4. 重启 Cline 或重新加载窗口。
## 使用方法
配置完成后,您可以通过多种方式要求 Claude 运行 Python 代码。以下是一些示例:
### 执行 Python 代码
```
您能为我运行这段 Python 代码吗?
import random
numbers = [random.randint(1, 100) for _ in range(10)]
print(f"随机数字:{numbers}")
print(f"总和:{sum(numbers)}")
print(f"平均值:{sum(numbers)/len(numbers)}")
```
### 执行 Python 文件
```
您能执行我的 Python 文件 `/path/to/my_script.py` 吗?
```
### 列出 Python 文件
```
您能列出 `/path/to/project` 目录中的所有 Python 文件吗?
```
### 读取 Python 文件
```
您能显示 `/path/to/my_script.py` 文件的内容吗?
```
### 写入 Python 文件
```
您能在 `/path/to/new_script.py` 文件中写入以下内容吗?
def hello_world():
print("Hello, world!")
if __name__ == "__main__":
hello_world()
```
### 检查 Python 版本
```
我安装的 Python 版本是什么?
```
## 可用工具
### execute_python_code
执行 Python 代码片段。
参数:
- `code`(字符串,必填):要执行的 Python 代码
- `timeout`(数字,可选):最大执行时间(秒,默认为 30)
- `args`(字符串数组,可选):传递给脚本的命令行参数
- `workingDir`(字符串,可选):脚本执行的工作目录
### execute_python_file
执行 Python 文件。
参数:
- `filePath`(字符串,必填):要执行的 Python 文件路径
- `timeout`(数字,可选):最大执行时间(秒,默认为 30)
- `args`(字符串数组,可选):传递给脚本的命令行参数
- `workingDir`(字符串,可选):脚本执行的工作目录
### check_python_version
返回已安装的 Python 版本信息。
### list_python_files
列出目录中的 Python 文件。
参数:
- `dirPath`(字符串,可选):要列出 Python 文件的目录路径(默认为当前目录)
- `recursive`(布尔值,可选):是否递归搜索(默认为 false)
### read_python_file
读取 Python 文件的内容。
参数:
- `filePath`(字符串,必填):要读取的 Python 文件路径
### write_python_file
向 Python 文件写入内容。
参数:
- `filePath`(字符串,必填):要写入的 Python 文件路径
- `content`(字符串,必填):要写入文件的内容
- `createDirs`(布尔值,可选):如果目录不存在是否创建(默认为 true)
## 故障排除
### Python 未找到
如果您看到“Python 未安装”的错误,请确保 Python 已安装并在您的系统路径中可用。
### 权限错误
如果您在读取或写入文件时遇到权限错误,请确保运行 MCP 服务器的用户具有必要的权限。
### 超时错误
服务器对代码执行有默认的 30 秒超时限制。如果您的代码运行时间超过此限制,它将被终止。您可以通过指定 `timeout` 参数来增加超时时间。
## 许可证
MIT