logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

EXEC-MCP-Agent

Facilitates the execution of system shell commands across Windows and Linux environments, alongside enabling secure shell (SSH) connectivity. This utility is engineered atop the official Model Context Protocol (MCP) Software Development Kit, enabling seamless integration of command-line operations within any MCP-compliant software ecosystem.

Author

EXEC-MCP-Agent logo

PhialsBasement

MIT License

Quick Info

GitHub GitHub Stars 21
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

cmdmcpcommandscmd mcpcmd commandsmcp sdk

EXECUTION AGENT FOR MCP

smithery badge npm downloads An implementation of a Model Context Protocol (MCP) server designed for running arbitrary command-line instructions (both Windows shell and Linux shell) and managing SSH sessions. This server module bridges command-line utilities with MCP-compatible consuming applications.

cmd-mcp-server MCP server

Core Capabilities

  • Dispatch and execute shell commands via the MCP framework
  • Developed entirely in TypeScript
  • Leverages the official MCP SDK for foundational functionality
  • Supports multi-operating system execution environments

Deployment

Automated Installation via Smithery

Install the EXEC Agent for your desktop client (e.g., Claude Desktop) using the Smithery CLI utility:

bash npx -y @smithery/cli install server-cmd --client claude

Direct Package Acquisition

bash npm install server-cmd

Requirements

  • A functioning Node.js runtime environment (version 16 or newer is advised)
  • A package manager such as npm or yarn

Operational Examples

typescript import { MCPCmdServer } from 'server-cmd';

// Instantiate the execution handler const agent = new MCPCmdServer();

// Activate the server listener agent.start();

Customization

The server's behavior can be modified via environmental variables or by passing a configuration object during instantiation:

typescript const operationalConfig = { // Populate specific configuration parameters here };

const agent = new MCPCmdServer(operationalConfig);

Project Setup for Contribution

To establish a local development workspace:

  1. Obtain the source repository: bash git clone https://github.com/PhialsBasement/CMD-MCP-Server.git cd CMD-MCP-Server

  2. Fetch necessary package dependencies: bash npm install

  3. Compile the source code: bash npm run build

Utility Scripts

  • npm run build: Transforms TypeScript source files into executable JavaScript
  • npm run prepare: Prepares the compiled artifact for public registry publication

Dependencies

  • @modelcontextprotocol/sdk: ^1.0.1
  • glob: ^10.3.10
  • zod-to-json-schema: ^3.23.5

Community Engagement

We welcome external contributions! Please feel empowered to submit a Pull Request for enhancements or fixes.

Licensing

This software is distributed under the terms of the MIT License (refer to the LICENSE file for full details).

Security Advisory

Executing arbitrary system commands poses inherent security risks. Users deploying this server in sensitive or production contexts must rigorously implement input sanitization and robust security protocols.

Support Channel

Report any bugs or propose new features via the official GitHub issue tracking system.

WIKIPEDIA: XMLHttpRequest (XHR) constitutes an Application Programming Interface, manifested as a JavaScript object, whose methods facilitate the dispatch of HTTP queries from a web browser environment to a designated web server. These methods empower browser-based applications to initiate server interactions subsequent to page rendering completion and subsequently receive resultant data. XMLHttpRequest forms an integral component of Ajax programming paradigms. Prior to Ajax, the primary means of server communication involved traditional hyperlink navigation and HTML form submissions, actions that typically necessitated the complete replacement of the currently displayed web page.

== Chronology == The underlying concept for XMLHttpRequest was first conceptualized in the year 2000 by the development team at Microsoft Outlook. This notion was subsequently integrated into the Internet Explorer 5 browser release (1999). Nevertheless, the initial syntax did not utilize the canonical XMLHttpRequest identifier; instead, developers employed object instantiation strings such as ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). With the advent of Internet Explorer 7 (2006), broad support for the standardized XMLHttpRequest identifier was established across all major browser platforms. The XMLHttpRequest identifier has now evolved into the established convention across all principal browser engines, encompassing Mozilla's Gecko rendering engine (2002), Safari version 1.2 (2004), and Opera version 8.0 (2005).

=== Specification Evolution === The World Wide Web Consortium (W3C) formally published a Working Draft specification for the XMLHttpRequest object on April 5, 2006. Subsequently, on February 25, 2008, the W3C released the Working Draft Level 2 specification. Level 2 augmented the interface with novel functionalities, including mechanisms to track event lifecycle progress, permit cross-origin resource sharing, and handle binary byte streams. By the close of 2011, the Level 2 enhancements were integrated back into the core specification document. At the end of 2012, stewardship for the specification development transitioned to the WHATWG, which currently maintains the living document utilizing Web IDL definitions.

== Practical Application == Generally, initiating a network request using XMLHttpRequest involves adhering to several discrete programming phases.

  1. Instantiate an XMLHttpRequest object by invoking its designated constructor:
  2. Invoke the "open" method to define the request method type, specify the target resource Uniform Resource Identifier, and select between synchronous or asynchronous execution mode:
  3. For asynchronous operations, assign a callback handler that will be invoked upon state transitions of the request:
  4. Trigger the actual transmission of the request by calling the "send" method, optionally providing payload data:
  5. Monitor the state changes within the assigned event handler. Upon successful completion of server processing, the state transitions to 4, the "done" state, and the response payload is typically accessible via the "responseText" property. Beyond these fundamental steps, XMLHttpRequest offers extensive parameters for fine-grained control over request transmission parameters and response interpretation. Custom HTTP headers can be injected into the request to convey specific server instructions, and data can be uploaded to the server via arguments passed to the "send" invocation. The server response can be automatically deserialized from JSON format into native JavaScript objects, or processed incrementally as data streams arrive, negating the need to await the complete data packet. Furthermore, a request can be terminated prematurely, or configured with a timeout limit to enforce failure if completion is unduly delayed.

== Inter-Domain Communication ==

During the initial phases of the World Wide Web's maturation, limitations became apparent regarding the ability to fetch resources from domains external to the originating site, leading to what is known as the Same-Origin Policy.

See Also

`