使用说明

项目简介

Location MCP Server 是一个基于 Spring Boot 构建的 MCP 服务器示例,旨在演示如何通过 MCP 协议向 LLM 客户端提供位置上下文信息。它提供了 'location_get' 工具用于获取用户位置,并提供了一个名为 'location' 的 Prompt 模板,方便 LLM 客户端通过标准化的方式获取位置信息。

主要功能点

  • 提供位置获取工具 (Tool): 通过 'location_get' 工具,LLM 客户端可以调用服务器获取用户的位置信息。位置信息可以配置为静态值,也可以通过网络 IP 地址定位获取。
  • 提供位置获取 Prompt (Prompt): 预置了 'location' Prompt 模板,LLM 客户端可以使用该模板快速发起获取位置信息的请求。
  • 灵活的位置配置: 支持通过配置静态位置,或通过调用外部 IP 定位 API 获取动态位置,满足不同场景的需求。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/alexandreroman/mcp-location
    cd mcp-location
  2. 构建项目: 确保已安装 Maven 和 JDK 17+,然后执行以下命令构建项目:
    ./mvnw package
    构建成功后,会在 'target' 目录下生成 'location-0.0.1-SNAPSHOT.jar' 文件。

服务器配置

MCP 客户端需要配置以下信息以连接 Location MCP Server:

{
  "serverName": "location-mcp-server",
  "command": "java",
  "args": [
    "-jar",
    "target/location-0.0.1-SNAPSHOT.jar"
  ],
  "env": {
    // 可选:配置静态位置,例如设置为 "Paris"。
    // 如果不配置 location 环境变量,则默认使用网络 IP 定位获取位置信息。
    // "location": "Paris"
  }
}

参数说明:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': 启动 MCP 服务器的命令,这里使用 'java' 命令。
  • 'args': 启动命令的参数,包括:
    • '-jar': 指定运行 jar 包。
    • 'target/location-0.0.1-SNAPSHOT.jar': 指定要运行的 jar 文件路径,请根据实际构建结果修改。
  • 'env': 环境变量配置,用于配置服务器的行为。
    • 'location': 可选。如果设置此环境变量,服务器将返回静态配置的位置信息,例如设置为 '"London"'。如果不设置,服务器将尝试通过网络 IP 地址定位获取位置信息。

注意:

  • 确保 MCP 客户端能够访问到 'location-0.0.1-SNAPSHOT.jar' 文件所在的路径。
  • 如果使用网络 IP 定位,服务器需要能够访问 'https://api.my-ip.io' 接口。

基本使用方法

  1. 启动 MCP 服务器: 根据上述服务器配置,在 MCP 客户端中配置并启动 Location MCP Server。

  2. 客户端发现工具和 Prompt: MCP 客户端连接到服务器后,可以发现服务器提供的工具和 Prompt。在本例中,客户端应能发现名为 'location_get' 的工具和名为 'location' 的 Prompt。

  3. 调用 'location_get' 工具: 客户端可以调用 'location_get' 工具来获取位置信息。工具调用无需参数。服务器将返回包含位置信息的字符串,例如:

    Location: Paris  // 静态配置
    或
    Country: France
    Region: Ile-de-France
    City: Paris
    Latitude: 1.000000
    Longitude: 1.000000  // 网络 IP 定位
  4. 使用 'location' Prompt: 客户端可以使用 'location' Prompt 模板来发起获取位置信息的请求。Prompt 模板预定义了用户消息 "What is my current location?"。服务器将返回包含该消息的 Prompt 结果。

通过以上步骤,LLM 客户端即可利用 Location MCP Server 提供的工具和 Prompt 获取位置上下文信息,从而实现基于位置的应用场景。

信息

分类

网页与API