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

OperadorSegmentos principales
China Mobile134-139, 147, 150-152, 157-159, 172, 178, 182-184, 187-188, 198
China Unicom130-132, 145, 155-156, 166, 175-176, 185-186
China Telecom133, 149, 153, 173, 177, 180-181, 189, 199
China Broadcasting Network192
China Tietong174

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

  1. Configurar el cliente MCP (como Claude Desktop):
{
  "mcpServers": {
    "phone-carrier-detector": {
      "command": "python",
      "args": ["mcp_server.py"],
      "env": {}
    }
  }
}
  1. 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!

  1. Hacer fork del proyecto
  2. Crear una rama de funcionalidad (git checkout -b feature/AmazingFeature)
  3. Confirmar los cambios (git commit -m 'Add some AmazingFeature')
  4. Enviar a la rama (git push origin feature/AmazingFeature)
  5. 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:

  1. Consulta los Issues
  2. Crea un nuevo Issue
  3. Envía un correo electrónico a huangjian@ztinfo.cn

⭐ Si este proyecto te resulta útil, ¡dale una estrella!