使用说明(Markdown 格式)
-
项目简介
- 这是一个 MCP 服务器实现,能够将任意 OpenAPI/REST API 通过 MCP 工具的形式暴露给 LLM 客户端使用。服务器具备会话上下文管理、动态切换 OpenAPI 服务、变量替换、端点查询与请求执行等能力,方便在多环境间无缝切换与自动化调用。
-
主要功能点
- 将 OpenAPI/REST API 自动暴露为 MCP 工具,支持读取端点、执行请求、传参与变量替换。
- 动态服务器切换:运行时切换不同 OpenAPI 服务(dev/stage/prod),并保持历史记录。
- 变量管理与替换:通过 set_variable/get_variables 实现请求头、路径、请求体中的变量替换,支持 {{var}} 语法。
- 请求执行与上下文:execute_request 执行 API 调用,记录最后一次请求信息并附带服务器上下文信息返回。
- 服务器信息与历史:get_server_info、get_server_history、health_check 等工具,查看当前配置、历史切换及健康状态。
- OpenAPI 载入、重新加载与端点搜索:load/reload_schema、list_endpoints、search_schema 等工具。
- 支持本地标准输入/输出的 MCP 客户端(stdio)通信方式,便于快速集成。
-
安装步骤
- 安装依赖并安装本项目(开发模式)
- 通过环境变量配置初始服务器(可选)
- 运行服务器(两种常见方式:
- 将项目打包为可执行文件后直接启动(推荐:dist/controlapi-mcp),或
- 使用 Python 模块运行:在开发环境通过 python -m src.main 启动)
- 服务器启动后,MCP 客户端可以使用 set_server_config 的工具连接到任意 OpenAPI 服务,并通过其他工具进行交互
-
服务器配置(MCP 客户端只需知道服务器启动信息即可连接) 下面给出一个符合仓库实现的示例配置格式,描述服务器启动的命令与参数。请注意,以下为描述性文本,非代码块,便于理解配置要素:
- server 名称:controlapi-mcp
- command:用于启动服务器的可执行文件路径或 Python 入口。两种常见方式:
- 如果已打包为二进制,请指向二进制文件的完整路径,例如 /path/to/dist/controlapi-mcp
- 如果以开发模式运行,请使用 Python 模块方式,例如使用 Python 解释器执行 -m src.main,工作目录设置为项目根目录
- args:启动时传入的参数数组(如无特定参数则留空) -cwd(工作目录):如果使用 Python 模块运行,通常设为项目根目录
- env(环境变量,可选):
- OPENAPI_URL:默认要连接的 OpenAPI JSON 的 URL(如 http://localhost:8000/openapi.json)
- BASE_URL:OpenAPI 对应的基础请求地址(如 http://localhost:8000)
- SERVER_NICKNAME:对当前 OpenAPI 服务的可读名称(如 Development/Production)
- 说明:启动后,MCP 客户端通过 stdio 与服务器通信,服务器将暴露的工具列表供客户端调用
具体示例(文本描述,不含代码块):
- 使用二进制启动示例:command 指向 dist/controlapi-mcp,args 留空即可,若需要指定 API 地址可设 OPENAPI_URL、BASE_URL 等环境变量。
- 使用开发模式启动示例:command 指向 /path/to/python,args 为 ["-m", "src.main"],cwd 为项目根目录,环境变量可设置 OPENAPI_URL、BASE_URL、SERVER_NICKNAME 等。
-
基本使用方法
- 启动 MCP 服务器(如上所述配置从头启动)
- 使用 set_server_config 将服务器连接到某个 OpenAPI
- 使用 list_endpoints、search_schema 查看端点信息
- 使用 execute_request 按需对指定端点发起请求,结合 set_variable 进行鉴权等变量替换
- 使用 get_server_info、get_server_history、health_check 获取状态与历史
- 如需切换目标 API,使用 set_server_config 指定新的 openapi_url/base_url/nickname,服务器会自动加载新的 schema 并切换上下文
信息
分类
网页与API