Token导航 LogoToken导航TokenDH.com
CopilotStudio TomTom Map MCP POC logo
开发工具未说明官方级别未说明来源级核验

CopilotStudio TomTom Map MCP POC

MCP Server

TomTom MCP Server 是一个交互式地图服务,提供地理编码、路线规划、POI搜索等功能,适用于Microsoft 365和Teams中的位置查询和地图可视化。

工具数

16

提示词数

0

GitHub Stars

2

资源数

0
PowerShell地理编码位置天气

安装说明

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

作者 / 组织

ITSpecialist111

提供方

ITSpecialist111

最后核验

2026/5/17 20:19

快速接入

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

详细介绍

TomTom MCP服务器——微软365和团队的交互式地图

概念验证 --连接托管 模型上下文协议(MCP) Azure上的服务器连接到Copilot Studio、Power Automation和Microsoft 365 Copilot,具有由TomTom Orbis Maps提供支持的交互式地图可视化功能。

v2.0中的新增功能

功能详细信息
TomTom奥比斯地图后端升级自 tomtom-mapstomtom-orbis-maps --更丰富的图块、矢量渲染和5个额外的地理空间工具
16个MCP工具(共11个)新工具:电动汽车路线、区域搜索、沿线搜索、电动汽车充电搜索、数据可视化
交互式地图网络应用程序Azure静态Web应用程序,具有完全缩放、平移、单击、标记、路由和流量覆盖功能
自适应卡集成在Microsoft Teams对话中本机呈现的丰富地图卡
映射代理Azure功能连接MCP服务器和Teams/Copilot Studio,生成自适应卡并通过URL提供地图图像
奥比斯测试套件专用的18个测试套件,涵盖所有16个奥比斯工具以及安全和性能检查
电动汽车充电图索引Graph Connector现在可以将电动汽车充电站数据索引到Microsoft Search中

建筑

                                    Azure
 +-----------------------------------------------------------------+
 |                                                                 |
 |   Azure Container Apps              Azure Static Web App        |
 |  +---------------------------+    +-------------------------+   |
 |  | TomTom MCP Server         |    | Interactive Map App     |   |
 |  | (Orbis Maps backend)      |    | (TomTom Maps SDK +      |   |
 |  |                           |    |  MapLibre GL JS)        |   |
 |  | Image: ghcr.io/tomtom-    |    |                         |   |
 |  |   international/          |    | Renders markers, routes,|   |
 |  |   tomtom-mcp:latest       |    | polygons, traffic via   |   |
 |  |                           |    | URL query parameters    |   |
 |  | MAPS=tomtom-orbis-maps    |    +-------------------------+   |
 |  | 16 tools | Port 3000      |                ^                 |
 |  | 1.5 CPU, 3Gi RAM          |                |                 |
 |  | Replicas: 1-3             |        "Open Interactive Map"    |
 |  |                           |                |                 |
 |  | Endpoints:                |    +-------------------------+   |
 |  |   GET  /health            |    | Azure Function App      |   |
 |  |   POST /mcp              +--->| Map Proxy API            |   |
 |  +---------------------------+    |                         |   |
 |                                   | POST /api/generate-     |   |
 |                                   |       map-card          |   |
 |                                   | GET  /api/get-map-image |   |
 |                                   |                         |   |
 |                                   | Returns Adaptive Cards  |   |
 |                                   | + image URLs            |   |
 |                                   +------------+------------+   |
 |                                                |                |
 +-----------------------------------------------------------------+
                                                  |
                          HTTPS + API Key header   |
                   +------------------------------+|
                   |              |                ||
           Copilot Studio   Power Automate   Graph Connector
           (Native MCP +    (Custom          (.NET 9 console)
            Adaptive Cards)  Connector)
                   |              |                |
                   +--------------+----------------+
                                  |
                            M365 Copilot
                      (answers location queries)

可用的MCP工具(16)

#工具描述状态
1tomtom-geocode将地址转换为坐标
2tomtom-reverse-geocode将坐标转换为地址
3tomtom-fuzzy-search具有拼写容错功能的智能搜索
4tomtom-poi-search查找特定业务类别
5tomtom-nearby发现半径范围内的服务
6tomtom-routing计算位置之间的最佳路线
7tomtom-waypoint-routing具有可选最佳顺序的多站路线规划
8tomtom-reachable-range按时间或距离确定可到达的覆盖区域
9tomtom-traffic实时交通事故数据
10tomtom-dynamic-map使用标记、路线、多边形进行高级地图渲染
11tomtom-static-map生成自定义地图图像
12tomtom-ev-routing具有电池/充电参数的电动汽车路线规划
13tomtom-search-along-route在具有最大绕行限制的给定路线上查找POI
14tomtom-area-search在地理边界框内搜索
15tomtom-ev-search按位置和半径查找电动汽车充电站
16tomtom-data-viz在地图上可视化GeoJSON特征集合
注: 测试套件还验证 tomtom-waypoint-optimization 作为路由变体。

先决条件

快速开始

1.部署MCP服务器(奥比斯)

使用奥比斯地图后端部署新的MCP服务器:

.\deploy\Deploy-TomTomMCP.ps1 -TomTomApiKey "" `
    -SubscriptionId "" -TenantId ""

或者将现有部署升级到奥比斯:

.\deploy\Deploy-OrbisUpgrade.ps1
.\deploy\Deploy-OrbisUpgrade.ps1 -TomTomApiKey ""

这两个脚本都通过运行健康检查并确认所有16个工具都可用来验证部署。

2.部署交互式地图Web应用程序

创建一个Azure静态Web应用程序来托管交互式地图前端:

.\deploy\Deploy-InteractiveMap.ps1 -ResourceGroupName "rg-tomtom-mcp" -Location "uksouth"

然后使用GitHub Actions或SWA CLI部署应用程序内容:

# Option: Manual deploy via SWA CLI
npm install -g @azure/static-web-apps-cli
cd interactive-map-app
swa deploy . --deployment-token 

交互式地图接受标记、路线、中心、缩放和覆盖的URL查询参数,允许自适应卡按钮直接深度链接到配置的地图视图。

3.部署地图代理功能

部署连接MCP服务器和Teams/Copilot Studio的Azure功能应用程序:

.\deploy\Deploy-MapProxy.ps1 `
    -TomTomApiKey "" `
    -McpServerUrl "https://ca-tomtom-mcp.azurecontainerapps.io" `
    -InteractiveMapUrl "https://swa-tomtom-map.azurestaticapps.net"

然后部署函数代码:

cd map-proxy-api
npm install && npm run build
func azure functionapp publish func-tomtom-map-proxy

代理暴露了两个端点:

端点方法目的
/api/generate-map-cardPOST调用MCP工具,返回自适应卡JSON+摘要文本
/api/get-map-imageGET调用地图工具,直接返回PNG图像(URL可寻址)

4.连接到Copilot工作室

  1. 打开 Copilot工作室 并选择您的代理
  2. 首选 行动 > +添加操作 > MCP 服务器
  3. 输入部署的服务器URL: https://.azurecontainerapps.io/mcp
  4. 身份验证:标头中的API密钥 tomtom-api-key
  5. 所有16个工具都是使用键入的参数自动发现的
  6. 配置代理以调用地图代理,以便在团队中进行自适应卡响应

动力平台/COPILOT-AGENT-GUIDE.md 用于代理指令、示例提示和JSON正文示例。

5.通过Power Automation连接

  1. 导入 power-platform/TomTomMCP-connector.swagger.json 作为自定义连接器
  2. 配置API密钥身份验证
  3. 使用 CallMcpTool 行动在你的流动

电动平台/SETUP-GUIDE.md 获取分步说明。

6.将数据索引到Microsoft Graph中

# Create the Entra ID app registration
.\graph-connector\Setup-AppRegistration.ps1 -TenantId ""

# Copy the template and fill in your credentials
cp graph-connector/appsettings.template.json graph-connector/appsettings.json
# Edit appsettings.json with your tenantId, clientId, clientSecret, tomTomApiKey, mcpBaseUrl

# Run the connector to index location data
dotnet run --project graph-connector

这将创建一个Microsoft Graph外部连接,注册一个搜索模式,抓取TomTom数据(办公室、附近的POI、地标、电动汽车充电站),并将项目推送到Microsoft搜索中。M365 Copilot可以原生回答以下问题 *“伦敦办公室附近有什么餐馆?”* 或 *“最近的电动汽车充电器在哪里?”*.

图形连接器/DEPLOYMENT-GUIDE.md 了解完整的演练和故障排除。

7.运行测试

原始烟雾测试 (11个工具,基本验证):

.\tests\Invoke-SmokeTests.ps1 -BaseUrl "https://.azurecontainerapps.io" -ApiKey ""

奥比斯测试套件 (16个工具,完整的奥比斯验证):

.\tests\Invoke-OrbisTests.ps1 -BaseUrl "https://.azurecontainerapps.io"

# Run a subset of tests
.\tests\Invoke-OrbisTests.ps1 -BaseUrl "https://.azurecontainerapps.io" -TestFilter "*ev*"

Orbis套件运行18个测试:健康检查、工具/列表验证、所有16个工具调用(地理代码、反向地理代码、模糊搜索、POI搜索、附近、路线、可达范围、交通、EV路线、沿线搜索、区域搜索、EV搜索、数据即),以及无效的API密钥拒绝和响应时间验证。

项目结构

TomTom/
+-- README.md                                  # This file
+-- .gitignore
+-- deploy/
|   +-- Deploy-TomTomMCP.ps1                   # Full Azure deployment (Orbis by default)
|   +-- Deploy-OrbisUpgrade.ps1                # Upgrade existing deployment to Orbis
|   +-- Deploy-InteractiveMap.ps1              # Deploy Static Web App for interactive map
|   +-- Deploy-MapProxy.ps1                    # Deploy Azure Function App (map proxy)
|   +-- Update-Container.ps1                   # Update container to latest image
|   +-- Remove-TomTomMCP.ps1                   # Tear down all resources
+-- interactive-map-app/
|   +-- index.html                             # Single-page interactive map (TomTom SDK + MapLibre)
|   +-- package.json                           # App metadata and dev scripts
|   +-- staticwebapp.config.json               # Azure Static Web App routing and headers
+-- map-proxy-api/
|   +-- package.json                           # Node.js 18 Azure Function project
|   +-- tsconfig.json                          # TypeScript configuration
|   +-- host.json                              # Azure Functions host settings
|   +-- local.settings.json                    # Local development environment variables
|   +-- src/
|       +-- functions/
|       |   +-- generateMapCard.ts             # POST endpoint: MCP tool -> Adaptive Card
|       |   +-- getMapImage.ts                 # GET endpoint: MCP tool -> PNG image
|       +-- lib/
|           +-- mcpClient.ts                   # MCP JSON-RPC client with SSE parsing
|           +-- adaptiveCards.ts               # Adaptive Card builders (search, route, traffic, map)
+-- tests/
|   +-- Invoke-SmokeTests.ps1                  # 13 smoke tests (original 11 tools)
|   +-- Invoke-OrbisTests.ps1                  # 18 Orbis tests (all 16 tools + security + perf)
+-- power-platform/
|   +-- TomTomMCP-connector.swagger.json       # OpenAPI definition for Power Automate
|   +-- SETUP-GUIDE.md                         # Custom connector setup guide
|   +-- COPILOT-AGENT-GUIDE.md                 # Agent instructions & examples
+-- graph-connector/
    +-- TomTomGraphConnector.csproj             # .NET 9 project
    +-- Program.cs                             # Main entry point
    +-- ConnectorConfig.cs                     # Configuration model
    +-- GraphConnectorService.cs               # Microsoft Graph external connection
    +-- TomTomClient.cs                        # TomTom MCP API client
    +-- LocationItem.cs                        # Data model for indexed items
    +-- appsettings.template.json              # Configuration template (copy to appsettings.json)
    +-- Setup-AppRegistration.ps1              # Entra ID app registration script
    +-- DEPLOYMENT-GUIDE.md                    # Full deployment & troubleshooting guide

团队中的交互式地图

该项目使用 自适应卡+静态Web应用程序 在Microsoft Teams中提供交互式地图的方法:

  User asks a location question in Teams
                    |
                    v
  Copilot Studio agent receives the message
                    |
                    v
  Agent calls MCP tool via the MCP server
  (e.g., tomtom-dynamic-map, tomtom-routing, tomtom-poi-search)
                    |
                    v
  MCP server returns tool result
  (JSON data, and/or base64 PNG image)
                    |
                    v
  Agent calls Map Proxy  POST /api/generate-map-card
  with the tool name + arguments
                    |
                    v
  Map Proxy calls MCP server, parses the result,
  and builds a typed Adaptive Card:
    - Search results card  (geocode, POI, fuzzy, nearby, area, EV search)
    - Route card           (routing, EV routing, waypoint optimization)
    - Traffic card         (traffic incidents)
    - Dynamic map card     (map images with overlays)
    - Generic fallback     (any other tool)
                    |
                    v
  Adaptive Card is returned to Teams with:
    - A static map image (embedded or via /api/get-map-image URL)
    - Result summary text (distances, addresses, counts)
    - "Open Interactive Map" button linking to the Static Web App
                    |
                    v
  User sees the card in Teams and can:
    [View the static map inline]
    [Click "Open Interactive Map" to zoom/pan/explore in the browser]

交互式地图web应用程序读取URL查询参数以配置其初始视图,因此自适应卡按钮可以深度链接到特定位置、缩放级别、标记集或路线。

部署脚本

脚本描述
Deploy-TomTomMCP.ps1完整的Azure部署:资源组、容器应用程序环境和带有奥比斯地图后端的MCP服务器容器。在完成时验证健康状况和工具数量。
Deploy-OrbisUpgrade.ps1从以下位置对现有容器应用程序进行就地升级 tomtom-mapstomtom-orbis-maps更新环境变量和映像,验证16个工具是否可用。
Deploy-InteractiveMap.ps1创建用于托管交互式地图的Azure静态Web应用程序资源。输出GitHub Actions或SWA CLI部署的部署令牌和说明。
Deploy-MapProxy.ps1创建存储帐户和Azure功能应用程序(Node.js 20、Linux、消费计划)。配置TomTom API密钥、MCP服务器URL、交互式地图URL和CORS的应用程序设置。
Update-Container.ps1拉最新 ghcr.io/tomtom-international/tomtom-mcp 镜像并重新启动容器应用程序。
Remove-TomTomMCP.ps1拆分资源组和所有关联的Azure资源。

认证

所有MCP请求都需要在 tomtom-api-key 头球

curl -X POST "https://.azurecontainerapps.io/mcp" \
  -H "Accept: application/json,text/event-stream" \
  -H "tomtom-api-key: " \
  -H "Content-Type: application/json" \
  -d '{
    "method": "tools/call",
    "params": {
      "name": "tomtom-geocode",
      "arguments": { "query": "Cardiff Castle, Wales" }
    },
    "jsonrpc": "2.0",
    "id": 1
  }'

地图代理功能应用程序使用功能级身份验证(authLevel: "function")并从其自身的环境变量中读取TomTom API密钥,因此调用方不需要直接传递密钥。

关键环节

贡献

这是一个概念验证项目。欢迎发布问题和PR。

许可证

目录标签

目录标签

PowerShell地理编码位置天气本地部署地图服务路线规划POI搜索Microsoft365集成

接入字段

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

未说明

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

api-key

工具数量(toolCount,工具数)

16

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明api-key部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP