返回市场
数据政府我的-MCP

数据政府我的-MCP

作者:faridyusof7279 星标更新:2025-06-29

项目介绍

MCP Server for DataGovMy

这是一个用Go编写的MCP(模型上下文协议)服务器,它公开了来自DataGovMy——马来西亚开放政府数据平台的工具和资源。它允许您通过Cline(一个AI代理)和Cursor(一个由AI驱动的代码编辑器)以编程方式访问马来西亚政府的数据集(如人口统计数据)。

展示

功能

  • 将DataGovMy数据集(例如,按州、年龄、种族等划分的人口)作为MCP工具公开
  • 通过Cline和Cursor实现对马来西亚政府数据的AI驱动访问
  • 使用Go编写,以提高性能和可移植性
  • 可轻松扩展以支持更多的DataGovMy数据集

关于此项目

这个仓库提供了一个MCP(模型上下文协议)服务器,它充当接口,连接到data.gov.my API(如果可用)。它旨在进行MCP集成,并不特定于任何单一助手或应用程序。

  • 为什么选择Go?
    您可能会问,为什么这个项目使用Go而不是官方的MCP包在Node.js中。答案很简单:我对Go更熟悉,它依赖项较少,我可以轻松地为不同的操作系统发布二进制文件。

  • 没有向量数据库、自定义LLM训练或RAG:
    此项目不使用任何形式的向量数据库、自定义大型语言模型训练或检索增强生成(RAG)。它纯粹是一个MCP服务器,将DataGovMy数据集作为工具公开给AI代理和开发者工具。

  • 即将推出的DataGovMy助手:
    DataGovMy团队正在开发一个类似ChatGPT的助手,MyDataGPT,它将提供与马来西亚政府数据对话的界面。这个MCP服务器是一个独立的项目,专注于MCP集成。

可用工具

此MCP服务器当前公开以下工具:

  • births:基于从1920年至今的JPN注册记录,每日出生人数。
  • fuelprice:每周零售价格,包括RON95汽油、RON97汽油和柴油。
  • population_malaysia:1970年至2024年的全国人口,按性别、年龄段和种族划分。
  • population_state:1970年至224年的各州人口,按性别、年龄段和种族划分。
  • registration_transactions_car:2000年至现在的汽车注册交易。可以通过注册日期、类型(摩托车、MPV、吉普车、皮卡车、窗式货车)、制造商、型号、颜色、燃料类型(汽油、柴油、绿色柴油、天然气、LNG、氢气、电动、混合动力)以及注册州来筛选。
  • hh_income:1970年至2022年的平均和中位数月度家庭毛收入。

想添加更多工具吗?欢迎贡献!如果您希望帮助扩展服务器,增加额外的DataGovMy数据集或功能,请打开一个问题或提交一个拉取请求。

下载

您可以从GitHub Releases页面下载适用于Windows、macOS或Linux的最新版本。

  1. 转到Releases页面
  2. 找到您想要的版本(例如,v1.0.0)。
  3. 下载适合您操作系统的二进制文件:
    • *_windows_amd64.zip 用于Windows
    • *_darwin_amd64.tar.gz 用于macOS
    • *_linux_amd64.tar.gz 用于Linux
  4. 解压下载的文件并遵循使用说明。

什么是DataGovMy?

DataGovMy是马来西亚的开放数据平台,提供有关人口统计、经济、健康等方面的数据集。这个MCP服务器使这些数据集可以被AI代理和开发者工具访问。

先决条件

  • Go 1.18或更新版本
  • Cline(已安装并配置)
  • Cursor(可选,用于AI驱动的代码编辑)
  • (可选)Node.js 如果您想使用Cline的浏览器工具

安装

  1. 克隆此仓库:

    git clone <your-repo-url>
    cd custom
    
  2. 安装Go依赖项:

    go mod tidy
    
  3. 构建服务器:

    go build -o mcp-datagovmy
    
  4. 运行服务器:

    ./mcp-datagovmy
    

    默认情况下,服务器将在localhost:8080启动。您可以通过编辑代码或使用环境变量(如果支持)更改端口。

使用Cline或Cursor(通过stdio)

您可以配置Cline(和Cursor)以子进程形式启动此MCP服务器并通过stdio通信,这比HTTP更适合本地开发。

  1. 构建服务器:

    go build -o mcp-datagovmy
    
  2. 更新您的Cline(或Cursor)MCP配置文件(通常为cline_mcp_settings.json)。添加如下条目:

    {
      "mcpServers": {
        "datagovmy": {
          "disabled": false,
          "timeout": 60,
          "command": "/绝对路径/到/mcp-datagovmy",
          "transportType": "stdio",
          "autoApprove": [
            "population_malaysia",
            "population_state"
          ]
        }
      }
    }
    
    • command:构建的服务器二进制文件的绝对路径(例如,/Users/youruser/Documents/Codes/mcp/custom/mcp-datagovmy
    • transportType:必须为"stdio"以进行子进程通信
    • autoApprove:(可选)自动批准而无需提示的工具名称列表
    • timeout:(可选)等待响应的时间(秒)
    • disabled:设置为false以启用服务器
  3. 保存并重新加载Cline或Cursor。服务器将根据需要自动启动。

  4. 使用Cline或Cursor访问DataGovMy工具。

    • 示例用法:

      使用“datagovmy”服务器中的“population_malaysia”工具,age="overall",date="2024-01-01",ethnicity="overall",sex="both"。
      

使用Cursor

  1. 在Cursor中打开您的项目。
  2. 确保Cline已连接且您的MCP服务器正在运行。
  3. 使用Cursor的AI功能与DataGovMy工具交互。
    • 例如,您可以要求Cursor“使用datagovmy服务器中的population_state工具,state='Selangor',age='0-4',date='2024-01-01',ethnicity='chinese',sex='male'”。

示例工作流程

  1. 启动您的MCP服务器:

    ./mcp-datagovmy
    
  2. 如上所述将Cline连接到您的服务器。

  3. 在Cline或Cursor中运行命令,例如:

    使用“datagovmy”服务器中的“population_state”工具,state="Selangor",age="0-4",date="2024-01-01",ethnicity="chinese",sex="male"。
    

扩展服务器

服务器现在进行了模块化处理,便于扩展。要添加一个新的DataGovMy工具:

  1. tools/目录下创建一个新文件(例如,tools/my_new_tool.go)。

    • 使用mcp.NewTool定义您的工具,并在此文件中实现其处理器函数。
    • 查看tools/目录下的现有文件(如births.gopopulation_malaysia.go)以获取示例。
  2. tools/tool.go中注册您的工具和处理器

    • 如需导入,请在顶部导入新的工具和处理器。

    • LoadTools()返回的映射中添加一个条目:

      &myNewTool: myNewToolHandler,
      
  3. 重新构建并重启服务器以应用更改。

这种模块化结构使得添加、更新或调试单个工具变得容易,而不影响其他工具。

贡献者提示:
在实现新工具或处理器时,请参考DataGovMy开发者门户以获取关于API请求结构、可用端点和最佳实践的指导。

故障排除

  • 端口已被占用:更改代码中的端口或停止冲突进程。
  • Cline无法连接:确保服务器正在运行并且URL在Cline设置中正确无误。
  • Go构建错误:确保您具有正确的Go版本并且所有依赖项均已安装。

许可证

MIT许可证


更多信息,请参阅模型上下文协议文档DataGovMy