使用说明
mcpmock
用于快速原型制作的Bun+TypeScript游乐场 模型上下文协议(MCP)服务器.
在一个YAML文件中描述你的模拟服务器,运行CLI,服务器(stdio或HTTP)会用模拟数据进行响应。目标是帮助迭代工具形状和响应,而无需构建完整的后端。
项目状态
- 单文件YAML配置(
examples/basic/mock.yaml)加载到带有明显错误的类型化表示中。 - CLI现在启动一个模拟MCP服务器:
transport: stdio(默认)通过stdin/stdout进行代理集成连接。transport: http启动由以下支持的Express服务器StreamableHTTPServerTransport.
- 工具调用返回配置的
response作为文本(以及适用时的结构化内容)。
安装
一旦包发布到npm,你就可以立即安装或运行它:
npm install -g mcpmock
# or run without installing
npx mcpmock ./examples/basic/mock.yaml
用法
将CLI指向任何项目YAML文件:
npx mcpmock path/to/server.yaml
transport: stdio(默认)通过stdin/stdout进行代理集成连接。transport: http启动由以下支持的Express服务器StreamableHTTPServerTransport.- 跨源请求已启用(
Mcp-Session-Id暴露),因此像MCP Inspector这样的浏览器可以直接连接。
如果配置包含错误,CLI会打印带有注释路径的可读错误消息,以便编码代理(和人类)可以快速修复它们。
地方发展
要在本地使用CLI:
bun install
bun run build
node dist/index.js examples/basic/mock.yaml
构建步骤发出Node就绪包(dist/index.js)以及发布到npm时使用的TypeScript声明。
配置格式
所有配置都存在 一个YAML文件示例(examples/basic/mock.yaml):
server:
name: demo-mock
transport: stdio
description: Minimal mock MCP server example
tools:
- name: echo
description: Returns the provided message
input_schema:
type: object
properties:
message:
type: string
required:
- message
response:
message: default echo
响应模板
在...之内 response 可以使用以下值引用工具参数 {{ args.* }} 表达。字符串在调用时被插值,并在嵌套对象和数组中工作。例如:
tools:
- name: echo
response:
message: "You said: {{ args.message }}"
如果缺少引用的参数,则工具调用会引发错误,使调试更容易。
关键规则:
- 每个工具都必须有一个独特的
name. input_schema遵循JSON模式约定(目前是一个子集,专注于对象、字符串、数字、布尔值、数组)。response可以是任何JSON值(如果你想要Markdown,纯字符串也可以)。
路线图
- 强化HTTP传输(SSE会话、可恢复性、身份验证助手)。
- 提供更丰富的响应脚本选项(多种场景、模板)。
- 构建配套的MCP客户端CLI,以运行脚本交互、记录工具调用并支持轻量级评估。
- 支持大型项目的可选多文件布局。
- 打包用于npm分发,并提供编译后的二进制文件
bun build --compile.
欢迎投稿、想法和反馈!请随时在中绘制新格式 examples/ 并在CLI上迭代***
