Token导航 LogoToken导航TokenDH.com
Elastic Python MCP Server logo
搜索检索stdio官方级别未说明来源级核验

Elastic Python MCP Server

MCP Server

基于Elasticsearch的Python MCP服务器,提供房产数据搜索与分析功能,支持地理编码和多语言语义搜索。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
地理编码Python数据分析搜索

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

sunilemanjee

提供方

sunilemanjee

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

Elasticsearch MCP服务器

这是一个基于Python的MCP(模型控制协议)服务器,它提供了一个使用Elasticsearch搜索和分析属性数据的接口。服务器从Jupyter笔记本转换为独立的Python脚本。

观看房产搜索系统的演示:

https://github.com/user-attachments/assets/df498631-fb16-4ba5-b1fd-c14670213d73

特性

  • 房产搜索:使用各种条件搜索房产,包括:

- 位置(支持地理编码) - 价格范围 - 卧室/浴室数量 - 平方英尺 - 物业特点 - 税费和维护费用

  • 地理编码集成:使用Google Maps API将位置字符串转换为地理坐标
  • Elasticsearch集成:

- 连接到Elasticsearch无服务器 - 使用ELSER(弹性学习稀疏编码器)进行语义搜索 - 使用E5(多语言E5-small)获得额外的语义功能 - 支持自定义搜索模板 - 自动监控和唤醒推理端点

项目结构

.
├── data-ingestion/        # Scripts for setting up and populating Elasticsearch
│   ├── data/             # Local data directory for property data
│   ├── ingest-properties.py  # Main ingestion script
│   ├── requirements.txt   # Python dependencies
│   ├── setup.sh          # Setup script
│   └── README.md         # Data ingestion documentation
├── elastic_mcp_server.py  # Main MCP server
├── env_config.sh         # Environment configuration
├── env_config.template.sh # Environment configuration template
├── requirements.txt      # Python dependencies
└── README.md            # This file

数据摄入

在运行MCP服务器之前,您需要设置Elasticsearch实例并用属性数据填充它。这由中的脚本处理 data-ingestion 文件夹。按照中的设置说明进行操作 数据摄取README 致:

  • 设置Python环境
  • 配置Elasticsearch
  • 下载并摄取房产数据

使API密钥只读

数据摄取部分创建了一个具有更广泛服务器权限的密钥,如创建索引和搜索模板脚本。您可以通过编辑现有密钥的安全权限或使用以下内容创建新密钥来进一步限制该API密钥:

{
  "mcp_server_read_only": {
    "cluster": [
      "monitor"
    ],
    "indices": [
      {
        "names": [
          "properties", "properties_raw"
        ],
        "privileges": [
          "read",
          "view_index_metadata"
        ],
        "allow_restricted_indices": false
      }
    ],
    "applications": [],
    "run_as": [],
    "metadata": {},
    "transient_metadata": {
      "enabled": true
    }
  }
}

需求

  • Python=>3.10
  • Elasticsearch无服务器实例
  • 谷歌地图API密钥
  • 必需的Python包(见requirements.txt)

设置所需服务

创建Google地图API密钥

  1. 转到 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用以下API:

- 地理编码API - 映射JavaScript API

  1. 创建凭据:

- 转到“API和服务”>“凭据” - 单击“创建凭据”>“API密钥” - 复制生成的API密钥

  1. (可选)将API密钥仅限于所需的API

设置Elasticsearch无服务器

  1. 首选 弹性云
  2. 注册或登录您的帐户
  3. 在“Serverless项目”下,选择“创建无服务器项目”
  4. 选择您首选的云提供商和地区
  5. 点击“创建部署”
  6. 创建后,在Kibana“入门”中,您将获得一个弹性URL
  7. 创建具有所需权限的API密钥(请参阅 数据摄取自述 详情)

环境变量

需要在中配置以下环境变量 env_config.sh在获取配置文件之前,可以通过设置相应的环境变量来覆盖推理端点ID:

  • ES_URL:您的Elasticsearch无服务器URL
  • ES_API_KEY:您的Elasticsearch API密钥
  • GOOGLE_MAPS_API_KEY:您的谷歌地图API密钥
  • PROPERTIES_SEARCH_TEMPLATE:搜索模板ID(默认:“属性搜索模板”)
  • ELSER_INFERENCE_ID:ELSER推理端点ID(默认值:“.ELSER-2-elasticsearch”)
  • E5_INFERENCE_ID:E5推理端点ID(默认值:“.multilingual-E5-small-elasticsearch”)
  • RERANK_INFERENCE_ID:重新排列推理端点ID(默认值:“.Rerank-v1-elasticsearch”)
  • ES_INDEX:Elasticsearch索引名称(默认值:“properties”)
  • MCP_PORT:MCP服务器的端口号(默认值:8001)

覆盖推理端点ID

在获取配置之前,您可以通过设置环境变量来覆盖默认的推理端点ID:

# Set custom inference endpoint IDs
export ELSER_INFERENCE_ID=".custom-elser-endpoint"
export E5_INFERENCE_ID=".custom-e5-endpoint"
export RERANK_INFERENCE_ID=".custom-rerank-endpoint"

# Source the config (will use your custom values)
source env_config.sh

设置

选项1:Docker设置

有关使用Docker的容器化设置,请参阅 有关以下内容的详细说明:

  • 设置环境变量
  • 使用Docker Compose运行
  • 生产部署选项
  • 容器管理命令

选项2:手动设置

  1. 克隆存储库:
git clone https://github.com/sunilemanjee/Elastic-Python-MCP-Server.git
cd Elastic-Python-MCP-Server
  1. 如果您还没有在数据摄取说明中,请创建和配置您的环境变量:
# Copy the template file
cp env_config.template.sh env_config.sh

# Edit env_config.sh with your credentials
nano env_config.sh  # or use your preferred editor
  1. 设置Python虚拟环境:
# Create virtual environment
python3.11 -m venv venv

# Activate virtual environment
source venv/bin/activate ##on macbook it may be .venv/bin/activate

# Install dependencies
pip install -r requirements.txt
  1. 获取环境变量:
source env_config.sh

运行服务器

  1. 运行服务器:
./run_server.sh

默认情况下,服务器将在端口8001上启动。您可以通过检查来验证它是否正在运行:

curl -v http://localhost:8001/mcp

API终点

服务器提供了几个MCP工具,可以由前端应用程序或其他MCP客户端调用:

  1. wake_inference_endpoints:唤醒ELSER和E5推理端点(成功时返回“端点已唤醒”)
  2. get_properties_template_params:返回属性搜索模板所需的参数
  3. geocode_location:将位置字符串转换为地理坐标
  4. search_template:使用配置的搜索模板执行属性搜索

搜索参数

搜索模板支持以下参数:

  • query:主搜索查询(必填)
  • latitude:地理纬度坐标
  • longitude:地理经度坐标
  • bathrooms:浴室数量
  • tax:房地产税金额
  • maintenance:维护费金额
  • square_footage:房产面积
  • home_price:最高房价
  • features:家庭功能(例如。, *池*更新厨房\*)

许可证

版权所有Elasticsearch B.V.和贡献者 SPDX许可证标识符:Apache-2.0

目录标签

目录标签

地理编码Python数据分析搜索房产搜索本地部署语义搜索Elasticsearch集成

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

来源信息

继续浏览同类 MCP