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