About mcp-server-commands
mcp-server-commands is an MCP server that runs arbitrary shell commands on behalf of MCP clients. It suits developers who want an agent to execute commands in a chosen working directory. The README gives little detail on access controls or safety limits.
Key features
- 01Runs arbitrary command line commands
- 02Accepts a --cwd option for the working directory
- 03Stdio, SSE, and Streamable HTTP transports
- 04Installable and runnable through npx
Use cases
- 01Running build or test commands from an MCP client in a project
- 02Executing commands on a remote host through an HTTP endpoint
MCP support
The server exposes command execution to MCP clients. Clients connect over stdio or through the /sse and /mcp remote endpoints.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
2Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| cwd | string | No | Current working directory, leave empty in most cases |
| command | string | Yes | Command with args |
Details
From the project READMECommands MCP Server
A Model Context Protocol (MCP) server that provides execuate arbitrary commands.
Requirements
- Node.js 18 or newer
- VS Code, Cursor, Windsurf, Claude Desktop or any other MCP client
Getting started
Local (Stdio)
First, install the Commands MCP server with your client. A typical configuration looks like this:
{
"mcpServers": {
"commands": {
"command": "npx",
"args": [
"-y",
"@agent-infra/mcp-server-commands@latest",
"--cwd",
"/tmp"
]
}
}
}
Install in VS Code
You can also install the Commands MCP server using the VS Code CLI:
# For VS Code
code --add-mcp '{"name":"commands","command":"npx","args":["@agent-infra/mcp-server-commands@latest"]}'
After installation, the Commands MCP server will be available for use with your GitHub Copilot agent in VS Code.
Install in Cursor
Go to Cursor Settings -> MCP -> Add new MCP Server. Name to your liking, use command type with the command npx @agent-infra/mcp-server-commands. You can also verify config or add command like arguments via clicking Edit.
{
"mcpServers": {
"commands": {
"command": "npx",
"args": [
"-y",
"@agent-infra/mcp-server-commands@latest"
]
}
}
}
Install in Windsurf
Follow Windsuff MCP documentation. Use following configuration:
{
"mcpServers": {
"commands": {
"command": "npx",
"args": [
"-y",
"@agent-infra/mcp-server-commands@latest"
]
}
}
}
Install in Claude Desktop
Follow the MCP install guide, use following configuration:
{
"mcpServers": {
"commands": {
"command": "npx",
"args": [
"-y",
"@agent-infra/mcp-server-commands@latest"
]
}
}
}
Remote (SSE / Streamable HTTP)
At the same time, use --port $your_port arg to start the browser mcp can be converted into SSE and Streamable HTTP Server.
# normal run remote mcp server
npx @agent-infra/mcp-server-commands --port 8089
You can use one of the two MCP Server remote endpoint:
- Streamable HTTP(Recommended):
http://127.0.0.1:8089/mcp - SSE:
http://127.0.0.1:8089/sse
And then in MCP client config, set the url to the SSE endpoint:
{
"mcpServers": {
"commands": {
"url": "http://127.0.0.1:8089/sse"
}
}
}
url to the Streamable HTTP:
{
"mcpServers": {
"commands": {
"type": "streamable-http", // If there is MCP Client support
"url": "http://127.0.0.1:8089/mcp"
}
}
}
In-memory call
If your MCP Client is developed based on JavaScript / TypeScript, you can directly use in-process calls to avoid requiring your users to install the command-line interface to use Commands MCP.
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { InMemoryTransport } from '@modelcontextprotocol/sdk/inMemory.js';
// type: module project usage
import { createServer } from '@agent-infra/mcp-server-commands';
// commonjs project usage
// const { createServer } = await import('@agent-infra/mcp-server-commands')
const client = new Client(
{
name: 'test commands client',
version: '1.0',
},
{
capabilities: {},
},
);
const server = createServer();
const [clientTransport, serverTransport] = InMemoryTransport.createLinkedPair();
await Promise.all([
client.connect(clientTransport),
server.connect(serverTransport),
]);
// list tools
const result = await client.listTools();
console.log(result);
// call tool
const toolResult = await client.callTool({
name: 'run_script',
arguments: {
interpreter: 'node',
script: 'console.log(1+1);',
},
});
console.log(toolResult);
Developement
Access http://127.0.0.1:6274/:
npm run dev
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.