FIWARE实体管理服务器
在FIWARE环境中,实现实体发布、更新和查询的基本操作,充当Context Broker和其他服务之间的桥梁。
服务介绍
FIWARE MCP 服务器
这是 FIWARE 模型上下文协议 (MCP) 服务器的第一个实现,它提供了 Context Broker 和其他服务之间的桥梁。该服务器实现了与 FIWARE Context Broker 交互的基本操作。
目标
- 为 FIWARE 创建一个基本的 MCP 服务器实现
- 提供简单的工具用于 Context Broker 交互
- 演示与 Context Broker 的基本意图 CRUD 操作
- 作为更复杂的 MCP 实现的基础
功能
- Context Broker 版本检查
- Context Broker 查询功能
- 实体发布和更新
先决条件
- Python 3.7 或更高版本
- pip(Python 包安装器)
- 访问 FIWARE Context Broker 实例
安装
- 克隆此仓库:
git clone <repository-url>
cd FIWARE_MCP_01
- 安装所需的依赖项:
pip install -r requirements.txt
Claude Desktop 集成
mcp install server.py
# Custom name
mcp install server.py --name "FIWARE MCP Server"
# Environment variables, if any
mcp install server.py -v API_KEY=abc123 -v DB_URL=postgres://...
mcp install server.py -f .env
使用
启动 MCP 服务器:
python server.py
# or
mcp run server.py
服务器默认在 127.0.0.1:5001 上启动。
可用工具
-
CB_version
- 检查 Context Broker 的版本
- 默认参数:address="localhost", port=1026
- 返回:包含版本信息的 JSON 字符串
-
query_CB
- 查询 Context Broker
- 参数:
- address(默认:"localhost")
- port(默认:1026)
- query(默认:"")
- 返回:包含查询结果的 JSON 字符串
-
publish_to_CB
- 在 Context Broker 中发布或更新实体
- 参数:
- address(默认:"localhost")
- port(默认:1026)
- entity_data(必需:包含实体信息的字典)
- 返回:包含操作状态的 JSON 字符串
示例用法
# Example entity data
entity_data = {
"id": "urn:ngsi-ld:TemperatureSensor:001",
"type": "TemperatureSensor",
"temperature": {
"type": "Property",
"value": 25.5
},
"@context": "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld"
}
# Publish to Context Broker
result = publish_to_CB(entity_data=entity_data)
配置
可以通过修改 server.py 中的以下参数来配置服务器:
- 主机地址
- 端口号
- 超时设置
错误处理
服务器包括全面的错误处理,包括:
- 网络连接问题
- Context Broker 的无效响应
- 格式错误的实体数据
- 服务器关闭
贡献
欢迎提交问题和增强请求!
许可证
该项目根据 Apache License 2.0 许可。