# Phone Carrier Detector MCP Server 一个用于检测中国手机号码运营商和归属地的 MCP (Model Context Protocol) 服务器。 ## 功能特性 * 🔍 **运营商检测**: 支持中国三大运营商(中国移动、中国联通、中国电信)的号码识别 * 📍 **归属地检测**: 提供省份和城市级别的归属地信息 * 📱 **虚拟运营商**: 支持虚拟运营商号码识别 * 🚀 **批量处理**: 支持批量检测多个手机号码(最多100个) * 📊 **详细信息**: 提供运营商、归属地、前缀等详细信息 * 🎯 **高精度**: 基于真实的中国运营商号码段数据库(492,088条记录) * ⚡ **高性能**: 内存数据库,查询速度极快 ## 支持的运营商 | 运营商 | 主要号段 | |--------|----------| | 中国移动 | 134-139, 147, 150-152, 157-159, 172, 178, 182-184, 187-188, 198 | | 中国联通 | 130-132, 145, 155-156, 166, 175-176, 185-186 | | 中国电信 | 133, 149, 153, 173, 177, 180-181, 189, 199 | | 中国广电 | 192 | | 中国铁通 | 174 | ## 安装 ### 方法1: 从源码安装 ```bash git clone https://github.com/dahuangbaojian/sms-mcp-server.git cd sms-mcp-server ``` ### 方法2: 直接使用 项目使用 Python 标准库实现,无需额外依赖。如需运行测试: ```bash pip install pytest ``` ## 使用方法 ### 在 MCP 客户端中使用 1. 配置 MCP 客户端(如 Claude Desktop): ```json { "mcpServers": { "phone-carrier-detector": { "command": "python", "args": ["mcp_server.py"], "env": {} } } } ``` 2. 重启客户端,然后就可以使用以下工具: #### 单个号码检测 ``` 请帮我检测手机号码 13812345678 的运营商和归属地信息 ``` #### 批量号码检测 ``` 请帮我批量检测这些号码的运营商和归属地:13812345678, 18687654321, 13312345678 ``` ## API 工具 ### 1. detect_carrier 检测单个手机号码的运营商和归属地信息。 **参数:** * `phone_number` (string): 要检测的手机号码(11位数字) **示例输出:** ```json { "success": true, "phone_number": "13812345678", "carrier": "China Mobile", "carrier_cn": "移动", "province": "江苏", "city": "连云港", "prefix": "1381234" } ``` ### 2. batch_detect_carriers 批量检测多个手机号码的运营商和归属地信息。 **参数:** * `phone_numbers` (array): 要检测的手机号码列表(最多100个) **示例输出:** ```json { "success": true, "total": 3, "results": [ { "success": true, "phone_number": "13812345678", "carrier": "China Mobile", "province": "江苏", "city": "连云港" } ] } ``` ## 数据来源 项目使用真实的中国手机号归属地数据库,包含: - **492,088 条记录** - **覆盖所有主要运营商** - **精确到城市级别** - **实时更新** ## 开发 ### 运行测试 ```bash # 运行所有测试 python tests/run_tests.py --all # 运行单元测试 python tests/run_tests.py --unit # 运行集成测试 python tests/run_tests.py --integration # 运行数据解析器测试 python tests/run_tests.py --data ``` ### 解析数据 ```bash # 从原始数据文件生成数据库 python parse_phone_data.py ``` ### 本地测试 ```bash python mcp_server.py ``` ## 项目结构 ``` . ├── mcp_server.py # MCP协议主服务 ├── parse_phone_data.py # 数据解析脚本 ├── data/ # 数据目录 │ ├── 手机号归属地1219.txt # 原始数据文件 │ └── phone_database.json # 解析后的数据库 ├── tests/ # 测试目录 │ ├── test_mcp_server.py # 单元测试 │ ├── test_mcp_integration.py # 集成测试 │ ├── test_data_parser.py # 数据解析测试 │ └── run_tests.py # 测试运行器 ├── package.json # MCP配置 ├── mcp-metadata.json # MCP元数据 └── README.md # 项目说明 ``` ## 技术栈 * **Python 3.8+** * **MCP Protocol 2024-11-05** * **JSON-RPC 2.0** * **正则表达式** - 号码格式验证 * **内存数据库** - 高性能查询 ## 性能特点 * **内存占用**: ~100MB(包含49万条记录) * **查询速度**: O(1) 哈希表查找 * **并发支持**: 异步处理,支持高并发 * **错误处理**: 完善的错误处理和参数验证 ## 贡献 欢迎提交 Issue 和 Pull Request! 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 更新日志 ### v1.0.0 * 初始版本发布 * 支持中国三大运营商检测 * 支持归属地检测(省份+城市) * 支持虚拟运营商检测 * 支持批量号码检测 * 基于真实数据库(49万+记录) * 完整的 MCP 协议实现 * 全面的测试覆盖 ## 支持 如果你遇到任何问题或有建议,请: 1. 查看 [Issues](https://github.com/dahuangbaojian/sms-mcp-server/issues) 2. 创建新的 Issue 3. 发送邮件到 huangjian@ztinfo.cn --- ⭐ 如果这个项目对你有帮助,请给它一个星标!