Skip to main content
Glama

char-index-mcp (Archiviert)

Dieses Repository ist archiviert. Das Projekt wurde zu char-index-skill verschoben und ist nun als Claude Code Skill-Plugin mit fortgesetzter Unterstützung für MCP-Server verfügbar.

Zukünftige Updates sowohl für das Skill als auch für den MCP-Server (char-index-mcp) werden über das neue Repository veröffentlicht.


A Model Context Protocol (MCP) Server, der zeichenbasierte String-Manipulation ermöglicht. Perfekt für die Generierung von Testcode, bei der es auf die exakte Zeichenpositionierung ankommt.

License: MIT PyPI Python

🎯 Warum existiert dieses Projekt?

LLMs generieren Text Token für Token und haben Schwierigkeiten mit exakten Zeichenzählungen. Wenn Sie Testcode mit spezifischen Längenanforderungen generieren oder String-Positionen validieren müssen, benötigen Sie präzise, indexbasierte Werkzeuge. Dieser MCP-Server löst dieses Problem.

✨ Funktionen (12 Werkzeuge)

🔍 Zeichen- & Teilstring-Suche (4 Werkzeuge)

  • find_nth_char - Findet das n-te Vorkommen eines Zeichens

  • find_all_char_indices - Findet alle Indizes eines Zeichens

  • find_nth_substring - Findet das n-te Vorkommen eines Teilstrings

  • find_all_substring_indices - Findet alle Vorkommen eines Teilstrings

✂️ Teilen (1 Werkzeug)

  • split_at_indices - Teilt einen String an mehreren Positionen

✏️ String-Modifikation (3 Werkzeuge)

  • insert_at_index - Fügt Text an einer bestimmten Position ein

  • delete_range - Löscht Zeichen in einem Bereich

  • replace_range - Ersetzt einen Bereich durch neuen Text

🛠️ Dienstprogramme (3 Werkzeuge)

  • find_regex_matches - Findet Regex-Treffer mit Positionen

  • extract_between_markers - Extrahiert Text zwischen zwei Markierungen

  • count_chars - Zeichenstatistiken (Gesamt, Buchstaben, Ziffern, etc.)

📦 Stapelverarbeitung (1 Werkzeug)

  • extract_substrings - Extrahiert einen oder mehrere Teilstrings (einheitliches Werkzeug)

🚀 Installation

Option 1: Verwendung von uvx (Empfohlen)

Keine Installation erforderlich! Einfach konfigurieren und ausführen:

# Test it works
uvx char-index-mcp --help

Option 2: Von PyPI

pip install char-index-mcp

Option 3: Aus dem Quellcode

git clone https://github.com/agent-hanju/char-index-mcp.git
cd char-index-mcp
pip install -e .

🔧 Konfiguration

Claude Desktop

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Verwendung von uvx (Empfohlen)

{
  "mcpServers": {
    "char-index": {
      "command": "uvx",
      "args": ["char-index-mcp"]
    }
  }
}

Verwendung von 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

Hinzufügen zu ~/.cursor/mcp.json:

Verwendung von uvx (Empfohlen)

{
  "mcpServers": {
    "char-index": {
      "command": "uvx",
      "args": ["char-index-mcp"]
    }
  }
}

Verwendung von pip install

{
  "mcpServers": {
    "char-index": {
      "command": "char-index-mcp"
    }
  }
}

📖 Anwendungsbeispiele

Zeichen finden

# 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]

Arbeiten mit Teilstrings

# 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]

String-Manipulation

# 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"

Teilen & Extrahieren

# 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}
# ]

Musterabgleich

# 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"}
# ]

Text extrahieren

# 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
# }

🧪 Entwicklung

# 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

🎯 Anwendungsfälle

  1. Testcode-Generierung: Generieren von Strings mit exakter Zeichenanzahl

  2. Datenverarbeitung: Teilen/Extrahieren von Daten an präzisen Positionen

  3. Textformatierung: Einfügen/Löschen/Ersetzen an spezifischen Indizes

  4. Musteranalyse: Finden und Extrahieren von Musterübereinstimmungen mit Positionen

  5. LLM-Antwort-Parsing: Extrahieren von Inhalten zwischen XML-Tags nach Position

📝 Beispiel: Testcode-Generierung

# 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)

🤝 Mitwirken

Beiträge sind willkommen! Bitte:

  1. Forken Sie das Repository

  2. Erstellen Sie einen Feature-Branch

  3. Fügen Sie Tests für neue Funktionen hinzu

  4. Senden Sie einen Pull Request

📄 Lizenz

MIT-Lizenz - siehe LICENSE-Datei für Details

🔗 Verwandte Projekte

📮 Kontakt

Für Probleme, Fragen oder Vorschläge eröffnen Sie bitte ein Issue auf GitHub.


Hinweis: Dies ist der erste MCP-Server, der speziell für indexbasierte String-Manipulation entwickelt wurde. Alle anderen Text-MCP-Server konzentrieren sich auf Zählen, Groß-/Kleinschreibung oder Kodierung – nicht auf präzise Zeichenpositionierung.

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