Phone Carrier Detector
Detecta operadores de telefonía móvil chinos, incluyendo China Mobile, China Unicom, China Telecom y operadores virtuales.
Documentación
Servidor MCP de Detección de Operador Telefónico
Un servidor MCP (Model Context Protocol) para detectar el operador y la ubicación de números de teléfono móvil chinos.
Características
- 🔍 Detección de operador: Admite la identificación de números de los tres principales operadores chinos (China Mobile, China Unicom, China Telecom)
- 📍 Detección de ubicación: Proporciona información de ubicación a nivel de provincia y ciudad
- 📱 Operadores virtuales: Admite la identificación de números de operadores virtuales
- 🚀 Procesamiento por lotes: Admite la detección por lotes de múltiples números de teléfono móvil (hasta 100)
- 📊 Información detallada: Proporciona información detallada como operador, ubicación, prefijo, etc.
- 🎯 Alta precisión: Basado en una base de datos real de segmentos de números de operadores chinos (492,088 registros)
- ⚡ Alto rendimiento: Base de datos en memoria, velocidad de consulta extremadamente rápida
Operadores admitidos
| Operador | Segmentos principales |
|---|---|
| China Mobile | 134-139, 147, 150-152, 157-159, 172, 178, 182-184, 187-188, 198 |
| China Unicom | 130-132, 145, 155-156, 166, 175-176, 185-186 |
| China Telecom | 133, 149, 153, 173, 177, 180-181, 189, 199 |
| China Broadcasting Network | 192 |
| China Tietong | 174 |
Instalación
Método 1: Instalación desde el código fuente
git clone https://github.com/dahuangbaojian/sms-mcp-server.git
cd sms-mcp-server
Método 2: Uso directo
El proyecto se implementa utilizando la biblioteca estándar de Python, sin dependencias adicionales. Para ejecutar las pruebas:
pip install pytest
Uso
Uso en el cliente MCP
- Configurar el cliente MCP (como Claude Desktop):
{
"mcpServers": {
"phone-carrier-detector": {
"command": "python",
"args": ["mcp_server.py"],
"env": {}
}
}
}
- Reiniciar el cliente y luego se pueden usar las siguientes herramientas:
Detección de un solo número
请帮我检测手机号码 13812345678 的运营商和归属地信息
Detección por lotes de números
请帮我批量检测这些号码的运营商和归属地:13812345678, 18687654321, 13312345678
Herramientas API
1. detect_carrier
Detecta la información del operador y la ubicación de un solo número de teléfono móvil.
Parámetros:
phone_number(string): El número de teléfono móvil a detectar (11 dígitos)
Ejemplo de salida:
{
"success": true,
"phone_number": "13812345678",
"carrier": "China Mobile",
"carrier_cn": "移动",
"province": "江苏",
"city": "连云港",
"prefix": "1381234"
}
2. batch_detect_carriers
Detecta por lotes la información del operador y la ubicación de múltiples números de teléfono móvil.
Parámetros:
phone_numbers(array): Lista de números de teléfono móvil a detectar (hasta 100)
Ejemplo de salida:
{
"success": true,
"total": 3,
"results": [
{
"success": true,
"phone_number": "13812345678",
"carrier": "China Mobile",
"province": "江苏",
"city": "连云港"
}
]
}
Fuente de datos
El proyecto utiliza una base de datos real de ubicaciones de números de teléfono móvil chinos, que incluye:
- 492,088 registros
- Cobertura de todos los operadores principales
- Precisión a nivel de ciudad
- Actualizaciones en tiempo real
Desarrollo
Ejecutar pruebas
# 运行所有测试
python tests/run_tests.py --all
# 运行单元测试
python tests/run_tests.py --unit
# 运行集成测试
python tests/run_tests.py --integration
# 运行数据解析器测试
python tests/run_tests.py --data
Analizar datos
# 从原始数据文件生成数据库
python parse_phone_data.py
Pruebas locales
python mcp_server.py
Estructura del proyecto
.
├── 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 # 项目说明
Stack tecnológico
- Python 3.8+
- Protocolo MCP 2024-11-05
- JSON-RPC 2.0
- Expresiones regulares - Validación de formato de números
- Base de datos en memoria - Consultas de alto rendimiento
Características de rendimiento
- Uso de memoria: ~100MB (incluye 490,000 registros)
- Velocidad de consulta: Búsqueda en tabla hash O(1)
- Soporte de concurrencia: Procesamiento asíncrono, admite alta concurrencia
- Manejo de errores: Manejo completo de errores y validación de parámetros
Contribuciones
¡Se aceptan Issues y Pull Requests!
- Hacer fork del proyecto
- Crear una rama de funcionalidad (
git checkout -b feature/AmazingFeature) - Confirmar los cambios (
git commit -m 'Add some AmazingFeature') - Enviar a la rama (
git push origin feature/AmazingFeature) - Abrir un Pull Request
Licencia
Este proyecto está bajo la licencia MIT - consulte el archivo LICENSE para más detalles.
Registro de cambios
v1.0.0
- Lanzamiento de la versión inicial
- Soporte para la detección de los tres principales operadores chinos
- Soporte para la detección de ubicación (provincia + ciudad)
- Soporte para la detección de operadores virtuales
- Soporte para la detección por lotes de números
- Basado en una base de datos real (más de 490,000 registros)
- Implementación completa del protocolo MCP
- Cobertura integral de pruebas
Soporte
Si encuentras algún problema o tienes sugerencias, por favor:
- Consulta los Issues
- Crea un nuevo Issue
- Envía un correo electrónico a huangjian@ztinfo.cn
⭐ Si este proyecto te resulta útil, ¡dale una estrella!