MCP服务器管理工具

Heimdall是一个轻量级服务,用于管理本地MCP服务器,并通过单一命令安装,支持多客户端配置共享。

  • by shinzo-labs
  • JavaScript
  • 本地部署
  • 19 星标
  • 更新于
在 GitHub 查看 shinzo-labs/heimdall

使用说明

海姆达尔

Heimdall是一个轻量级的服务,用于管理本地 MCP服务器 并且可以安装一个 npx 命令。可以为您的MCP客户端授权特定的MCP服务器工具,并且设备上的所有MCP客户端都可以访问相同的配置。

安装

⚠️ 注: 我们强烈建议在安装之前备份MCP服务器配置,以防止意外丢失凭据。

安装脚本执行一些关键操作:

  • 移动 mcpServers 从您指定的路径配置JSON ~/.heimdall/config.json
  • 为插入单个配置 heimdall 代替之前的 mcpServers 配置路径
  • 在以下位置初始化控件 ~/.heimdall/controls.json 授权所有当前服务器上的所有方法

看 配置 用于修改步骤 ~/.heimdall/controls.json 限制给定服务器的授权工具,并向添加新服务器 ~/.heimdall/config.json.

通过NPX(推荐)

  1. 运行安装脚本(如果没有给出路径,则生成空配置):
npx @shinzolabs/heimdall setup <optional: path/to/current/config.json>

通过本地实例

  1. 下载软件包:
git clone https://github.com/shinzo-labs/heimdall.git
  1. 安装并构建依赖关系:
cd heimdall && pnpm i && pnpm build
  1. 运行安装脚本(如果没有给出路径,则生成空配置):
pnpm run setup <optional: path/to/current/config.json> <optional: path to `index.js` file in local Heimdall instance, ex. `/path/to/local/heimdall/dist/index.js`>

配置

编辑服务器列表

要添加或更新可用服务器,只需在以下位置更新配置 ~/.heimdall/config.json 作为你的常规 mcpServers 配置JSON。请注意,除非您还将服务器和授权工具添加到 ~/.heimdall/controls.json.

编辑授权工具

要将授权工具添加到新的或现有的服务器,请根据需要添加到 ~/.heimdall/controls.json Heimdall将在几秒钟后更新其内部配置。如果您的MCP客户端支持动态工具列表缓存,您应该看到它会自动更新授权工具。其他客户端(例如Claude Desktop)可能需要重新启动才能看到新工具。

这是的架构 ~/.heimdall/controls.json:

{
  "authorizedMcpServers": {
    "server1": {
      "authorizedTools": [
        "tool1",
        "tool2",
        ...
      ]
    },
    "server2": {
      "authorizedTools": [
        "tool1",
        "tool2",
        ...
      ]
    }

多个MCP客户端

如果在设备上运行多个MCP客户端,则可以设置以下内容 config.json 对于每个新客户端,在所有客户端上启用相同的授权工具(假设Heimdall已在设备上设置):

{
  "mcpServers": {
    "heimdall": {
      "command": "npx",
      "args": [
        "@shinzolabs/heimdall"
      ]
    }
  }
}

故障排除

可用工具

一些MCP客户端在给定时间对代理可用的工具数量有限制。例如,Cursor在所有服务器上最多只支持40个工具,因此 authorizedTools 在……里面 controls.json 不能超过这个数字。

日志记录

对于正在运行的实例的日志,请转到 ~/.heimdall/logs每个MCP客户端的Heimdall实例和子服务器的日志存储在由随机UUID标识的单独目录中。

孤儿程序

如果您的MCP客户端意外关闭或未能发送正确的 SIGTERM 关闭前向海姆达尔发出信号,可能会有孤儿 node (以及 npm)之后,您的设备上仍在运行的进程。目前,这些必须手动强制停止。如果没有其他敏感 node 在设备上运行的进程中,您可以将此命令用作后清理:

pkill -aif node

贡献

欢迎并鼓励捐款。联系austin@shinzolabs.com有任何问题、意见或疑虑。