Skip to main content
Glama
KevinLvLight

envmgr-mcp-server

by KevinLvLight

envmgr-mcp-server

通过 SSH 和浏览器访问管理多套命名环境的 MCP 服务器,供 Claude 等 LLM 直接调用。

提供三个工具:

  • envmgr_list — 列出所有已配置环境(支持按 type 过滤)

  • envmgr_ssh — 在指定环境上通过 SSH 执行 shell 命令

  • envmgr_browser — 返回指定环境的浏览器 URL 和登录凭据(供 Playwright / chrome-devtools-mcp 使用)


安装

npm install -g @kikilight/envmgr-mcp-server
claude mcp add -s user envmgr-mcp-server -- envmgr-mcp-server

完成后重启 Claude Code 即可使用。

升级到新版本:npm install -g @kikilight/envmgr-mcp-server@latest


Related MCP server: mcp-ssh

配置环境

首次运行时,若未找到配置文件,服务会自动生成一份示例配置:

  • Windows: %USERPROFILE%\.config\envmgr\envs.json

  • macOS / Linux: ~/.config/envmgr/envs.json

按需编辑该文件即可,格式如下:

{
  "envs": {
    "prod": {
      "type": "production",
      "description": "生产环境",
      "ssh": {
        "host": "10.0.0.1",
        "user": "root",
        "password": "yourpassword",
        "port": 22
      },
      "browser": {
        "url": "https://admin.example.com",
        "username": "admin",
        "password": "yourpassword"
      }
    }
  }
}

sshbrowser 均为可选,一个环境可同时拥有两者或只有其一。


开发 & 打包(开发者)

npm install
npm run build    # tsc 编译 → dist/
npm run dev      # tsx watch 模式,自动重载

发布到 npm:

npm run build
npm publish

Available Tools

3 tools
envmgr_browser获取环境浏览器访问信息A
Read-onlyIdempotent

返回指定环境的浏览器访问 URL 和认证凭据。

输出的结构化信息可供 Playwright、chrome-devtools-mcp 等浏览器自动化工具使用。 使用流程:

  1. 调用 envmgr_browser 获取 url / username / password

  2. 用浏览器自动化工具导航到 url

  3. 填写 username 和 password 完成登录

ParametersJSON Schema
NameRequiredDescriptionDefault
envYes环境名称,与 envmgr_list 返回的名称一致

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds context by specifying the return fields (url, username, password) and the intended reuse in automation tools, which goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with a one-sentence summary, followed by a succinct numbered usage flow. Each sentence contributes to understanding the tool's purpose and usage, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter, strong annotations, and no output schema, the description covers the return values and how to use them, which is sufficient for an agent to invoke the tool. Minor gaps like error handling for invalid env names exist but do not undermine completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'env' parameter, which already explains that it must match an environment name from envmgr_list. The description does not add any extra parameter meanings, aligning with the baseline 3 for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'returns browser access URL and authentication credentials for the specified environment,' which is a specific verb+resource pairing. It also distinguishes itself from siblings (envmgr_list, envmgr_ssh) by focusing on browser automation access and usage flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a clear usage flow: call this tool to get URL/username/password, then use browser automation tools like Playwright. It implies the intended context but does not explicitly contrast with alternatives (e.g., 'use envmgr_ssh for SSH access'), so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

envmgr_list列出环境A
Read-onlyIdempotent

列出所有已配置的环境及其连接信息。 配置文件路径:/root/.config/envmgr/envs.json(可通过 ENVMGR_CONFIG 环境变量覆盖)。

返回每个环境的:名称、类型、描述、SSH 状态、浏览器状态。密码不返回。

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNo按环境类型过滤,不传则返回所有

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description adds valuable context: the config file path, the ability to override via ENVMGR_CONFIG, and the explicit statement that passwords are not returned. These details disclose behavioral traits not captured in annotations, and there is no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: the first sentence states the purpose, and the second provides configuration path, return fields, and an important exclusion (passwords). Every sentence adds value, and the content is front-loaded with the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with one optional filter and robust annotations, the description is complete. It specifies the exact returned fields, the configuration path, and the password exclusion, compensating for the lack of an output schema. No missing critical information for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'type' has a complete description in the schema ('按环境类型过滤,不传则返回所有'), providing full coverage. The main description does not discuss the parameter, but since schema coverage is 100%, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly uses the verb '列出' (list) with the resource 'environments', and even enumerates the returned fields (name, type, description, SSH status, browser status). This unambiguously distinguishes it from sibling tools like envmgr_ssh and envmgr_browser, which perform connection actions rather than listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for viewing configured environments but does not explicitly state when to use this tool versus envmgr_ssh or envmgr_browser. There is no mention of alternatives, exclusion criteria, or specific scenarios, so the guidance remains implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

envmgr_ssh在环境执行 SSH 命令A
Destructive

通过 SSH 在指定环境上执行 shell 命令,返回命令输出。

使用场景:

  • 查看服务日志:tail -100 /data/logs/hillos-core/log-error.log

  • 检查进程状态:ps aux | grep java

  • 查看磁盘空间:df -h

  • 统计日志错误:grep -c 'ERROR' /data/logs/xxx/log-error.log

注意:命令在 root 权限下执行,请谨慎使用破坏性命令。

ParametersJSON Schema
NameRequiredDescriptionDefault
envYes环境名称,与 envmgr_list 返回的名称一致
commandYes要执行的 shell 命令
timeout_secondsNo超时秒数,默认 30,最大 120

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable context beyond annotations: it notes commands run as root and warns to use destructive commands with caution, complementing the destructiveHint and readOnlyHint annotations. It also states the output is the command output, providing basic behavioral expectations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the primary action. The bulleted usage examples are useful but could be trimmed; still, each line contributes meaningful guidance. Overall, it is efficient and well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward tool with no output schema, the description covers the core details: what it does, common use cases, and a safety warning about root privileges. It lacks explicit mention of error handling or return format specifics, but given the simple nature, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description reinforces the env parameter by mentioning '与 envmgr_list 返回的名称一致' (which also appears in the schema) and offers example commands, but adds no novel parameter-level semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes shell commands via SSH on a specified environment and returns command output. It explicitly differentiates from siblings (envmgr_list lists environments, envmgr_browser for browsing) by making the action and resource specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides concrete usage scenarios (e.g., tail logs, check processes, df -h) that imply when this tool is appropriate. It does not explicitly state when-not-to-use or name alternatives, but the context and sibling names make the intended usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv1.0.0
    • First observedenvmgr_browser
    • First observedenvmgr_list
    • First observedenvmgr_ssh

TDQS

A4.3/5.0
Disambiguation5/5

Each tool serves a distinct purpose: envmgr_list enumerates environments, envmgr_ssh executes commands, and envmgr_browser provides browser access credentials. The descriptions clearly separate these functions with no overlapping scope.

Naming Consistency4/5

All tools share the envmgr_ prefix, making the namespace clear. The second part mixes a verb (list) with nouns (ssh, browser), which is a minor inconsistency, but the pattern remains predictable and readable.

Tool Count5/5

With only three tools, the server is tightly scoped to its purpose of providing environmental access. Each tool is necessary and the count is not excessive or inadequate for the domain.

Completeness4/5

The server covers the primary lifecycle of listing environments and accessing them via SSH or browser. Minor gaps such as environment add/remove or update exist, but these are likely managed externally via config files, so the surface is sufficient for its intended use.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server for infrastructure discovery and remote management, enabling SSH command execution, file transfer, log tailing, and machine/service inventory with a companion web dashboard.
    2
    -
  • A
    license
    A
    quality
    B
    maintenance
    Manages multiple SSH servers through a local workspace with MCP tools, executing commands and transferring files securely with credential isolation.
    9
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/KevinLvLight/envmgr-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server