技能潮 SkillTide 提交收录
官方说明7 个来源MCP 服务8 天前
enmanuelmag/heimdall-mcp

enmanuelmag/heimdall-mcp

Transparent MCP proxy that i
在 GitHub 查看 ↗直链 · 无中转页
配置模板(请按你的客户端调整)
claude mcp add heimdall-mcp -- npx -y heimdall-mcp
这是根据仓库名生成的可粘贴骨架,命令行参数与包名请以该项目 README 为准。
★ 数取值
11 ★ · enmanuelmag/heimdall-mcp · 取自 GitHub 搜索 API · (2026-10-16 20:00:20 核对)
来源明细
收录自 punkpeye/awesome-mcp-servers 榜单(我们从中收集的条目之一) · 条目类型:MCP 服务
收录与活跃
收录于 2026-10-09 · 最近见到 2026-10-16 · 共见到 32 次 · 被 7 个来源列出
评分构成
综合分 703 · 11 ★ · 7 个来源 · mcp
常见问题(答案都来自我们的记录)
怎么安装?
我们【没有】从该仓库取到安装命令(我们的 install 覆盖率只有约 4%)。请看它的 README 或 releases 页。
它适合谁 / 用来做什么?
我们把它归在这些标签下: MCP 服务。标签来自条目自身,不是我们强加的分类。
谁维护它、还在更新吗?
仓库 enmanuelmag/heimdall-mcp;我们收录于 2026-10-09;最近见到 2026-10-16。这里没有"官方认证"或"质量评级"——我们只记录来源与时间。
第三方质量标记

@cardor/heimdall-mcp

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

Transparent proxy for any MCP server. Intercepts all JSON-RPC messages, measures latency, stores traces in a configurable database, and enforces per-server allow/deny policies — without touching the original server.
Visit the website to view a full explanation, examples, and other tools!
Table of Contents
- @cardor/heimdall-mcp
- Table of Contents
- How it works
- Installation
- Policy config
- Config files
- Config format
- Merge strategy
- Argument policies
- Resource locks
- Host policies
- Limitations
- What happens when a call is blocked
- Server name
- Policy config in library mode
- Usage modes
- Mode 1 — CLI wrapping a subprocess (stdio)
- Mode 2 — CLI wrapping a remote HTTP server
- Mode 3 — CLI wrapping a remote SSE server
- Mode 4 — Library for developers
- Stores
- SQLite
- PostgreSQL
- MySQL
- What gets recorded
- Jaeger UI (OTLP)
- 1. Start Jaeger
- 2. Add --otlp to your config
- 3. Open Jaeger UI
- Custom interceptors
- CLI reference
- start
- init
- health
- Tracing reference
- Roadmap
---
How it works
The proxy always exposes **stdio** to the MCP client and speaks the correct transport to the real server. Every request/response pair is converted into a span with timing, attributes, and the input/output body.
---
Installation
---
Policy config
Drop a heimdall.config.ts in your project root and define exactly which tools, prompts, and resources each MCP server is allowed to expose to the agent — at the proxy layer, without touching the server code.
Config files
| Scope | Path | Purpose |
|--------|------|---------|
| Local | {project-root}/heimdall.config.{ts,js,mjs,cjs,json} | Per-repo rules |
| Global | ~/.config/heimdall/heimdall.config.{ts,js,mjs,cjs,json} | User/org-wide rules |
Both are optional. If neither exists, the proxy stays fully transparent (backward compatible).
Config format
TypeScript configs are loaded via jiti without pre-compilation. Also works as .js, .mjs, .cjs, or .json.
Merge strategy
When both local and global configs exist, they merge with **security-first semantics**:
| Rule | Behavior |
|---|---|
| **Deny → union** | Denied by either = denied. Global deny cannot be overridden locally. |
| **Allow → intersection** | Must pass both. * or [] means "defer to the other side." |
| **Deny beats allow** | Within any single config, deny always wins. |
The global config enforces a floor the team can't accidentally loosen. Local configs can only add *more* restrictions, never fewer.
Argument policies
toolPolicies adds a second enforcement layer on top of name-level tools rules. Instead of just deciding _which_ tools are callable, you can constrain _what arguments_ are allowed on each call.
ArgConstraint fields
| Field | Type | Default | Description |
|---|---|---|---|
| isPath | boolean | false | Enables path-aware matching (containment check) instead of regex |
| allow_pattern | string \| string[] | — | Arg must match at least one pattern to pass |
| deny_pattern | string \| string[] | — | Arg is blocked if it matches any pattern; deny wins over allow |
| array_mode | 'all' \| 'any' | 'all' | For array-typed args: require all items to pass (all) or at least one (any) |
| case_sensitive | boolean | true | Regex flag; not applied to path-root matching |
| warn_only | boolean | false | Record the violation in the OTel span without blocking the call |
Path scoping with isPath: true
When isPath: true, patterns that look like directory roots are treated as containment checks rather than regex expressions:
| Pattern | Meaning |
|---|---|
| "./" or "." | Arg must resolve within process.cwd() |
| "/some/dir" | Arg must resolve within /some/dir |
| "~" / "${HOME}/projects" | Resolved to homedir |
| "${CWD}/data" | Resolved to cwd + /data |
The resolver uses path.resolve + fs.realpathSync to prevent ../ traversal and symlink escapes. Patterns that don't look like directory roots (e.g. "^/etc/.*") fall back to regex matching.
warn_only mode
Useful for gradual rollout: set warn_only: true to observe violations without blocking. The call is forwarded and the following attributes appear in the OTel span:
Switch to warn_only: false (the default) when you're ready to enforce.
Dot-notation for nested args
Use dot notation to constrain fields inside nested parameter objects:
---
Resource locks
Prevent concurrent tools/call invocations from racing on the same resource (e.g. two agents writing the same file at once). Configure a locks block per server, keyed by tool name.
Use cases
Concrete scenarios where resource locks solve a real coordination problem:
来源
awesome · https://github.com/enmanuelmag/heimdall-mcp
按领域浏览
MCP 服务
Traction
11 ★
收录于
昨天

更多MCP 服务

查看MCP 服务全部 5,525 条 →

所属领域与标签

每个标签都能点进去看同类的全部条目。数字是当前库里的真实条数。

浏览全部领域 →

← 返回索引