[特殊字符]颠覆MCP!Open WebUI新技术mcpo横空出世!支持ollama!轻松支持各种MCP Server!Cline+Claude3.7轻松开发论文检索MCP Server!

[特殊字符]颠覆MCP!Open WebUI新技术mcpo横空出世!支持ollama!轻松支持各种MCP Server!Cline+Claude3.7轻松开发论文检索MCP Server!

🔥🔥🔥本篇笔记所对应的视频:🚀颠覆MCP!Open WebUI新技术mcpo横空出世!支持ollama!轻松支持各种MCP Server!Cline+Claude3.7轻松开发MCP服务_哔哩哔哩_bilibili

Open WebUI 的 MCPo 项目:将 MCP 工具无缝集成到 OpenAPI 的创新解决方案

随着人工智能工具和模型的快速发展,如何高效、安全地将这些工具集成到标准化的 API 接口中成为了开发者面临的重要挑战。Open WebUI 的 MCPo 项目(Model Context Protocol-to-OpenAPI Proxy Server)正是为了解决这一问题而设计的。本文将带您深入了解 MCPo 的功能、优势及其对开发者生态的影响。


什么是 MCPo?

MCPo 是一个简单、可靠的代理服务器,能够将任何基于 MCP 协议的工具转换为兼容 OpenAPI 的 HTTP 服务器。它通过标准化 RESTful API 接口,让复杂的工具变得易于使用,并支持与大语言模型(LLM)代理和应用程序的无缝交互。

核心功能:

  • 即时兼容性:支持 OpenAPI 工具、SDK 和用户界面,无需额外配置。
  • 安全性与稳定性:采用标准化的 HTTPS 传输协议,支持 JWT 和 API 密钥认证。
  • 自动生成文档:无需手动配置,自动生成交互式 Swagger UI 文档。
  • 纯 HTTP 支持:无需额外的套接字或胶合代码,简化开发流程。

MCPo 的工作原理

MCPo 的核心在于其代理功能,它能够动态发现 MCP 工具并生成 REST API 端点,同时提供人性化的 OpenAPI 文档。以下是其典型工作流程:

  1. 自动生成 API 文档,访问地址为 http://localhost:8000/docs
  2. 用户可以直接调用生成的 API 端点,通过 HTTP 客户端或其他工具进行交互。

启动 MCPo 服务器,例如: 或通过 Python:

uvx mcpo --port 8000 -- your_mcp_server_command 
pip install mcpo mcpo --port 8000 -- your_mcp_server_command 

此外,MCPo 支持通过配置文件管理多个 MCP 工具,使不同工具可以通过唯一路由访问。例如:

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

最新功能更新

根据项目最新发布的更新日志,MCPo 引入了以下新特性:

  • 图像内容支持:现在可以直接处理 MCP 工具生成的图像内容,并以二进制格式返回给用户,用于动态图表、AI艺术等场景。
  • CLI API 密钥认证:通过 -api-key 参数轻松保护端点,适用于公共或多代理部署。
  • 灵活的跨域访问控制(CORS):新增 -cors-allow-origins 参数,为前端应用和远程 UI 集成提供支持,同时保持安全性。

为什么选择 MCPo?

相比原生 MCP 协议,MCPo 提供了显著优势:

  • 用户友好的接口:不需要学习新的协议,仅需熟悉 HTTP REST 接口即可操作。
  • 即插即用的集成能力:兼容数千种现有工具和服务。
  • 强大的文档支持:自动维护准确且易用的文档。
  • 安全与稳定性保障:基于成熟框架(如 FastAPI),确保高性能和长久支持。

社区反馈与未来发展

MCPo 项目已在 GitHub 和 Reddit 社区中引发广泛讨论。开发者对其易用性和强大的功能表示认可,同时也提出了改进建议,例如增加 SSL 支持和更灵活的配置选项。

随着人工智能工具需求的增长,MCPo 有望成为连接 AI 工具与标准化接口的重要桥梁,为开发者提供更高效、更安全的解决方案。


🚀安装ollama

Ollama

🚀在ollama中安装模型

ollama run gemma3 

🚀安装mcpo

# 安装mcpo pip install mcpo mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command # 启动时间mcp server uvx mcpo --port 8000 --api-key "top-secret" -- uvx mcp-server-time --local-timezone=America/New_York # 启动fetch mcp server uvx mcpo --port 8000 -- uvx mcp-server-fetch # 查看文档: <http://localhost:8000/docs> <http://localhost:8000/openapi.json> # 使用配置文件启动 mcpo --config /path/to/config.json # 配置文件示例: { "mcpServers": { "memory": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-memory"] }, "time": { "command": "uvx", "args": ["mcp-server-time", "--local-timezone=America/New_York"] } } } 

🚀安装Open WebUI

# pip 安装 pip install -U open-webui # 启动 open-webui serve # 源代码安装 git clone -b v0.6.0 <https://github.com/open-webui/open-webui.git> cd open-webui/ cp -RPp .env.example .env npm i npm run build cd ./backend pip install -r requirements.txt -U # 启动 bash start.sh 

🚀测试通过MCPO调用MCP Fetch server

import requests import json def fetch_webpage(url, max_length=10000, start_index=0, raw=False): """ Fetch content from a URL using the MCP Fetch server. Args: url (str): The URL to fetch max_length (int): Maximum number of characters to return start_index (int): Start content from this character index raw (bool): Get raw HTML content without markdown conversion Returns: dict: The response from the server containing the fetched content """ try: # Make a POST request to the fetch endpoint response = requests.post( "<http://localhost:8000/fetch>", json={ "url": url, "max_length": max_length, "start_index": start_index, "raw": raw } ) # Ensure the request was successful response.raise_for_status() # Parse the response return response.json() except Exception as e: return {"error": str(e)} # Example usage if __name__ == "__main__": # Fetch the specific URL you requested target_url = "<https://www.aivi.fyi/aiagents/RooCode-Gemini2.5Pro-OpenAIAgentsSDK>" result = fetch_webpage(target_url) print(result) 

Read more

【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起

【前端】Vue 组件开发中的枚举值验证:从一个Type属性错误说起

🌹欢迎来到《小5讲堂》🌹 🌹这是《小程序》系列文章,每篇文章将以博主理解的角度展开讲解。🌹 🌹温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!🌹 👨💻 作者简介 🏆 荣誉头衔:2024博客之星Top14 | ZEEKLOG博客专家 | 阿里云专家博主 🎤 经历:曾多次进行线下演讲,亦是 ZEEKLOG内容合伙人 以及 新星优秀导师 💡 信念:“帮助别人,成长自己!” 🚀 技术领域:深耕全栈,精通 .NET Core (C#)、Python、Java,熟悉主流数据库 🤝 欢迎交流:无论是基础概念还是进阶实战,都欢迎与我探讨! 目录 * 前言 * 解决过程 * 一、错误场景还原 * 1.1 错误发生的位置 * 1.2 常见的触发场景 * 二、深入理解 Vue

By Ne0inhk
从安装到实测:基于 Claude Code + GLM-4.7 的前端生成与评测实战

从安装到实测:基于 Claude Code + GLM-4.7 的前端生成与评测实战

目录 引言 一、命令行使用 Claude Code(安装与配置) 步骤一:安装 Claude Code(命令行) 步骤二:配置蓝耘MaaS平台 步骤三:常见排查 二、编码工具中使用 claude-code:三个端到端案例(含提示与实测评价) 案例 1:交互式个人血压记录网页 — 前端端到端生成 案例 2:Web 双人对战小游戏(Joy-Con 风格) 案例 3:前端可视化组件生成 三、补充建议(快速 checklist) 总结 引言 近一年来,代码生成类工具逐渐从“写几行示例代码”走向“完整功能交付”,但真正落到工程实践时,很多工具仍停留在 Demo 阶段:要么跑不起来,

By Ne0inhk

[特殊字符] AI印象派艺术工坊前端交互:画廊滚动与图片缩放体验优化

🎨 AI印象派艺术工坊前端交互:画廊滚动与图片缩放体验优化 1. 引言 1.1 业务场景描述 在“AI印象派艺术工坊”这一轻量级图像风格迁移Web应用中,用户上传照片后,系统基于OpenCV的计算摄影学算法,无需依赖深度学习模型即可生成素描、彩铅、油画、水彩四种艺术风格图像。整个流程高效稳定,适合边缘设备或低资源环境部署。 然而,随着功能完善,用户体验成为新的优化重点。尤其是在结果展示环节,用户需要在移动端和桌面端均能流畅浏览五张图像(原图+四类艺术图),并对细节进行查看。当前采用的静态卡片式布局在小屏设备上存在滑动不顺、缩放卡顿等问题,影响整体使用满意度。 因此,本文聚焦于画廊滚动与图片缩放体验的前端交互优化,结合现代CSS与JavaScript技术,提出一套适用于此类轻量化AI图像应用的高性能、响应式画廊解决方案。 1.2 痛点分析 现有画廊界面存在以下问题: * 横向滚动卡顿:使用基础overflow-x: scroll时,缺乏惯性滚动与平滑动画,操作生硬。 * 图片缩放体验差:移动端双指缩放常被浏览器默认行为干扰,无法精准控制。 * 响应式适配不足:不

By Ne0inhk
【数据结构】堆——超详解!!!(包含堆的实现)

【数据结构】堆——超详解!!!(包含堆的实现)

【数据结构】堆——超详解!!!(包含堆的实现) * 前言 * 一、堆是什么? * 1. 堆的定义 * 2. 堆的分类 * 3. 堆的特点 * 二、堆的实现(小堆) * 1. 用什么来实现? * 2. 实现思路 * 3. 代码实现 * (1)创建头文件&源文件 * (2)定义堆(定义) * (3)堆的初始化(初始化) * (4)堆的销毁(销毁) * (5)插入数据(入堆) * (6)删除数据(出堆) * (7)获取堆顶元素 * (8)获取堆的数据个数 * (9)检测堆是否为空 * 三、完整代码实现 * 1.

By Ne0inhk