跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI

Open WebUI 新技术 MCPo:将 MCP 工具转换为 OpenAPI 接口

MCPo 项目实现了 Model Context Protocol 到 OpenAPI 的转换,通过代理服务器将 MCP 工具暴露为 RESTful API。它支持自动文档生成、JWT 认证及图像内容处理,解决了 AI 工具集成标准化难题。配合 Open WebUI 和 Ollama,开发者可快速构建本地 AI 应用并调用外部服务,如网页抓取或内存管理,显著降低集成复杂度。

怪力乱神发布于 2026/3/15更新于 2026/10/2578 浏览
Open WebUI 新技术 MCPo:将 MCP 工具转换为 OpenAPI 接口

Open WebUI 的 MCPo 项目(Model Context Protocol-to-OpenAPI Proxy Server)是一个旨在解决 AI 工具集成标准化难题的创新方案。随着大模型应用的发展,开发者常面临如何将复杂的 MCP 协议工具安全、高效地暴露为通用 HTTP 接口的挑战。MCPo 通过代理模式,将任何基于 MCP 的工具转换为兼容 OpenAPI 的 RESTful API,让 LLM 代理和应用程序能无缝调用。

核心优势

MCPo 的设计重点在于降低集成门槛并提升安全性:

  • 即插即用:支持现有的 OpenAPI 工具、SDK 和用户界面,无需额外配置即可运行。
  • 标准化传输:采用 HTTPS 协议,支持 JWT 和 API 密钥认证,保障通信安全。
  • 文档自动化:内置 Swagger UI,自动生成交互式文档,方便调试与查看。
  • 纯 HTTP 支持:摒弃复杂的套接字逻辑,简化开发流程。

工作原理

MCPo 的核心是动态发现 MCP 工具并生成对应的 REST 端点。启动后,它会自动提供 OpenAPI 文档,通常位于 http://localhost:8000/docs。用户可以直接通过 HTTP 客户端调用这些端点,或者在 Open WebUI 中直接集成使用。

环境搭建

要体验 MCPo,建议先准备好基础环境。如果你本地部署了 Ollama,可以先拉取一个模型,例如:

ollama run gemma3

接下来安装 MCPo 服务。推荐使用 uvx 或 pip 进行部署。注意区分安装命令与启动命令:

# 安装依赖
pip install mcpo

# 启动服务(指定端口和密钥)
uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command

对于需要管理多个工具的复杂场景,可以通过配置文件来定义路由。例如同时启用内存服务和时间服务:

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    },
    "time": {
      "command": "uvx",
      "args": ["mcp-server-time", "--local-timezone=America/New_York"]
    }
  }
}

启动时只需传入配置文件路径:

mcpo --config /path/to/config.json

最后,配合 Open WebUI 使用。你可以直接通过 pip 升级安装,或者从源码构建:

pip install -U open-webui
open-webui serve

实战示例

为了验证 MCPo 是否正常工作,我们可以编写一个简单的 Python 脚本调用 Fetch Server。这个例子展示了如何向 MCPo 发起 POST 请求并处理返回内容:

import requests
import json

def fetch_webpage(url, max_length=10000, start_index=0, raw=False):
    """使用 MCP Fetch server 获取网页内容。
    
    Args:
        url (str): 目标 URL
        max_length (int): 最大返回字符数
        start_index (int): 起始索引
        raw (bool): 是否获取原始 HTML
    Returns:
        dict: 服务器响应内容
    """
    try:
        # 向 MCPo 生成的端点发送请求
        response = requests.post(
            "http://localhost:8000/fetch",
            json={
                "url": url,
                "max_length": max_length,
                "start_index": start_index,
                "raw": raw
            }
        )
        response.raise_for_status()
        return response.json()
    except Exception as e:
        return {"error": str(e)}

if __name__ == "__main__":
    target_url = "https://www.aivi.fyi/aiagents/RooCode-Gemini2.5Pro-OpenAIAgentsSDK"
    result = fetch_webpage(target_url)
    print(result)

这段代码会尝试抓取指定链接的内容。如果 MCPo 服务正常且 Fetch Server 已注册,你将看到解析后的数据。在实际开发中,记得根据实际需求调整 max_length 参数,避免一次性加载过大内容影响性能。

总结

MCPo 的出现填补了 MCP 协议与标准 Web 接口之间的空白。它不仅支持图像内容处理和灵活的跨域控制,还通过成熟的 FastAPI 框架保证了稳定性。对于希望快速构建本地 AI 应用或扩展现有工具链的开发者来说,这是一个值得尝试的中间件方案。

目录

  1. 核心优势
  2. 工作原理
  3. 环境搭建
  4. 安装依赖
  5. 启动服务(指定端口和密钥)
  6. 实战示例
  7. 总结

更多推荐文章

查看全部
  • Trae AI 编程工具使用指南及竞品对比分析
  • 35 岁职场危机:失业困境与技能突围之路
  • LLaMA-Factory 项目介绍与安装部署
  • SpringBoot 统一数据返回与异常处理详解
  • 突破 LLM 上下文瓶颈:上下文内存虚拟化 CMV 的设计与实践
  • Apache SeaTunnel Web 可视化数据集成实战指南
  • C++ 20 协程入门指南
  • Session 会话机制原理及 Tomcat 实现分析
  • C++ 与 Python 传值及传引用机制对比
  • C++ 继承与多态机制详解
  • Java 面试场景题解析与代码示例
  • 基于 Chroma 和 Ollama 搭建本地 RAG 应用
  • C++ 标准库核心解析:std、STL 及 Java 集合框架对比
  • AI 大模型技术栈与学习路线整理
  • Mac 安装 OpenClaw 并配置飞书云文档
  • 带电/含锂电/储能产品出口的三条合规新变化
  • 基于深度学习的智能害虫识别系统
  • 大模型落地应用架构模式解析与实施策略
  • C++ 异常处理机制:捕获、自定义与实战
  • Unity MCP 指南:使用 AI 控制 Unity 编辑器

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online