Metadata-Version: 2.4
Name: bach-local_business_data
Version: 1.0.0
Summary: MCP server for accessing Local Business Data API
Project-URL: Homepage, https://github.com/bachstudio/bach-local_business_data
Project-URL: Repository, https://github.com/bachstudio/bach-local_business_data
Project-URL: Documentation, https://github.com/bachstudio/bach-local_business_data#readme
Project-URL: Bug Tracker, https://github.com/bachstudio/bach-local_business_data/issues
Author: bachstudio
License: MIT License
        
        Copyright (c) 2025 bachstudio
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: api,local_business_data,mcp,model-context-protocol
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Requires-Dist: fastmcp>=2.0.0
Requires-Dist: httpx>=0.25.0
Provides-Extra: dev
Requires-Dist: black>=23.0.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Description-Content-Type: text/markdown

# Local Business Data MCP Server

[English](./README_EN.md) | 简体中文 | [繁體中文](./README_ZH-TW.md)

用于访问 Local Business Data API 的 MCP 服务器。

## 🚀 使用 EMCP 平台快速体验

**[EMCP](https://sit-emcp.kaleido.guru)** 是一个强大的 MCP 服务器管理平台，让您无需手动配置即可快速使用各种 MCP 服务器！

### 快速开始：

1. 🌐 访问 **[EMCP 平台](https://sit-emcp.kaleido.guru)**
2. 📝 注册并登录账号
3. 🎯 进入 **MCP 广场**，浏览所有可用的 MCP 服务器
4. 🔍 搜索或找到本服务器（`bach-local_business_data`）
5. 🎉 点击 **"安装 MCP"** 按钮
6. ✅ 完成！即可在您的应用中使用

### EMCP 平台优势：

- ✨ **零配置**：无需手动编辑配置文件
- 🎨 **可视化管理**：图形界面轻松管理所有 MCP 服务器
- 🔐 **安全可靠**：统一管理 API 密钥和认证信息
- 🚀 **一键安装**：MCP 广场提供丰富的服务器选择
- 📊 **使用统计**：实时查看服务调用情况

立即访问 **[EMCP 平台](https://sit-emcp.kaleido.guru)** 开始您的 MCP 之旅！


---

## 简介

这是一个 MCP 服务器，用于访问 Local Business Data API。

- **PyPI 包名**: `bach-local_business_data`
- **版本**: 1.0.0
- **传输协议**: stdio


## 安装

### 从 PyPI 安装:

```bash
pip install bach-local_business_data
```

### 从源码安装:

```bash
pip install -e .
```

## 运行

### 方式 1: 使用 uvx（推荐，无需安装）

```bash
# 运行（uvx 会自动安装并运行）
uvx --from bach-local_business_data bach_local_business_data

# 或指定版本
uvx --from bach-local_business_data@latest bach_local_business_data
```

### 方式 2: 直接运行（开发模式）

```bash
python server.py
```

### 方式 3: 安装后作为命令运行

```bash
# 安装
pip install bach-local_business_data

# 运行（命令名使用下划线）
bach_local_business_data
```

## 配置

### API 认证

此 API 需要认证。请设置环境变量:

```bash
export API_KEY="your_api_key_here"
```

### 环境变量

| 变量名 | 说明 | 必需 |
|--------|------|------|
| `API_KEY` | API 密钥 | 是 |
| `PORT` | 不适用 | 否 |
| `HOST` | 不适用 | 否 |



### 在 Cursor 中使用

编辑 Cursor MCP 配置文件 `~/.cursor/mcp.json`:


```json
{
  "mcpServers": {
    "bach-local_business_data": {
      "command": "uvx",
      "args": ["--from", "bach-local_business_data", "bach_local_business_data"],
      "env": {
        "API_KEY": "your_api_key_here"
      }
    }
  }
}
```

### 在 Claude Desktop 中使用

编辑 Claude Desktop 配置文件 `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "bach-local_business_data": {
      "command": "uvx",
      "args": ["--from", "bach-local_business_data", "bach_local_business_data"],
      "env": {
        "API_KEY": "your_api_key_here"
      }
    }
  }
}
```


## 可用工具

此服务器提供以下工具:


### `business_review_details`

Get the details of a specific review by Google Id / Business Id or Google Place Id and Review Author Id.

**端点**: `GET /review-details`


**参数**:

- `business_id` (string) *必需*: The Business Id of the business for which the review belongs. Accepts google_id / business_id or place_id. Examples: 0x880fd393d427a591:0x8cba02d713a995ed ChIJkaUn1JPTD4gR7ZWpE9cCuow

- `review_author_id` (string) *必需*: Review author id (i.e review author_id field). In addition, batching of up to 20 Review Author Ids is supported in a single request using a comma separated list (e.g. review_author_id=id1,id2).

- `region` (string): Query Google Maps from a particular region or country. For a list of supported region/country codes see https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes (Alpha-2 code). Default: us

- `language` (string): Set the language of the results. For a list of supported language codes see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes . Default: en



---


### `search_in_area`

Search businesses in a specific geographic area defined by a center coordinate point and zoom level. To see it in action, make a query on Google Maps, wait for the results to show, move the map or change the zoom and click \

**端点**: `GET /search-in-area`


**参数**:

- `query` (string) *必需*: Search query / keyword

- `lat` (number) *必需*: Latitude of the center coordinate point of the area to search in.

- `lng` (number) *必需*: Longitude of the center coordinate point of the area to search in.

- `zoom` (string) *必需*: Zoom level on which to make the search (the search area / viewport is determined by lat, lng and zoom on a 1000x1000 screen).

- `limit` (number): Maximum number of businesses to return. Default: 20 Allowed values: 1-500

- `language` (string): Set the language of the results. For a list of supported language codes see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes . Default: en

- `region` (string): Query Google Maps from a particular region or country. For a list of supported region/country codes see https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes (Alpha-2 code). Default: us

- `subtypes` (string): Find businesses with specific subtypes, specified as a comma separated list of types (business categories). For the complete list of types, see https://daltonluka.com/blog/google-my-business-categories. Examples: Plumber,Carpenter,Electrician Night club,Dance club,Bar,Pub

- `extract_emails_and_contacts` (string): Example value: 

- `fields` (string): A comma separated list of business fields to include in the response (field projection). By default all fields are returned. Example: business_id,type,phone_number,full_address

- `X-User-Agent` (string): Device type for the search. Default desktop.



---


### `autocomplete`

Returns place/address, business and query predictions for text-based geographic queries.

**端点**: `GET /autocomplete`


**参数**:

- `query` (string) *必需*: Search query

- `region` (string): Return results biased to a particular region. For a list of supported region/country codes see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes (Alpha-2 code). Default: us

- `language` (string): Set the language of the results. For a list of supported language codes see https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 . Default: en

- `coordinates` (string): Geographic coordinates of the location from which the query is applied - recommended to use so that results are biased towards this location. Defaults to some central location in the region (see the region parameter).



---


### `business_photo_details`

Get extra details about a business photo - caption, owner name and avatar, and more information. Supports batching of up to 20 Photo Ids.

**端点**: `GET /photo-details`


**参数**:

- `business_id` (string) *必需*: The Business Id of the business for which the photo belongs. Accepts google_id / business_id or place_id. Examples: 0x880fd393d427a591:0x8cba02d713a995ed ChIJkaUn1JPTD4gR7ZWpE9cCuow

- `photo_id` (string) *必需*: Photo Id of the photo to fetch. In addition, batching of up to 20 Photo Ids is supported in a single request using a comma separated list (e.g. photo_id=id1,id2).



---


### `business_posts`

Get all / paginate Business Owner Posts (\

**端点**: `GET /business-posts`


**参数**:

- `business_id` (string) *必需*: Unique Business Id. Accepts google_id / business_id or place_id. Examples: 0x880fd393d427a591:0x8cba02d713a995ed ChIJkaUn1JPTD4gR7ZWpE9cCuow

- `cursor` (string): Specify the cursor obtained from the previous request to get the next of result page (use for pagination).

- `region` (string): Query Google Maps from a particular region or country. For a list of supported region/country codes see https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes (Alpha-2 code). Default: us

- `language` (string): Set the language of the results. For a list of supported language codes see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes . Default: en



---


### `reverse_geocoding`

Get the details of a place or address in a specific geographic location by latitude and longitude (reverse geocoding). This endpoint implements the \

**端点**: `GET /reverse-geocoding`


**参数**:

- `lat` (number) *必需*: Example value: 40.6958453

- `lng` (number) *必需*: Example value: -73.9799119

- `region` (string): Query Google Maps from a particular region or country. For a list of supported region/country codes see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes (Alpha-2 code). Default: us

- `language` (string): Set the language of the results. For a list of supported language codes see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes . Default: en

- `fields` (string): A comma separated list of business fields to include in the response (field projection). By default all fields are returned. Example: business_id,type,phone_number,full_address



---


### `search_nearby`

Search businesses near by specific geographic coordinates. To see it in action, right click on a specific point in the map on Google Maps and select \

**端点**: `GET /search-nearby`


**参数**:

- `query` (string) *必需*: Search query / keyword Examples: Bars and pubs Plumbers

- `lat` (number) *必需*: Latitude of the geographic coordinates to search near by.

- `lng` (number) *必需*: Longitude of the geographic coordinates to search near by.

- `limit` (number): Maximum number of businesses to return. Default: 20 Allowed values: 1-500

- `language` (string): Set the language of the results. For a list of supported language codes see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes . Default: en

- `region` (string): Query Google Maps from a particular region or country. For a list of supported region/country codes see https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes (Alpha-2 code). Default: us

- `subtypes` (string): Find businesses with specific subtypes, specified as a comma separated list of types (business categories). For the complete list of types, see https://daltonluka.com/blog/google-my-business-categories. Examples: Plumber,Carpenter,Electrician Night club,Dance club,Bar,Pub

- `extract_emails_and_contacts` (string): Example value: 

- `fields` (string): A comma separated list of business fields to include in the response (field projection). By default all fields are returned. Example: business_id,type,phone_number,full_address

- `X-User-Agent` (string): Device type for the search. Default desktop.



---


### `business_photos`

Get business photos by Business Id.

**端点**: `GET /business-photos`


**参数**:

- `business_id` (string) *必需*: Unique Business Id. Accepts google_id / business_id or place_id. Examples: 0x880fd393d427a591:0x8cba02d713a995ed ChIJkaUn1JPTD4gR7ZWpE9cCuow

- `limit` (number): Maximum number of business photos to return. Default: 20 Allowed values: 1-100

- `cursor` (string): Specify the cursor obtained from the previous request to get the next of result page (use for pagination).

- `is_video` (string): Example value: 

- `region` (string): Query Google Maps from a particular region or country. For a list of supported region/country codes see https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes (Alpha-2 code). Default: us

- `fields` (string): A comma separated list of review fields to include in the response (field projection). By default all fields are returned. Example: type,photo_url



---


### `search`

Search local businesses on Google Maps with an option to pull emails and social profile links from their website (see the `extract_emails_and_contacts` parameter below).

**端点**: `GET /search`


**参数**:

- `query` (string) *必需*: Search query / keyword Examples: Plumbers near New-York, USA Bars in 94102, USA

- `limit` (number): Maximum number of businesses to return. Default: 20 Allowed values: 1-500

- `lat` (number): Latitude of the coordinates point from which the query is applied - recommended to use so that results are biased towards this location. Defaults to some central location in the region (see the region parameter).

- `lng` (number): Longitude of the coordinates point from which the query is applied - recommended to use so that results are biased towards this location. Defaults to some central location in the region (see the region parameter).

- `zoom` (string): Zoom level on which to make the search (the viewport is determined by lat, lng and zoom). Default: 13

- `language` (string): Set the language of the results. For a list of supported language codes see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes . Default: en

- `region` (string): Query Google Maps from a particular region or country. For a list of supported region/country codes see https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes (Alpha-2 code). Default: us

- `subtypes` (string): Find businesses with specific subtypes, specified as a comma separated list of types (business categories). For the complete list of types, see https://daltonluka.com/blog/google-my-business-categories. Examples: Plumber,Carpenter,Electrician Night club,Dance club,Bar,Pub

- `verified` (string): Example value: 

- `business_status` (string): Find businesses with specific status, specified as a comma separated list of the following values: OPEN, CLOSED_TEMPORARILY, CLOSED. Examples: OPEN CLOSED_TEMPORARILY,CLOSED

- `fields` (string): A comma separated list of business fields to include in the response (field projection). By default all fields are returned. Example: business_id,type,phone_number,full_address

- `extract_emails_and_contacts` (string): Example value: 

- `X-User-Agent` (string): Device type for the search. Default desktop.



---


### `bulk_search`

Search local businesses on Google Maps. Batching of up to 20 queries is supported in a single request.

**端点**: `POST /search`


**参数**:

- `X-User-Agent` (string): Device type for the search. Default desktop.



---


### `business_details`

Get full business details including emails and social contacts. Supports batching of up to 20 Business Ids.

**端点**: `GET /business-details`


**参数**:

- `business_id` (string) *必需*: Unique Business Id. Accepts google_id / business_id or place_id. Examples: 0x880fd393d427a591:0x8cba02d713a995ed ChIJkaUn1JPTD4gR7ZWpE9cCuow In addition, batching of up to 20 Business Ids is supported in a single request using a comma separated list (e.g. business_id=id1,id2).

- `extract_emails_and_contacts` (string): Example value: 

- `extract_share_link` (string): Example value: 

- `fields` (string): A comma separated list of business fields to include in the response (field projection). By default all fields are returned. Example: business_id,type,phone_number,full_address

- `region` (string): Query Google Maps from a particular region or country. For a list of supported region/country codes see https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes (Alpha-2 code). Default: us

- `language` (string): Set the language of the results. For a list of supported language codes see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes . Default: en

- `coordinates` (string): Geographic coordinates of the location from which the query is applied - recommended to use so that results are biased towards this location. Defaults to some central location in the region (see the region parameter).



---


### `business_reviews_v2`

Get business reviews by Business Id with pagination support.

**端点**: `GET /business-reviews-v2`


**参数**:

- `business_id` (string) *必需*: Unique Business Id. Accepts google_id / business_id or place_id. Examples: 0x880fd393d427a591:0x8cba02d713a995ed ChIJkaUn1JPTD4gR7ZWpE9cCuow

- `limit` (number): Maximum number of business reviews to return. Default: 20 Allowed values: 1-1000

- `cursor` (string): The cursor value from the previous response to get the next set of results (scrolling / pagination).

- `translate_reviews` (string): Example value: 

- `query` (string): Return reviews matching a text query.

- `sort_by` (string): How to sort the reviews in the results. Default: most_relevant Allowed values: most_relevant, newest, highest_ranking, lowest_ranking

- `fields` (string): A comma separated list of review fields to include in the response (field projection). By default all fields are returned. Example: review_id,review_text,rating

- `region` (string): Query Google Maps from a particular region or country. For a list of supported region/country codes see https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes (Alpha-2 code). Default: us

- `language` (string): Set the language of the results. For a list of supported language codes see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes . Default: en



---


### `business_reviews`

Get business reviews by Business Id with pagination support.

**端点**: `GET /business-reviews`


**参数**:

- `business_id` (string) *必需*: Unique Business Id. Accepts google_id / business_id or place_id. Examples: 0x880fd393d427a591:0x8cba02d713a995ed ChIJkaUn1JPTD4gR7ZWpE9cCuow

- `limit` (number): Maximum number of business reviews to return. Default: 20 Allowed values: 1-1000

- `offset` (number): Number of business reviews to skip (for pagination/scrolling). Default: 0

- `translate_reviews` (string): Example value: 

- `query` (string): Return reviews matching a text query.

- `sort_by` (string): How to sort the reviews in the results. Default: most_relevant Allowed values: most_relevant, newest, highest_ranking, lowest_ranking

- `fields` (string): A comma separated list of review fields to include in the response (field projection). By default all fields are returned. Example: review_id,review_text,rating

- `region` (string): Query Google Maps from a particular region or country. For a list of supported region/country codes see https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes (Alpha-2 code). Default: us

- `language` (string): Set the language of the results. For a list of supported language codes see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes . Default: en



---



## 技术栈

- **传输协议**: stdio
- **HTTP 客户端**: httpx


## 许可证

MIT License - 详见 [LICENSE](./LICENSE) 文件。

## 开发

此服务器由 [API-to-MCP](https://github.com/BACH-AI-Tools/api-to-mcp) 工具生成。

版本: 1.0.0
