关于 MCP Python Function Generator Server
MCP Python Function Generator Server 是一个通过自然语言描述生成 Python 函数代码的 MCP 服务。可选用人工编写并验证的测试用例执行检查,并返回函数规格、代码和测试结果。
主要功能
- 01根据需求描述生成函数规格
- 02生成 Python 函数代码
- 03检查语法与函数定义
- 04使用提供的测试用例执行验证
- 05返回代码及测试结果
适用场景
- 01将文字需求转为 Python 函数
- 02为带有已知输入输出的函数验证生成代码
MCP 相关
MCP 服务提供 `create_python_function` 工具,接收需求描述及可选测试用例,并返回生成的规格、代码和测试结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Python 函数生成器服务
一个 MCP 服务,提供可根据描述生成 Python 函数代码的工具,并支持由人工提供测试。
设置(使用 uv 轻松安装)
此服务旨在通过 uv Python 包管理器轻松设置。
-
**前提条件:**确保已安装
uv,并且可通过系统的 PATH 使用。请参阅 uv 安装说明。 -
**获取代码:**克隆此仓库,或下载并解压源代码 ZIP 文件。
-
运行设置脚本:
- **Windows:**打开命令提示符或 PowerShell,导航(
cd)到项目目录(例如MCP_Server),然后运行:.\setup.bat - **Linux/macOS:**打开终端,导航(
cd)到项目目录,使脚本可执行(chmod +x setup.sh),然后运行:./setup.sh脚本将使用uv创建本地虚拟环境(.venv)并安装所需依赖项。它还会打印客户端配置所需的确切命令和参数。 (注意:脚本会尝试删除项目文件夹中现有的.venv目录,以确保环境干净。如有需要,请先备份其中的内容。)
- **Windows:**打开命令提示符或 PowerShell,导航(
-
**配置 MCP 客户端:**将设置脚本打印的
command("uv")和args数组([ "run", "--project", "/path/to/your/project", "mcp-function-generator" ])复制到 MCP 客户端的配置文件中(例如 Claude Desktop 的settings.json)。JSON 示例块(将路径替换为设置脚本输出中的路径):
{ "mcpServers": { "pythonFunctionGenerator": { "command": "uv", "args": [ "run", "--project", // --- 在此处粘贴设置脚本输出的绝对路径 --- "/path/to/your/project/MCP_Server", // Linux/macOS 示例 // "C:\\Users\\YourName\\Projects\\MCP_Server", // Windows 示例(需转义!) // --- 路径结束 --- "mcp-function-generator" ] } // 如有需要,可添加 filesystem 等其他服务 } }(请记住,在 JSON 字符串中,Windows 路径里的反斜杠
\必须转义为\\。) -
**重启客户端:**保存配置文件并重启 MCP 客户端(例如 Claude Desktop),使更改生效。
用法
在客户端中完成配置后,MCP 服务会在需要时自动启动。
该服务会提供一个名为 create_python_function 的工具。
参数:
-
requirement(字符串,必填):- 对所需函数的自然语言描述。尽可能提供示例、约束或边界情况。
- 示例:
"Create a function that takes a list of strings and returns the longest string. Handle empty lists."
-
test_cases(对象数组,可选):- 一组由人工编写并验证的测试用例,用于验证生成代码的功能。
- 结构:
[ { "inputs": { "param_key1": value1, ... }, "expected": expected_value }, ... ] inputs:一个字典,其中的键是函数所需的参数名称,值是该测试用例的输入。expected:这些输入对应的唯一预期输出值。(注意:目前仅支持精确相等==检查。不会自动处理非确定性输出或浮点数容差。)。- 重要约束:如果提供
test_cases,则第一个测试用例中inputs字典所用的键将决定生成函数必须使用的确切参数名称。请确保所有测试用例中的键保持一致。 - !! 警告 !!:此参数仅适用于由人工编写或验证的测试。不要让 AI 客户端(如 Claude)为此参数生成测试用例,因为此工具无法保证这些用例正确,可能会导致意外的验证失败或错误代码。如果希望快速生成未经测试的代码,只需省略
test_cases参数。
执行流程:
- 服务接收
requirement。 - 它会生成函数规范(名称、参数、返回类型、文档字符串)。
- 如果提供了
test_cases,则生成的参数名称必须与inputs字典中的键一致(以第一个测试用例为准)。服务会验证是否匹配。
- 如果提供了
- 它根据规范生成 Python 代码。
- 它会验证代码的基本语法和函数定义。
- 如果提供了
test_cases,且规范生成使用了正确的参数键,它会使用关键字参数对每个测试用例执行代码。 - 它会返回结果,包括规范、代码和测试结果(如果已运行且成功)。如果重试后测试仍然失败,或者规范生成未通过针对测试键的验证,则会返回错误。
客户端调用示例(概念性 JSON)
1. 不带测试生成代码:
{
"tool_name": "create_python_function",
"arguments": {
"requirement": "Write a function `add_one` that takes an integer `x` and returns `x + 1`."
}
}
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。