贝宁开放数据MCP
服务器MCP(模型上下文协议),用于浏览和消费贝宁的公共数据。
安装
pip install -e ".[test]"认证
该MCP服务器与贝宁的OpenData门户进行交互。身份验证取决于操作类型:
| 操作 | 需要API密钥 | 说明 |
|---|---|---|
| 讲座 (搜索、预览、下载) | ❌ 可选 | 无需身份验证即可访问公共数据 |
| 写作 (批量上传) | ✅ 必需 | 需要具有写入权限的API密钥 |
获取API密钥
对于批量上传操作,请联系贝宁OpenData门户管理部门以获取API密钥。
API密钥配置
如果您有API密钥,请通过环境变量进行配置:
export BENIN_OPEN_DATA_API_KEY="votre_cle_api_ici"用法
在本地启动服务器:
# Sans clé API (lecture seule)
fastmcp run src/opendata_bj/server.py
# Avec clé API (lecture + écriture)
BENIN_OPEN_DATA_API_KEY="votre_cle" fastmcp run src/opendata_bj/server.py与Docker一起使用
您也可以通过Docker运行此MCP服务器。
- 构建Docker映像:
docker build -t opendata-bj-mcp .- 启动容器(只读):
docker run -i --rm opendata-bj-mcp- 启动容器(使用API键进行写入操作):
docker run -i --rm \
-e BENIN_OPEN_DATA_API_KEY="votre_cle_api_ici" \
opendata-bj-mcp*(L选项 -i 使用时,MCP服务器通过 stdio)*
MCP客户端中的配置
应用程序运行后,您可以通过输入以下配置将其与MCP兼容客户端(如Claude Desktop、Cursor、OpenClaw等)集成:
Claude桌面示例(claude_desktop_config.json)光标:
选项1:在本地使用Python(只读)
{
"mcpServers": {
"opendata-bj": {
"command": "fastmcp",
"args": ["run", "/chemin/absolu/vers/opendata-bj-mcp/src/opendata_bj/server.py"]
}
}
}选项2:在本地使用Python(带API密钥)
{
"mcpServers": {
"opendata-bj": {
"command": "fastmcp",
"args": ["run", "/chemin/absolu/vers/opendata-bj-mcp/src/opendata_bj/server.py"],
"env": {
"BENIN_OPEN_DATA_API_KEY": "votre_cle_api_ici"
}
}
}
}选项3:使用Docker(只读)
{
"mcpServers": {
"opendata-bj": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"opendata-bj-mcp"
]
}
}
}选项4:使用Docker(带API密钥)
{
"mcpServers": {
"opendata-bj": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BENIN_OPEN_DATA_API_KEY=votre_cle_api_ici",
"opendata-bj-mcp"
]
}
}
}*(确保 fastmcp 全球可访问性良好,或指定虚拟环境的绝对路径)*
建筑
受项目启发 Collegue该架构通过Pydantic v2支持模块化和严格的数据验证。
