Token导航 LogoToken导航

MCP Server · 搜索检索

Customized Elasticsearch MCP Server

基于Python FastAPI和FastMCP的自定义Elasticsearch MCP服务,支持关键词搜索、二次过滤、按ID查询和复杂筛选词查询逻辑,适用于新闻搜索和数据检索场景。

stdio官方级别未说明来源级核验工具 3
数据检索FastAPIPython

快速开始

作者 / 组织
Coolgiserz
提供方
Coolgiserz

工具数量

3

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

2

仓库热度

收录来源

1 个

MCP World

选型结论

Customized Elasticsearch MCP Server 属于搜索检索类 MCP Server,公开资料标注 3 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 API Key。

分类

搜索检索

传输方式

stdio

认证方式

API Key

部署方式

公开资料未说明

安装与配置

安装命令

pip install -U pip

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 3 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

Customized-Elasticsearch-MCP-Server

基于 Python FastMCP 和 FastAPI 的 自定义Elasticsearch MCP 服务Demo。

特性

  • 支持关键词搜索、二次过滤、按 ID 查询、复杂筛选词查询逻辑
  • 基于 FastMCP 提供 MCP 协议工具:search_news、search_news_with_secondary_filter、read_single_news
  • Prometheus 监控集成(starlette_prometheus)
  • 基于 Redis 的服务端 Session 存储(RedisSessionMiddleware)
  • Docker 与 Docker Compose 支持
  • 包含单元测试和集成测试

!

目录结构

.
├── src
│   └── news_mcp_server
│       ├── app.py               # FastAPI 应用入口
│       ├── mcp_server.py        # FastMCP 服务定义
│       ├── clients
│       │   └── elastic_client.py # 异步 ES 客户端
│       ├── services
│       │   └── news_service.py   # 业务逻辑封装
│       ├── middlewares
│       │   ├── auth.py           # 简单 Token 鉴权
│       │   ├── monitor.py        # Prometheus 中间件
│       │   └── session.py        # Session 中间件
│       ├── schemas
│       │   └── news.py           # Pydantic 数据模型
│       └── config
│           └── settings.py       # 环境配置
├── tests
│   ├── unit                      # 单元测试
│   └── integration               # 集成测试
├── Dockerfile                    # 容器构建配置
├── docker-compose.yml            # Docker Compose 配置
├── Makefile                      # 常用命令集
├── env.sample                    # 环境变量示例
├── pyproject.toml                # Python 项目配置
└── README.md                     # 项目说明

环境变量

复制 env.sample 为 .env 并配置:

cp env.sample .env
# 编辑 .env,至少需要以下变量:
# ES_API_KEY    Elasticsearch API Key(必填)
# ES_HOST       Elasticsearch 主机 URL(含端口)(必填)
# ES_INDEX      Elasticsearch 索引名称(必填)
# API_KEY       MCP 服务访问令牌(Bearer Token)(必填)

安装与运行

本地开发

  1. 克隆项目并进入目录:
   git clone https://github.com/Coolgiserz/customized-elasticsearch-mcp-server
   cd customized-elasticsearch-mcp-server
  1. 创建并激活虚拟环境:
   python3.12 -m venv .venv
   source .venv/bin/activate
  1. 安装依赖:
   pip install -U pip
   pip install uv[all]
   uv sync
  1. 启动服务(热重载):
   make dev
   # 或者
   uv run uvicorn src.main:app --reload --host 0.0.0.0 --port 9009
  1. 访问:

- 健康检查: GET http://localhost:9009/healthcheck - Prometheus 指标: GET http://localhost:9009/metrics

Docker & Docker Compose

  • 构建镜像:
  make build
  • 使用 Docker Compose 一键启动:
  make docker-build
  make docker-up
  • 停止服务:
  make docker-down
  • 日志查看:
  make docker-logs
  • 默认映射端口:28000 -> 8000

API 使用

Healthcheck

GET /healthcheck
Response: {"status":"ok"}

Prometheus Metrics

GET /metrics

MCP 工具调用示例

使用 Python FastMCP 客户端调用 search_news:

import asyncio
from fastmcp import Client

async def main():
    # 将 URL 替换为实际部署地址
    async with Client("http://localhost:9009/mcp-server") as client:
        tools = await client.list_tools()
        print("可用工具:", tools)

        result = await client.call_tool("search_news", {
            "query": "人工智能",
            "max_results": 5,
            "date_from": "2024-01-01",
            "date_to": "2024-12-31"
        })
        print(result)

asyncio.run(main())

测试

  • 单元测试:
  make test
  • 集成测试:
  pytest -q -m "integration"

Makefile 常用命令

make init       # 初始化依赖
env sync        # 同步依赖(uv sync)
make dev        # 启动开发模式
make lint       # 代码检查
make format     # 代码格式化
make test       # 运行测试
dmake build     # 构建 Docker 镜像

TODO

  • 引入基于 JWT 或 OAuth2 的更安全鉴权机制
  • 支持多进程/多实例共享会话(如使用 Redis Session Store)
  • 优化 Elasticsearch 查询性能,添加缓存层(Redis)
  • 增加端到端集成测试覆盖,并配置 CI/CD 流水线
  • 支持 ES 聚合查询与热门关键词统计功能
  • 提供 Swagger UI 或 Postman 集合示例

License

本项目采用 MIT 许可证,详见 LICENSE。

工具与能力

工具数量

3

资源数量

0

提示词数量

0

能力标签

ElasticsearchPython本地部署MCP协议新闻搜索数据检索FastAPI

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

查资料带出处

把网页、论文和文档的检索结果连同链接一起带回对话。

站内知识检索

在自己的文档库里做语义搜索,比关键词更贴题。

事实核对

交叉多个来源确认一条信息,减少模型凭记忆作答。

选择建议

值得选的地方

  • 只提供 3 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备API Key,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在搜索检索场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到API Key的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Customized Elasticsearch MCP Server

MCP World · 本页

3stdio有1 个2026-05-17
Baidu Netdisk

MCP World

未标注未说明未标注1 个2026-05-17
Sequentialthinking

MCP.so

1SSE有2 个2026-05-17
Brave Search 433812ff

MCP World

2未说明未标注1 个2026-05-17
mindsdb (430e18)

MCP World

0未说明有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Customized Elasticsearch MCP Server 怎么安装?

公开资料给出的安装命令是 pip install -U pip,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Customized Elasticsearch MCP Server 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Customized Elasticsearch MCP Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Customized Elasticsearch MCP Server 需要 API Key 吗?

公开资料标注的认证方式是API Key,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Customized Elasticsearch MCP Server 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP