返回市场
MCP客户端命令行工具?utm_source=mcp_hub

MCP客户端命令行工具?utm_source=mcp_hub

作者:adhikasp646 星标更新:2025-05-01

项目介绍

MCP CLI 客户端

一个简单的命令行程序,用于运行大语言模型提示并实现 Model Context Protocol (MCP) 客户端。

您可以在终端的便利性下使用任何 与MCP兼容的服务器

这作为Claude Desktop之外的替代客户端。此外,您可以使用任何大语言模型提供商,如OpenAI、Groq或通过llama的本地大语言模型。

C4 图

安装

  1. 使用pip安装:

    pip install mcp-client-cli
    
  2. 创建一个 ~/.llm/config.json 文件来配置您的大语言模型和MCP服务器:

    {
      "systemPrompt": "您是一个帮助软件工程师的人工智能助手...",
      "llm": {
        "provider": "openai",
        "model": "gpt-4",
        "api_key": "your-openai-api-key",
        "temperature": 0.7,
        "base_url": "https://api.openai.com/v1"  // 可选,对于OpenRouter或其他提供商
      },
      "mcpServers": {
        "fetch": {
          "command": "uvx",
          "args": ["mcp-server-fetch"],
          "requires_confirmation": ["fetch"],
          "enabled": true,  // 可选,默认为true
          "exclude_tools": []  // 可选,要排除的工具名称列表
        },
        "brave-search": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-brave-search"],
          "env": {
            "BRAVE_API_KEY": "your-brave-api-key"
          },
          "requires_confirmation": ["brave_web_search"]
        },
        "youtube": {
          "command": "uvx",
          "args": ["--from", "git+https://github.com/adhikasp/mcp-youtube", "mcp-youtube"]
        }
      }
    }
    

    注意事项:

    • 查看CONFIG.md以获取完整的配置格式文档
    • 使用 requires_confirmation 来指定哪些工具在执行前需要用户确认
    • 大语言模型API密钥也可以通过环境变量 LLM_API_KEYOPENAI_API_KEY 设置
    • 配置文件可以放置在 ~/.llm/config.json$PWD/.llm/config.json
    • 如果您想切换配置,可以在JSON配置文件中使用 // 注释
  3. 运行CLI:

    llm "北苏门答腊省的首府是什么?"
    

使用方法

基本用法

$ llm 北苏门答腊省的首府是什么?
北苏门答腊省的首府是棉兰。

您可以省略引号,但要注意像 &, |, ; 这样的bash特殊字符可能会被shell解释。

您还可以从其他命令或文件中传递输入:

$ echo "北苏门答腊省的首府是什么?" | llm
北苏门答腊省的首府是棉兰。

$ echo "给定一个地点,请告诉我它的首府。" > 指令.txt
$ cat 指令.txt | llm 西爪哇
西爪哇的首府是万隆。

图像输入

您可以传递图像文件以使用多模态大语言模型进行分析:

$ cat 图片.jpg | llm "你在图片中看到了什么?"
[大语言模型将分析并描述图片]

$ cat 截图.png | llm "截图中有错误吗?"
[大语言模型将分析截图并指出任何错误]

使用提示模板

您可以使用预定义的提示模板,方法是在模板名称及其参数之前加上 p 前缀:

# 列出可用的提示模板
$ llm --list-prompts

# 使用一个模板
$ llm p review  # 审查git更改
$ llm p commit  # 生成提交信息
$ llm p yt url=https://youtube.com/...  # 概述YouTube视频

触发工具

$ llm 今天黑客新闻上的头条文章是什么?

================================== Ai 消息 ==================================
工具调用:
  brave_web_search (call_eXmFQizLUp8TKBgPtgFo71et)
 调用ID:call_eXmFQizLUp8TKBgPtgFo71et
  参数:
    查询:site:news.ycombinator.com
    数量:1
Brave 搜索 MCP 服务器正在标准输入输出上运行

# 如果工具需要确认,您将被提示:
确认工具调用? [y/n]:y

================================== Ai 消息 ==================================
工具调用:
  fetch (call_xH32S0QKqMfudgN1ZGV6vH1P)
 调用ID:call_xH32S0QKqMfudgN1ZGV6vH1P
  参数:
    URL:https://news.ycombinator.com/
================================= 工具消息 =================================
名称:fetch

[TextContent(type='text', text='内容 [已删除]]
================================== Ai 消息 ==================================

今天黑客新闻上的头条文章是:

### [为什么管道有时会“卡住”:缓冲](https://jvns.ca)
- **得分:** 31
- **发布者:** tanelpoder
- **发布时间:** 1小时前

您可以在[Hacker News](https://news.ycombinator.com/)查看全部文章列表

要绕过工具确认要求,使用 --no-confirmations 标志:

$ llm --no-confirmations "今天黑客新闻上的头条文章是什么?"

要在bash脚本中使用,添加 --no-intermediates,这样它不会打印中间消息,只打印最终消息。

$ llm --no-intermediates "现在东京的时间是什么?"

续谈

在您的消息前加上 c 前缀以继续上次对话。

$ llm asldkfjasdfkl
看起来您的消息可能是打字错误或错误。能否请您澄清或提供更多关于您需要帮助的信息?
$ llm c 我之前说了什么?
您之前输入了 "asldkfjasdfkl",这似乎是一串随机字符。如果您有具体的问题或疑问,请告诉我!

剪贴板支持

您可以使用剪贴板中的内容,使用 cb 命令:

# 在复制文本到剪贴板后
$ llm cb
[大语言模型将处理剪贴板文本]

$ llm cb "这段代码是什么语言写的?"
[大语言模型将分析剪贴板文本并回答问题]

# 在复制图像到剪贴板后
$ llm cb "你在图片中看到了什么?"
[大语言模型将分析剪贴板中的图片]

# 您可以结合续谈
$ llm cb c "告诉我更多你看到的内容"
[大语言模型将继续讨论剪贴板内容]

剪贴板功能适用于:

  • 原生Windows/macOS/Linux环境
    • Windows:使用PowerShell
    • macOS:使用 pbpaste 处理文本,pngpaste 处理图片(可选)
    • Linux:使用 xclip(需要剪贴板支持)
  • Windows子系统Linux (WSL)
    • 通过PowerShell访问Windows剪贴板
    • 支持文本和图片
    • 确保您可以从WSL访问 powershell.exe

剪贴板支持所需工具:

  • Windows:PowerShell(内置)
  • macOS:
    • pbpaste(内置)处理文本
    • pngpaste(可选)处理图片:brew install pngpaste
  • Linux:
    • xclipsudo apt install xclip 或等效命令

CLI自动检测剪贴板内容是文本还是图片,并适当处理。

其他选项

$ llm --list-tools                # 列出所有可用工具
$ llm --list-prompts              # 列出可用的提示模板
$ llm --no-tools                  # 不使用任何工具运行
$ llm --force-refresh             # 强制刷新工具能力缓存
$ llm --text-only                 # 输出纯文本,不带markdown格式
$ llm --show-memories             # 显示用户记忆
$ llm --model gpt-4               # 覆盖配置中指定的模型

贡献

欢迎提交问题和拉取请求以改进或修复错误。