Token导航 LogoToken导航TokenDH.com
MCP interactive terminal logo
开发工具stdio官方级别未说明来源级核验

MCP interactive terminal

MCP Server

MCP server for interacting with a terminal or process based command over stdio.

工具数

5

提示词数

0

GitHub Stars

1

资源数

0
PythonVS Code命令行工具VS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

danielp370-msft

提供方

danielp370-msft

最后核验

2026/5/18 04:05

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install uv

详细介绍

MCP交互式终端服务器

概述

MCP交互式终端服务器允许代理与命令行驱动的提示进行交互。这对于自动化和管理交互式终端命令(如gdb、UART控制台或任何其他基于REPL的工具)非常有用。它使用FastMCP包构建,提供了管理交互式终端会话的工具,并符合最新的MCP标准。该服务器支持FastMCP提供的三种传输选项:stdio(默认)、sse和流式http,使其适用于各种用例。

安装

先决条件

  1. Python 3.12或更高版本

确保您的系统上安装了Python 3.12或更高版本。

  1. UV星光包管理器

UV Astral是一个可选的包管理器,用于处理依赖关系。如果你使用它,它只会为Python提供你需要的依赖项。如果调用需要其他依赖项的命令,可以将它们添加到UV依赖项中,以便它们也被加载。如果环境设置为直接提供所有包装,则最好在下游包装中这样做,或者不使用紫外线。

使用以下方法之一安装UV:

- 独立安装程序:

     curl -LsSf https://astral.sh/uv/install.sh | sh

- 管道安装:

     pip install uv

验证安装:

   uv --version

为UV星光添加依赖关系

如果您使用UV Astral作为包管理器,则可以选择将Python和其他依赖项添加到其配置中。有关管理UV Astral依赖关系的详细说明,请参阅 UV Astral官方文档.

克隆存储库

将存储库克隆到本地计算机:

git clone https://github.com/danielp370-msft/mcp_interactive_terminal
cd mcp_interactive_terminal

用法

运行服务器

使用VS代码

  1. 在VS Code中打开项目。
  1. 确保 .vscode/mcp.json 文件配置正确。您可以使用以下示例之一:

示例1:使用uv(包管理器)

   {
     "servers": {
       "interactive-terminal-server": {
         "type": "stdio",
         "command": "uv",
         "args": ["run", "${workspaceFolder}/interactive/server.py"]
       }
     }
   }

示例2:直接使用python(当前默认)

   {
     "servers": {
       "interactive-terminal-server": {
         "type": "stdio",
         "command": "python3.13",
         "args": ["${workspaceFolder}/interactive/server.py"]
       }
     }
   }

示例3:使用流式http传输

   {
     "servers": {
       "interactive-terminal-server": {
         "type": "http",
         "url": "http://localhost:8070/mcp/"
       }
     }
   }
  1. 使用VS Code中的MCP接口启动服务器。

使用命令行

注: 如果使用非stdio传输选项(如 streamable-http)或者如果你想在VS Code之外运行它。对于stdio,VS Code MCP接口可以自动启动服务器。
  • 标准传输(默认):
  uv run python -m interactive.server

您也可以在没有 uv 如果你想使用运行时环境提供的包:

  python -m interactive.server
  • 可流式HTTP传输:
  uv run python -m interactive.server --transport streamable-http --port 8070

或者没有 uv:

  python -m interactive.server --transport streamable-http --port 8070

交互式终端工具

服务器提供以下工具:

  1. 开始会话:

- 描述:通过调用shell命令启动新的交互式会话。 - 参数: - command (str):启动会话的命令(例如。, python). - args (list):命令的参数。 - log_file (str,可选):将写入会话输出的日志文件的路径。如果不提供,则不会进行日志记录。 - 退货:带有会话ID的消息。

  1. 等待输出或提示:

- 描述:等待特定输出、提示或在超时内收集输出。 - 参数: - session_id (int):要监视的会话的ID。 - prompts (list):输出中要检测的字符串列表(例如,提示或特定文本)。 - timeout (int):等待输出的最长时间,以秒为单位。 - 退货:指示检测到的输出的消息,或者如果找不到匹配项,则显示超时消息。 - 备注:此函数也可用于检索当前输出缓冲区。

  1. 发送命令:

- 描述:向交互式会话发送命令。 - 参数: - session_id (int):会话ID。 - command (str):要发送的命令。 - 退货:表示成功或失败的消息。

  1. 退出会话:

- 描述:终止交互会话。 - 参数: - session_id (int):要终止的会话的ID。 - 退货:指示会话终止状态的消息。

  1. 获取活动会话:

- 描述:检索所有活动交互会话的列表。 - 退货:包含会话ID及其状态的字典。

开始会话

您可以使用启动新会话 start_session 工具。

start_session(command: str, args: list, log_file: str = None)
  • command:启动交互式会话的命令(例如“python”)。
  • args:要传递给命令的参数列表。
  • log_file:用于写入会话输出的可选日志文件。

例子:

start_session("python", ["-i"])

这将启动一个Python交互式会话。

测试

运行单元测试以验证服务器的功能:

uv run python3 -m unittest

参考文献

致谢

该产品是在Daniel Potts的帮助下编写的,他特别感谢AI不断地进行交互式测试,他是质量保证(和耐心)的拥护者。没有人直接编写任何代码、文档,甚至懒得帮助推进这个项目的PR。所有代码和文档都是在GitHub Copilot(OpenAI GPT-4)的帮助下生成的。

目录标签

目录标签

PythonVS Code命令行工具developer-tools终端管理本地部署自动化REPL工具交互式会话

支持客户端

VS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP