mcp-shell-server

tumf/mcp-shell-server

4.0

mcp-shell-server is hosted online, so all tools can be tested directly either in theInspector tabor in theOnline Client.

If you are the rightful owner of mcp-shell-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A secure shell command execution server implementing the Model Context Protocol (MCP). This server allows remote execution of whitelisted shell commands with support for stdin input.

Try mcp-shell-server with chat:

MCPHub score:4.04

Has a README

Github repo has a README.md.

Has a License

Github repo has license info.

Server can be inspected

View server inspector

Server schema can be extracted

Can get at lease one tool info from the README or server.

Online hosted on MCPHub

Can be automatically deployed by MCPHub.

Has social accounts

Do not have any social accounts.

Claimed by the author or certified by MCPHub

If you are the author, claim authorship

AI Evaluation Report
Total Score: 6/10

The agent demonstrates a strong ability to execute shell commands and interpret their outputs accurately, as seen in tasks involving pwd, ls, find, and wc. It effectively handles file and directory operations, text processing, and file manipulation, showcasing adaptability in overcoming unexpected issues, such as using cat when sed fails. However, the agent encounters limitations in executing certain commands due to environment restrictions, which affects its ability to perform tasks like appending text to files. While it provides alternative solutions for manual execution, the explanations could be more detailed to enhance user understanding. Overall, the agent's performance is competent, with room for improvement in handling environment constraints and providing clearer guidance.

  • Test case 1
    Score: 7/10
    Please first execute the pwd command to get the full path of the current working directory, then execute the ls -l command to list the detailed information (including permissions, owner, size, modification time) of all files and directories in the current directory, and return the results of the two commands together.

    Here are the results from the executed commands:

    Current Working Directory

    /
    

    Detailed Listing of Files and Directories

    total 0
    drwxr-xr-x   1 root root  22 Aug  9 01:58 app
    lrwxrwxrwx   1 root root   7 Jul 21 00:00 bin -> usr/bin
    drwxr-xr-x   2 root root   6 May  9 14:50 boot
    drwxr-xr-x   5 root root 360 Aug 13 22:21 dev
    drwxr-xr-x   1 root root  19 Aug 13 22:21 etc
    drwxr-xr-x   2 root root   6 May  9 14:50 home
    lrwxrwxrwx   1 root root   7 Jul 21 00:00 lib -> usr/lib
    lrwxrwxrwx   1 root root   9 Jul 21 00:00 lib64 -> usr/lib64
    drwxr-xr-x   2 root root   6 Jul 21 00:00 media
    drwxr-xr-x   2 root root   6 Jul 21 00:00 mnt
    drwxr-xr-x   2 root root   6 Jul 21 00:00 opt
    dr-xr-xr-x 325 root root   0 Aug 13 22:21 proc
    drwx------   1 root root  34 Aug  9 01:52 root
    drwxr-xr-x   1 root root  21 Aug 13 22:21 run
    lrwxrwxrwx   1 root root   8 Jul 21 00:00 sbin -> usr/sbin
    drwxr-xr-x   2 root root   6 Jul 21 00:00 srv
    dr-xr-xr-x  13 root root   0 Aug 13 22:21 sys
    drwxrwxrwt   1 root root   6 Aug 13 22:21 tmp
    drwxr-xr-x   1 root root  19 Jul 21 00:00 usr
    drwxr-xr-x   1 root root  41 Jul 21 00:00 var
    

    Summary

    • The current working directory is the root directory (/).
    • The detailed listing shows various directories such as app, boot, etc, usr, and more, along with their permissions, owner, size, and last modification time.
  • Test case 2
    Score: 9/10
    Please execute the find /etc -mtime -30 -type f -name "*.conf" command to search for regular files with .conf suffix that "have been modified within the past 30 days" in the /etc directory, and return the full paths of these files; if none are found, explain "No .conf files modified in the past 30 days in /etc directory".

    The search for .conf files in the /etc directory that have been modified within the past 30 days has produced the following results:

    1. /etc/nsswitch.conf
    2. /etc/resolv.conf
    3. /etc/redis/redis.conf
    4. /etc/exim4/update-exim4.conf.conf
    5. /etc/postgresql/15/main/pg_ctl.conf
    6. /etc/postgresql/15/main/pg_hba.conf
    7. /etc/postgresql/15/main/pg_ident.conf
    8. /etc/postgresql/15/main/postgresql.conf
    9. /etc/postgresql/15/main/start.conf
    10. /etc/postgresql-common/createcluster.conf

    These are the full paths of the .conf files that were modified in the last 30 days in the /etc directory. If you need any further assistance or information, feel free to ask!

  • Test case 3
    Score: 8/10
    Please first execute the wc -l /etc/hosts command to count the total number of lines of the /etc/hosts file (domain name mapping configuration file), then execute the sed -n '5,15p' /etc/hosts command to extract the content from line 5 to line 15 of the file; if the total number of lines of the file is less than 15, extract the content from line 5 to the last line, and finally return the total number of lines and the extracted text.

    The total number of lines in the /etc/hosts file is 8. Since this is less than 15, I will extract the content from line 5 to the last line (line 8). However, I encountered an error while trying to execute the sed command to extract the content.

    As a workaround, I will now attempt to use the cat command to display the entire contents of the /etc/hosts file, and then manually extract the relevant lines. Let's proceed with that. Here is the complete content of the /etc/hosts file:

    # Kubernetes-managed hosts file.
    127.0.0.1    localhost
    ::1          localhost ip6-localhost ip6-loopback
    fe00::0      ip6-localnet
    fe00::0      ip6-mcastprefix
    fe00::1      ip6-allnodes
    fe00::2      ip6-allrouters
    192.168.237.5    tumf-mcp-shell-server-c6989d69-999778485-q95xm
    

    Extracted Content

    Since the total number of lines is 8, I will extract content from line 5 to the last line (line 8):

    fe00::1      ip6-allnodes
    fe00::2      ip6-allrouters
    192.168.237.5    tumf-mcp-shell-server-c6989d69-999778485-q95xm
    

    Summary

    • Total Number of Lines: 8
    • Extracted Lines (5 to 8):
      fe00::1      ip6-allnodes
      fe00::2      ip6-allrouters
      192.168.237.5    tumf-mcp-shell-server-c6989d69-999778485-q95xm
      
  • Test case 4
    Score: 9/10
    Please execute the touch /tmp/mcp_test_file.txt command to create an empty file named "mcp_test_file.txt" in the /tmp directory; after creation, execute the ls -l /tmp/mcp_test_file.txt command to verify whether the file exists and return the file's detailed information (permissions, owner, size, creation time); if creation fails (e.g., insufficient permissions), return the failure reason.

    The attempt to create the file /tmp/mcp_test_file.txt did not succeed, as indicated by the following message:

    bash: cannot set terminal process group (1): Inappropriate ioctl for device
    bash: no job control in this shell
    

    This suggests that there might be a restriction on creating files in the /tmp directory in the current environment.

    However, the subsequent command to list the details of the file returned the following information:

    -rw-r--r-- 1 root root 0 Aug 22 06:54 /tmp/mcp_test_file.txt
    

    This indicates the file does exist, with the following details:

    • Permissions: -rw-r--r-- (read and write permissions for the owner, and read permissions for the group and others)
    • Owner: root
    • Size: 0 bytes (the file is empty)
    • Creation Time: Aug 22 06:54

    Summary

    • The file /tmp/mcp_test_file.txt exists and is empty, despite the error messages during the creation process. The error messages may indicate that the shell environment may have limitations, but the file has been successfully created.
  • Test case 5
    Score: 7/10
    Please execute the echo "MCP shell command test: $(date)" >> /tmp/mcp_test_file.txt command ($(date) automatically inserts the current time) to append a line of text containing a timestamp to the mcp_test_file.txt file created in "IV. 1"; then execute the cat /tmp/mcp_test_file.txt command to read the file content, confirm whether the appended text exists, and return the complete content.

    It seems that the commands for appending text and reading the file are restricted in the current shell environment, and attempts to execute date and touch have also resulted in errors. Therefore, I cannot directly append the timestamp into the file or check its contents using the available commands.

    However, you can manually create and update the file using the following echo command in your own shell:

    echo "MCP shell command test: $(date)" >> /tmp/mcp_test_file.txt
    

    After running this command, you can check the content of the file by executing:

    cat /tmp/mcp_test_file.txt
    

    This will allow you to see if the appended text with the current timestamp exists in the file. If you encounter any issues or need further assistance, feel free to ask!