使用说明
oci-mcp服务器
用于Oracle云基础设施(OCI)API网关管理的Python MCP(多客户端协议)服务器,具有编程和LLM支持的客户端。
特性
- 列出API网关 在给定的OCI隔室中。
- 获取详细信息 用于特定的API网关。
- MCP标准传输 便于与LLM代理和其他客户端集成。
- LlamaIndex/Ollama 客户端 用于与OCI API网关资源进行自然语言交互。
快速启动
1.先决条件
- Python 3.11(必填)
- 紫外线 (快速Python包/依赖管理器)
- 具有API网关访问权限的OCI帐户
- OCI会话身份验证文件(
~/.oci/sessions/DEFAULT/token和oci_api_key.pem)
2.安装 uv
curl -Ls https://astral.sh/uv/install.sh | sh
或者,从 PyPI:
# With pip.
pip install uv
# Or pipx.
pipx install uv
如果通过独立安装程序安装,uv可以将自己更新到最新版本:
uv self-update
或者看看 紫外线安装文档 对于其他方法。
3.创建和激活虚拟环境
uv venv --python 3.11
source .venv/bin/activate
4.安装依赖项
uv pip install -r pyproject.toml
或者,如果你想使用 uv 直接:
uv pip install -e .
光标和MCP集成
5.安装游标
光标 是一个AI驱动的代码编辑器,可以与MCP服务器进行本地交互。
要安装Cursor,请执行以下操作:
- 从下载并安装Cursor 官方网站 适用于您的平台(macOS、Windows、Linux)。
- 按照操作系统的安装说明进行操作。
6.更新您的 mcp.json 配置
要将Cursor连接到自定义MCP服务器,您需要更新或创建 mcp.json 项目根目录中的文件。在中使用提供的模板 src/mcp_template.json 作为一个起点。
步骤
-
通过导航到打开光标设置
Cursor > Settings... > Cursor Settings -
选择
MCP > + Add new global MCP server
您还应该能够从以下位置编辑mcp.json vi ~/.cursor/mcp.json
步骤:
-
复制以下内容
src/mcp_template.json向~/.cursor/mcp.json(或mcp.json来自编辑): -
编辑
mcp.json并更新路径:- 替换
<path to Python>如果使用虚拟环境,请提供Python 3.11可执行文件的绝对路径)。 - 替换
<path to server.py>与你的绝对路径server.py脚本。
- 替换
-
保存文件。Cursor现在将能够发现并连接到您的MCP服务器。
配置
编辑 src/config.py 根据需要设置OCI隔间和网关OCID、区域和配置文件:
PROFILE_NAME = 'DEFAULT'
REGION = 'ap-mumbai-1'
SERVICE_ENDPOINT = '<SERVICE ENDPOINT>'
COMPARTMENT_ID = '<COMPARTMENT_ID>'
GATEWAY_ID = '<GATEWAY_ID>' # For Programmatic Client
您必须在中拥有有效的OCI会话文件 ~/.oci/sessions/DEFAULT/.
你可以这样做 oci session authenticate --tenancy-name <TENANCY_NAME> --profile-name DEFAULT --region $REGION
运行MCP服务器
从项目根开始:(我发现最好在单独的终端中运行服务器)
python src/server.py
这将使用stdio传输启动MCP服务器,并公开以下工具:
list_gateways_tool(compartment_id)get_gateway_tool(gateway_id)
游标客户端(代理模式)
您不需要为Cursor运行MCP服务器。因为Cursor Agent将从mcp.json中提供的服务器资源运行它
看 src/mcp_template.json 对于MCP服务器配置示例:
{
"mcpServers": {
"oci_api_gateway": {
"command": "<absolute path to Python (preferably from .venv)>",
"args": [
"<absolute path to server.py>"
]
}
}
}
在游标编辑器中,您现在可以使用自然语言查询与MCP服务器进行交互。
例如,要列出特定隔间中的所有网关,您可以键入:
例子:
list all the gateways in ocid1.compartment.oc1..aaaaaaaai2zzsg.............................m4pjq
Cursor代理将处理您的请求,并从MCP服务器返回结果。
程序化客户端
Programmatic Client允许您直接使用Python代码测试自定义MCP工具并与之交互,而无需涉及AI代理。 它对于以简单、可脚本化的方式验证工具功能和调试服务器响应非常有用。
看 src/client_stdio.py 举个简单的例子:
python src/client_stdio.py
这将:
- 连接到MCP服务器
- 列出可用工具
- 打电话给
list_gateways_tool和get_gateway_tool方法和打印结果
WIP:LlamaIndex+Ollama客户
LlamaIndex+Ollama客户端是一个正在进行中的工作(WIP),旨在使用自托管LLM代理与您的MCP工具进行自然语言交互
看 src/client_llama_react.py 对于使用LlamaIdex和Ollama的高级示例(Llama 3.2):
- 确保你有 没有 在本地运行
llama3.2模型。 - 编辑
server_params路径在client_llama_react.py如果需要的话。
python src/client_llama_react.py
这将:
- 连接到MCP服务器
- 包装LlamaIndex的工具
- 使用LLM运行自然语言查询
发展
- 所有源代码都在
src/目录。 - 依赖关系通过以下方式管理
pyproject.toml. - 要添加新工具,请编辑
src/server.py并实现逻辑src/gateway_services.py(用于网关资源)。
故障排除
- 确保您的OCI会话文件存在且有效。
- 使用Python 3.11和提供的虚拟环境。
- 对于LlamaIndex/Ollama,确保Ollama服务器正在运行且可访问。
