MCP协议CLI客户端

jmcpx是一个命令行界面客户端,用于与MCP(模型上下文协议)服务器交互,支持会话管理、工具资源列表、多LLM集成和Markdown渲染。

  • by Ernyoke
  • Java
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Ernyoke/jmcpx

使用说明

jmcpx 可以翻译为“简明密码学”(假设这是一个虚构的或特定领域的术语,因为“jmcpx”本身并不是一个通用的英文单词或缩写)。不过,具体的翻译可能需要根据“jmcpx”在特定上下文中的含义来确定。如果“jmcpx”是一个特定项目、技术或概念的缩写,那么翻译时需要考虑其在该领域的具体含义。在没有具体上下文的情况下,“简明密码学”是一个基于字面意义的翻译尝试

jmcpx 是一个为与 MCP(模型上下文协议)服务器交互而设计的命令行界面(CLI)客户端。它提供了一套强大的工具来管理和与 MCP 服务器进行交互,同时能够无缝集成各种大型语言模型(LLM)配置。

特点/特性

  • 会话管理启动并管理与MCP服务器的交互式会话。
  • 工具与资源列表检索并显示MCP服务器提供的可用工具和资源。
  • 大语言模型(LLM)集成支持多种大型语言模型(LLM)配置,包括OpenAI、Anthropic和Bedrock。
  • Markdown 渲染以Markdown格式输出响应,提高可读性。
  • 可定制的配置使用JSON和TOML文件轻松配置MCP和LLM设置。

要求

  • Java版本21或更高版本
  • Maven用于依赖管理和构建项目

安装

  1. 克隆仓库:

    git clone ...
    cd jmcpx
    
    
  2. 使用 Maven 构建项目:

    mvn clean package
    
  3. 运行应用程序:

    java -jar target/jmcpx-1.0-SNAPSHOT.jar
    

使用

该应用程序提供了多个命令,用于与MCP服务器和LLM配置进行交互。以下是可用的命令:

开始会话

与MCP服务器启动一个交互式会话:

java -jar target/jmcpx-1.0-SNAPSHOT.jar session

选项:

  • -c 或者 --mcp指定(某物)的位置 mcp.json 文件(默认: <user.home>/.config/jmcpx/mcp.json)。
  • -l 或者 --llm指定位置 llm.toml 文件(默认: <user.home>/.config/jmcpx/llm.toml)。

列出MCP服务器详细信息

列出MCP服务器上可用的工具和资源:

java -jar target/jmcpx-1.0-SNAPSHOT.jar list

选项:

  • -c 或者 --mcp指定位置 mcp.json 文件(默认: <user.home>/.config/jmcpx/mcp.json)。
  • -l 或者 --llm指定(文件/项目等)的位置 llm.toml 文件(默认: <user.home>/.config/jmcpx/llm.toml)。

配置

默认情况下,你可以将两者都放置在 mcp.json 并且 llm.toml 在您用户主文件夹中的配置文件, 具体来说,内部 <user.home>/.config/jmcpx 文件夹。

如果你使用的是Windows系统,你的家目录(或用户目录)的默认路径是 C:\Users\<username> (示例: C:\Users\ervin)。 对于OSX/Linux,这大致会是这样的: /home/<username>。

你可以用以下内容覆盖这些路径: -c 用于(表示/标记)……的旗帜/标志 mcp.json 文件以及和 -l 对于 llm.toml 配置文件。

MCP 配置

这个(或“该”) mcp.json 该文件定义了MCP服务器及其配置。示例:

{
  "mcpServers": {
    "server1": {
      "transport": "stdio",
      "command": "path/to/server1",
      "args": ["--arg1", "--arg2"],
      "env": {
        "ENV_VAR1": "value1"
      }
    },
    "server2": {
      "transport": "http",
      "url": "https://myserver.com/mcp",
      "headers": {
        "Authorization": "Bearer ..."
      }
    }
  }
}

大型语言模型(LLM)配置

这个(或“该”) llm.toml 文件定义了大型语言模型(LLM)的配置。示例:

[[bedrock]]
modelId = "amazon.nova-pro-v1:0"
region = "us-east-1"

[[anthropic]]
modelName = "claude-sonnet-4-20250514"
apiKey = "..."
default = true

[[anthropic]]
modelName = "claude-3-7-sonnet-20250219"
apiKey = "..."

[[openai]]
modelName = "gpt-4o-2024-08-06"
apiKey = "..."

[[openai]]
modelName = "gpt-4.1-2025-04-14"
apiKey = "..."

[[google]]
modelName = "gemini-2.5-pro-preview-05-06"
apiKey = "..."

记录日志

使用DEV logback配置

java -Dlogback.configurationFile=logback-dev.xml -jar target/jmcpx-1.0-SNAPSHOT.jar

许可证

这个项目遵循MIT许可证授权。详见 LICENSE 文件中有详细信息。