Skip to main content

GitHub tag (with filter) Static Badge

Static Badge Static Badge

GitHub License Static Badge

text_file_read_and_refactor_mcp MCP server

Text File Read And Refactor MCP

Token-efficient Python stdio MCP server exposing safe text-file search, reading, and refactoring tools. Tools automatically resolve the file BOM and codepage; edit tools save files with their original encoding and BOM.

Glama.AI

text_file_read_and_refactor_mcp MCP server

Github repository

Github repository is a curated public mirror of the project. Active development (including experimental code and private research notes) happens in a private repository; selected snapshots are published here periodically.

Installation

  1. Install uv: https://docs.astral.sh/uv/getting-started/installation/

  2. Configure your MCP client to run the server via uvx:

{
  "mcpServers": {
    "text-file-read-and-refactor": {
      "command": "uvx",
      "args": [
        "text-file-read-and-refactor-mcp"
      ]
    }
  }
}

Tools

Slice concept: an analog of the slice(start: integer, stop: integer) - stores the start and end indices of a range.

Boundary concept: an analog of the Boundary(text: string, type: Enum[text, word, dev_word, regex])

Span concept: an analog of the Span(left_boundary: Boundary, right_boundary: Boundary). It allows for search/replace operations such as give me the text between "my_config_param:" and ";" or replace the text between "%my_regex_1%" and "%my_regex_2%" with "my_text".

Read-only tools:

  • text_file__list_allowed_directories - in pseudocode: "text_file__list_allowed_directories() -> List[directory_path]"
  • text_file__file_content_length - in pseudocode: "text_file__file_content_length() -> integer_characters_num"
  • text_file__read_slice - in pseudocode: "text_file__read_slice(characters_slice) -> text"
  • text_file__file_lines_num - in pseudocode: "text_file__file_lines_num() -> integer_lines_num"
  • text_file__read_content_by_line_range - in pseudocode: "text_file__read_content_by_line_range(lines_slice) -> text"
  • text_file__find_text - in pseudocode: "text_file__find_text(text, type: Enum[text, word, dev_word, regex]) -> {found, result?: {slice, lines, text}}"
  • text_file__find_all_text_occurrences - in pseudocode: "text_file__find_all_text_occurrences(text, type: Enum[text, word, dev_word, regex], result_index_start, result_index_stop) -> List[{found, result: {slice, lines, text}}]"
  • text_file__expand_slice_to_lines - in pseudocode: "text_file__expand_slice_to_lines(characters_slice) -> lines_slice"
  • text_file__find_span_boundaries - in pseudocode: "text_file__find_span_boundaries(left_boundary, right_boundary) -> Tuple[left_boundary_characters_slice, right_boundary_characters_slice]"
  • text_file__find_span_between_boundaries - in pseudocode: "text_file__find_span_between_boundaries(left_boundary, right_boundary) -> text". Example: text_file__find_span_between_boundaries("my_config_param:", ";") will return string " my_value".
  • text_file__find_span_with_boundaries - in pseudocode: "text_file__find_span_with_boundaries(left_boundary, right_boundary) -> text". Example: text_file__find_span_with_boundaries("my_config_param:", ";") will return string "my_config_param: my_value;".

Edit tools:

  • text_file__replace_content_by_line_range - in pseudocode: "text_file__replace_content_by_line_range(text, lines_slice)"
  • text_file__replace_slice - in pseudocode: "text_file__replace_slice(text, characters_slice)"
  • text_file__replace_text - in pseudocode: "text_file__replace_slice(old_text, new_text)"
  • text_file__replace_span_between_boundaries - in pseudocode: "text_file__replace_span_between_boundaries(text, left_boundary, right_boundary)".
  • text_file__replace_span_with_boundaries - in pseudocode: "text_file__replace_span_with_boundaries(text, left_boundary, right_boundary)".
  • text_file__patch_spans_by_boundary_patterns - in pseudocode: "text_file__patch_spans_by_boundary_patterns(List[Tuple[text, left_boundary, right_boundary]])".

Cengal

Based on Cengal

Projects using Cengal

  • InterProcessPyObjects - High-performance package delivers blazing-fast inter-process communication through shared memory, enabling Python objects to be shared across processes with exceptional efficiency.
  • cengal_app_dir_path_finder - A Python module offering a unified API for easy retrieval of OS-specific application directories, enhancing data management across Windows, Linux, and macOS
  • cengal_cpu_info - Extended, cached CPU info with consistent output format.
  • cengal_memory_barriers - Fast cross-platform memory barriers for Python.
  • flet_async - wrapper which makes Flet async and brings booth Cengal.coroutines and asyncio to Flet (Flutter based UI)
  • justpy_containers - wrapper around JustPy in order to bring more security and more production-needed features to JustPy (VueJS based UI)
  • Bensbach - decompiler from Unreal Engine 3 bytecode to a Lisp-like script and compiler back to Unreal Engine 3 bytecode. Made for a game modding purposes
  • Realistic-Damage-Model-mod-for-Long-War - Mod for both the original XCOM:EW and the mod Long War. Was made with a Bensbach, which was made with Cengal
  • SmartCATaloguer.com - TagDB based catalog of images (tags), music albums (genre tags) and apps (categories)

License

Copyright © 2026 ButenkoMS. All rights reserved.

Licensed under the Apache License, Version 2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

text_file_read_and_refactor_mcp-1.14.0.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file text_file_read_and_refactor_mcp-1.14.0.tar.gz.

File metadata

File hashes

Hashes for text_file_read_and_refactor_mcp-1.14.0.tar.gz
Algorithm Hash digest
SHA256 3c6fbfe30235e5d41485f1cc61d8faece34d793b094e221ed293c266e7abfb8e
MD5 4bddc5a1517f80371945b928089e535e
BLAKE2b-256 bfd5734d0d8163921f63714936f151eef1260e21d1cb3049fd6a4a230c28a0ba

See more details on using hashes here.

File details

Details for the file text_file_read_and_refactor_mcp-1.14.0-py3-none-any.whl.

File metadata

File hashes

Hashes for text_file_read_and_refactor_mcp-1.14.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e1a9972551e807029a36e753348fab62a64276862fd069cc3bbc246c09e580a
MD5 3c273a5f32b9f2f5ec65b94f974d2287
BLAKE2b-256 0064c71c95d3223ad29aa24d0c88d83d2cc6832bcef807c8b02733000e9d79c1

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.14.0 This release

2 files

1.13.0

2 files

1.12.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page