[特殊字符]颠覆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

Flutter for OpenHarmony:Flutter 三方库 xdg_directories 遵循 Linux 系统目录规范的路径指南(鸿蒙底座兼容性探索)

Flutter for OpenHarmony:Flutter 三方库 xdg_directories 遵循 Linux 系统目录规范的路径指南(鸿蒙底座兼容性探索)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 随着 OpenHarmony 在桌面和平板设备上的不断普及,以及其底层与类 Unix / Linux 系统深厚的渊源,开发者在处理本地存储路径时,不仅要考虑手机端的“沙箱”,也需要考虑符合行业标准的系统目录规范(XDG Base Directory Specification)。 xdg_directories 是一个专门用于获取 Linux 系统环境变量定义的标准目录位置的工具库。它能帮你准确定位诸如:配置文件放在哪?缓存数据放在哪?虽然鸿蒙手机端有其特有的路径设计,但在鸿蒙桌面端或利用鸿蒙内核进行 Linux 兼容层开发时,它具有不可替代的规范指导意义。 一、核心概念:XDG 规范图解 XDG 规范定义了应用程序存储不同类型数据的位置,避免了在用户主目录下乱丢文件的乱象。 /home/user $XDG_CONFIG_HOME (.config) $XDG_CACHE_HOME

By Ne0inhk
精易模块图像处理与OCR实战:构建一个自动化验证码识别系统

精易模块图像处理与OCR实战:构建一个自动化验证码识别系统

精易模块图像处理与OCR实战:构建一个自动化验证码识别系统 22.1 引言 💡 各位易语言开发者朋友大家好!前几篇我们通过中小学生成绩管理系统巩固了精易模块Excel操作的核心知识点,通过多线程电商数据采集与分析系统掌握了网络爬虫和数据分析的方法。今天我要为大家带来一个结合图像处理、OCR识别、自动化操作的深度实战项目——精易模块图像处理与OCR实战:构建一个自动化验证码识别系统。 在网站登录、注册、密码找回等场景中,验证码是防止恶意攻击的重要手段,但手动输入验证码存在效率低、容易出错等问题。易语言配合精易模块的图像处理支持库和Tesseract OCR引擎,可以开发出功能完备、稳定可靠的自动化验证码识别系统,将验证码识别时间从手动的5秒/个缩短到系统的0.5秒/个,大大提高了工作效率。 22.1.1 项目背景 某电商运营团队每天需要登录多个电商平台的后台进行数据分析和操作,每个平台的登录都需要输入验证码,每天手动输入验证码的次数达到200+次,存在以下问题: * 手动输入效率低 * 容易出错(如验证码模糊、字符重叠等) * 工作强度大 * 无法实现自动化操作

By Ne0inhk
Apache IoTDB(16):数据删除从单点精准清除到企业级数据生命周期管理

Apache IoTDB(16):数据删除从单点精准清除到企业级数据生命周期管理

引言 在工业物联网场景中,时序数据如潮水般涌入。一条智能生产线每天生成数TB的时序数据。若不实施科学的数据删除策略,将导致存储成本激增、查询性能恶化、系统稳定性下降。Apache IoTDB作为专为物联网设计的时序数据库,提供了从单点精准删除到企业级数据生命周期管理的完整解决方案。本文将深度解析IoTDB数据删除的五大核心场景,结合真实案例,讲解其背后设计哲学与技术实现。 Apache IoTDB 时序数据库【系列篇章】: No.文章地址(点击进入)1Apache IoTDB(1):时序数据库介绍与单机版安装部署指南2Apache IoTDB(2):时序数据库 IoTDB 集群安装部署的技术优势与适用场景分析3Apache IoTDB(3):时序数据库 IoTDB Docker部署从单机到集群的全场景部署与实践指南4Apache IoTDB(4):深度解析时序数据库 IoTDB 在Kubernetes 集群中的部署与实践指南5Apache IoTDB(5):深度解析时序数据库 IoTDB 中 AINode 工具的部署与实践6Apache IoTDB(6)

By Ne0inhk
C++网络编程:TCP服务器与客户端的实现

C++网络编程:TCP服务器与客户端的实现

C++网络编程:TCP服务器与客户端的实现 一、学习目标与重点 本章将深入探讨C++网络编程的核心知识,帮助你掌握TCP服务器与客户端的实现。通过学习,你将能够: 1. 理解网络编程的基本概念,掌握TCP/IP协议的核心要点 2. 学会使用套接字编程,实现简单的TCP服务器与客户端 3. 理解网络编程中的错误处理,提高程序的健壮性 4. 学会使用Boost.Asio库,简化网络编程的复杂流程 5. 培养网络编程思维,设计高效且稳定的网络应用 二、网络编程基础 2.1 TCP/IP协议简介 TCP/IP(传输控制协议/互联网协议)是互联网的核心协议,它提供了可靠的、面向连接的通信服务。TCP协议确保数据的可靠传输,通过三次握手建立连接,四次挥手关闭连接。 2.2 套接字编程基础 套接字(Socket)是网络编程的基础,它提供了进程间通信的接口。

By Ne0inhk