Building Big Data MCP Server
by handaas
README.md
# 楼宇资产信息
[该MCP服务提供企业关键词模糊搜索、企业办公地址明细、办公地址城市分布、楼宇搜索以及指定楼宇的入驻企业、入驻类型统计、入驻分布统计、楼宇基础信息、电子围栏和年鉴查询等楼宇大数据查询功能。](https://www.handaas.com/)
## 主要功能
- 🔍 企业关键词模糊搜索
- 📍 企业办公地址明细
- 🏙️ 办公地址城市分布
- 🏢 楼宇搜索
- 👥 楼宇入驻企业明细
- 📊 楼宇入驻类型统计
- 📈 楼宇入驻分布统计
- 🏗️ 楼宇基础信息
- 🗺️ 楼宇电子围栏
- 📖 楼宇年鉴
## 环境要求
- Python 3.10+
- 依赖包:python-dotenv, requests, mcp
## 本地快速启动
### 1. 克隆项目
```bash
git clone https://github.com/handaas/building-mcp-server
cd building-mcp-server
```
### 2. 创建虚拟环境&安装依赖
```bash
python -m venv mcp_env && source mcp_env/bin/activate
pip install -r requirements.txt -c constraints.txt
```
### 3. 环境配置
复制环境变量模板并配置:
```bash
cp .env.example .env
```
编辑 `.env` 文件,配置以下环境变量:
```env
INTEGRATOR_ID=your_integrator_id
SECRET_ID=your_secret_id
SECRET_KEY=your_secret_key
```
### 4. streamable-http启动服务
```bash
python server/mcp_server.py streamable-http
```
服务将在 `http://localhost:8000` 启动。
#### 支持启动方式 stdio 或 sse 或 streamable-http
### 5. Cursor / Cherry Studio MCP配置
```json
{
"mcpServers": {
"handaas-building-mcp-server": {
"type": "streamableHttp",
"url": "http://127.0.0.1:8000/mcp"
}
}
}
```
## STDIO版安装部署
### 设置Cursor / Cherry Studio MCP配置
```json
{
"mcpServers": {
"building-mcp-server": {
"command": "uv",
"args": ["run", "mcp", "run", "{workdir}/server/mcp_server.py"],
"env": {
"PATH": "{workdir}/mcp_env/bin:$PATH",
"PYTHONPATH": "{workdir}/mcp_env",
"INTEGRATOR_ID": "your_integrator_id",
"SECRET_ID": "your_secret_id",
"SECRET_KEY": "your_secret_key"
}
}
}
}
```
## 使用官方Remote服务
### 1. 直接设置Cursor / Cherry Studio MCP配置
```json
{
"mcpServers": {
"building-mcp-server":{
"type": "streamableHttp",
"url": "https://mcp.handaas.com/building/building_bigdata?token={token}"
}
}
}
```
### 注意:integrator_id、secret_id、secret_key及token需要登录 https://www.handaas.com/ 进行注册开通平台获取
## 可用工具
### 1. building_bigdata_fuzzy_search
**功能**: 企业关键词模糊查询
根据提供的企业名称、人名、品牌、产品、岗位等关键词模糊查询相关企业列表。
**参数**:
- `matchKeyword` (必需): 匹配关键词 - 查询各类信息包含匹配关键词的企业
- `pageIndex` (可选): 分页开始位置 - 默认从1开始
- `pageSize` (可选): 每页数量 - 默认50条,最多50条
**返回值**:
- `total`: 总数
- `resultList`: 企业列表
- `name`: 企业名称
- `nameId`: 企业ID
- `address`: 注册地址
- `foundTime`: 成立时间
- `enterpriseType`: 企业主体类型
- `legalRepresentative`: 法定代表人
- `operStatus`: 经营状态
- `regCapitalCoinType`: 注册资本币种
- `regCapitalValue`: 注册资本金额
- `homepage`: 企业官网
- `catchReason`: 命中原因
### 2. building_bigdata_office_address_details
**功能**: 查询企业办公地址明细
通过输入企业标识信息查询企业的办公地址明细。
**参数**:
- `matchKeyword` (必需): 企业名称/注册号/统一社会信用代码/企业ID
- `address` (可选): 省市地区 - 不可多选,例如 `广东省,广州市`
- `pageIndex` (可选): 页码 - 默认从1开始
- `pageSize` (可选): 每页数量 - 默认10条,最多10条
- `keywordType` (可选): 主体类型 - 枚举值:`name`(企业名称)、`nameId`(企业ID)、`regNumber`(注册号)、`socialCreditCode`(统一社会信用代码)
**返回值**:
- `total`: 总数
- `resultList`: 办公地址明细列表
- `officeAddress`: 办公地址
- `officeSourceType`: 地址来源
- `officeSettleType`: 入驻方式
- `estateName`: 楼宇名称
- `estateId`: 楼宇ID
### 3. building_bigdata_office_address_stats
**功能**: 统计企业办公地址城市分布
统计指定企业在各城市的办公地址数量。
**参数**:
- `matchKeyword` (必需): 企业名称/注册号/统一社会信用代码/企业ID
- `keywordType` (可选): 主体类型 - 枚举值:`name`、`nameId`、`regNumber`、`socialCreditCode`
**返回值**:
- `officeCityStats`: 城市分布统计列表
- `city`: 城市
- `count`: 办公地址数量
### 4. building_bigdata_building_query
**功能**: 搜索楼宇
按楼宇名称、别名、地区或类型搜索楼宇,返回后续查询所需的楼宇ID。
**参数**:
- `matchKeyword` (可选): 楼宇名称或别名关键词
- `address` (可选): 省市地区 - 不可多选,例如 `广东省,广州市`
- `estatePropertyType` (可选): 楼宇类型 - `写字楼`、`产业园`、`综合体`、`公寓酒店`、`展会中心`
- `pageIndex` (可选): 页码 - 默认从1开始
- `pageSize` (可选): 每页数量 - 最多10条,默认10条
**返回值**:
- `total`: 总数
- `resultList`: 楼宇列表
- `estateName`: 楼宇名称
- `estateId`: 楼宇ID
- `estateAliasName`: 楼宇别名
- `estateAddress`: 楼宇地址
- `estatePropertyType`: 楼宇类型
- `estateEnterpriseCount`: 入驻企业数量
### 5. building_bigdata_resident_enterprise_details
**功能**: 查询楼宇入驻企业明细
通过楼宇ID查询入驻企业清单及基础信息。
**参数**:
- `matchKeyword` (必需): 楼宇ID - 不能为空白字符串
- `pageIndex` (可选): 页码 - 默认从1开始
- `pageSize` (可选): 每页数量 - 范围1~10,默认10
**返回值**:
- `total`: 结果总数
- `resultList`: 企业列表
- `name`: 企业名称
- `nameId`: 企业ID
- `regAddress`: 企业注册地址
- `officeAddress`: 入驻地址
- `officeSourceType`: 入驻地址来源
- `officeSettleType`: 入驻方式
### 6. building_bigdata_resident_type_stats
**功能**: 查询楼宇入驻类型统计
通过楼宇ID查询入驻企业数量及类型统计。
**参数**:
- `matchKeyword` (必需): 楼宇ID
**返回值**:
- `estateEnterpriseCount`: 楼宇入驻企业数量
- `estateEnterpriseSettleInByEnterpriseCount`: 注册地址入驻企业数量
- `estateEnterpriseSettleInByOfficeAddressCount`: 办公地址入驻企业数量
- `estateAbnormalOperationEnterpriseCount`: 非正常经营企业数量
- `estateEnterpriseActiveCount`: 注册地址入驻企业活跃数量
- `estateOfficeAddressActiveCount`: 办公地址入驻企业活跃数量
### 7. building_bigdata_resident_distribution_stats
**功能**: 查询楼宇入驻分布统计
通过楼宇ID查询入驻企业的行业、榜单类型、注册资本和成立年限分布。
**参数**:
- `matchKeyword` (必需): 楼宇ID
**返回值**:
- `estateTopIndustriesDistributionStats`: 一级行业分布(分类字段 `firstIndustry`)
- `estateListEnterpriseStats`: 榜单分布(分类字段 `lisType`,保留接口原名)
- `estateRegCapitalDistributionStats`: 注册资本分布(分类字段 `regCapitalRange`)
- `estateRegDurationDistributionStats`: 成立年限分布(分类字段 `foundTerm`)
- 各项含 `enterpriseCount`(注册地址入驻企业数量)和 `officeAddressCount`(办公地址入驻企业数量)
### 8. building_bigdata_building_basic_info
**功能**: 查询楼宇基础信息
通过楼宇ID查询楼宇基础信息,返回开发商、物业、商圈、配置信息等。
**参数**:
- `matchKeyword` (必需): 楼宇ID
**返回值**:
- `estateName`: 楼宇名称
- `estateAliasName`: 楼宇别名
- `estateAddress`: 楼宇地址
- `estatePropertyType`: 楼宇类型
- `estateEnterpriseCount`: 入驻企业数量
- `estateDeveloper`: 开发商
- `estatePropertyEnterprise`: 物业公司
- `estateBusinessCircle`: 商圈
- `estateBuildingArea`: 总建筑面积
- `estateCompletionTime`: 竣工时间
- `estateTotalLayer`: 楼层数
- `estateParkingSpace`: 停车位
- `estateLiftQuantity`: 电梯数量
- `estatePropertyCosts`: 物业管理费
- `estateAverageRentPrice`: 在租均价
- `estateRentAreaRange`: 房源面积范围
### 9. building_bigdata_building_electronic_fence
**功能**: 查询楼宇电子围栏
通过楼宇ID查询楼宇位置和电子围栏。
**参数**:
- `matchKeyword` (必需): 楼宇ID
**返回值**:
- `estateLngAndLat`: 楼宇坐标(含 `lat` 纬度、`lng` 经度)
- `estateCoords`: 电子围栏(含 `gridType` 围栏类型、`coords` 坐标点)
### 10. building_bigdata_building_yearbook
**功能**: 查询楼宇年鉴
通过楼宇ID查询楼宇历年的企业新增、迁入、迁出和灭失数量。
**参数**:
- `matchKeyword` (必需): 楼宇ID
**返回值**:
- `estateChangeStat`: 迁移统计列表
- `year`: 年份
- `foundCount`: 新增企业数
- `settleInCount`: 迁入企业数
- `moveOutCount`: 迁出企业数
- `lossCount`: 灭失企业数
## 使用注意事项
1. **企业全称要求**: 在调用需要企业全称的接口时,需要先调用关键词模糊查询企业接口进行补全后,再调用该接口。
2. **楼宇ID获取**: 查询楼宇详情前需要先通过楼宇搜索获取楼宇`estateId`,不能直接传楼宇名称或企业ID。
3. **API限制**: 办公地址明细一页最多获取10条,入驻企业明细一页最多获取10条,楼宇搜索一页最多获取10条,企业模糊搜索一页最多获取50条。
4. **错误处理**: 所有接口都包含错误处理,查询失败时会返回相应的错误信息;调用HandaaS上游接口的HTTP请求超时时间为30秒。
## 使用提问示例
### building_bigdata_fuzzy_search (企业关键词模糊搜索)
1. 帮我查找包含"华为"关键词的企业信息
2. 搜索与"腾讯"相关的企业列表
3. 查询名称中包含"阿里巴巴"的公司
### building_bigdata_office_address_details (企业办公地址明细)
1. 华为在哪些楼宇有办公地址?
2. 查询腾讯科技有限公司的办公地址
3. 字节跳动在深圳有哪些办公地点?
### building_bigdata_office_address_stats (办公地址城市分布)
1. 华为的办公地址分布在哪些城市?
2. 统计腾讯在各城市的办公地址数量
3. 阿里巴巴在哪些城市有办公场所?
### building_bigdata_building_query (楼宇搜索)
1. 搜索"上海中心大厦"相关的楼宇
2. 查询北京的写字楼
3. 广州有哪些产业园区?
### building_bigdata_resident_enterprise_details (楼宇入驻企业明细)
1. 上海中心大厦有哪些企业入驻?
2. 查询某楼宇的入驻企业清单
3. 深圳湾科技生态园入驻了哪些公司?
### building_bigdata_resident_type_stats (楼宇入驻类型统计)
1. 上海中心大厦的入驻企业类型统计
2. 查询某楼宇的入驻企业数量
3. 深圳湾科技生态园有多少注册地址入驻企业?
### building_bigdata_resident_distribution_stats (楼宇入驻分布统计)
1. 上海中心大厦入驻企业的行业分布
2. 查询某楼宇入驻企业的注册资本分布
3. 深圳湾科技生态园入驻企业成立年限分布
### building_bigdata_building_basic_info (楼宇基础信息)
1. 上海中心大厦的开发商是谁?
2. 查询某楼宇的基本信息
3. 深圳湾科技生态园的物业公司是哪家?
### building_bigdata_building_electronic_fence (楼宇电子围栏)
1. 上海中心大厦的位置坐标
2. 查询某楼宇的电子围栏
3. 深圳湾科技生态园的经纬度信息
### building_bigdata_building_yearbook (楼宇年鉴)
1. 上海中心大厦历年的企业迁入迁出情况
2. 查询某楼宇的企业数量变化
3. 深圳湾科技生态园每年新增多少企业?
## 测试验证
```bash
python -m py_compile server/mcp_server.py
python -m unittest discover -s tests -v
```
测试覆盖参数校验、分页边界、签名、上游异常和MCP工具注册;测试中的上游HTTP请求均使用模拟数据,不读取真实凭证。
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues