Heddle
The policy-and-trust layer for MCP tool servers.
Heddle turns declarative configs into Model Context Protocol servers
with trust enforcement, credential brokering, and tamper-evident audit logging built in.
See It Work · Why Heddle · Current Status · Security · Quick Start
______________________________________________________________________
See It Work
一个配置,一个MCP服务器。 这个YAML是一个完整的工具服务器——没有Python,也没有样板:
agent:
name: prometheus-bridge
version: "1.0.0"
description: "Bridges Prometheus for natural language metric queries"
exposes:
- name: query_prometheus
description: "Run a PromQL query"
parameters:
query: { type: string, required: true }
- name: get_alerts
description: "List active Prometheus alerts"
http_bridge:
- tool_name: query_prometheus
method: GET
url: "http://localhost:9090/api/v1/query"
query_params: { query: query }
- tool_name: get_alerts
method: GET
url: "http://localhost:9090/api/v1/alerts"
runtime:
trust_tier: 1 # enforced: GET/HEAD only, no writes, no cross-agent calls运行它:
heddle run agents/prometheus-bridge.yaml克劳德现在可以用自然语言查询普罗米修斯。
当前演示环境: 通过单个MCP连接,来自9个活动配置的46个工具(共11个配置,2个不兼容传输除外)。
daily-ops (T3): daily_briefing, system_health_check, threat_landscape
gitea-api-bridge (T1): list_user_repos, list_repo_issues
grafana-bridge (T1): list_dashboards, get_dashboard, list_datasources, get_alert_rules, grafana_health
ai-platform (T1): health, ai_status, routing_stats, routing_costs, list_apps, detect_drift, ...
ollama-bridge (T2): list_models, list_running, generate, show_model
prometheus-bridge(T1): query_prometheus, query_range, get_targets, get_alerts, get_metric_names
rsshub-bridge (T1): get_hacker_news, get_github_trending, search_arxiv, get_reuters_news
vram-orchestrator(T3): vram_status, smart_load, smart_generate, optimize_vram, unload_model, model_library
intel-rag-bridge (T2): ask_intel, get_dossier, get_trending, get_patterns, get_communities, get_stats, ...安全始终处于开启状态。 每个工具调用都要经过信任执行、凭证代理和审计日志记录。
示例:T1(只读)代理尝试POST,但被阻止:
{
"event": "trust_violation",
"agent": "reader",
"trust_tier": 1,
"action": "http_POST",
"detail": "T1 agent cannot use POST. Allowed: ['GET', 'HEAD', 'OPTIONS']",
"severity": "high",
"chain_hash": "92c189e3..."
}请求被拒绝,违规行为被记录,哈希链将此条目链接到之前和之后的每个事件。
______________________________________________________________________
Why Heddle Instead Of...
| | 赫德尔 | 手写FastMCP | OpenAPI包装器生成器 | n8n/工作流工具 | |:--:|:--:|:--:|:--:|:--:| | 新工具 |编写YAML,完成|为每个工具编写Python处理程序|生成存根,然后进行自定义|拖动节点、接线| | 安全 |信任层、凭证代理、审计日志、输入验证、配置签名——全部内置|您自己构建|无|仅平台级身份验证| | AI可生成 | heddle generate "wrap the Gitea API" → 20s内有效的配置|LLM可以编写代码但无法验证它|不是为LLM生成而设计的|仅可视,不可编写脚本| | 凭证 | {{secret:key}} 在运行时解析,从不在config|硬编码或环境变量|硬编码或者环境变量|平台凭据存储中解析| | 审计跟踪 |哈希链,防篡改,记录每次调用|您自己构建|无|仅记录平台日志| | 可组合性 |配置成为MCP工具,将它们网格在一起|手动接线|独立服务|工作流范围|
Heddle用于将API作为具有实际运行时控件的MCP工具公开,而不仅仅是连接。如果你只需要一个没有策略层的工具,手写的FastMCP更简单。如果您需要可视化工作流构建器,请使用n8n。Heddle介于这两个世界之间:声明性的像工作流工具,可编程的像框架,默认情况下是安全的。
______________________________________________________________________
运作原理
Current Status
Heddle今天可以做什么,部分实施了什么,还有计划做什么:
| 图层 | 状态 | 详细信息 |
|---|---|---|
| 配置→ MCP服务器 | 已发货 | YAML配置成为具有HTTP桥接的类型化MCP工具 |
| 信任级别(T1-T4) | 已发货 | 执行运行时,阻止并记录违规行为 |
| 凭证代理 | 已发货 | 根据配置秘密策略, {{secret:key}} 决心 |
| 审计日志记录 | 已发货 | 哈希链JSON行,防篡改 |
| 输入验证 | 已发货 | 类型检查、注射检测、速率限制 |
| 访问模式注释 | 已发货 | 在工具上读/写,T1在加载+运行时被阻止写 |
| 升级规则 | 已发货 | 有条件搁置参数阈值审查 |
| 配置签名 | 已发货 | HMAC-SHA256,篡改检测 |
| 配置隔离 | 已发货 | 人工智能生成的配置已提交审查 |
| AI配置生成器 | 已发货 | 自然语言→ 通过本地LLM验证YAML |
| 沙盒策略 | 部分的 | 容器配置生成存在;运行时隔离尚未实施 |
| 网络隔离 | 计划的 | 容器级网络实施 |
核心功能
声明性工具配置
在YAML中定义工具。Heddle使用Pydantic验证配置,生成类型化的MCP工具,并将HTTP与 {{param}} 模板渲染。跨字段验证在运行前捕获错误的配置。
AI配置生成器
用简单的英语描述你需要什么。本地LLM生成有效的YAML,Heddle根据模式规则对其进行验证,失败时重试,并保存结果。
$ heddle generate "agent that wraps the Gitea API" --model qwen3:14b
✓ Generated gitea-api-bridge.yaml (2 tools) in 20.3sSecurity Architecture
Heddle的安全控制映射到OWASP代理前10名、NIST AI RMF和MAESTRO。查看完整 威胁模型 和 安全控制参考.
| 控制 | 它做什么 | 框架 |
|---|---|---|
| 信任级别 | 4个级别(观察员→ 特权)、运行时强制、阻止和记录违规 | OWASP代理#3 |
| 凭证代理 | 根据配置的秘密访问策略, {{secret:key}} 在运行时解析,从不存储在YAML中 | OWASP代理#7 |
| 审核日志 | 哈希链JSON行,防篡改,5种事件类型,秘密编辑 | OWASP代理#9 |
| 输入验证 | 类型检查、长度限制、注入模式检测(shell、SQL、LLM提示符) | OWASP代理#1 |
| 配置签名 | 所有代理配置上的HMAC-SHA256,篡改检测 | OWASP代理#8 |
| 配置隔离 | 人工智能生成的配置在推广前进行审查 | OWASP代理#8 |
| 速率限制 | 每个工具每个配置的滑动窗口 | OWASP代理#4 |
| 沙盒策略 | Docker容器配置生成和网络策略(计划实施) | OWASP代理#6 |
| 升级规则 | 当参数与阈值或模式匹配时,有条件保留以供审查 | OWASP代理#3 |
______________________________________________________________________
入门包
共同事务的现成配置。复制一个到 agents/,更新基本URL或凭据,验证并运行。看 包装/ 查看完整文档。
| 包 | 工具 | 信任 | 描述 |
|---|---|---|---|
| 普罗米修斯 | 5 | T1只读 | PromQL查询、目标、警报、指标发现 |
| 石墨烯 | 5 | T1只读 | 仪表板、数据源、警报规则 |
| git锻造厂 | 3 | T1只读 | 仓库,问题(Gitea/GitHub/Forgejo) |
| 奥拉玛 | 4 | T2工人 | 模型列表、文本生成、VRAM状态 |
| 索纳尔 | 6 | T1只读 | 电视库、下载队列、搜索、日历、历史记录 |
| 拉达尔 | 6 | T1只读 | 电影库、下载队列、搜索、日历、历史记录 |
cp packs/prometheus.yaml agents/
heddle validate agents/prometheus.yaml
heddle run agents/prometheus.yaml --port 8200高级示例
这些显示Heddle超越了简单的API桥接。
工具网格
多个配置共享到Claude Desktop的单个MCP连接。网格启动器加载所有配置,合并工具,并通过一个stdio传输提供服务。
VRAM编排器
一个更高信任度的代理,管理Ollama和本地GGUF模型库中的GPU内存,包括VRAM受限时的智能加载和自动驱逐。
日常运营协调人
编排代理并行查询Prometheus、RAG搜索API和Ollama,然后将每日操作简报与本地模型合成。
网络仪表盘
FastAPI+React仪表板,用于网格拓扑、代理状态、实时审计流、凭证策略和配置签名。
______________________________________________________________________
Quick Start
克隆并安装
git clone https://github.com/goweft/heddle.git
cd heddle
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"验证并运行配置
heddle validate agents/prometheus-bridge.yaml
heddle run agents/prometheus-bridge.yaml --port 8200生成新配置
heddle generate "agent that wraps the weather API at localhost:5000"运行全网
heddle mesh agents/安全操作
heddle audit show -n 20
heddle audit verify
heddle sign all agents/
heddle sign verify agents/
heddle secrets policy
heddle sandbox agents/my-agent.yamlClaude桌面集成
将统一的Heddle网格暴露给Claude Desktop(也可以选择 CAS):
{
"mcpServers": {
"heddle-mesh": {
"command": "/path/to/heddle/venv/bin/heddle-mesh"
}
}
}CLI 参考
| 命令 | 描述 |
|---|---|
heddle run | 从YAML运行单个代理 |
heddle validate | 验证配置而不运行它 |
| `heddle generate " | |
| "` | 从自然语言生成配置 |
heddle mesh | 将所有代理作为统一网格启动 |
heddle list | 列出注册代理人 |
heddle registry | 显示所有已注册的工具 |
heddle info | 显示详细的代理信息 |
heddle probe | 在正在运行的MCP服务器上发现工具 |
heddle audit show | 检查审核日志条目 |
heddle audit verify | 验证哈希链的完整性 |
heddle secrets | 管理凭证代理 |
heddle sign | 签署并验证配置 |
heddle quarantine | 阶段AI生成的配置供审查 |
heddle sandbox | 显示生成的沙盒配置 |
项目结构
heddle/
├── agents/ # YAML agent configs
├── packs/ # Starter pack configs
├── docs/
│ ├── threat-model.md # Threat analysis, framework-mapped
│ └── security-controls.md
├── src/heddle/
│ ├── cli.py # CLI entrypoint
│ ├── config/ # Pydantic schema and YAML loader
│ ├── mcp/ # MCP server builder, client, registry
│ ├── runtime/ # Agent runner and mesh runtime
│ ├── generator/ # AI config generator and API discovery
│ ├── security/ # Trust, credentials, audit, validation,
│ │ # signing, sandbox, escalation
│ ├── agents/ # Custom higher-level handlers
│ └── web/ # Dashboard backend and frontend
├── tests/
└── pyproject.toml # Entry points: heddle, heddle-dashboard, heddle-mesh技术栈
Python 3.11+·FastMCP·FastAPI·Pydantic v2·httpx·Click·SQLite·Ollama
WEFT生态系统
Heddle是信任和政策层。堆栈的其余部分:
| 项目 | 语言 | 功能 |
|---|---|---|
| 化学文摘社 | Go | 对话代理Shell——对话生成工作区的终端TUI。Heddle添加了可选的信任执行和审计日志记录。 |
| 尝试 | Python | 预发布工件扫描器——在发布之前捕获源映射、秘密、调试工件。在GitHub市场上。 |
| 帐篷工人 | Rust | tenter v2——静态二进制,不需要运行时。 |
| 不剪切 | Rust | Fork散度检测器——揭示分叉代理代码库中安全机制被剥离的位置。 |
| 拉蒂纳 | Python | 代理内存中毒检测器。 |
| 渗色 | Python | 用于git存储库的AI作者身份检测器。 |
Heddle+CAS
CAS独立运行。Heddle集成是可选的,并添加了:
- 信任执行 -CAS调用的每一个工具都通过Heddle的分级系统
- 凭证经纪 —
{{secret:key}}解析,凭据从不在配置中 - 审核日志记录 --每个工作区操作的哈希链、防篡改记录
{
"mcpServers": {
"heddle-mesh": {
"command": "/path/to/heddle/venv/bin/heddle-mesh"
}
}
}许可证
麻省理工学院——见 许可证.
