自然语言转Shell命令处理器

MCP是一个客户端-服务器系统,利用LLM将自然语言查询转换为Shell命令,适用于开发者和系统管理员快速执行命令。

  • by mohsinshah8692
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 mohsinshah8692/mcp-client-server-with-llm-command-execution

使用说明

机器命令处理器(MCP)

一种使用LLM将自然语言查询转换为shell命令的客户端-服务器系统。该系统由三个主要组件组成:通过Groq的LLM API处理自然语言查询的客户端、执行shell命令的服务器和用于通信的共享协议。

特性

  • 使用Groq的LLM API将自然语言转换为shell命令
  • 基于WebSocket的客户端-服务器通信
  • 指挥执行安全检查
  • 综合测井系统
  • 使用Python的asyncio进行异步操作
  • 具有UUID跟踪的结构化消息协议

先决条件

  • Python 3.7+
  • Groq API 密钥
  • WebSocket支持
  • 所需的Python包:
    • websockets
    • 黄色
    • 异步IO
    • 日志记录

安装

  1. 克隆存储库
  2. 安装所需的软件包:
pip install websockets groq
  1. 设置Groq API密钥:
export GROQ_API_KEY='your-api-key'

组件

MCP客户端(mcp_client.py)

  • 处理用户输入
  • 连接到Groq API以生成命令
  • 通过WebSocket与服务器通信
  • 处理和显示结果

MCP服务器(mcp_server.py)

  • 执行shell命令
  • 实施指挥安全检查
  • 管理WebSocket连接
  • 返回命令执行结果

协议(mcp_protocol.py)

  • 定义消息结构
  • 处理消息序列化/反序列化
  • 提供消息创建实用程序

用法

  1. 启动服务器:
python mcp_server.py
  1. 在单独的终端中,启动客户端:
python mcp_client.py
  1. 出现提示时输入自然语言查询。例如:
Enter your query: list all files in the current directory

安全功能

  • 阻止的危险命令包括:
    • 超级用户
    • rm-rf
    • 创建文件系统
    • 日
    • 格式
  • 执行前的命令验证
  • 记录操作以进行审计跟踪

日志记录

系统维护两个日志文件:

  • mcp_client.log:客户端操作和LLM交互
  • mcp_server.log:服务器端操作和命令执行

贡献

[在此处添加贡献指南]