本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
OpenSearch MCP 服务器
OpenSearch MCP 服务器opensearch-mcp-server-py) 是模型上下文协议
该服务器同时使用托管 OpenSearch 服务域和 OpenSearch 无服务器集合。你可以将其连接到编码 IDEs (Kiro、Claude Code、Cursor)、桌面 AI 助手(Claude Desktop)和代理框架(Strands Agents,)。 LangGraph
先决条件
-
Python 3.10 或更高版本。
-
uv(推荐)或 pip。 -
可访问的 OpenSearch 终端节点: OpenSearch 服务域、 OpenSearch 无服务器集合或自管理 OpenSearch 集群。
-
有权调用 OpenSearch APIs 您要公开的凭据。有关 OpenSearch 服务域的 IAM 政策,请参阅基于身份的策略。有关 OpenSearch 无服务器数据访问策略,请参阅Amazon OpenSearch 无服务器的数据访问控制。
安装
使用以下命令运行服务器uvx(无需安装)或在本地安装:
# Run directly with uvx (recommended – no install step) uvx opensearch-mcp-server-py # Or install with pip pip install opensearch-mcp-server-py
大多数用户将自己的 IDE 或 AI 助手配置为自动启动服务器。有关示例与代理框架一起使用,请参阅在编码 IDE 中进行配置和。
身份验证
通过环境变量(单集群模式)或在 YAML 配置文件(多集群模式)中按集群配置身份验证。服务器按以下优先顺序应用身份验证方法:无身份验证、基于标头、IAM 角色、基本身份验证、访问密钥。 AWS
- IAM 角色 (Sigv4) — 建议用于服务域 OpenSearch
-
export OPENSEARCH_URL="https://your-domain-endpoint" export AWS_IAM_ARN="arn:aws:iam::123456789012:role/YourOpenSearchRole" export AWS_REGION="us-east-1"该角色必须具有调用服务器 OpenSearch APIs 使用的权限。有关策略示例其他示例策略,请参阅。
- AWS 凭证或个人资料
-
export OPENSEARCH_URL="https://your-domain-endpoint" export AWS_REGION="us-east-1" export AWS_PROFILE="your-aws-profile" - OpenSearch 无服务器集合
-
设置
AWS_OPENSEARCH_SERVERLESS=true为服务器使用aoss服务名称而不是服务名称来签署请求es。确保通过对馆藏的数据访问策略向委托人授予访问权限(请参阅Amazon OpenSearch 无服务器的数据访问控制)。export OPENSEARCH_URL="https://collection-id.us-east-1.aoss.amazonaws.com" export AWS_OPENSEARCH_SERVERLESS="true" export AWS_REGION="us-east-1" export AWS_PROFILE="your-aws-profile" - 基本身份验证
-
export OPENSEARCH_URL="https://your-domain-endpoint" export OPENSEARCH_USERNAME="username" export OPENSEARCH_PASSWORD="password"重要
不要在可能签入源代码管理的配置文件中嵌入密码。使用操作系统的密钥管理器或 shell 环境来提供凭据。
安全注意事项
MCP 服务器使用您提供的凭据运行。无论这些凭证有权执行什么操作,AI 助手都可能代表你触发。请遵循以下做法:
-
使用权限最低的凭证。创建专用 IAM 角色或 OpenSearch 用户,其范围仅限于代理所需的索引和操作。避免重复使用管理员凭据。
-
将开发和生产分开。将服务器指向非生产群集进行探索。当需要生产访问权限时,使用带有显式集群名称的多模式。
-
筛选工具。禁用您的工作流程不需要的工具类别。设置
OPENSEARCH_DISABLED_CATEGORIES=core_tools为禁用默认设置,或OPENSEARCH_ENABLED_CATEGORIES用于仅启用特定类别。 -
保护凭证。与静态访问密钥相比,更喜欢 AWS 配置文件和 IAM 角色。切勿在源代码管理中向配置文件提交机密。
-
查看工具输出。MCP 工具的响应作为上下文反馈到语言模型。避免对包含您不想向 AI 提供商公开的敏感数据的索引运行服务器。
问题排查
- 助手看不到任何 OpenSearch 工具
-
确认您的配置文件是有效的 JSON,然后完全重启客户端。大多数客户端仅在启动时加载 MCP 服务器。
- 工具调用返回 403 禁止
-
您的凭证无权访问该工具正在调用的 API。对于 OpenSearch 服务域,请查看附加到您的角色的域访问策略和 IAM 策略。对于 OpenSearch 无服务器,请查看集合的数据访问策略。
- Serverless 的签名不匹配错误 OpenSearch
-
确保
AWS_OPENSEARCH_SERVERLESS=true已设置(或is_serverless: true在多模式下)。如果没有它,服务器将使用es服务名称而不是服务名称进行签名aoss。 - 你需要的工具不可用
-
检查它是否属于非默认类别,并使用
OPENSEARCH_ENABLED_CATEGORIES或在您的 YAMLenabled_categories配置中启用它。
要获得更多帮助,请在opensearch-mcp-server-py 存储库
其他资源
-
opensearch-mcp-server-py
on GitHub — 来源、问题和发行说明。 -
用户指南
— 完整的配置参考,包括流媒体传输和 Kubernetes 部署。 -
Strands Agen
ts — 具有内置 MCP AWS支持的本机代理 SDK。 -
LangGraph
— 有状态代理的低级编排框架。 -
OpenSearch 特工技能— 适用于以任务为中心的工作流程的配套技能集。