项目简介

本项目是一个基于 Model Context Protocol (MCP) 实现的应用后端,专门用于向大型语言模型(LLM)客户端提供用户地理位置信息。它通过 EdgeOne Pages Functions 获取地理位置数据,并将该能力封装成一个 MCP 工具暴露给 LLM。

主要功能点

  • 提供地理位置工具: 作为一个 MCP 服务器,它向连接的 LLM 客户端注册了一个名为 'get_geolocation' 的工具。
  • 获取用户位置: 当 LLM 调用 'get_geolocation' 工具时,服务器会请求预先部署的 EdgeOne Pages Functions 来获取当前用户的地理位置信息。
  • 数据封装与返回: 获取到的地理位置数据会被格式化并通过 MCP 协议返回给 LLM。

安装步骤

本项目需要 Node.js 和 tsx 运行环境。

  1. 克隆仓库:
    git clone https://github.com/edgego/mcp-geo-pub.git
    cd mcp-geo-pub/mcp-server
  2. 安装依赖:
    npm install
    # 或者 yarn install
  3. 部署 EdgeOne Pages Function (可选,如果使用自己的): 本项目默认调用 'https://mcp-geo.edgeone.app/get_geo' 提供的地理位置服务。如果你需要部署自己的地理位置函数,请参考 EdgeOne Pages 文档将 'functions/get_geo.ts' 部署到 EdgeOne Pages。
  4. 运行 MCP 服务器: 你通常不需要手动运行此服务器,它会被你的 MCP 客户端(例如,支持 MCP 的 LLM 运行时)根据配置自动启动。但如果需要手动测试,可以使用:
    npx tsx index.ts
    服务器启动后会监听标准输入输出(Stdio)等待 MCP 客户端连接。

服务器配置

MCP 服务器是为 MCP 客户端(如某些 LLM 运行时或应用)提供服务的。要让你的客户端使用此地理位置服务,需要在客户端的 MCP 服务器配置中添加以下信息。配置通常是一个 JSON 对象,指定服务器的名称、启动命令和参数:

{
  "mcpServers": {
    "edgeone-geo-mcp-server": {
      "command": "tsx",
      "args": ["path/to/mcp-server/index.ts"]
      // 请将 "path/to/mcp-server/index.ts" 替换为 mcp-geo-pub 仓库中 mcp-server 目录下的 index.ts 文件的实际路径
    }
    // 客户端可能还有其他 MCP 服务器配置
  }
}
  • '"edgeone-geo-mcp-server"': 这是你给这个 MCP 服务器起的名称,客户端使用此名称来引用它。
  • '"command"': 客户端用于启动服务器进程的命令。'tsx' 用于直接运行 TypeScript 文件。
  • '"args"': 传递给启动命令的参数,即服务器脚本的文件路径。

基本使用方法

配置完成后,支持 MCP 协议的 LLM 客户端在需要获取用户地理位置信息时,可以通过协议调用服务器暴露的 'get_geolocation' 工具。服务器会执行相应的逻辑(调用 EdgeOne 函数),并将获取到的地理位置数据作为工具调用的结果返回给 LLM。LLM 收到数据后,即可利用这些信息来增强其响应或执行特定任务。用户无需直接与此服务器交互。

信息

分类

网页与API