项目简介

MCP系统工具服务器是一个基于Model Context Protocol (MCP) 的应用后端,旨在为大型语言模型(LLM)客户端提供与本地系统交互的能力。它允许LLM通过标准化的接口执行shell命令、管理文件和目录、运行脚本等。

主要功能点

  • 终端命令执行: 允许LLM执行本地系统的shell命令。
  • 文件系统操作: 支持文件和目录的创建、读取、编辑、复制、移动、删除等操作。
  • 目录结构浏览: 提供获取指定目录的树状结构视图的能力。
  • 文件内容搜索: 实现类似grep的功能,在文件中搜索指定模式的内容。
  • Python脚本执行: 允许LLM执行位于工作空间内的Python脚本。
  • 组合任务: 支持在一个指定的工作目录下执行一系列文件或终端操作任务。

安装步骤

该服务器使用Node.js构建。请确保你的系统已安装Node.js (推荐v14或更高版本)。

  1. 下载并执行安装脚本。该脚本会自动下载服务器文件、检查依赖并配置命令到你的PATH。

    curl -o- https://github.com/Yaswanth-ampolu/smithery-mcp-server/raw/main/main/install-mcp.sh | bash
  2. 安装完成后,你将可以使用 'mcp-terminal' 命令来管理服务器。

    • 启动服务器: 'mcp-terminal start' (默认端口 8080)
    • 停止服务器: 'mcp-terminal stop'
    • 检查状态: 'mcp-terminal status'
    • 重启服务器: 'mcp-terminal restart'
    • 卸载服务器: 'mcp-terminal uninstall'

请注意,MCP服务器(特别是用于LLM集成的Stdio适配器)是作为命令行进程运行的,通常不会像Web服务器那样在前台运行。上述 'mcp-terminal start' 命令启动的是一个带有Web界面的HTTP服务器版本。对于标准的MCP客户端(如一些LLM开发工具),通常需要配置其启动服务器进程的命令。

MCP客户端配置示例

MCP客户端(如某些LLM开发环境)需要知道如何启动并连接到这个MCP服务器。本仓库包含一个支持Stdio传输协议的MCP适配器 ('smithery-adapter.js'),这是推荐用于LLM客户端直接集成的模式。

你需要将以下配置信息添加到你的MCP客户端中。具体的配置格式取决于你的客户端,但核心信息是启动服务器进程的命令和参数。

服务器名称 (Server Name): 'MCP System Tools'

启动命令 (Command): 'node'

启动参数 (Args): 这是一个数组,包含传递给'node'命令的参数。第一个参数是服务器的入口脚本路径。这个路径取决于你的安装位置,通常是 '~/mcp-terminal/dist/smithery-adapter.js'。

{
  "server name": "MCP System Tools",
  "command": "node",
  "args": [
    "YOUR_HOME_DIRECTORY/mcp-terminal/dist/smithery-adapter.js"
  ],
  "description": "A MCP server providing file system and shell access.",
  "capabilities": {
    // Capabilities will be discovered by the client after connection
    // This is where tools like runShellCommand, readFile, etc. will appear
  }
}

请将 'YOUR_HOME_DIRECTORY' 替换为你实际的用户主目录路径(例如,'/home/username' 或 'C:\Users\Username')。

一些MCP客户端可能还支持通过HTTP/SSE连接。该服务器的HTTP/SSE适配器在默认端口8080提供服务。其SSE入口是 '/sse',消息POST入口是 '/messages',工具列表位于 '/tools',服务器信息位于 '/info'。HTTP/SSE接口的使用方式不是标准的JSON-RPC over HTTP,具体集成方法需参考客户端对非标准HTTP适配器的支持。

基本使用方法

配置完成后,你的LLM客户端应该能够检测到该MCP服务器的能力(即暴露的工具)。LLM可以通过调用这些工具来与你的本地系统进行交互。例如,LLM可能会生成一个请求调用 'runShellCommand' 工具来执行 'ls -l' 命令,或者调用 'readFile' 工具来读取指定文件的内容。LLM客户端会负责将LLM的需求转换为对服务器工具的JSON-RPC调用。

信息

分类

桌面与硬件