char-index-mcp
char-index-mcp (Archivado)
Este repositorio está archivado. Este proyecto se ha trasladado a char-index-skill, ahora disponible como un plugin de Claude Code Skill con soporte continuo para servidores MCP.
Las futuras actualizaciones tanto del Skill como del servidor MCP (
char-index-mcp) se publicarán desde el nuevo repositorio.
Un servidor del Protocolo de Contexto de Modelos (MCP) que proporciona manipulación de cadenas basada en índices a nivel de carácter. Perfecto para la generación de código de prueba donde la posición exacta del carácter es importante.
🎯 Por qué existe esto
Los LLMs generan texto token por token y tienen dificultades con el conteo exacto de caracteres. Al generar código de prueba con requisitos de longitud específicos o validar posiciones de cadenas, necesitas herramientas precisas basadas en índices. Este servidor MCP resuelve ese problema.
✨ Características (12 herramientas)
🔍 Búsqueda de caracteres y subcadenas (4 herramientas)
find_nth_char- Encuentra la enésima aparición de un carácterfind_all_char_indices- Encuentra todos los índices de un carácterfind_nth_substring- Encuentra la enésima aparición de una subcadenafind_all_substring_indices- Encuentra todas las apariciones de una subcadena
✂️ División (1 herramienta)
split_at_indices- Divide la cadena en múltiples posiciones
✏️ Modificación de cadenas (3 herramientas)
insert_at_index- Inserta texto en una posición específicadelete_range- Elimina caracteres en un rangoreplace_range- Reemplaza un rango con texto nuevo
🛠️ Utilidades (3 herramientas)
find_regex_matches- Encuentra coincidencias de patrones regex con posicionesextract_between_markers- Extrae texto entre dos marcadorescount_chars- Estadísticas de caracteres (total, letras, dígitos, etc.)
📦 Procesamiento por lotes (1 herramienta)
extract_substrings- Extrae una o más subcadenas (herramienta unificada)
🚀 Instalación
Opción 1: Usando uvx (Recomendado)
¡No requiere instalación! Solo configura y ejecuta:
# Test it works
uvx char-index-mcp --helpOpción 2: Desde PyPI
pip install char-index-mcpOpción 3: Desde el código fuente
git clone https://github.com/agent-hanju/char-index-mcp.git
cd char-index-mcp
pip install -e .🔧 Configuración
Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Usando uvx (Recomendado)
{
"mcpServers": {
"char-index": {
"command": "uvx",
"args": ["char-index-mcp"]
}
}
}Usando pip install
{
"mcpServers": {
"char-index": {
"command": "char-index-mcp"
}
}
}Claude Code
# Using uvx (recommended)
claude mcp add char-index '{"command":"uvx","args":["char-index-mcp"]}'
# Using pip install
claude mcp add char-index '{"command":"char-index-mcp"}'Cursor
Añadir a ~/.cursor/mcp.json:
Usando uvx (Recomendado)
{
"mcpServers": {
"char-index": {
"command": "uvx",
"args": ["char-index-mcp"]
}
}
}Usando pip install
{
"mcpServers": {
"char-index": {
"command": "char-index-mcp"
}
}
}📖 Ejemplos de uso
Búsqueda de caracteres
# Find 3rd occurrence of 'l'
find_nth_char("hello world", "l", 3) # Returns: 9
# Find all occurrences of 'l'
find_all_char_indices("hello world", "l") # Returns: [2, 3, 9]Trabajo con subcadenas
# Find 2nd "hello"
find_nth_substring("hello hello world", "hello", 2) # Returns: 6
# Find all occurrences
find_all_substring_indices("hello hello world", "hello") # Returns: [0, 6]Manipulación de cadenas
# Insert comma after "hello"
insert_at_index("hello world", 5, ",") # Returns: "hello, world"
# Delete " world"
delete_range("hello world", 5, 11) # Returns: "hello"
# Replace "world" with "Python"
replace_range("hello world", 6, 11, "Python") # Returns: "hello Python"División y extracción
# Split at multiple positions
split_at_indices("hello world", [2, 5, 8]) # Returns: ["he", "llo", " wo", "rld"]
# Extract single character
extract_substrings("hello", [{"start": 1, "end": 2}])
# Returns: [{"start": 1, "end": 2, "substring": "e", "length": 1}]
# Batch extraction
extract_substrings("hello world", [
{"start": 0, "end": 5},
{"start": 6, "end": 11}
])
# Returns: [
# {"start": 0, "end": 5, "substring": "hello", "length": 5},
# {"start": 6, "end": 11, "substring": "world", "length": 5}
# ]Coincidencia de patrones
# Find all numbers with their positions
find_regex_matches("test123abc456", r"\d+")
# Returns: [
# {"start": 4, "end": 7, "match": "123"},
# {"start": 10, "end": 13, "match": "456"}
# ]Extracción de texto
# Extract content between markers
extract_between_markers("start[content]end", "[", "]", 1)
# Returns: {
# "content": "content",
# "content_start": 6,
# "content_end": 13,
# "full_start": 5,
# "full_end": 14
# }🧪 Desarrollo
# Clone the repository
git clone https://github.com/agent-hanju/char-index-mcp.git
cd char-index-mcp
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest
# Run with coverage
pytest --cov=char_index_mcp --cov-report=term-missing🎯 Casos de uso
Generación de código de prueba: Generar cadenas con conteos exactos de caracteres
Procesamiento de datos: Dividir/extraer datos en posiciones precisas
Formateo de texto: Insertar/eliminar/reemplazar en índices específicos
Análisis de patrones: Encontrar y extraer coincidencias de patrones con posiciones
Análisis de respuestas de LLM: Extraer contenido entre etiquetas XML por posición
📝 Ejemplo: Generación de código de prueba
# Ask Claude: "Generate a test string that's exactly 100 characters long"
# Claude can use count_chars() to verify the exact length
# Ask: "Find where the 5th comma is in this CSV line"
# Claude can use find_nth_char(csv_line, ",", 5)
# Ask: "Split this string at characters 10, 25, and 50"
# Claude can use split_at_indices(text, [10, 25, 50])
# Ask: "Extract the text between the 2nd <thinking> and </thinking> tags"
# Claude can use extract_between_markers(text, "<thinking>", "</thinking>", 2)🤝 Contribución
¡Las contribuciones son bienvenidas! Por favor:
Haz un fork del repositorio
Crea una rama de funcionalidad
Añade pruebas para la nueva funcionalidad
Envía una solicitud de extracción (pull request)
📄 Licencia
Licencia MIT - consulta el archivo LICENSE para más detalles
🔗 Proyectos relacionados
mcp-character-counter - Conteo y análisis de caracteres
mcp-wordcounter - Conteo de palabras y caracteres para archivos
text-master-mcp - Kit de herramientas integral de procesamiento de texto
📮 Contacto
Para problemas, preguntas o sugerencias, por favor abre un issue en GitHub.
Nota: Este es el primer servidor MCP diseñado específicamente para la manipulación de cadenas basada en índices. Todos los demás servidores MCP de texto se centran en el conteo, la conversión de mayúsculas/minúsculas o la codificación, no en el posicionamiento preciso de caracteres.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/agent-hanju/char-index-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server