Mappls MCP服务器
一种模型上下文协议(MCP)服务器,提供与Mappls(前身为MapmyIndia)API的无缝集成,用于位置智能、路由和位置搜索功能。
概述
Mappls是印度领先的地图和位置智能平台。此MCP服务器使AI助手能够通过自然语言访问实时路线、交通信息和附近地点搜索。
特性
🛣️ 交通路线规划
- 获取任意两个位置之间的路线
- 实时交通信息(印度)
- 考虑交通延误的旅行时间估算
- 距离计算
- 支持替代路线
📍 附近地点搜索
- 按关键字查找兴趣点
- 按类别搜索(餐馆、自动取款机、医院等)
- 基于距离的排序
- 可定制的搜索半径
- 联系方式和详细信息
用例
用例1:交通路线
"Show me the route from Koramangala to Electronic City with traffic information"
Results:
- Distance: 15.2 km
- Duration: 45 minutes (with live traffic)
- Traffic delays: +15 minutes
- Alternative routes available用例2:查找附近地点
"Find the best coffee shops near Bannerghatta Zoo"
Results:
- Top 10 coffee shops within 1km
- Sorted by distance
- Contact information
- Ratings and categories安装
先决条件
- Python 3.10或更高版本
- Mappls API密钥(在https://auth.mappls.com/console/)
设置
- 克隆存储库:
git clone
cd Mappls-Mcp-- 安装依赖项:
pip install -r requirements.txt- 配置API密钥:
cp .env.example .env
# Edit .env and add your MAPPLS_API_KEY- 运行服务器:
python src/mappls_mcp_server.py配置
环境变量
创建一个 .env 使用您的Mappls API证书提交文件:
# Option 1: Direct API Key (Recommended)
MAPPLS_API_KEY=your_rest_api_key_here
# Option 2: OAuth2 (Alternative)
# MAPPLS_CLIENT_ID=your_client_id
# MAPPLS_CLIENT_SECRET=your_client_secret获取API密钥
- 访问 Mappls控制台
- 注册或登录
- 创建新应用程序
- 复制REST API密钥
- 将其添加到您的
.env文件
用法
可用工具
1. get_route_with_traffic
通过实时交通数据获取路线信息。
参数:
origin(必填):起始位置为“纬度、经度”destination(必填):目的地为“纬度、经度”include_alternatives(可选):包括备选路线(默认值:true)traffic_mode(可选):“traffic”、“eta”或“normal”(默认值:“traxic”)
例子:
{
"origin": "12.9352,77.6245",
"destination": "12.8395,77.6770",
"traffic_mode": "traffic"
}2. find_nearby_places
按关键字或类别查找附近的地方。
参数:
keywords(必填):搜索词(使用;对于OR,$对于AND)location(必填):参考位置为“纬度、经度”radius(可选):搜索半径,单位为米(500-10000,默认值:1000)sort_by(可选):“dist:asc”、“dist:desc”或“imp”(默认值:“dist:asc”)max_results(可选):最大结果(1-50,默认值:10)
例子:
{
"keywords": "coffee",
"location": "12.8005,77.5782",
"radius": 2000,
"max_results": 10
}常见位置(用于测试)
以下是班加罗尔热门地点的坐标:
- Koramangala: 12.9352,77.6245
- 电子城市: 12.8395,77.6770
- Bannerghatta动物园: 12.8005,77.5782
- MG路: 12.9716,77.5946
- 怀特菲尔德: 12.9698,77.7500
与Claude Desktop集成
将此服务器添加到您的Claude Desktop配置中:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mappls": {
"command": "python",
"args": ["/path/to/Mappls-Mcp-/src/mappls_mcp_server.py"],
"env": {
"MAPPLS_API_KEY": "your_api_key_here"
}
}
}
}API 文档
使用的Mappls API
- 距离矩阵API
- 端点: https://apis.mapmyindia.com/advancedmaps/v1/{key}/distance_matrix/{resource}/driving/{coordinates} - 资源: distance_matrix, distance_matrix_eta, distance_matrix_traffic - 提供:位置之间的距离和持续时间
- 附近地方API
- 端点: https://atlas.mappls.com/api/places/nearby/json - 提供:按关键字和类别搜索POI - 身份验证:OAuth2或API密钥
交通方式
- 交通:考虑实时交通的路线(仅限印度)-最准确
- 预计到达时间:预计到达时间,默认路线上有交通延误
- 正常:无交通考虑
局限性
- 地区范围:交通数据仅适用于印度
- 所需坐标:目前需要输入纬度/经度(地理编码即将推出)
- 速率限制:根据您的计划,受Mappls API费率限制
- 替代路线:完整的替代路由需要Mappls路由API集成
故障排除
API关键问题
Error: 401 Unauthorized解决方案:在中验证您的API密钥 .env 文件
坐标无效
Error: Please provide location as coordinates解决方案:使用“纬度、经度”格式(例如,“12.9352,77.6245”)
未找到结果
No places found for 'xyz' within 1000m解决方案:尝试增加搜索半径或使用不同的关键字
发展
项目结构
Mappls-Mcp-/
├── src/
│ ├── __init__.py
│ └── mappls_mcp_server.py # Main MCP server
├── .env.example # Environment template
├── requirements.txt # Python dependencies
└── README.md # This file添加新功能
添加新的Mappls API端点:
- 添加API端点常量
- 为API调用创建一个异步函数
- 在中注册该工具
list_tools() - 在中添加处理程序
call_tool()
资源
支持
关于以下问题:
- 此MCP服务器:在GitHub上打开一个问题
- Mappls API:联系方式apisupport@mappls.com
- MCP协议:参观 MCP文件
许可证
MIT许可证-有关详细信息,请参阅许可证文件
贡献
欢迎投稿!请随时提交拉取请求。
更新日志
1.0.0版本(首次发布)
- 交通支持下的路线规划
- 附近地点搜索
- OAuth2和API密钥身份验证
- 印度实时交通数据
- 距离和持续时间计算
