Skip to content

wenbochang888/mcp-identity-service

Repository files navigation

mcp-identity-service

一个基于 Model Context Protocol (MCP) 的中国身份证号/三要素/四要素生成、验证和解析服务。

帮你解决在编码中需要一些符合要求的身份证、银行卡、手机号、姓名等信息,欢迎使用

功能特性

  • 生成身份证号: 根据姓名生成符合 GB 11643-1999 标准的18位身份证号
  • 验证身份证号: 验证身份证号格式和校验码是否正确
  • 解析身份证号: 提取行政区划、出生日期、年龄、性别等信息
  • 生成三要素: 随机生成姓名 + 身份证号 + 手机号
  • 生成四要素: 在三要素基础上增加银行卡号

使用效果

MCP工具调用示例1

MCP工具调用示例2

安装使用

方式 1: 通过 npm 使用(推荐)

~/.cursor/mcp.json 中配置:

{
  "mcpServers": {
    "identity-service": {
      "command": "npx",
      "args": ["-y", "@wenbochang888/mcp-identity-service"]
    }
  }
}

重启 Cursor,然后在 AI 对话中使用:

请帮我生成一个姓名为"张三"的身份证号
验证这个身份证号是否合法: 110105194912310020
解析这个身份证号的信息: 11010519491231002X

方式 2: 本地开发使用

# 克隆项目
git clone https://github.com/wenbochang888/mcp-identity-service.git
cd mcp-identity-service

# 安装依赖
npm install

# 构建项目
npm run build

# 运行测试
npm test

# 在 Cursor 配置中使用本地路径
{
  "mcpServers": {
    "identity-service": {
      "command": "node",
      "args": ["/path/to/mcp-identity-service/build/index.js"]
    }
  }
}

方式 3: SSE 远程部署

适用于在服务器上运行并通过 HTTP + SSE 方式连接:

# 启动 SSE 服务
PORT=6868 HOST=0.0.0.0 SSE=true node build/index.js

~/.cursor/mcp.json 中配置:

{
  "mcpServers": {
    "identity-service-sse": {
      "type": "sse",
      "url": "http://<your-host>:6868/sse"
    }
  }
}

环境变量:

  • PORT: 监听端口(默认 6868)
  • HOST: 监听地址(默认 0.0.0.0)
  • SSE: 启用 SSE 模式(设置为 true)
  • SSE_PATH: SSE 订阅路径(默认 /sse)
  • SSE_POST_PATH: 客户端 POST 路径(默认 /messages)

健康检查:

curl http://<your-host>:6868/health

MCP 工具列表

1. generate_id_card

生成符合规范的中国18位身份证号码。

参数:

  • name (string, 必填): 姓名
  • startYear (number, 可选): 出生年份起始范围,默认1970
  • endYear (number, 可选): 出生年份结束范围,默认2010
  • areaCode (string, 可选): 指定6位行政区划代码

示例返回:

{
  "success": true,
  "name": "张三",
  "idCard": "11000019950615321X",
  "info": {
    "areaCode": "110000",
    "birthDate": "1995-06-15",
    "age": 29,
    "gender": ""
  }
}

2. validate_id_card

验证中国身份证号是否合法。

参数:

  • idCard (string, 必填): 18位身份证号

示例返回:

{
  "success": true,
  "idCard": "11010519491231002X",
  "valid": true,
  "message": "身份证号格式正确,校验码验证通过"
}

3. parse_id_card

解析身份证号,提取详细信息。

参数:

  • idCard (string, 必填): 18位身份证号

示例返回:

{
  "success": true,
  "idCard": "11010519491231002X",
  "info": {
    "areaCode": "110105",
    "areaProvince": "北京市",
    "areaCity": "北京市",
    "areaDistrict": "朝阳区",
    "birthDate": "1949-12-31",
    "age": 75,
    "gender": "",
    "checkCode": "X"
  }
}

4. getThreeElements

生成随机姓名 + 身份证号 + 手机号。

参数: 无

示例返回:

{
  "success": true,
  "name": "韩榕乐",
  "idCard": "210102198905199442",
  "phone": "13823815272"
}

5. getFourElements

在三要素基础上增加银行卡号(16~19位)。

参数: 无

示例返回:

{
  "success": true,
  "name": "韩榕乐",
  "idCard": "210102198905199442",
  "phone": "13823815272",
  "bankCard": "6222021234567890123"
}

身份证号格式说明

18位身份证号格式: AAAAAAYYYYMMDDXXXC

  • AAAAAA (前6位): 行政区划代码
  • YYYYMMDD (中间8位): 出生日期
  • XXX (接下来3位): 顺序码(奇数为男性,偶数为女性)
  • C (最后1位): 校验码(根据ISO 7064:1983.MOD 11-2算法计算)

技术细节

  • 完全符合 GB 11643-1999 公民身份号码标准
  • 支持中国所有省级行政区划代码(31个省/直辖市/自治区)
  • 自动处理闰年和各月天数
  • 使用 ISO 7064:1983.MOD 11-2 校验算法

开发

# 安装依赖
npm install

# 构建项目
npm run build

# 开发模式(监听文件变化)
npm run watch

# 运行测试
npm test

注意事项

⚠️ 免责声明:

  • 本工具生成的身份证号仅供开发、测试使用
  • 生成的身份证号是随机的,不对应真实个人信息
  • 请勿将生成的身份证号用于任何非法用途
  • 使用本工具产生的任何后果由使用者自行承担

许可证

MIT License - 详见 LICENSE 文件

参考标准

  • GB 11643-1999: 公民身份号码
  • ISO 7064:1983.MOD 11-2: 校验字符系统

About

一个轻量级的 MCP 服务,用于生成合法的中国个人身份信息(身份证号、手机号、银行卡号等信息)。完全使用Vibe Coding编程。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors