该项目使用uv进行依赖管理,直接从提供的openapi.yaml文件启动一个模型上下文协议(MCP)服务器。每个HTTP端点都成为一个MCP工具,AnythingLLM(或其他支持MCP的客户端)可以调用这些工具。
安装依赖
uv sync
配置openapi2mcpserver/config.yaml
base_url: "https://localhost:12001"
verify_ssl: false
openapi_path: "../openapi.yaml" # 可选,默认为仓库根目录的副本
log_file: "../logs/openapi2mcpserver.log" # 可选,启用文件日志记录
log_level: "INFO" # 可选,支持DEBUG/INFO/WARNING/ERROR
auth:
mode: "basic" # 选项:none/basic/bearer/header/query
username: "your-username"
password: "your-password"
# basic_token: "cHJlLWVuY29kZWQtY3JlZHM="
# extra_headers:
# X-API-Version: "1"
# default_headers:
# X-Request-Source: "mcp"
启动MCP服务器
uv run openapi2mcpserver
以下步骤针对的是AnythingLLM桌面插件系统,并列出了macOS和Windows的默认路径。如果文件不存在,请创建该文件,并将示例路径替换为您机器上的值。
打开~/Library/Application Support/anythingllm-desktop/storage/plugins/anythingllm_mcp_servers.json
添加或合并以下配置:
{
"mcpServers": {
"rhino-agent": {
"command": "/Users/<你的用户名>/.local/bin/uv",
"args": ["run", "--project", "/Users/<你的用户名>/workspace/AIProjects/openapi2mcpserver", "openapi2mcpserver"]
}
}
}
打开%APPDATA%\anythingllm-desktop\storage\plugins\anythingllm_mcp_servers.json
如果您使用uv.exe,请将路径替换为where uv命令的输出,例如:
{
"mcpServers": {
"rhino-agent": {
"command": "C:\\Users\\<YourUser>\\AppData\\Roaming\\Python\\Scripts\\uv.exe",
"args": ["run", "--project", "C:\\Users\\<YourUser>\\workspace\\AIProjects\\openapi2mcpserver", "openapi2mcpserver"]
}
}
}
保存后重启AnythingLLM(或在设置中重新加载插件),您应该能在工作区的工具列表中看到rhino-agent。
OpenAPI_GetSchema以检查components.schemasopenapi2mcpserver/
__init__.py
__main__.py
client.py
config.py
openapi_loader.py
server.py
启动时,服务器会读取OpenAPI描述,为每个工具构建JSON Schema输入,并将调用转发给上游API。响应(状态码、头部信息和JSON/文本主体)将原样返回给MCP客户端,以便您可以链接后续操作,如轮询任务状态。