关于 OpenSearch MCP Server
OpenSearch MCP Server 是一个已归档的 MCP 服务,提供四种 OpenSearch 工具,用于列出索引、获取映射与设置、使用查询 DSL 搜索以及查看分片,并支持 stdio 和 SSE 传输。
主要功能
- 01列出 OpenSearch 索引
- 02获取索引映射和设置
- 03使用查询 DSL 搜索
- 04查看分片信息
- 05支持 stdio 和 SSE 传输
适用场景
- 01列出 OpenSearch 实例中的索引
- 02查看索引映射和设置
- 03执行查询 DSL 搜索
- 04检查分片信息
MCP 相关
它通过 stdio 或 SSE 向 MCP 客户端提供四种 OpenSearch 工具。该仓库已归档,项目已迁至 opensearch-mcp-server-py。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
注意:此项目已毕业并迁移至 opensearch-mcp-server-py 仓库。我们在那里见!此仓库现已归档。
OpenSearch MCP 服务
一个精简的 OpenSearch 模型上下文协议(MCP)服务,通过 stdio 和 sse 服务提供 4 个工具。
可用工具
- ListIndexTool:列出 OpenSearch 中的所有索引。
- IndexMappingTool:获取 OpenSearch 中某个索引的映射和设置信息。
- SearchIndexTool:使用 OpenSearch 中以查询领域专用语言(DSL)编写的查询来搜索索引。
- GetShardsTool:获取 OpenSearch 中分片的信息。
更多工具即将推出。点击此处
用户指南
安装
从 PyPI 安装:
pip install test-opensearch-mcp
配置
身份验证方法:
- 基本身份验证
export OPENSEARCH_URL="<your_opensearch_domain_url>"
export OPENSEARCH_USERNAME="<your_opensearch_domain_username>"
export OPENSEARCH_PASSWORD="<your_opensearch_domain_password>"
- IAM 角色身份验证
export OPENSEARCH_URL="<your_opensearch_domain_url>"
export AWS_REGION="<your_aws_region>"
export AWS_ACCESS_KEY="<your_aws_access_key>"
export AWS_SECRET_ACCESS_KEY="<your_aws_secret_access_key>"
export AWS_SESSION_TOKEN="<your_aws_session_token>"
运行服务
# Stdio Server
python -m mcp_server_opensearch
# SSE Server
python -m mcp_server_opensearch --transport sse
Claude Desktop 集成
- 使用已发布的 PyPI 软件包(推荐)
{
"mcpServers": {
"opensearch-mcp-server": {
"command": "uvx",
"args": [
"test-opensearch-mcp"
],
"env": {
// Required
"OPENSEARCH_URL": "<your_opensearch_domain_url>",
// For Basic Authentication
"OPENSEARCH_USERNAME": "<your_opensearch_domain_username>",
"OPENSEARCH_PASSWORD": "<your_opensearch_domain_password>",
// For IAM Role Authentication
"AWS_REGION": "<your_aws_region>",
"AWS_ACCESS_KEY": "<your_aws_access_key>",
"AWS_SECRET_ACCESS_KEY": "<your_aws_secret_access_key>",
"AWS_SESSION_TOKEN": "<your_aws_session_token>"
}
}
}
}
- 使用已安装的软件包(通过 pip):
{
"mcpServers": {
"opensearch-mcp-server": {
"command": "python", // Or full path to python with PyPI package installed
"args": [
"-m",
"mcp_server_opensearch"
],
"env": {
// Required
"OPENSEARCH_URL": "<your_opensearch_domain_url>",
// For Basic Authentication
"OPENSEARCH_USERNAME": "<your_opensearch_domain_username>",
"OPENSEARCH_PASSWORD": "<your_opensearch_domain_password>",
// For IAM Role Authentication
"AWS_REGION": "<your_aws_region>",
"AWS_ACCESS_KEY": "<your_aws_access_key>",
"AWS_SECRET_ACCESS_KEY": "<your_aws_secret_access_key>",
"AWS_SESSION_TOKEN": "<your_aws_session_token>"
}
}
}
}
LangChain 集成
OpenSearch MCP 服务可以通过 SSE 服务传输方式轻松集成到 LangChain 中
前置条件
- 安装所需的软件包
pip install langchain langchain-mcp-adapters langchain-openai
- 设置 OpenAI API 密钥
export OPENAI_API_KEY="<your-openai-key>"
- 确保 OpenSearch MCP 服务正在以 SSE 模式运行
python -m mcp_server_opensearch --transport sse
集成脚本示例
import asyncio
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain_openai import ChatOpenAI
from langchain.agents import AgentType, initialize_agent
# Initialize LLM (can use any LangChain-compatible LLM)
model = ChatOpenAI(model="gpt-4o")
async def main():
# Connect to MCP server and create agent
async with MultiServerMCPClient({
"opensearch-mcp-server": {
"transport": "sse",
"url": "http://localhost:9900/sse", # SSE server endpoint
"headers": {
"Authorization": "Bearer secret-token",
}
}
}) as client:
tools = client.get_tools()
agent = initialize_agent(
tools=tools,
llm=model,
agent=AgentType.OPENAI_FUNCTIONS,
verbose=True, # Enables detailed output of the agent's thought process
)
# Example query
await agent.ainvoke({"input": "List all indices"})
if __name__ == "__main__":
asyncio.run(main())
注意:
- 此脚本兼容任何与 LangChain 集成并支持工具调用的大模型
- 执行脚本前,请确保 OpenSearch MCP 服务正在运行
- 根据需要配置身份验证和环境变量
开发
有兴趣参与贡献?请查看:
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。