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.

Metadata

Release files for text-file-read-and-refactor-mcp 1.16.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for text-file-read-and-refactor-mcp 1.16.0
File Size Uploaded
text_file_read_and_refactor_mcp-1.16.0.tar.gz 19.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for text-file-read-and-refactor-mcp 1.16.0
File Interpreter ABI Platform
text_file_read_and_refactor_mcp-1.16.0-py3-none-any.whl Python 3 none any Details

Total release size: 43.4 kB

Release files / text_file_read_and_refactor_mcp-1.16.0.tar.gz

Download URL text_file_read_and_refactor_mcp-1.16.0.tar.gz
Size 19.8 kB
Tags Source
SHA-256 checksum
How to use checksums
214a86969c0820c5f79fd2c498ba553253543790e95d4b7ac7abd38b92d3e943
BLAKE2b-256 checksum
How to use checksums
0546b70d5f90657f1e6f5aa21818c0174d6849a941230680544a275f6b25acc9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release files / text_file_read_and_refactor_mcp-1.16.0-py3-none-any.whl

Download URL text_file_read_and_refactor_mcp-1.16.0-py3-none-any.whl
Size 23.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
380bf788b6e08239ee4f410a5473c2588f2f40bd75f7e722697319769357784b
BLAKE2b-256 checksum
How to use checksums
39694973f50d5bc0554216a37b2e2a2ab8f86871509837930a74ca4dd6ad2b39
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

1.16.0 This release

2 release files

1.15.0

2 release files

1.14.0

2 release files

1.13.0

2 release files

1.12.0

2 release 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