NM

nodepick/mcp

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

2 stars 0 forks 品質 71 トレンド 16MIT

nodepick.ai mcp daemon

概要

mcpd is a lightweight Model Context Protocol (MCP) server written in Golang. It acts as a standard, secure entry point for AI agents (such as Claude, Gemini, or other host-level clients) to programmatically manage and configure Linux operating systems running inside virtual machines. It is built using the official Model Context Protocol Go SDK, ensuring compliance with the latest MCP specification protocol versions (including the 2026-07-28 protocol iteration). * : Built directly on top of github.com/modelcontextprotocol/go-sdk/mcp, natively exposing standardized transports, session life-cycles, and tool capability validation. * : Serves unencrypted plain HTTP by default on 127.0.0.1:8444. Designed to run behind a reverse proxy (e.g., Nginx, Caddy, Cloudflare Tunnel, or Envoy) where TLS is terminated. * : Protects endpoints using API keys. Support is built-in for key validation via X-API-Key headers, Authorization: Bearer headers, or fallback URL query parameters.

README

以下は原文 README の抜粋です。原文を見る。

mcpd (Node VM Management MCP Server)

mcpd is a lightweight Model Context Protocol (MCP) server written in Golang. It acts as a standard, secure entry point for AI agents (such as Claude, Gemini, or other host-level clients) to programmatically manage and configure Linux operating systems running inside virtual machines.

It is built using the official Model Context Protocol Go SDK, ensuring compliance with the latest MCP specification protocol versions (including the 2026-07-28 protocol iteration).


🚀 Key Features

  • Official SDK Compliance: Built directly on top of github.com/modelcontextprotocol/go-sdk/mcp, natively exposing standardized transports, session life-cycles, and tool capability validation.
  • HTTP / SSE Transport: Serves unencrypted plain HTTP by default on 127.0.0.1:8444. Designed to run behind a reverse proxy (e.g., Nginx, Caddy, Cloudflare Tunnel, or Envoy) where TLS is terminated.
  • Token Authentication & Middleware: Protects endpoints using API keys. Support is built-in for key validation via X-API-Key headers, Authorization: Bearer headers, or fallback URL query parameters.
  • Preservation of Unix Permissions: Automatically reads, stores, and restores original file permissions when writing or patching files in /etc, maintaining system security compliance.
  • Smart Service Handling: Non-zero exits from systemctl queries (like stopped service states) are reported as standard text outputs rather than tool invocation failures.

🛠️ Expose MCP Tools

mcpd registers and exposes the following tools:

Package Management

manage_packages

  • Description: Manages OS packages using standard package managers.
  • Behavior: Auto-detects the system’s package manager (apt-get, dnf, yum, or pacman) or lets you manually override.
  • Arguments:
    • action (string, enum: "install", "remove", "update", "upgrade") - The package action to perform.
    • packages (array of strings) - The list of packages (required for "install" and "remove").
    • package_manager (string, optional, enum: "auto", "apt-get", "dnf", "yum", "pacman") - Manual package manager selection.

User Management

manage_users

  • Description: Adds or deletes system users and assigns access levels.
  • Behavior: Creates home directories, sets login shells, assigns secondary groups, and securely sets plain passwords by piping to chpasswd (preventing cmdline credential leaks).
  • Arguments:
    • action (string, enum: "add", "delete") - Action to perform.
    • username (string) - Name of the user.
    • password (string, optional) - Login password (only for "add").
    • groups (array of strings, optional) - Secondary groups to join (only for "add").
    • shell (string, optional) - Default login shell (defaults to /bin/bash).

Service Management

manage_services

GitHub で README 全文を見る

インストール

This server does not publish a one-line install command.

Open the repository installation guide MCP 初心者?mcpskill.org のガイドから始めましょう →

設定

{ "mcpServers": { "vm-manager": { "command": "ssh", "args": [ "-t", "root@vm-ip-or-hostname", "/usr/local/bin/mcpd", "-f" ] } } }