小贩中心关闭追踪服务

一个基于新加坡政府数据的MCP服务器,提供实时的小贩中心关闭信息查询功能。

  • by TryingOutSomething
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 tryingoutsomething/hawker-centre-closure-tracker-mcp-server

使用说明

小贩中心关闭追踪器MCP服务器

A. 模型上下文协议(MCP) 提供新加坡小贩中心关闭实时信息的服务器, 由数据驱动 data.gov.sg.

免责声明: 这是一个 非官方的 MCP服务器项目,由Claude AI生成。虽然它功能正常,但请 审查和 在生产中使用前进行彻底测试.


目的

此MCP服务器为AI助手提供了一个安全的接口,以访问新加坡政府关于小贩的官方数据 中心关闭。 它包括关闭日期、重新开放日期和关闭原因等详细信息。


特性

已实施的工具

  • search_hawker_centres –按关键字(名称、位置等)搜索关闭信息
  • search_hawker_centres_by_address –按街道地址搜索关闭
  • get_all_hawker_centres –检索所有当前小贩中心关闭记录(可配置限制)

先决条件


使用示例

在Claude Desktop中,您可以尝试以下提示:

  • “搜索名字中有‘勿洛’的小贩中心”
  • “查找裕廊小贩中心关闭情况”
  • “按地址搜索宏茂桥大道10号小贩中心”
  • “在大巴窑洛龙1号楼123号找到小贩中心”
  • “给我看看新加坡的所有小贩中心”
  • “获取所有小贩中心清洁时间表”
  • “宏茂桥小贩中心关门了吗?”

安装

第一步:构建Docker镜像

docker build -t [MCP_SERVER_NAME] .

步骤2:创建目录目录

mkdir -p ~/.docker/mcp/catalogs

步骤3:创建目录YAML文件

创建一个名为的文件 hawker-centre-closure.yaml 目录目录中的(或任何自定义名称):

备注:确保条目放置在 registry: 关键,而不是根。

version: 2
name: custom
displayName: Hawker Centre Closure Tracker
registry:
  hawker-centre-tracker:
    description: "Track hawker centre closures in Singapore using official data.gov.sg API"
    title: "Hawker Centre Closure Tracker"
    type: server
    dateAdded: "2025-01-15T00:00:00Z"
    image: hawker-mcp-server:latest
    tools:
      - name: search_hawker_centres
      - name: search_hawker_centres_by_address
      - name: get_all_hawker_centres
    # Uncomment the following section if you have a data.gov.sg API key
    # secrets:
    #   - name: DATA_GOV_SG_API_KEY
    #     env: DATA_GOV_SG_API_KEY
    #     example: "your-api-key-from-data-gov-sg"
    metadata:
      category: integration
      tags:
        - singapore
        - government-data
        - hawker-centres
        - food
      license: MIT
      owner: local

步骤4:配置Claude桌面

找到您的Claude Desktop配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

在下面添加您的目录 args 阵列。例子:

{
  "mcpServers": {
    "mcp-toolkit-gateway": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/var/run/docker.sock:/var/run/docker.sock",
        "-v",
        "[YOUR_HOME]/mcp:/mcp",
        "docker/mcp-gateway",
        "--catalog=/mcp/catalogs/docker-mcp.yaml",
        "--catalog=/mcp/catalogs/hawker-centre-mcp.yaml",
        "--config=/mcp/config.yaml",
        "--registry=/mcp/registry.yaml",
        "--tools-config=/mcp/tools.yaml",
        "--transport=stdio"
      ]
    }
  }
}

替换 [YOUR_HOME] 与:

  • macOS: /Users/your_username/.docker/mcp
  • 窗户: C:\\Users\\your_username\\.docker\\mcp (需要双反斜杠)
  • Linux: /home/your_username/.docker/mcp

步骤5:重新启动克劳德桌面

退出并重新启动Claude Desktop。工具现在应该出现在界面中。

步骤6:验证安装

  • 检查服务器列表:
docker mcp server list
  • 如果您的服务器未出现,请检查日志:

    • macOS: ~/Library/Application Support/Claude/logs
    • 视窗: %APPDATA%\Claude\logs
    • Linux: ~/.config/Claude/logs

建筑

Claude Desktop → MCP Gateway → Hawker Centre MCP Server → data.gov.sg API
                                         ↓
                              Docker Desktop Secrets
                              (DATA_GOV_SG_API_KEY)

发展

局部测试

# Set environment variables
export DATA_GOV_SG_API_KEY="your-api-key"

# Run server directly
python hawker_server.py

# Test MCP protocol
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | python hawker_server.py

添加新工具

  1. 在中添加该功能 hawker_server.py
  2. 用 @mcp.tool()
  3. 用新的工具名称更新目录条目
  4. 重建Docker镜像

故障排除

工具未出现

  • 确认Docker镜像构建成功
  • 验证目录和注册表文件
  • 确保Claude配置包含您的目录
  • 重新启动克劳德桌面

身份验证错误

  • 检查秘密 docker mcp secret list
  • 确保环境变量名称在代码和目录中匹配
  • 在没有API密钥的情况下,服务器可以工作,但可能受到速率限制

API错误

  • 验证 data.gov.sg API 已联机
  • 检查是否正确 resource_id 被使用
  • 确认API密钥有效性

安全考虑

  • 将所有机密存储在Docker桌面机密中
  • 永远不要在代码中硬编码凭据
  • 以非root用户身份运行服务器
  • 避免记录敏感数据
  • API密钥是可选的,但建议用于生产

许可证

MIT许可证