MCP开发工具包

一个强大的Model Context Protocol(MCP)开发工具包,提供命令行工具用于开发、测试和调试MCP服务器。

  • by cortex-app
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 mcpnow-io/mcp-devtools

使用说明

MCP 开发工具(或 MCP 开发者工具)

一个强大的模型上下文协议(MCP)开发工具包,提供了用于开发、测试和调试MCP服务器的命令行工具。

🚀 安装

你可以使用MCP DevTools的方式如下:

使用 npx 运行

# Run server
npx -p @mcp-now/mcp-devtools mcp-server
# or 
npx -p https://github.com/mcpnow-io/mcp-devtools mcp-server

# Run client
npx -p @mcp-now/mcp-devtools mcp-client

在MCP主机(如Claude Desktop和Cursor)中的配置:

{
  "mcpServers": {
    "mcp-dev-server": {
      "command": "npx",
      "args": [
        "-y",
        "-p",
        "@mcp-now/mcp-devtools",
        "mcp-server",
        "-t",
        "stdio"
      ]
    }
  }
}

全球安装

npm install -g @mcp-now/mcp-devtools
# Then use directly: mcp-server and mcp-client

本地安装(建议用于项目)

npm install @mcp-now/mcp-devtools
# Then use with npx: npx mcp-server and npx mcp-client

📖 概述

MCP DevTools 提供了两个主要的命令行工具:

  • **mcp-server**用于托管和运行MCP服务的MCP服务器
  • **mcp-client**用于测试和与MCP服务器交互的MCP客户端

这些工具支持多种传输协议(HTTP、SSE、stdio),并提供交互模式,以便于开发和调试。

🛠️ 命令行工具

MCP 服务器(mcp-server)

用于启动并运行支持多种传输协议的MCP服务器。

内置提示:

  • 打印指令:打印助手的指令
  • print-tools:以JSON格式打印可用工具。

内置工具:

  • 回声:将输入信息原样返回
  • sendListChanged: 发送工具/资源/提示列表变更通知
  • listRoots: 列出根目录
  • createMessage: 示例大型语言模型(LLM)
  • elicitInput:从用户获取输入
  • sendListChanged: 发送工具/资源/提示列表变更通知
  • `longTimeRun`:等待指定的秒数后再返回(用于测试超时)
  • longResponseData:返回指定字节长度的响应(用于测试不同响应大小)
  • 克隆助手:将系统提示和工具泄露给客户端

基本用法

mcp-server -t <transport> [options]

选项

选项 描述 默认值
-t, --transport <type> 传输类型(http/sse/stdio) sse
-p, --port <port> HTTP服务器端口(HTTP/SSE传输) 8010
-n, --name <name> 服务器名称 mcp-test-server
-v, --verbose 启用详细日志记录 false
--ping-interval <ms> 以毫秒为单位的ping间隔 30000

使用示例

# Start HTTP server
mcp-server -t http

# Start SSE server with custom port and verbose logging
mcp-server -t sse -p 8080 -v

# Start stdio server
mcp-server -t stdio -v

MCP 客户端(mcp-client)

用于连接并测试MCP服务器,支持多种操作和交互模式。

基本用法

mcp-client -t <transport> [options] [actions]

连接选项

选项 描述 默认值
-t, --transport <type> 传输类型 (http/sse/stdio) sse
-u, --url <url> HTTP/SSE 传输的 URL 根据传输类型自动设置
-c, --command <command> 标准I/O传输的完整命令行 -
-e, --env <env> 标准I/O传输的环境变量(JSON字符串) -
--pipe-stderr 从标准I/O子进程中重定向标准错误输出 false
-H, --headers <headers> 用于SSE传输的请求头(JSON字符串) -
-n, --name <name> 客户名称 mcp-dev-client
-i, --interactive 在交互模式下运行 false
-v, --verbose 启用详细日志记录 false
--ping-interval <ms> 毫秒级别的ping间隔 30000

操作选项

选项 描述
--list-tools 列出可用工具
--list-resources 列出可用资源
--list-prompts 列出可用提示
--call-tool <name> 调用指定工具
--tool-args <args> 工具调用参数(JSON字符串)
--read-resource <uri> 读取指定资源
--get-prompt <name> 获取指定提示
--prompt-args <args> 提示参数(JSON 字符串)

使用示例

# Connect to HTTP server and enter interactive mode
mcp-client -t http -u http://localhost:8010/mcp --interactive

# Connect to SSE server
mcp-client -t sse -u http://localhost:8010/sse --interactive

# Connect to stdio server
mcp-client -t stdio -c "npx -y @modelcontextprotocol/server-everything" --interactive

# List server tools
mcp-client -t http --list-tools

# Call a tool
mcp-client -t http --call-tool echo --tool-args '{"message": "hello world"}'

# Read a resource
mcp-client -t http --read-resource "resource://fixed"

# Get a prompt
mcp-client -t http --get-prompt greeting --prompt-args '{"name": "Alice", "language": "en"}'

📋 交互模式

这两种工具都支持交互模式,提供实时的命令行界面:

服务器交互命令

  • help - 显示帮助信息,获取更多信息

客户端交互命令

  • help - 显示帮助信息

🔄 传输协议

HTTP传输

适用于基于HTTP的RESTful API通信:

# Server
mcp-server -t http -p 8010

# Client
mcp-client -t http -u http://localhost:8010/mcp

SSE(服务器发送事件)传输

适用于实时数据流处理:

# Server
mcp-server -t sse -p 8010

# Client
mcp-client -t sse -u http://localhost:8010/sse

stdio 传输

适用于进程间通信:

# Server
mcp-server -t stdio

# Client connecting to external MCP server
mcp-client -t stdio -c "npx -y @modelcontextprotocol/server-everything"

🛠️ 开发与测试

发布

当你准备在npm上发布新版本时,请按照以下步骤操作:

  1. 更新版本并创建Git标签

    提升包版本(选择 patch, minor,或者 major (如适用):

    npm version <patch|minor|major>
    # or with pnpm
    # pnpm version <patch|minor|major>
    

    该命令将自动创建一个 git 提交和一个相应的标签,例如:。 v1.2.3.

    推送提交和标签:

    git push origin main --follow-tags
    
  2. ** 将标签推送到远程仓库 **

`git push origin` 翻译成中文是:“将本地提交推送到远程仓库(origin)”

调试技巧

  • 使用 -v 或者 --verbose 标志用于查看详细协议消息
  • 使用交互模式进行实时测试和调试
  • 检查服务器配置文件的语法和逻辑
  • 测试与不同传输协议的兼容性

📄 许可证

版权所有 (c) 2025 mpcnow.io。保留所有权利。

根据MIT许可协议授权。

🔗 相关链接