text_file_read_and_refactor_mcp
Servidor MCP stdio Python eficiente em tokens que expõe ferramentas seguras de busca, leitura e refatoração de arquivos de texto. As ferramentas resolvem automaticamente o BOM e a codepage do arquivo; as ferramentas de edição salvam os arquivos com sua codificação e BOM originais.
Documentação
Text File Read And Refactor MCP
Servidor MCP stdio em Python eficiente em tokens, expondo ferramentas seguras de busca, leitura e refatoração de arquivos de texto. As ferramentas resolvem automaticamente o BOM e a página de código do arquivo; as ferramentas de edição salvam os arquivos com sua codificação e BOM originais.
Glama.AI
Repositório Github
O repositório Github é um espelho público curado do projeto. O desenvolvimento ativo (incluindo código experimental e notas de pesquisa privadas) acontece em um repositório privado; snapshots selecionados são publicados aqui periodicamente.
Instalação
-
Instale
uv: https://docs.astral.sh/uv/getting-started/installation/ -
Configure seu cliente MCP para executar o servidor via
uvx:
{
"mcpServers": {
"text-file-read-and-refactor": {
"command": "uvx",
"args": [
"text-file-read-and-refactor-mcp"
]
}
}
}
Ferramentas
Slice conceito: um análogo do slice(start: integer, stop: integer) - armazena os índices inicial e final de um intervalo.
Boundary conceito: um análogo do Boundary(text: string, type: Enum[text, word, dev_word, regex])
Span conceito: um análogo do Span(left_boundary: Boundary, right_boundary: Boundary). Ele permite operações de busca/substituição, como give me the text between "my_config_param:" and ";" ou replace the text between "%my_regex_1%" and "%my_regex_2%" with "my_text".
Ferramentas somente leitura:
text_file__list_allowed_directories- em pseudocódigo: "text_file__list_allowed_directories() -> List[directory_path]"text_file__file_content_length- em pseudocódigo: "text_file__file_content_length() -> integer_characters_num"text_file__read_slice- em pseudocódigo: "text_file__read_slice(characters_slice) -> text"text_file__file_lines_num- em pseudocódigo: "text_file__file_lines_num() -> integer_lines_num"text_file__read_content_by_line_range- em pseudocódigo: "text_file__read_content_by_line_range(lines_slice) -> text"text_file__find_text- em pseudocódigo: "text_file__find_text(text, type: Enum[text, word, dev_word, regex]) -> {found, result?: {slice, lines, text}}"text_file__find_all_text_occurrences- em pseudocódigo: "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- em pseudocódigo: "text_file__expand_slice_to_lines(characters_slice) -> lines_slice"text_file__find_span_boundaries- em pseudocódigo: "text_file__find_span_boundaries(left_boundary, right_boundary) -> Tuple[left_boundary_characters_slice, right_boundary_characters_slice]"text_file__find_span_between_boundaries- em pseudocódigo: "text_file__find_span_between_boundaries(left_boundary, right_boundary) -> text". Exemplo:text_file__find_span_between_boundaries("my_config_param:", ";")retornará a string " my_value".text_file__find_span_with_boundaries- em pseudocódigo: "text_file__find_span_with_boundaries(left_boundary, right_boundary) -> text". Exemplo:text_file__find_span_with_boundaries("my_config_param:", ";")retornará a string "my_config_param: my_value;".
Ferramentas de edição:
text_file__replace_content_by_line_range- em pseudocódigo: "text_file__replace_content_by_line_range(text, lines_slice)"text_file__replace_slice- em pseudocódigo: "text_file__replace_slice(text, characters_slice)"text_file__replace_text- em pseudocódigo: "text_file__replace_slice(old_text, new_text)"text_file__replace_span_between_boundaries- em pseudocódigo: "text_file__replace_span_between_boundaries(text, left_boundary, right_boundary)".text_file__replace_span_with_boundaries- em pseudocódigo: "text_file__replace_span_with_boundaries(text, left_boundary, right_boundary)".text_file__patch_spans_by_boundary_patterns- em pseudocódigo: "text_file__patch_spans_by_boundary_patterns(List[Tuple[text, left_boundary, right_boundary]])".
Cengal
Baseado em Cengal
Projetos usando Cengal
- InterProcessPyObjects - Pacote de alto desempenho que oferece comunicação entre processos extremamente rápida através de memória compartilhada, permitindo que objetos Python sejam compartilhados entre processos com eficiência excepcional.
- cengal_app_dir_path_finder - Um módulo Python que oferece uma API unificada para recuperação fácil de diretórios de aplicativos específicos do sistema operacional, melhorando o gerenciamento de dados no Windows, Linux e macOS
- cengal_cpu_info - Informações de CPU estendidas e armazenadas em cache, com formato de saída consistente.
- cengal_memory_barriers - Barreiras de memória rápidas e multiplataforma para Python.
- flet_async - wrapper que torna o Flet assíncrono e traz tanto Cengal.coroutines quanto asyncio para o Flet (UI baseada em Flutter)
- justpy_containers - wrapper em torno do JustPy para trazer mais segurança e mais recursos necessários para produção ao JustPy (UI baseada em VueJS)
- Bensbach - descompilador de bytecode do Unreal Engine 3 para um script semelhante a Lisp e compilador de volta para bytecode do Unreal Engine 3. Feito para fins de modding de jogos
- Realistic-Damage-Model-mod-for-Long-War - Mod para o XCOM:EW original e para o mod Long War. Foi feito com um Bensbach, que foi feito com Cengal
- SmartCATaloguer.com - Catálogo baseado em TagDB de imagens (tags), álbuns de música (tags de gênero) e aplicativos (categorias)
Licença
Copyright © 2026 ButenkoMS. Todos os direitos reservados.
Licenciado sob a Licença Apache, Versão 2.0.