项目简介
'opensearch-mcp-server-py' 是一个用 Python 实现的 Model Context Protocol (MCP) 服务器,专门用于连接 AI 助手(如大型语言模型 LLM)与 OpenSearch 集群。它通过标准化的协议,让 AI 能够执行搜索、获取索引映射、管理分片等 OpenSearch 操作,从而为 LLM 应用提供丰富的实时上下文信息和功能扩展。
主要功能点
- MCP 协议集成: 无缝对接遵循 MCP 协议的 AI 助手和 LLM 客户端。
- 多传输协议支持: 支持标准输入输出 (Stdio) 和流式传输 (SSE/Streamable HTTP) 两种通信协议,适应不同的部署和集成场景。
- 丰富的 OpenSearch 工具: 内置多种工具,允许 AI 助手执行 OpenSearch 的核心操作,例如列出索引、查询文档、获取集群状态、管理分片、获取节点信息和集群洞察等。
- 灵活的配置: 支持通过配置文件或环境变量配置 OpenSearch 连接参数及工具行为,例如工具的显示名称、描述和参数默认值等。
- 版本兼容性: 工具会根据连接的 OpenSearch 集群版本自动筛选和启用,确保兼容性。
- 安全认证: 支持基本认证、AWS IAM 角色认证和 AWS 凭证等多种安全连接方式。
安装步骤
- Python 环境: 确保您的系统已安装 Python 3.9 或更高版本。
- 通过 pip 安装: 运行以下命令安装服务器及其依赖:
pip install opensearch-mcp-server-py
服务器配置
MCP 客户端需要配置服务器的启动命令和参数,以便与其建立连接。以下是一个示例 JSON 配置,您需要根据实际部署情况调整 'command' 和 'args'。
{ "name": "opensearch-mcp-server", "command": ["python", "-m", "mcp_server_opensearch"], "args": [ "--transport", "stdio", // 通信协议:可选 "stdio" (默认) 或 "stream"。如果选择 "stream",还需要配置 --host 和 --port "--mode", "single", // 服务器模式: // "single" (默认) - 使用环境变量配置 OpenSearch 连接。 // "multi" - 通过 YAML 配置文件管理多个 OpenSearch 集群连接。 "--config", "/path/to/your/config.yml", // (可选) YAML 配置文件的路径,用于配置多集群模式或工具行为覆盖。 // 以下参数仅在 --transport stream 时有效: // "--host", "0.0.0.0", // 监听主机地址,默认 0.0.0.0。 // "--port", "9900" // 监听端口,默认 9900。 // 其他可用的CLI工具覆盖参数(例如,重命名工具或调整参数描述,注意格式为 "tool.<ToolName>.<field>" 或 "tool.<ToolName>.args.<argName>.<field>"): // "tool.ListIndexTool.display_name", "MyListIndices", // 将 ListIndexTool 重命名为 MyListIndices。 // "tool.ListIndexTool.args.index.description", "A custom description for the index argument." // 修改参数描述。 // "tool.SearchIndexTool.args.query.default", "{\"match_all\": {}}", // 为查询工具设置默认查询体。 // "tool.ListIndexTool.args.include_detail.default", "false" // 设置参数默认值,例如让 ListIndexTool 默认不返回详细信息。 ], "env": { // 如果使用 "single" 模式,请通过环境变量配置 OpenSearch 连接信息: // "OPENSEARCH_URL": "https://your-opensearch-domain.com", // 必填,OpenSearch 集群的 URL。 // "OPENSEARCH_USERNAME": "your-username", // (可选) 用于基本认证的用户名。 // "OPENSEARCH_PASSWORD": "your-password", // (可选) 用于基本认证的密码。 // "AWS_REGION": "your-aws-region", // (可选) AWS 区域,用于 IAM 认证。 // "AWS_IAM_ARN": "your-iam-role-arn", // (可选) 用于 IAM 认证的 AWS IAM 角色 ARN。 // "AWS_OPENSEARCH_SERVERLESS": "true", // (可选) 如果连接的是 OpenSearch Serverless,请设置为 "true"。 // "OPENSEARCH_NO_AUTH": "true", // (可选) 如果 OpenSearch 集群无需认证,请设置为 "true" (慎用)。 // "OPENSEARCH_SSL_VERIFY": "false", // (可选) 如果要禁用 SSL 证书验证,请设置为 "false" (慎用)。 // "OPENSEARCH_TIMEOUT": "60", // (可选) 设置 OpenSearch 请求的超时时间(秒)。 // "OPENSEARCH_DISABLED_TOOLS": "SearchIndexTool,GetShardsTool", // (可选) 禁用一个或多个工具,用逗号分隔。 // "OPENSEARCH_DISABLED_CATEGORIES": "critical", // (可选) 禁用一个或多个工具类别。 // "OPENSEARCH_DISABLED_TOOLS_REGEX": ".*Tool", // (可选) 禁用匹配正则表达式的工具。 // "OPENSEARCH_SETTINGS_ALLOW_WRITE": "false" // (可选) 如果设置为 "false",则禁用所有具有写入操作(PUT/POST)的工具。 } }
注意:
- 在 'single' 模式下,OpenSearch 的连接信息通常通过环境变量提供。
- 在 'multi' 模式下,连接信息通过 '--config' 指定的 YAML 文件配置多个集群。
- '--profile' 参数可用于指定 AWS 配置文件名,在 'multi' 模式下也可在 YAML 文件中为每个集群指定。
基本使用方法
- 启动服务器:
打开终端,进入您的项目目录,然后运行以下命令启动 MCP 服务器。
- 使用默认的 'stdio' 传输模式:
python -m mcp_server_opensearch - 使用 'stream' 传输模式(例如,监听在 8000 端口):
python -m mcp_server_opensearch --transport stream --host 0.0.0.0 --port 8000
- 使用默认的 'stdio' 传输模式:
- MCP 客户端连接: 服务器启动后,您的 MCP 客户端(如兼容 MCP 的 LLM 框架或 AI 助手)可以通过配置中提供的 'command' 和 'args' 来连接并与服务器进行交互。客户端将能够发现服务器提供的 OpenSearch 工具,并调用这些工具来执行 OpenSearch 操作。
- 探索工具: 连接后,客户端可以通过 MCP 协议请求服务器列出所有可用工具及其描述和输入 schema,然后根据这些信息构造工具调用请求,从而实现与 OpenSearch 集群的智能交互。
信息
分类
AI与计算