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.15.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.15.0
File Size Uploaded
text_file_read_and_refactor_mcp-1.15.0.tar.gz 19.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for text-file-read-and-refactor-mcp 1.15.0
File Interpreter ABI Platform
text_file_read_and_refactor_mcp-1.15.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.15.0.tar.gz

Download URL text_file_read_and_refactor_mcp-1.15.0.tar.gz
Size 19.8 kB
Tags Source
SHA-256 checksum
How to use checksums
18eb1184b63e6342871b95d001345434a085437cba12e10697c6382e25aa8246
BLAKE2b-256 checksum
How to use checksums
1e4f50230997ec0bffc30bc631ff45b842d64d3eb0b4f3db13397094383e5ae2
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.15.0-py3-none-any.whl

Download URL text_file_read_and_refactor_mcp-1.15.0-py3-none-any.whl
Size 23.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f5f72aa4397bd26a6daa890eccd20cb23c0deaab4ebb7c8514ce54397a67c604
BLAKE2b-256 checksum
How to use checksums
24d7c529429fded778fd74f7bee178726215e94f00631fac23f94690758d3bdf
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

1.16.0

2 release files

This release

1.15.0 This release

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