网站服务内容怎样选青岛新闻最新今日头条
让你的MCP符合openai协议
- 参考的开源项目列表
- MCPO项目简介
- MCPSEVERE
- MCProtocolLib
- open-webui
- 实战
- 初始环境安装
- 启动成功的验证
- 模拟openai协议调用过程
- 使用工具
- 多工具使用
参考的开源项目列表
MCPO项目简介
mcpo 项目的核心原理在于将传统通过 stdio 通信的 MCP 工具代理为符合 OpenAPI 标准的 HTTP 服务器,从而让 AI 工具和大语言模型能够直接调用这些工具,无需额外编写集成代码。它自动生成交互式文档,并内置安全、错误处理和认证等功能,使得原本不易集成的 MCP 工具能够轻松与现代应用和 SDK 对接。
源项目地址
MCPSEVERE
MCPSEVERE 是 Model Context Protocol 服务器集合中的一个整体概念,旨在为 AI 工具提供一个统一且标准化的服务平台,使各类基于 MCP 协议的服务器能够通过一致的接口与大语言模型进行交互。该项目涵盖了从文件系统访问、网络搜索、版本控制到数据库操作等多个领域的参考实现,并附带详尽的文档和示例,帮助开发者快速构建、测试和扩展自己的 MCP 服务。通过 MCPSEVERE,开发者可以利用开源的 MCP 生态系统实现跨平台、跨工具的数据访问和功能调用,从而大大简化 AI 工具与外部数据源和应用集成的复杂性。
源项目地址
MCProtocolLib
MCProtocolLib 是一个用 Java 编写的库,用于处理 Minecraft 的网络协议。它封装了与 Minecraft 客户端和服务器之间通信所需的各种数据包的编码、解码和传输细节,使开发者能够更轻松地构建 Minecraft 相关应用,比如机器人、代理服务器或自定义服务器。通过抽象出复杂的网络协议,MCProtocolLib 为开发者提供了一个简单且高效的 API,以便实现与 Minecraft 服务器的连接和交互。
源项目地址
open-webui
一个开源的 Web 用户界面平台,旨在为 AI 工具和大语言模型提供一个统一且可扩展的界面。它整合了多种常用功能,如工具管理、任务协作、实时预览和交互式文档,帮助用户更方便地使用和管理 AI 相关的应用和服务。简而言之,Open WebUI 为开发者和终端用户提供了一个易用、模块化的前端平台,便于集成和展示各种 AI 工具和工作流。
源项目地址
实战
本次实战使用文件系统MCP服务,同时环境为python3.12(最低为python3.11如果想使用大多数功能的话),windows11以及欧拉SP2(mac和linux的部分版本支持),pycharm。
初始环境安装
pip install mcpo
进入文件系统MCP的git地址
由于这里没有额外安装过程,所以可以跳过一些python包的安装之类的。
相应的windows命令为:
npx -y @modelcontextprotocol/server-filesystem 你需要授权的路径
linux命令
npx -p @modelcontextprotocol/server-filesystem mcp-server-filesystem "$(pwd)"
同时mcpo的指令对应就是
linux/mac:
mcpo --port 服务端口号 -- npx @modelcontextprotocol/server-filesystem 授权路径
windows:
mcpo --port 8000 -- npx.cmd @modelcontextprotocol/server-filesystem E:\work\Project\Python_Project\Megatron\data
启动成功的验证
浏览器输入提示的网址即可访问,加上/docs即可查看文档,如图所示
测试接口是否正常,这里选择文件读取
import requestsdef test_read_file_api():# 接口的URL,根据实际情况修改url = "http://localhost:8000/read_file"# 要读取的文件路径request_body = {"path": "写自己的路径"}try:# 发送POST请求,body中携带JSON数据response = requests.post(url, json=request_body)# 检查响应状态码if response.status_code == 200:print("接口调用成功,文件内容如下:")print(response.text)else:print(f"接口调用失败,状态码:{response.status_code}")print(f"错误信息:{response.text}")except requests.exceptions.RequestException as e:print("请求过程中出现异常:", e)if __name__ == "__main__":test_read_file_api()
模拟openai协议调用过程
为了模拟同时降低文章冗余度,测试使用开源项目open-webui,当然又很多比他更好的测试项目,但这个安装目前是我发现最简单的。
pip install open-webui
open-webui serve
依次点击这两个进行语言配置
添加工具
使用工具
多工具使用
比如我想增加一个时间工具,
那么我需要在刚才启动openwebui的目录下新建一个json,比如MCP.json。然后正常写他们的配置文件。
linux/mac参考:
{"mcpServers": {"filesystem": {"type": "stdio","command": "npx","args": ["-y","@modelcontextprotocol/server-filesystem","/"],"description": "文件系统服务:用于列出、读取和管理本地文件和目录。"},"time": {"type": "stdio","command": "uvx","args": ["mcp-server-time","--local-timezone=Asia/Shanghai"],"description": "时间服务:提供当前本地时间和时区转换功能。"}}
}
windows参考:
{"mcpServers": {"filesystem": {"type": "stdio","command": "npx.cmd","args": ["-y","@modelcontextprotocol/server-filesystem","E://"],"readyPattern": ".*"},"time": {"type": "stdio","command": "uvx","args": ["mcp-server-time","--local-timezone=Asia/Shanghai"],"readyPattern": ".*"}}
}
安装环境
npx @modelcontextprotocol/inspector uvx mcp-server-time
运行(为了和上一个区别开来,我把端口换成了9000)
mcpo --config MCP.json --port 9000
检查结果
同时文档我们也可以正常看,只需要加入配置文件相应字段