
gpt4free 如何以 HTTP 模式启动 MCP Server 并用 /health 端点验证 web_search 与 image_generation 工具【免费下载链接】gpt4freeThe official gpt4free repository | various collection of powerful language models | opus 4.6 gpt 5.3 kimi 2.5 deepseek v3.2 gemini 3项目地址: https://gitcode.com/GitHub_Trending/gp/gpt4freeGPT4Freeg4f内置了一个 Model Context ProtocolMCPserver可以让 AI 助手调用 web 搜索、网页抓取和图片生成等工具。默认它是 stdio 模式g4f mcp但如果你希望把 MCP server 暴露成 HTTP 服务供远端客户端或其他进程访问就需要使用 HTTP 模式启动后服务提供两个端点——POST /mcpJSON-RPC 入口和GET /health健康检查。这篇文章的目标是按文档给出的命令以 HTTP 模式启动 MCP server先用/health确认服务存活再通过/mcp端点的tools/list和tools/call请求验证web_search与image_generation两个工具确实可用。准备条件按 README.md 的说明环境要求Python 3.10安装 g4f 包推荐从 PyPI 安装pip install -U g4f[all]两个工具对运行环境有明确依赖在验证前需要知道示例脚本 etc/examples/mcp_tools_demo.py 中注明这些工具需要网络访问在隔离环境中可能失败web_search依赖 DuckDuckGo示例脚本提示缺少ddgs、beautifulsoup4包或无网络时搜索会失败image_generation需要网络访问或可用的图片生成 provider否则生成会失败web_scrape本文不涉及依赖aiohttp、beautifulsoup4。以 HTTP 模式启动 MCP ServerREADME.md 给出的 HTTP 模式启动命令# 在 8765 端口启动 HTTP 服务 g4f mcp --http --port 8765 # 自定义 host 和端口 g4f mcp --http --host 127.0.0.1 --port 3000HTTP 模式下服务提供两个端点以默认 8765 端口为例POST http://localhost:8765/mcp—— JSON-RPC 端点GET http://localhost:8765/health—— 健康检查注意--http是区分 HTTP 模式与 stdio 模式的关键参数不加它时g4f mcp或python -m g4f.mcp是 stdio 模式不会监听 HTTP 端口。用 /health 端点确认服务存活服务启动后向健康检查端点发一个 GET 请求curl http://localhost:8765/health文档中该端点的定位就是 Health check用于确认 HTTP 服务已经监听并响应。文档没有给出/health的示例响应体因此以请求能成功连通、服务返回响应为准如果连接被拒绝说明服务未启动或端口、host 不匹配对照你启动时使用的--port/--host参数。通过 /mcp 端点核对工具列表/mcp端点接受标准 JSON-RPC 请求。etc/testing/test_mcp_http.py 中给出了文档化的请求格式先用initialize方法确认协议协商正常curl -X POST http://localhost:8765/mcp \ -H Content-Type: application/json \ -d {jsonrpc:2.0,id:1,method:initialize,params:{}}测试脚本 etc/testing/test_mcp_http.py 对成功结果的判断是响应result中包含protocolVersion字段单元测试 etc/unittest/mcp.py 断言其值为2024-11-05并且result中包含serverInfo和capabilities。接着用tools/list方法确认web_search与image_generation已注册。测试脚本说明请求处理方式对 stdio 和 HTTP 两种传输是相同的Request handling (same for both transports)因此可以直接把该方法发到/mcp端点curl -X POST http://localhost:8765/mcp \ -H Content-Type: application/json \ -d {jsonrpc:2.0,id:2,method:tools/list,params:{}}etc/unittest/mcp.py 中对tools/list的断言是响应的result.tools数组中工具名应包含web_search和image_generation另外还有python_execute、file_read、file_list、file_delete。如果列表里找不到这两个名字说明 server 未按预期注册工具此时不必继续后面的调用步骤。实际调用 web_search 与 image_generation 工具工具调用使用tools/call方法params中指定name和arguments。参数以单元测试中的 schema 断言为准web_search必填queryimage_generation必填promptetc/unittest/mcp.py 中分别断言了这两个字段出现在required列表里。调用 web_search示例请求参数来自 etc/examples/mcp_tools_demo.py 中的演示用例curl -X POST http://localhost:8765/mcp \ -H Content-Type: application/json \ -d {jsonrpc:2.0,id:3,method:tools/call,params:{name:web_search,arguments:{query:Python programming tutorials,max_results:3}}}示例脚本对结果的解析方式响应result.content是一个数组取content[0].text其内容是 JSON 字符串解析后即搜索结果演示中query为 Python programming tutorials、max_results为 3属于文档示例值可换成自己的查询词。如果ddgs、beautifulsoup4未安装或没有网络演示脚本明确说明搜索失败是预期现象This is expected without network access or required packages。调用 image_generation演示用例中的参数model为flux尺寸 512x512均为文档示例值prompt 可替换curl -X POST http://localhost:8765/mcp \ -H Content-Type: application/json \ -d {jsonrpc:2.0,id:4,method:tools/call,params:{name:image_generation,arguments:{prompt:A beautiful sunset over mountains,model:flux,width:512,height:512}}}示例脚本对结果的判断解析result.content[0].text得到的 JSON 中包含image字段其值以data:开头base64 数据脚本打印时会截断这段数据示例输出中标注了 base64 data truncated。没有网络或图片生成 provider 时脚本同样说明生成失败属于预期情况。排查与限制文档给出的几个可用于判断的点调用不存在的工具名tools/call对不存在的工具返回错误错误码为-32601etc/unittest/mcp.py 中test_tool_call_invalid_tool的断言。如果调用返回该错误码先检查tools/list里工具名是否拼写正确。缺少必填参数单元测试表明web_search缺query、image_generation缺prompt时工具执行结果中会带error字段test_web_search_missing_query、test_image_generation_missing_prompt的断言。网络与依赖再次强调文档的限制——两个工具都需要网络访问web_search额外依赖ddgs、beautifulsoup4。隔离环境中调用失败不等于 server 配置错误。替代验证路径不想先启动 HTTP 服务、想在本进程内核对工具行为时可以运行示例脚本 etc/examples/mcp_tools_demo.py它直接实例化MCPServer并依次演示三个工具前提是 g4f 包已安装。README 还提到了面向 AI 助手如 Claude Desktop的 stdio 模式配置claude_desktop_config.json中使用python -m g4f.mcp那属于另一条接入路径与本文的 HTTP 模式验证无关这里不展开。完成上述步骤后如果你的/health请求有响应、initialize返回了protocolVersion、tools/list中能看到web_search与image_generation并且两次tools/call在没有网络/依赖问题的环境下返回了result而非error即说明该 MCP server 以 HTTP 模式正常提供服务两个工具可以被外部客户端调用。【免费下载链接】gpt4freeThe official gpt4free repository | various collection of powerful language models | opus 4.6 gpt 5.3 kimi 2.5 deepseek v3.2 gemini 3项目地址: https://gitcode.com/GitHub_Trending/gp/gpt4free创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考