数据访问协议服务器

一个基于Go语言的MCP服务器,提供对马来西亚政府开放数据平台DataGovMy的数据集程序化访问,支持AI代理和开发者工具集成。

  • by faridyusof727
  • Go
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 faridyusof727/datagovmy-mcp

使用说明

数据政府MCP服务器

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

特性

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

关于本项目

此存储库提供了一个MCP(模型上下文协议)服务器,该服务器充当连接到 data.gov.my API(如有)。它专为MCP集成而设计,不特定于任何单一的助手或应用程序。

  • 为什么去?
    你可能想知道为什么这个项目使用Go而不是 官方MCP包 在Node.js中。答案很简单:我更了解Go,它的依赖性更少,我可以很容易地为不同的操作系统发布二进制文件。

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

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

可用工具

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

  • 出生:根据1920年至今在JPN登记的数据,马来西亚每天出生的人数。
  • 燃料价格:马来西亚RON95汽油、RON97汽油和柴油的每周零售价。
  • 人口_马来西亚1970年至2024年按性别、年龄组和种族分列的全国人口。
  • 人口_状态1970年至2024年按性别、年龄组和种族分列的州级人口。
  • 注册_交易_汽车2000年至今的汽车登记交易。按注册日期、类型(摩托车、MPV、吉普车、皮卡、厢式货车)、制造商、型号、颜色、燃料类型(汽油、柴油、绿色柴油、天然气、液化天然气、氢气、电动、混合动力)和注册状态进行筛选。
  • hh_income1970年至2022年马来西亚家庭月总收入的平均值和中位数。

想添加更多工具吗?欢迎投稿!如果您想使用其他DataGovMy数据集或功能来帮助扩展服务器,请打开问题或提交拉取请求。

下载

您可以从以下网址下载适用于Windows、macOS或Linux的最新版本 GitHub发布页面.

  1. 转到 发布页面.
  2. 找到你想要的版本(例如。, v1.0.0).
  3. 下载适用于您操作系统的二进制文件:
    • *_windows_amd64.zip 对于Windows
    • *_darwin_amd64.tar.gz 适用于macOS
    • *_linux_amd64.tar.gz 适用于Linux
  4. 提取下载的文件并按照使用说明进行操作。

什么是DataGovMy?

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

先决条件

  • 去 1.18或更新版本
  • 克莱恩 (已安装并配置)
  • 光标 (可选,用于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进行通信,stdio比HTTP更适合本地开发。

  1. 构建服务器:

    go build -o mcp-datagovmy
    
  2. 更新您的临床(或光标)MCP配置文件 (通常 cline_mcp_settings.json).添加这样的条目:

    {
      "mcpServers": {
        "datagovmy": {
          "disabled": false,
          "timeout": 60,
          "command": "/absolute/path/to/mcp-datagovmy",
          "transportType": "stdio",
          "autoApprove": [
            "population_malaysia",
            "population_state"
          ]
        }
      }
    }
    
    • 命令:指向您构建的服务器二进制文件的绝对路径(例如。, /Users/youruser/Documents/Codes/mcp/custom/mcp-datagovmy)
    • 运输类型:必须是 "stdio" 用于子流程通信
    • 自动批准:(可选)要自动批准而不提示的工具名称列表
    • 超时:(可选)等待响应的时间(秒)
    • 残疾的:设置为 false 启用服务器
  3. 保存并重新加载临床或光标。 服务器将根据需要自动启动。

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

    • 示例用法:

      Use the "population_malaysia" tool from the "datagovmy" server with age="overall", date="2024-01-01", ethnicity="overall", sex="both".
      

与光标一起使用

  1. 在Cursor中打开项目。
  2. 确保Cline已连接,并且您的MCP服务器正在运行。
  3. 使用Cursor的AI功能与DataGovMy工具进行交互。
    • 例如,您可以要求Cursor“使用datagovmy服务器上的population_state工具,状态='Selangor',年龄='0-4',日期='2024-01-01',种族='中国人',性别='男性'”。

工作流示例

  1. 启动MCP服务器:

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

  3. 在Cline或Cursor中,运行以下命令:

    Use the "population_state" tool from the "datagovmy" server with 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.go, population_malaysia.go)例如。
  2. 注册您的工具和处理程序 在……里面 tools/tool.go:

    • 如果需要,在顶部导入新的工具和处理程序。

    • 在返回的地图中添加条目 LoadTools():

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

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

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

故障排除

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

许可证

MIT许可证


有关更多信息,请参阅 模型上下文协议文档 和 数据政府.