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

这个仓库提供了一个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服务器当前公开以下工具:
想添加更多工具吗?欢迎贡献!如果您希望帮助扩展服务器,增加额外的DataGovMy数据集或功能,请打开一个问题或提交一个拉取请求。
您可以从GitHub Releases页面下载适用于Windows、macOS或Linux的最新版本。
v1.0.0)。*_windows_amd64.zip 用于Windows*_darwin_amd64.tar.gz 用于macOS*_linux_amd64.tar.gz 用于LinuxDataGovMy是马来西亚的开放数据平台,提供有关人口统计、经济、健康等方面的数据集。这个MCP服务器使这些数据集可以被AI代理和开发者工具访问。
克隆此仓库:
git clone <your-repo-url>
cd custom
安装Go依赖项:
go mod tidy
构建服务器:
go build -o mcp-datagovmy
运行服务器:
./mcp-datagovmy
默认情况下,服务器将在localhost:8080启动。您可以通过编辑代码或使用环境变量(如果支持)更改端口。
您可以配置Cline(和Cursor)以子进程形式启动此MCP服务器并通过stdio通信,这比HTTP更适合本地开发。
构建服务器:
go build -o mcp-datagovmy
更新您的Cline(或Cursor)MCP配置文件(通常为cline_mcp_settings.json)。添加如下条目:
{
"mcpServers": {
"datagovmy": {
"disabled": false,
"timeout": 60,
"command": "/绝对路径/到/mcp-datagovmy",
"transportType": "stdio",
"autoApprove": [
"population_malaysia",
"population_state"
]
}
}
}
/Users/youruser/Documents/Codes/mcp/custom/mcp-datagovmy)"stdio"以进行子进程通信false以启用服务器保存并重新加载Cline或Cursor。服务器将根据需要自动启动。
使用Cline或Cursor访问DataGovMy工具。
示例用法:
使用“datagovmy”服务器中的“population_malaysia”工具,age="overall",date="2024-01-01",ethnicity="overall",sex="both"。
启动您的MCP服务器:
./mcp-datagovmy
如上所述将Cline连接到您的服务器。
在Cline或Cursor中运行命令,例如:
使用“datagovmy”服务器中的“population_state”工具,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请求结构、可用端点和最佳实践的指导。
MIT许可证