水果位置搜索服务

一个连接Falling Fruit API的模型上下文协议(MCP)服务器,帮助用户查找附近的食用植物和树木,支持自然语言查询和导航功能。

  • by chrismaltais
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 chrismaltais/falling-fruit-mcp-server

使用说明

落果MCP服务器🍎

连接到的模型上下文协议(MCP)服务器 落果API 帮助您找到附近的可食用植物和树木!问一些关于你所在地区觅食机会的自然语言问题。

特性

  • 🔍 搜索水果地点 按地区和水果类型
  • 🍂 寻找时令水果 当前在您所在的位置可用
  • 🌱 发现水果类型 并获取详细信息
  • 📍 获取位置详细信息 特定觅食点
  • 🗺️ 生成地图链接 并获取前往果树的路线
  • 🧭 导航支持 按转弯方向
  • 🌍 地理编码支持 -按城市、社区或坐标搜索

查询示例

  • “不列颠哥伦比亚省温哥华附近的时令水果是什么?”
  • “我在耶鲁镇哪里可以找到黑莓?”
  • “给我看看西雅图市中心5公里范围内的苹果树”
  • “纽约中央公园有什么可供觅食的?”
  • “从波特兰市中心获取最近的苹果园的路线”
  • “在数据库中查找所有类型的樱桃”
  • “给我金门公园果树的详细信息”
  • “为这些浆果坐标生成地图链接”

安装

先决条件

  • Python 3.10或更高版本
  • 紫外线 包管理器
  • 落果API键(可选,使用模拟数据作为回退)

设置

  1. 克隆存储库:

    git clone https://github.com/chrismaltais/falling-fruit-mcp-server.git
    cd falling-fruit-mcp-server
    
  2. 获取落果API密钥(可选):

  3. 配置环境:

    # Create .env file with your API key
    echo "FALLING_FRUIT_API_KEY=your_api_key_here" > .env
    
  4. 安装依赖项:

    uv sync
    
  5. 测试服务器:

    uv run server.py
    

以MCP客户端身份添加到游标

要将此服务器与Cursor IDE一起使用,您需要在MCP设置中对其进行配置:

添加Falling Fruit服务器配置

将此配置添加到您的 mcp.json:

{
  "mcpServers": {
    "falling-fruit": {
      "command": "uv",
      "args": [
        "run", 
        "--directory",
        "/path/to/your/falling-fruit-mcp-server",
        "server.py"
      ],
      "env": {
        "FALLING_FRUIT_API_KEY": "your_api_key_here"
      }
    }
  }
}

重要提示: 替换 /path/to/your/falling-fruit-mcp-server 使用项目目录的实际绝对路径。

验证连接

你应该看看可用的落果工具。然后,您可以提出以下问题:

  • “在我附近找苹果树”
  • “俄勒冈州波特兰的时令水果是什么?”
  • “给我看看金门公园的觅食地点”
  • “从温哥华市中心获取前往黑莓丛的路线”
  • “为中央公园的果树生成地图链接”
  • “数据库中有哪些类型的樱桃?”

可用工具

该服务器提供七种全面的水果觅食工具:

  1. search_fruit_locations -搜索特定地区的果树位置

    • 按位置和可选水果类型查找树木
    • 指定搜索半径(默认值:10km)
    • 示例:在不列颠哥伦比亚省温哥华市5公里范围内寻找黑莓
  2. get_seasonal_fruits -在某个地点附近找到当季水果

    • 在任何地方购买季节性水果
    • 基于当前日期的自动季节检测
    • 示例:俄勒冈州波特兰市现在的季节是什么?
  3. find_fruit_types -按名称或学名搜索水果类型

    • 在数据库中发现可用的水果品种
    • 按常用名或学名搜索
    • 示例:查找所有类型的苹果或海棠
  4. get_id_for_fruit -获取特定水果类型的ID和详细信息

    • 按名称查找特定水果信息
    • 返回科学名称和常用名称
    • 适用于精确搜索
  5. get_location_details -获取水果位置的详细信息

    • 通过水果类型和描述增强位置数据
    • 包括访问信息和季节性数据
    • 非常适合规划觅食之旅
  6. generate_maps_link -为坐标生成谷歌地图链接

    • 为水果位置创建可共享的地图链接
    • 添加自定义标签以便于识别
    • 与地图服务直接集成
  7. get_directions_to_fruit -生成果树位置的指示

    • 从您的位置到果树的转弯方向
    • 用于目的地识别的自定义标签
    • 非常适合导航到觅食地点

技术细节

  • 框架: FastMCP 用于稳健的MCP协议处理
  • HTTP客户端: httpx 用于异步API请求
  • 地理编码: geopy 与位置解析提名
  • 包管理器: uv 用于快速依赖关系管理
  • 运输: 用于MCP通信的STDIO

故障排除

服务器无法启动

  • 确保已安装Python 3.10+
  • 检查一下 uv 已安装并工作
  • 验证 .env 文件位于项目根目录中

游标无法连接

  • 仔细检查中的绝对路径 mcp.json
  • 确保Cursor完全重新启动
  • 使用手动测试服务器 uv run server.py

API错误

  • 如果您看到401个错误,请验证您的API密钥是否正确
  • 如果没有提供API密钥,服务器将回退到模拟数据
  • 检查一下 .env 文件包含 FALLING_FRUIT_API_KEY=your_key

贡献

欢迎投稿!此服务器连接到开源 落果项目 该地图绘制了世界各地的可食用植物。

许可证

该项目遵循与Falling Fruit相同的开源精神。请尊重API的服务条款,并为社区做出贡献! 🌱