GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者提供的说明(英文原文)
Zero-inbound-port MCP gateway for managing distributed edge servers over reverse SSH tunnels
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"myrmex-hive": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/olafkfreund/myrmex-gateway:1.0.3",
"-config",
"/app/config/gateway_config.json"
]
}
}
}在终端中运行这条命令
claude mcp add myrmex-hive -- docker run -i --rm ghcr.io/olafkfreund/myrmex-gateway:1.0.3 -config /app/config/gateway_config.json粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"myrmex-hive": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/olafkfreund/myrmex-gateway:1.0.3",
"-config",
"/app/config/gateway_config.json"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"myrmex-hive": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/olafkfreund/myrmex-gateway:1.0.3",
"-config",
"/app/config/gateway_config.json"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日
注册名称已通过 GitHub 账户 olafkfreund 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(1.0.3)于4个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Docker。
同一分类中有:GitHub, Desktop Commander, Cloudflare MCP
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Myrmex Hive is a decentralized, secure, and geeky agent orchestration framework built on top of the Model Context Protocol (MCP). It is designed to securely monitor, query, and manage distributed edge servers, Docker hosts, and Kubernetes nodes without exposing any ingress ports on your target systems.
Myrmex Hive is designed for zero-trust environments where target edge systems (agents) must remain completely isolated from direct inbound network traffic.
flowchart TD
%% Node Definitions subgraph Edge ["Target Edge Node (Myrmex Agent)"] Agent["Myrmex Agent (CPU/Mem/Disk, strict allowlist)"] end
subgraph Gateway ["Central Hive Gateway"] SSHD["Secure SSHD Receiver (Port 2222)"] Orch["Myrmex Hive Orchestrator"] LLM["Ollama LLM (Gemma 4/2)"] end
Client["Client / CLI / Portal (Stdio / SSE MCP Interface)"]
%% Connections Agent -- "SSH Outbound Tunnel" --> SSHD SSHD -- "JSON-RPC over SSH channel" --> Orch Orch <--> LLM Client <--> Orch
%% Styling / Colors classDef edgeNode fill:#282828,stroke:#fabd2f,stroke-width:2px,color:#ebdbb2; classDef gatewayNode fill:#282828,stroke:#fe8019,stroke-width:2px,color:#ebdbb2; classDef clientNode fill:#282828,stroke:#b8bb26,stroke-width:2px,color:#ebdbb2;
class Agent edgeNode; class SSHD,Orch,LLM gatewayNode; class Client clientNode;
crypto/ssh package, enforcing secure Ed25519 signature validation and high-grade ciphers (ChaCha20-Poly1305, AES-GCM).os/exec) rather than invoking a shell (like /bin/sh or bash). This completely bypasses shell expansion, neutralizing shell injection vulnerabilities. Arguments are strictly validated against developer-defined regular expressions in config.json.Myrmex Hive supports Go, Nix, Linux, macOS, and Windows environments.
Add Myrmex Hive to your flake.nix inputs:
inputs.myrmex-hive.url = "github:olafkfreund/myrmex-hive";
You can then run the CLI tool directly:
nix run github:olafkfreund/myrmex-hive#myrmex -- --help
To deploy a Myrmex Agent or Gateway as a declarative systemd service on NixOS, enable the module in your configuration.nix:
{ inputs, config, pkgs, ... }: {
imports = [ inputs.myrmex-hive.nixosModules.default ];
services.myrmex-hive = { enable = true; role = "agent"; # Or "gateway" configPath = "/etc/myrmex/agent_config.json"; }; }
brew tap olafkfreund/myrmex
brew install --cask myrmex-hive
Installs all three binaries: myrmex (operator CLI), myrmex-gateway, and myrmex-agent.
*macOS only — Homebrew casks are not supported on Linuxbrew. On Linux use the deb/rpm packages from the releases page, the Nix flake, install.sh, or the container images.*
To download, compile, and configure the Agent as a background daemon (systemd on Linux, LaunchDaemon on macOS):
sudo ./install.sh
*The installer automatically compiles the agent binary, generates secure Ed25519 keys, writes the config.json, and boots the service.*
To install the Agent on Windows Server or Windows 10/11, launch PowerShell as Administrator and run:
Set-ExecutionPolicy Bypass -Scope Process -Force
.\install.ps1
*The PowerShell script compiles the binary, registers the agent configuration under `C:\ProgramData\mcp-agent\`, generates OpenSSH keys, and schedules a background task to launch the agent at system startup.*
Versioned container images and a Helm chart are published to GHCR on every release:
helm install hive oci://ghcr.io/olafkfreund/charts/myrmex-hive \
--version 1.2.0 \ --namespace myrmex --create-namespace
--version pins the chart and the images together (v1.0.1+; v1.0.0 predates image/chart publishing). See docs/DEPLOYMENT.md for the image list, a working install with agent keys, and the TLS/Service/agent_id caveats.
agent_config.json)Allows you to define a single gateway or a list of multiple gateway addresses for High Availability (HA) failover cycling:
{
"agent_id": "agent-nginx", "gateway_addr": "gateway-1.internal:2222", "gateway_addrs": [ "gateway-1.internal:2222", "gateway-2.internal:2222" ], "private_key_path": "/etc/mcp-agent/id_ed25519", "allowed_commands": [ { "name": "uptime", "args_regex": "^$" }, { "name": "systemctl", "args_regex": "^(status|restart) (nginx|postgresql)$" } ] }
gateway_config.json)Configures the receiver, TLS certs, OIDC/Tokens RBAC role mapping (admin, operator, read-only), and signed audit log path:
{
"listen_addr": ":2222", "http_addr": ":8080", "host_key_path": "host_key", "authorized_keys_path": "authorized_keys", "ollama_url": "http://localhost:11434", "ollama_model": "gemma4:e4b", "auth_token": "fallback_admin_token", "tokens": { "admin-token-123": "admin", "operator-token-456": "operator", "read-token-789": "read-only" }, "audit_log_path": "audit.log", "metrics_enabled": true }
*Note: If `audit_log_path` is set, Myrmex Gateway records all `/api/call` and `/api/chat` executions alongside a cryptographic signature generated using the Gateway's private SSH host key.*
*Note: oidc_issuer enables native OIDC/JWKS validation of real SSO tokens (opt-in; static tokens keep working alongside). See docs/SECRETS.md.*
*Note: metrics_enabled exposes a Prometheus endpoint at /metrics (opt-in; behind the same bearer-token auth as the rest of the API). Myrmex Gateway can also route threshold alerts to a webhook/Alertmanager and export OpenTelemetry traces over OTLP — all opt-in. See docs/OBSERVABILITY.md for the metric reference, a scrape_config, the Grafana dashboard, alert routing and tracing.*
Governance & scheduling (all opt-in, backward-compatible — empty/unset means off):
{
"risk_tiers": { "run_command": "admin", "service_control": "write" }, "require_approval_tiers": ["write", "admin"], "rate_limit_per_minute": 30, "scheduled_tasks": [ { "name": "nightly-disk-check", "agent_id": "agent-nginx", "prompt": "Report disk usage and flag anything over 85%", "interval_seconds": 3600 } ] }
- `risk_tiers` classifies each tool (`read`/`write`/`admin`). Built-in mutating tools (`service_control`, `run_command`) now default to a non-`read` tier even when unlisted, so they can't slip past gating unclassified; your explicit entries still override.
require_approval_tiers makes calls in those tiers wait for a second operator (myrmex approvals), and a new pending approval also pages your configured alert targets so it can't expire unnoticed. 15-minute TTL.rate_limit_per_minute caps tool calls in a sliding 60-second window.scheduled_tasks periodically run an LLM orchestration prompt against an agent and route the summary through the alerting subsystem — unattended fleet health checks. interval_seconds only (no cron).See Golden Path for how these six gates fit together and a staged rollout.
Myrmex Gateway fails closed: it refuses to start (or rejects a connection) rather than run in an insecure state. When preparing configs and keys, three rules are enforced:
authorized_keys entry, and rejects any key whose comment is empty or does not match the agent_id the agent presents. Generate every agent key with its agent-id as the comment: ssh-keygen -t ed25519 -f id_ed25519 -N "" -C "agent-nginx"
Then the public line in authorized_keys must keep that comment (ssh-ed25519 AAAA... agent-nginx).
audit_log_path is set but host_key_path is empty. Generate a stable host key once and point host_key_path at it: ssh-keygen -t ed25519 -f host_key -N "" -C "myrmex-gateway"
The Gateway also refuses to start without authorized_keys_path (no agent allowlist).
.gateway_hostkey (override with known_host_key_path) and require a matching key thereafter — no config change needed. To pin explicitly instead, set gateway_host_key in agent_config.json to the Gateway host public-key line: { "gateway_host_key": "ssh-ed25519 AAAA... myrmex-gateway" }
The local test fixtures (generate_keys.sh, setup_test_env.sh) already satisfy all three: agent keys are commented with their agent-ids, a persistent test_env/gateway/host_key is generated and mounted, and agents rely on TOFU.
Myrmex Hive orchestrates actions and interprets output using local LLMs.
An optional Docker setup is available via profiles in docker-compose.test.yml preloaded with the gemma4:e4b model (offline-ready):
docker compose --profile ollama-cpu up -d
docker compose --profile ollama-gpu up -d
ollama pull gemma4:e4b
http://localhost:11434). Link it in gateway_config.json.myrmex)The Go-based Myrmex CLI allows operators to interact with the gateway, view agents, invoke tools, and launch the assistant directly from the terminal.
--url: Gateway API base URL (default: https://localhost:8080)--token: Gateway token (or MYRMEX_TOKEN environment variable)-o, --output: Output format (text or json) myrmex status
myrmex agents
myrmex tools
myrmex call agent-nginx__get_metrics
只显示了开头部分;其余内容请在仓库中阅读