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

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

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

text_file_read_and_refactor_mcp MCP server

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

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

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