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
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
-
Install
uv: https://docs.astral.sh/uv/getting-started/installation/ -
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| text_file_read_and_refactor_mcp-1.16.0.tar.gz | 19.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|
Security for text-file-read-and-refactor-mcp 1.16.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.