OpenStack MCP + 代理 PoC
此存储库包含运行OpenStack MCP的代码和说明 服务器和一个非常基本的代理配套程序来测试它。
本PoC中采用的方法是:
- 使用OpenStack
codegenerator项目(openstack-code-generator)to
为OpenStack创建OpenAPI规范。
- 使用
mcp-openapi启动多个MCP服务器的项目(每个服务器一个
OpenStack组件)从其完整OpenAPI的过滤版本中提取 规格。
- 使用
agent通过LLM与MCP服务器交互的代码。
你不需要所有这些来快速测试,你可以按照 快速启动 指南,但如果你想做一些不同的事情 你需要通过 跑步 导游。
快速启动
我们假设您可以访问OpenStack部署和LLM,因为它们是 需要运行东西。
您还需要 uv 包管理器。如果你没有,你可以用 sudo dnf install uv.
我们将使用2个终端,一个用于MCP服务器,另一个用于代理。
克隆此存储库
我们将使用所需的最少外部项目克隆此存储库 管理事情。
$ git clone --shallow-submodules \
--recurse-submodules=mcp-openapi \
https://github.com/Akrog/mcp-openstack.git
$ cd mcp-openstack运行MCP服务器
首先,我们需要配置MCP服务器,为此,我们将编辑 servers.yaml 归档并替换 `, , 和 ` 带有我们集群值的占位符。
您会注意到,只有REST API路径的一个子集被启用以避免 拥有工具——许多可以遍历我们模型的上下文窗口或归纳的工具 幻觉。
现在我们可以运行服务器了:
$ cd mcp-openapi
$ uv run main.py --config ../servers.yaml我们让此服务在此终端上运行,然后转到另一个终端。
运行代理
在另一个航站楼,我们将进入 agent 目录:
$ cd agentOpenStack客户端配置
现在,我们将确保OpenStack客户端的配置在 标准位置之一 如所述 文档:
agent/~/.config/openstack/
如果我们正在运行OSP 18云,我们可以通过以下方式实现:
$ oc cp openstackclient:/home/cloud-admin/.config/openstack/clouds.yaml ./clouds.yaml
$ oc cp openstackclient:/home/cloud-admin/.config/openstack/secure.yaml ./secure.yaml LLM配置
我们将创建一个 llm.token 包含OpenAI LLM的秘密/令牌的文件 我们想要使用的端点。
然后编辑 agent.json 文件以替换 ` 占位符与我们的 LLM的地址和替换 ` 使用我们想要使用的模型。例如 对于Anthropic,我们可以有这样的东西:
{
"base_url": "https://api.anthropic.com/v1",
"model": "claude-3-5-haiku-20241022",
}运行代理
现在我们只需要启动代理:
$ uv run main.py享受
现在,我们可以询问有关部署的内容,并在 MCP服务器终端。
例如,为了获得新星口味,我们可以这样做:
$ uv run main.py
LLM: claude-3-5-haiku-20241022 @ https://api.anthropic.com/v1 Tools: 46
>>> What are my flavors?请注意,代理没有内存,因此每个提示都是干净的 提示LLM。

