Skip to main content
Glama
liuchunda

MCP Mock Server

by liuchunda

MCP Mock Server

一个基于 MCP (Model Context Protocol) 的 Mock 服务器,专为移动端应用设计,支持通过 Charles 代理实现零代码侵入的数据 Mock。

特性

  • 零代码侵入: RN 应用只需配置 Charles 代理,无需修改任何业务代码

  • 动态规则管理: 通过 MCP 工具(在 Cursor 中)动态添加/删除 Mock 规则,无需重启服务

  • 自动生成 Charles 配置: 添加 Mock 规则后自动生成 Charles XML 配置文件

  • 多项目支持: 多个项目可同时使用同一个 MCP 服务,各自占用不同端口,互不干扰

  • 数据持久化: 所有 Mock 规则自动保存到文件,重启后自动恢复

  • 自然语言交互: 在 Cursor 中用自然语言描述即可创建 Mock 接口

Related MCP server: SpyNet

架构

RN App → Charles Proxy → MCP Mock Server(HTTP 代理)→ 返回 Mock 数据

安装与配置

1. 在 Cursor 中配置 MCP

编辑 ~/.cursor/mcp.json,添加:

{
  "mcpServers": {
    "mi-mock-server": {
      "command": "npx",
      "args": ["-y", "mockserver-mcp-charles"]
    }
  }
}

配置完成后重启 Cursor 或重新加载 MCP 即可使用。

2. 在项目根目录创建配置文件

项目根目录创建 mockCharlesConfig.json

{
  "rulesPath": "_mock-rules/rules.json",
  "charlesTargetDomains": [
    "api.example.com",
    "api-pre.example.com"
  ]
}

字段

必填

说明

rulesPath

推荐

Mock 规则文件存储路径(相对于配置文件目录),建议加入 .gitignore

charlesTargetDomains

必填

生成 Charles 映射时的目标域名列表(线上/预发/测试等)

charlesTargetPort

可选

目标域名端口,默认 443(HTTPS 标准端口,通常不需要填写)

projectPrefix

可选

项目前缀,默认取项目目录名,用于多项目共享代理时区分路由

其余字段(portenableLoggingmaxLogsmockEnabled)均有合理默认值,无需配置。


端口机制

  • 启动时从默认端口(7979)开始自动查找可用端口,不会杀掉其他进程

  • 多个项目各自找到空闲端口,天然隔离、互不影响

  • 启动成功后控制台打印实际地址,生成 Charles 配置时自动使用该端口

┌────────────────────────────────────────────────────────┐
│  Mock HTTP 代理已启动
│  地址:      http://127.0.0.1:7979
│  规则文件:  /path/to/project/_mock-rules/rules.json
└────────────────────────────────────────────────────────┘

多项目支持

多个项目同时使用时,每个项目有独立的 HTTP 代理端口,Charles 映射也各自指向正确端口:

项目A → 监听 7979  →  Charles: api-a.com → localhost:7979
项目B → 监听 7980  →  Charles: api-b.com → localhost:7980

生成 Charles 配置文件时自动使用当前项目实际监听的端口,无需手动修改。


使用方式

在 Cursor 中创建 Mock 接口

直接用自然语言描述:

添加一个 POST 接口 /api/user/info,返回:
{
  "code": 0,
  "data": { "id": 1, "name": "张三" },
  "message": "ok"
}

MCP 服务会自动调用 add_mock_rule 工具创建规则,并生成 Charles 配置文件。

手动生成 Charles 映射文件

在 Cursor 对话框中输入:

生成 Charles 映射文件

生成的 XML 文件位于 _mock-rules/map-remote.xml

导入 Charles 步骤

  1. 打开 Charles → 菜单 ToolsMap Remote...

  2. 点击 Import Settings

  3. 选择 _mock-rules/map-remote.xml

  4. 确认导入,规则立即生效


MCP 工具说明

add_mock_rule — 添加 Mock 规则

参数

类型

必填

说明

url

string

接口路径,如 /api/user/info

response

object

JSON 响应数据

method

string

HTTP 方法,默认 GET

statusCode

number

状态码,默认 200

headers

object

自定义响应头

delay

number

响应延迟(毫秒)

remove_mock_rule — 删除 Mock 规则

通过 idurl + method 删除。

list_mock_rules — 列出所有规则

generate_charles_config — 生成 Charles 配置

参数

说明

targetDomains

域名数组,不传则从 mockCharlesConfig.json 读取

targetDomain

单个域名(兼容旧用法)

targetPort

目标端口,不传则从配置读取,默认 443

get_request_logs — 查看请求日志

参数

说明

limit

返回条数,默认 100

toggle_mock — 启用/禁用 Mock

参数

说明

enabled

true 启用,false 禁用

reload_rules — 重新加载规则文件

手动编辑 rules.json 后调用,无需重启服务。


URL 匹配规则

模式

示例

说明

精确匹配

/api/user/info

只匹配完全相同的路径

单段通配 *

/api/user/*

匹配 /api/user/123/api/user/abc

多段通配 **

/api/**

匹配 /api/user/info/api/order/list


数据持久化

规则保存在 rulesPath 指定的文件中(默认 _mock-rules/rules.json):

{
  "rules": [
    {
      "id": "uuid",
      "url": "/api/user/info",
      "method": "GET",
      "response": { "code": 0, "data": {} },
      "statusCode": 200,
      "enabled": true,
      "createdAt": "2024-01-01T00:00:00Z"
    }
  ],
  "version": "1.0.0"
}

建议将 _mock-rules/ 加入 .gitignore,避免 Mock 数据污染代码仓库。


项目结构

mockserver-mcp-charles/
├── src/
│   ├── server.ts       # MCP 服务器主入口 & HTTP 代理启动
│   ├── proxy.ts        # HTTP 代理请求处理
│   ├── rules.ts        # Mock 规则管理
│   ├── tools.ts        # MCP 工具定义与处理器
│   ├── config.ts       # 配置加载与运行时状态
│   ├── charles.ts      # Charles XML 配置生成
│   └── types.ts        # TypeScript 类型定义
└── _mock-rules/        # 运行时生成(建议 .gitignore)
    ├── rules.json      # Mock 规则持久化文件
    └── map-remote.xml  # Charles Map Remote 配置

故障排查

请求没有被 Mock 拦截

  1. 确认 Charles 已启用 Map Remote 且规则已导入

  2. 确认 移动端 应用流量经过 Charles 代理

  3. list_mock_rules 检查规则是否存在

  4. get_request_logs 查看请求日志,确认请求是否到达 Mock 服务

Charles 映射端口不对

重新执行「生成 Charles 映射文件」,配置会自动使用当前实际监听端口,重新导入即可。

规则重启后丢失

检查 rulesPath 配置的路径是否正确,以及该文件是否被意外删除或加入了 .gitignore


许可证

MIT

扩展

后端接口如果使用接口管理平台的话例如YApi Pro,apifox可以扩展通过平台开放api接入数据,从而实现输入链接一键mock(mock质量依赖文档)

Related MCP Connectors

  • AI-native mock API server with MCP. Create REST/SOAP mocks from Claude, Cursor, or Windsurf.

  • AI-callable tools for API mocking, testing, monitoring, security, and automation.

  • Run, debug, and triage tests from your IDE using natural language, no dashboard switching, no manual data transfers. The TestMu AI (formerly LambdaTest) MCP Server is a single remote server exposing four tool suites: HyperExecute — analyze your project, generate YAML configs and test runner commands, then monitor jobs and sessions. Automation — pull a TestID's details plus command, network, and console logs into one chat for instant root-cause analysis. Includes mobile app upload. SmartUI — explain pixel, layout, DOM, and perceptual changes in a visual regression run, with context-aware React/HTML/CSS fixes. Accessibility — audit any public URL or a local React app against WCAG and get ready-to-apply remediation steps. Connects over https://mcp.lambdatest.com/mcp using OAuth 2.1 — no API keys in your config. One-click install in Cursor; works with Claude, GitHub Copilot, Cline, and any MCP client. Tests execute on the TestMu AI cloud: 3,000+ browsers and 10,000+ real devices.

  • GibsonAI MCP server: manage your databases with natural language

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    An Intelligent Model Context Protocol server that generates mock servers from OpenAPI specifications, featuring advanced logging, performance analytics, and server discovery for AI-assisted API development.
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to configure and manage session-based REST and WebSocket mock servers for application development and testing. It allows for dynamic endpoint setup, request history inspection, and real-time WebSocket communication through natural language commands.
    8
    -
  • A
    license
    B
    quality
    C
    maintenance
    A Model Context Protocol (MCP) server that integrates Cypress with Cursor AI, enabling AI-powered test automation, debugging, and script generation for Cypress tests.
    8
    3
    MIT