Skip to main content
Glama
text_analyzer_server.cpython-312.pyc7.21 kB
� �\�h�� ���dZddlmZddlmZmZddlZddlZed�Zej�dde de dee effd ��Z ej�de dee effd ��Z ej�de dee effd ��Zej�de dee effd ��Zej�dde d edee effd��Zej%d�de fd��Zedk(rej+�yy)un Text Analyzer MCP Server AI 에이전트에서 답변 문자열의 글자 수를 체크하는 FastMCP 서버 �)�FastMCP)�Dict�AnyNzText Analyzer Server�text�include_spaces�returnc��|sddddd�St|�}t|jdd��}|jd�}||||||r|n|d�}|S)u� 텍스트의 글자 수를 계산합니다. Args: text: 분석할 텍스트 include_spaces: 공백을 포함할지 여부 (기본값: True) Returns: Dict containing character count analysis r)�total_characters�characters_without_spaces� spaces_count� text_length� �)r r r r �include_spaces_setting� final_count)�len�replace�count)rr� total_chars�chars_without_spacesr �results �3/Users/leejg/Desktop/mcp/my/text_analyzer_server.py�count_charactersrsr�� � !�)*���  � ��d�)�K��t�|�|�C��4�5���:�:�c�?�L�(�%9�$�"�"0�&4�{�:N� �F� �M�c���|sdddd�Stjd|j��}t|�}|rt d�|D��t |�z nd}t |�t |�t |d�d�S)u� 텍스트의 단어 수를 계산합니다. Args: text: 분석할 텍스트 Returns: Dict containing word count analysis rg)� word_count� unique_words�average_word_lengthz\b\w+\bc3�2K�|]}t|����y�w)N)r)�.0�words r� <genexpr>zcount_words.<locals>.<genexpr>Hs����1�4�S��Y�1�s��)�re�findall�lower�set�sumr�round)r�wordsr� avg_lengths r� count_wordsr,2s}�� ���#&� � � �J�J�z�4�:�:�<� 0�E��u�:�L�BG��1�5�1�1�C��J�>�Q�J��%�j��L�)�$�Z��3� �rc���|s dddddddd�Sdddddddd�}|D]�}|j�r|dxxdz cc<�!|j�rH|dxxdz cc<d|cxkrdkrnn|dxxdz cc<�Z|j�s�k|d xxdz cc<�y|j�r|d xxdz cc<��t j |�j d �r|d xxdz cc<��|d xxdz cc<��|S)u� 텍스트의 문자 타입별 분석을 수행합니다. Args: text: 분석할 텍스트 Returns: Dict containing character type analysis r)� alphabetic�numeric�spaces� punctuation�korean�english�special_charactersr0�r.u가u힯r2r3r/�Pr1r4)�isspace�isalpha�isascii� isnumeric� unicodedata�category� startswith)r�counts�chars r�analyze_character_typesr@Ps�� �������"#� � ���������F��.�� �<�<�>� �8� �� !� � �\�\�^� �<� �A� %� ��4�+�8�+��x� �A�%� ������y�!�Q�&�!� �^�^� � �9� �� "� � � !� !�$� '� 2� 2�3� 7� �=� !�Q� &� !� �'� (�A� -� (�.�" �Mrc ��t|�}t|�}t|�}|jd�}t |�}t |D�cgc]}|j �s�|��c}�}t jd|�}t |D� cgc]} | j �s�| ��c} �} |||||| t |�dkDr |dddzd�S|d�Scc}wcc} w)u� 텍스트의 종합적인 통계 정보를 제공합니다. Args: text: 분석할 텍스트 Returns: Dict containing comprehensive text statistics � z[.!?]+�dNz...)�character_analysis� word_analysis�character_types� line_count�non_empty_lines�sentence_count� text_preview)rr,r@�splitr�stripr$) r� char_stats� word_stats� type_stats�linesrG�linerH� sentences�srIs r�get_text_statisticsrT�s���"�$�'�J��T�"�J�(��.�J� �J�J�t� �E��U��J��E�B�D�T�Z�Z�\�4�B�C�O�����D�)�I��Y�<��!�'�'�)�!�<�=�N�)�#�%� �*�(�.1�$�i�#�o��T�c� �U�*� ��DH� ��� C��=s�C �C �C�C� max_lengthc ��t|�}||k}td||z �}td||z �}||||||dkDrt||z dzd�d�Sdd�S)u� 텍스트가 지정된 길이 제한을 초과하는지 확인합니다. Args: text: 검사할 텍스트 max_length: 최대 허용 길이 (기본값: 1000) Returns: Dict containing length check results rrCr#)�current_lengthrU� within_limit�excess_characters�remaining_characters�percentage_used)r�maxr))rrUrW�is_within_limit� excess_chars�remaining_charss r�check_text_length_limitr`�s�����Y�N�$� �2�O��q�.�:�5�6�L��!�Z�.�8�9�O�)� �'�)� /�LV�YZ�N�5�.�:�"=��!D�a�H�  �� ab�  �rztext_analyzer://helpc��y)uE 텍스트 분석기 사용법 도움말을 제공합니다. u9 Text Analyzer MCP Server 도움말 사용 가능한 도구: 1. count_characters(text, include_spaces) - 글자 수 계산 2. count_words(text) - 단어 수 계산 3. analyze_character_types(text) - 문자 타입별 분석 4. get_text_statistics(text) - 종합 통계 정보 5. check_text_length_limit(text, max_length) - 길이 제한 검사 예시: - count_characters("안녕하세요 Hello!", True) - get_text_statistics("분석할 텍스트를 입력하세요.") - check_text_length_limit("텍스트", 100) �rbrr�get_helprc�s��  r�__main__)T)i�)�__doc__�fastmcpr�typingrrr$r;�mcp�tool�str�boolrr,r@rT�intr`�resourcerc�__name__�runrbrr�<module>rpsa��� �� ���$�%������ �3� �� ��S�#�X�� � � �D�����c��d�3��8�n�� ��:����0�#�0�$�s�C�x�.�0� �0�d�����c��d�3��8�n�� ��B�����#��3��$�s�C�x�.�� ��4���$�%��#��&��( �z���G�G�I�r

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/suteeee/text_alalyzer'

If you have feedback or need assistance with the MCP directory API, please join our Discord server