mcp-map-server
The mcp-map-server provides map and location-based services to LLM clients by integrating Amap (高德/Gaode) and Baidu Maps Web Service APIs. Here's what you can do:
Geocoding (
map_geocode): Convert addresses to coordinates, administrative district info, and adcodes.Reverse Geocoding (
map_reverse_geocode): Convert coordinates back into human-readable addresses.POI Keyword Search (
map_search_poi): Search for points of interest by keyword, optionally scoped to a city, with pagination support.Nearby/Around Search (
map_search_around): Search for POIs within a specified radius around a given location.Route Planning (
map_direction): Plan routes for driving, walking, public transit, or cycling, with distance, duration, and turn-by-turn steps.Distance Measurement (
map_distance): Calculate distance and estimated travel time between two coordinates.Weather Query (
map_weather): Retrieve real-time weather and multi-day forecasts for an administrative region via adcode.IP Geolocation (
map_ip_location): Determine the approximate province/city for a given IP address.Platform Status Check (
map_get_platform_status): Query which map platforms are enabled and have valid API keys configured.
Key features:
Dynamically switch between Amap (GCJ-02) and Baidu Maps (BD-09) coordinate systems per tool call via a
platformparameter.Unified coordinate format: longitude,latitude across all tools.
Two transport modes:
stdio(local) andSSE(remote HTTP).
Provides tools for map services including geocoding, POI search, route planning, weather, and IP location using the Baidu Maps API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-map-serverwhat's the weather in Beijing?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Map Server
为 LLM 大模型提供地图能力的 MCP (Model Context Protocol) Server。支持高德地图与百度地图的 Web 服务 API,涵盖地理编码、逆地理编码、POI 搜索、周边搜索、路径规划、距离测量、天气查询和 IP 定位。部署后可直接被支持 MCP 的大模型客户端(Claude、Cherry Studio、Cline 等)调用。
功能
地理编码 / 逆地理编码(地址 ⇄ 坐标)
关键字 POI 搜索与周边搜索
路径规划:驾车 / 步行 / 公交 / 骑行
距离与耗时测量
天气查询(实时 + 未来预报)
IP 定位
双平台支持:高德(amap)、百度(baidu),可按工具调用动态切换
两种传输模式:
stdio(本地)和sse(远程 HTTP)统一坐标格式
经度,纬度,屏蔽两家 API 的坐标顺序差异
Related MCP server: Amap MCP Server
快速开始
1. 申请 API Key
平台 | 申请地址 | 环境变量 |
高德地图 | https://console.amap.com/dev/key/app (创建「Web 服务」类型 Key) |
|
百度地图 | https://lbsyun.baidu.com/apiconsole/key (创建「服务端」应用,得到 AK) |
|
两个平台至少配置一个即可。未配置的平台会自动标记为不可用。
⚠️ 高德 Key 的服务平台必须选「Web服务」,用 Web端(JS)/Android/iOS 类型的 Key 调用 Web 服务 API 会报
USERKEY_PLAT_NOMATCH。若该 Key 开启了「数字签名」,还需把私钥填入MCP_AMAP_SECRET。
2. 克隆仓库
git clone https://github.com/ganyu123456/mcp-map-server.git
cd mcp-map-server3. 本地开发运行
# 安装依赖
pip install -e ".[sse]"
# 配置环境变量
cp .env.example .env
vim .env # 填入 MCP_AMAP_KEY / MCP_BAIDU_KEY
# stdio 模式(本地 MCP 客户端)
MCP_TRANSPORT=stdio python -m mcp_map_server.server
# SSE 模式(远程 MCP 客户端)
MCP_TRANSPORT=sse python -m mcp_map_server.server部署
Docker Compose
cp .env.example .env
# 编辑 .env:填入 API Key,并设置 MCP_IMAGE 指向你的镜像
docker compose up -dCI/CD 自动构建发布
在仓库 Settings → Secrets and variables → Actions 中添加以下 Secrets(用于推送镜像到 Harbor):
Secret | 示例值 | 说明 |
|
| Harbor 用户名 |
|
| Harbor 密码或访问令牌 |
镜像仓库地址已固定为
harbor.zkjgy.online/library(写死在 workflow 中),无需再配置HARBOR_REGISTRY/HARBOR_PROJECT。
打 tag 触发构建:
git tag v1.0.0
git push origin v1.0.0GitHub Actions 将自动构建 linux/amd64 与 linux/arm64 多架构镜像、推送到 Harbor,并创建带离线镜像的 GitHub Release。
MCP 客户端配置
SSE(远程)
{
"mcpServers": {
"map": {
"url": "http://<your-server-ip>:8091/sse"
}
}
}stdio(本地)
{
"mcpServers": {
"map": {
"command": "python",
"args": ["-m", "mcp_map_server.server"],
"env": {
"MCP_TRANSPORT": "stdio",
"MCP_AMAP_KEY": "your_amap_key",
"MCP_BAIDU_KEY": "your_baidu_ak"
}
}
}
}环境变量
变量 | 默认值 | 说明 |
|
| Docker 镜像地址 |
|
| 传输模式: |
|
| SSE 模式监听地址 |
|
| SSE 模式监听端口 |
|
| 启用的地图平台 |
|
| 工具调用未指定平台时的默认平台 |
| (空) | 高德地图 Web 服务 Key(服务平台须为「Web服务」) |
| (空) | 高德数字签名私钥(仅当 Key 开启「数字签名」时填写) |
| (空) | 百度地图 Web 服务 AK |
|
| 版本标签 |
MCP 工具列表
工具 | 说明 |
| 地理编码:地址 → 坐标(含 adcode,可用于天气) |
| 逆地理编码:坐标 → 地址 |
| 关键字 POI 搜索 |
| 周边搜索(指定中心 + 半径) |
| 路径规划(驾车/步行/公交/骑行) |
| 距离与耗时测量 |
| 天气查询(adcode) |
| IP 定位 |
| 查询平台可用状态 |
每个工具(除状态查询外)都支持 platform 参数(amap 或 baidu),省略时使用 MCP_DEFAULT_PLATFORM。
坐标说明
所有工具的坐标统一使用
经度,纬度格式,如116.481,39.990。坐标与平台绑定:高德返回 GCJ-02,百度返回 BD-09,两者不可跨平台混用。请使用哪个平台产生的坐标,就在哪个平台上继续使用。
工具调用示例
地理编码: map_geocode(address="北京市朝阳区阜通东大街6号")
逆地理编码:map_reverse_geocode(location="116.481,39.990", platform="amap")
POI 搜索: map_search_poi(keyword="星巴克", city="上海", limit=10)
周边搜索: map_search_around(location="116.481,39.990", keyword="地铁站", radius=1000)
路径规划: map_direction(origin="116.481,39.990", destination="116.434,39.909", mode="driving")
天气查询: map_weather(city="110000")典型工作流:先用 map_geocode 把地址转成坐标和 adcode → 再用坐标做路径规划 / 周边搜索,或用 adcode 查天气。
项目结构
mcp-map-server/
├── src/mcp_map_server/
│ ├── server.py # MCP 服务器入口,工具定义与分发
│ └── platforms/
│ ├── base.py # 平台抽象层与统一数据模型
│ ├── amap.py # 高德地图实现
│ └── baidu.py # 百度地图实现
├── Dockerfile
├── docker-compose.yaml
├── .github/workflows/
│ └── build-release.yaml # CI/CD 工作流
├── requirements.txt
├── pyproject.toml
└── .env.exampleLicense
MIT
Available Tools
9 toolsmap_directionA
路径规划:计算两点间的路线,支持驾车(driving)、步行(walking)、公交(transit)、骑行(riding)。返回总距离、总时长和分段导航。起终点为'经度,纬度'坐标。
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | 公交(transit)模式建议提供城市名或 citycode | |
| mode | No | 出行方式:driving 驾车 / walking 步行 / transit 公交 / riding 骑行 | driving |
| origin | Yes | 起点坐标,格式'经度,纬度' | |
| platform | No | Map platform to use. Defaults to 'amap'. | amap |
| destination | Yes | 终点坐标,格式'经度,纬度' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses core behavior (returns distance, duration, navigation), but does not mention safety (e.g., read-only nature), authentication needs, or rate limits. The description is not contradictory and provides basic transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences front-loaded with purpose and key details. Every sentence adds value—first on modes, second on returns and format. No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (multiple modes, platforms, coordinate format) and lack of output schema, the description is somewhat incomplete. It mentions 'segment navigation' but does not detail the structure or coordinate system (e.g., WGS84 vs BD09). It is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal value beyond schema: it mentions coordinate format ('经度,纬度') which is also in schema descriptions. No additional context for parameters like city or platform is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: route planning between two points, supporting multiple travel modes (driving, walking, transit, riding), and specifies the return of total distance, total duration, and turn-by-turn navigation. It distinguishes from siblings like map_distance by implying full route information rather than just distance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool over alternatives. It implies route planning but lacks guidance on scenarios or exclusions, leaving the agent to infer use cases. A moderate score reflects this gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_distanceB
距离测量:计算两点间的距离和预计耗时。mode 为 driving(驾车)或 walking(步行)。起终点为'经度,纬度'坐标。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 测量方式:driving 驾车 / walking 步行 | driving |
| origin | Yes | 起点坐标,格式'经度,纬度' | |
| platform | No | Map platform to use. Defaults to 'amap'. | amap |
| destination | Yes | 终点坐标,格式'经度,纬度' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only explains parameter semantics but does not mention what the tool returns (e.g., distance units, estimated time format), error handling, or any side effects. The description is essentially a restatement of the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no unnecessary words. It immediately states the purpose and then explains key parameters, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fails to specify the output format (e.g., distance in km, time in minutes) or any constraints on coordinates (e.g., valid range). Without output schema, this is a significant gap for an agent using the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds minimal value beyond the schema—it reiterates the meaning of mode and coordinate format already present in the parameter descriptions. It does not provide additional context such as example values or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates distance and estimated time between two points, with specific modes (driving/walking) and coordinate format. It differentiates from sibling tools like map_direction by focusing on distance/time calculation rather than routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It does not mention when not to use it or provide any context for comparison with sibling tools like map_direction or map_search_poi.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_geocodeB
地理编码:将结构化地址(如'北京市朝阳区阜通东大街6号')转换为经纬度坐标。返回坐标、行政区划和 adcode(可用于天气查询)。
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | 可选,限定城市名或 citycode,提高准确度 | |
| address | Yes | 要查询的地址文本 | |
| platform | No | Map platform to use. Defaults to 'amap'. | amap |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the return values (coordinates, admin divisions, adcode) and notes adcode's use for weather queries. However, it omits details on authentication, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with a brief output note. No redundant phrases, but could include a second sentence for usage context without losing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description partially explains return fields but lacks format details, error cases, or comparisons to sibling tools. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds an example address and adcode context but does not elaborate on city format, platform differences, or parameter constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool converts structured addresses to coordinates, with a clear example. It specifies the return fields (coordinates, administrative divisions, adcode) and distinguishes from reverse geocoding implicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like map_reverse_geocode or map_search_poi. The description only implies usage for address-to-coordinate conversion without context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_get_platform_statusA
查询各地图平台的启用与可用状态(是否已配置 API Key)。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It states the tool 'queries status,' implying a read-only operation, but does not explicitly state that it has no side effects, rate limits, or other constraints. The description is adequate for a simple status check but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that captures the full purpose without any wasted words. It is front-loaded and directly informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description provides the essential function. However, it does not describe what the returned status looks like (e.g., list of platforms with boolean flags). Additional context on the output format would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100%. According to guidelines, when there are no parameters, the baseline score is 4. The description does not need to add parameter information since there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: querying the enablement and availability status of map platforms, specifically whether API keys are configured. It uses a specific verb ('查询') and resource ('各地图平台'), and it distinguishes itself from sibling tools like map_direction or map_geocode by focusing on platform status rather than data retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool versus alternatives. However, the purpose implies it is useful for checking configuration before using other map tools. The agent could infer this, but no direct when-to-use or when-not-to-use instructions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_ip_locationA
IP 定位:根据 IP 地址返回其大致所在的省市。留空则定位请求来源 IP。
| Name | Required | Description | Default |
|---|---|---|---|
| ip | No | 可选,IP 地址;留空则定位调用方 IP | |
| platform | No | Map platform to use. Defaults to 'amap'. | amap |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description covers basic behavior (returns province/city, default behavior) but lacks detail on error handling, accuracy, or platform differences. With no annotations, more transparency would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at two sentences, no unnecessary words, and front-loaded with the main verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fails to specify the response format (e.g., fields for province and city), and does not mention error scenarios or limitations, leaving an agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds only marginal value (e.g., clarifying the blank IP case). The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the approximate province and city based on an IP address, distinguishing it from sibling tools like map_direction or map_geocode that serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by explaining that leaving the IP blank locates the requester, but does not explicitly compare to alternatives or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_reverse_geocodeA
逆地理编码:将经纬度坐标转换为可读地址。坐标格式为'经度,纬度'(如'116.481,39.990')。注意坐标与平台绑定:高德为 GCJ-02,百度为 BD-09,不可跨平台混用。
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | 坐标,格式'经度,纬度',如'116.481,39.990' | |
| platform | No | Map platform to use. Defaults to 'amap'. | amap |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the coordinate format and the critical platform-specific coordinate system constraint (GCJ-02 for Amap, BD-09 for Baidu) and warns against cross-platform mixing. However, it does not mention return format or other behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose and then providing key usage constraints. Every sentence is necessary and succinct, with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description does not explain what the tool returns (e.g., address structure). Given the complexity (different coordinate systems), the description is informative but incomplete regarding the output, which an agent needs to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing baseline descriptions for both parameters. The description adds value by explaining the coordinate format and platform-specific coordinate bindings beyond the schema, which is helpful for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: reverse geocoding (converting coordinates to readable address). It specifies the coordinate format and warns about platform coordinate system differences, making the purpose unambiguous and distinct from siblings like map_geocode (forward geocoding).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (convert coordinates to address) but does not explicitly state when not to use or provide comparisons to sibling tools. It includes a platform binding caution but lacks explicit usage context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_search_aroundA
周边搜索:以某坐标为中心,在指定半径内搜索 POI(如附近的餐厅、地铁站)。坐标格式'经度,纬度'。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 返回数量(最多 20) | |
| radius | No | 搜索半径(米),默认 3000 | |
| keyword | No | 可选,周边搜索关键字,如'咖啡' | |
| location | Yes | 中心坐标,格式'经度,纬度' | |
| platform | No | Map platform to use. Defaults to 'amap'. | amap |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It mentions coordinate format and radius but does not disclose behaviors such as authentication, rate limits, error handling, or pagination beyond the limit parameter. The read-only nature is inferred but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core purpose. No extraneous words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic functionality but lacks details about return values (no output schema). For a search tool with 5 parameters, it is adequate but not comprehensive. Nothing explains what the returned POI objects look like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the overall logic (search around a center) and providing examples (e.g., 'coffee') and coordinate format, which goes beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool searches for POI within a radius around a given coordinate, using a specific coordinate format. It distinguishes from sibling tools like map_search_poi (likely keyword-based) and map_geocode (address conversion).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing nearby POIs around a location but does not explicitly state when to use this tool versus alternatives like map_search_poi or map_direction. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_search_poiA
关键字 POI 搜索:按关键字搜索地点(如'星巴克'、'医院'),可限定城市。返回名称、地址、坐标、电话等。
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | 可选,限定城市名,如'上海' | |
| page | No | 页码,从 1 开始 | |
| limit | No | 每页数量(最多 20) | |
| keyword | Yes | 搜索关键字,如'肯德基'、'加油站' | |
| platform | No | Map platform to use. Defaults to 'amap'. | amap |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions return fields (name, address, coordinates, phone) but does not disclose important behavioral traits like rate limits, authentication needs, or pagination behavior beyond schema defaults. Missing idempotency or destructive hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys purpose and return information without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description compensates by listing key return fields. Combined with the schema's parameter descriptions, an agent has sufficient context to invoke the tool correctly, though additional details like result ordering could improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds no new semantic information beyond the schema; it only restates the city filtering capability. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a keyword POI search, provides concrete examples ('星巴克', '医院'), and notes city filtering. It distinguishes from sibling tools like map_search_around (location-based) and map_geocode (address conversion).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for keyword-based place searches but provides no explicit guidance on when to use it over siblings such as map_search_around or map_geocode. No when-not or alternative tool mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_weatherA
天气查询:查询某行政区的实时天气与未来几日预报。city 参数需传行政区划编码 adcode(可先用 map_geocode 获取)。
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | 行政区划编码 adcode,如北京'110000' | |
| platform | No | Map platform to use. Defaults to 'amap'. | amap |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It indicates the tool is read-only (query) but lacks details on data freshness, rate limits, or authentication requirements. Basic purpose is covered, but deeper behavioral context is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences, no wasted words. The first sentence states the purpose, and the second provides key parameter guidance. It is well-structured and easy to read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema), the description covers the main purpose and parameter usage. However, it does not describe the return format or error handling, leaving some gaps for an agent to interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a baseline of 3 is appropriate. The description adds value by explaining that city requires an adcode and suggesting map_geocode to obtain it, and it notes the platform parameter default. This enriches understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: querying real-time weather and future forecasts for an administrative district. The verb 'query' and resource 'weather' are specific, and it distinguishes itself from sibling tools like map_direction or map_geocode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear instruction on how to use the tool: the city parameter requires an adcode, and it suggests using map_geocode to obtain it. However, it does not explicitly state when not to use this tool or compare with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v1.0.0- First observed
map_direction - First observed
map_distance - First observed
map_geocode - First observed
map_get_platform_status - First observed
map_ip_location - First observed
map_reverse_geocode - First observed
map_search_around - First observed
map_search_poi - First observed
map_weather
TDQS
Scored across 9 tools
Each tool targets a distinct mapping operation: route planning, distance, geocoding, reverse geocoding, POI search, nearby search, IP location, weather, and platform status. No overlapping purposes; agents can clearly distinguish them.
All tools share the 'map_' prefix and use underscores, but the verb-noun pattern is not uniform (e.g., 'map_direction' vs 'map_get_platform_status'). Minor inconsistency, but still predictable.
9 tools cover the core mapping domain well: geocoding, routing, POI search, weather, etc. Not too many or too few; each tool serves a clear purpose.
The tool set covers essential mapping functionalities including geocoding, reverse geocoding, routing, distance, POI search, nearby search, IP location, and weather. No obvious gaps.
Maintenance
Related MCP Connectors
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for GLM chat completions using Zhipu AI models via AceDataCloud
MCP server exposing the Backtest360 engine API as tools for AI agents.
Related MCP Servers
- MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server that wraps the Amap (高德地图) Web Service APIs, giving AI assistants like Claude Code 9 map tools: geocoding, route planning (driving/transit/walking/cycling), POI search, nearby search, distance measurement, and IP location.1229MIT
- AlicenseNot gradedqualityDmaintenance基于高德地图API的MCP天气预报服务器,提供中国城市的实时天气和天气预报查询功能。74MIT
- AlicenseAqualityDmaintenance这是一个面向中文圈的MCP服务器,将中国互联网常用能力(如地图、快递、RSS、B站等)封装为标准MCP工具,方便AI Agent安全调用。132MIT