Skyforge MCP 服务器
⚠️ Alpha版发布 - 这是早期的alpha版本。请预期可能会存在bug和破坏性变更。 🚫 禁止/不允许 非生产用途 - 这是一个开发/实验版本。如需用于生产环境,请联系 james@skyforge-labs.com(可译为:“詹姆斯@天空锻造实验室邮箱”或根据具体语境简化为“詹姆斯的天空锻造实验室邮箱”) 解锁 未进行身份验证 - 这台服务器没有内置认证。CORS(跨域资源共享)设置完全开放(allow_origins=["*"])。 自行使用,风险自担,并确保妥善部署。一个模型上下文协议(MCP)服务器,用于将人工智能助手连接到SkySpark和Haxall楼宇自动化系统。它能动态地将您的SkySpark Axon功能作为MCP工具暴露出来。
特点/功能
- 动态轴突工具 - 在运行时从SkySpark获取工具定义
- 即时支持 - 从SkySpark中暴露模板化提示
- 双运输(或“双重运输”) - 支持stdio(Claude桌面版)和HTTP/SSE(网页客户端)
- 类型安全 - 完整的Haystack类型系统,支持自动JSON Schema转换
- Docker 准备就绪 - 包含简单的Docker部署
它是如何工作的
服务器每次从SkySpark获取工具 list_tools 请求。这意味着:
- 在SkySpark中创建Axon函数以添加新工具
- 模式更改无需重启服务器
- SkySpark是您获取真相的唯一来源
快速入门
先决条件
- 带有API访问权限的SkySpark或Haxall服务器
- Docker(推荐)或 Python 3.12+ 及其以上版本 紫外线
使用示例工具快速设置
为了立即进行测试,请导入随附的 setup.zinc 将文件添加到您的SkySpark项目中。这提供了示例MCP工具和所需的 fetchMcpTools() 功能。
Docker 设置(最简单的方法)
- 克隆并配置
git clone https://github.com/yourusername/skyforge-mcp.git
cd skyforge-mcp
# Create .env file
cat > .env [
{
name: "getSiteEquips",
dis: "Get Site Equipment",
help: "Returns all equipment for a site",
params: {
kind: "Dict",
params: {
siteId: {
kind: "Ref",
help: "Site reference ID",
required: marker()
}
}
}
}
].toGrid
// Tool implementation (called via `call()`)
getSiteEquips: (dict) => readAll(equip and siteRef == dict->siteId)导入随附的(内容/文件) setup.zinc 将文件放入您的SkySpark项目中,作为示例工具和所需的(内容) fetchMcpTools() 功能。
当客户端调用时,服务器会自动获取工具 list_tools。
配置
创造 .env 文件:
# For Docker: use host.docker.internal to access host machine
SKYSPARK_URI=http://host.docker.internal:8080/api/demo
# For local development: use localhost
# SKYSPARK_URI=http://localhost:8080/api/demo
SKYSPARK_USERNAME=your_username
SKYSPARK_PASSWORD=your_password这三个变量都是必需的。
项目结构
skyforge-mcp/
├── app/
│ ├── skyspark/ # SkySpark integration
│ │ ├── client.py # Phable-based API client
│ │ ├── converters.py # Haystack ↔ JSON Schema conversion
│ │ ├── grid.py # HGrid wrapper for dual format output
│ │ └── types.py # Extended Haystack types
│ └── tools/
│ └── axon_tools.py # Hardcoded tool examples
├── main.py # MCP server entry point
├── docker-compose.yml # Docker setup
└── Dockerfile # Container definition故障排除
连接错误:
- Docker(注:Docker是一个开源的应用容器引擎,用于开发、交付和运行应用程序。)使用
host.docker.internal而不是localhost在 SKYSPARK_URI 中 - 验证SkySpark URI是否可访问:
curl http://your-server:8080/api/demo - 检查
.env凭证;资历;资格 - 确保启用SkySpark API
未显示工具:
- 验证
fetchMcpTools()在SkySpark中存在该函数 - 检查服务器日志:
docker-compose logs或者uv run main.py - 使用MCP Inspector进行测试
Docker问题:
docker-compose logs # View logs
docker-compose restart # Restart
docker-compose up --build # Rebuild安全注意事项
⚠️(表示警告或提醒的符号,无具体文字含义,可译为“警告”或根据上下文译为相应提示) 重要提示:
- 这不是用于生产环境的 - 如果您对生产实施感兴趣,请联系 james@skyforge-labs.com(直接翻译为中文邮件地址形式,不改变原格式)
- 没有内置认证功能 - 请确保您的网络/部署安全
- CORS允许所有来源 - 用于本地开发
- 安全地存储凭据(
.env文件、环境变量) - 对于生产环境,请添加身份验证中间件或使用VPN/防火墙
版权声明与许可
构建于:
- MCP Python SDK(MCP Python软件开发工具包) - 模型上下文协议实现
- “Phablet”(注:原文中的“Phable”可能是“Phablet”的简写形式,但通常使用“Phablet”这一完整形式) - 由Rick Jennings提供的Haystack/SkySpark客户端库
- “Project Haystack”翻译成中文是“海斯塔克项目” - 建筑自动化数据标准
许可证: MIT - 请参阅LICENSE文件
做出贡献
欢迎提出问题和提交拉取请求(PR)!这是一个alpha版本,欢迎提供反馈。
仓库:
