使用说明
数据政府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发布页面.
- 转到 发布页面.
- 找到你想要的版本(例如。,
v1.0.0). - 下载适用于您操作系统的二进制文件:
*_windows_amd64.zip对于Windows*_darwin_amd64.tar.gz适用于macOS*_linux_amd64.tar.gz适用于Linux
- 提取下载的文件并按照使用说明进行操作。
什么是DataGovMy?
数据政府 是马来西亚的开放数据平台,提供人口统计、经济、健康等方面的数据集。此MCP服务器使AI代理和开发工具可以访问这些数据集。
先决条件
安装
-
克隆此存储库:
git clone <your-repo-url> cd custom -
安装Go依赖项:
go mod tidy -
构建服务器:
go build -o mcp-datagovmy -
运行服务器:
./mcp-datagovmy默认情况下,服务器将启动
localhost:8080。如果支持,您可以通过编辑代码或使用环境变量来更改端口。
与Cline或Cursor一起使用(通过stdio)
您可以配置Cline(和Cursor)将此MCP服务器作为子进程启动,并通过stdio进行通信,stdio比HTTP更适合本地开发。
-
构建服务器:
go build -o mcp-datagovmy -
更新您的临床(或光标)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启用服务器
- 命令:指向您构建的服务器二进制文件的绝对路径(例如。,
-
保存并重新加载临床或光标。 服务器将根据需要自动启动。
-
使用Cline或Cursor访问DataGovMy工具。
-
示例用法:
Use the "population_malaysia" tool from the "datagovmy" server with age="overall", date="2024-01-01", ethnicity="overall", sex="both".
-
与光标一起使用
- 在Cursor中打开项目。
- 确保Cline已连接,并且您的MCP服务器正在运行。
- 使用Cursor的AI功能与DataGovMy工具进行交互。
- 例如,您可以要求Cursor“使用datagovmy服务器上的population_state工具,状态='Selangor',年龄='0-4',日期='2024-01-01',种族='中国人',性别='男性'”。
工作流示例
-
启动MCP服务器:
./mcp-datagovmy -
如上所述,将Cline连接到您的服务器。
-
在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工具,请执行以下操作:
-
在中创建新文件
tools/目录 (例如。,tools/my_new_tool.go).- 使用定义工具
mcp.NewTool并在此文件中实现其处理函数。 - 查看中的现有文件
tools/(比如births.go,population_malaysia.go)例如。
- 使用定义工具
-
注册您的工具和处理程序 在……里面
tools/tool.go:-
如果需要,在顶部导入新的工具和处理程序。
-
在返回的地图中添加条目
LoadTools():&myNewTool: myNewToolHandler,
-
-
重建并重新启动服务器 应用您的更改。
这种模块化结构使添加、更新或调试单个工具变得容易,而不会影响其他工具。
给贡献者的提示:
在实施新工具或处理程序时,请参阅 DataGovMy开发者门户 以获取有关API请求结构、可用端点和最佳实践的指导。
故障排除
- 端口已在使用中: 更改代码中的端口或停止冲突进程。
- Cline无法连接: 确保服务器正在运行,并且Cline的设置中的URL正确。
- Go构建错误: 确保您安装了正确的Go版本和所有依赖项。
许可证
MIT许可证
