Skip to main content
Glama
rmrfslashbin

MCP Server - Images

by rmrfslashbin
server.cpython-311.pyc9.07 kB
� + {h���Z�dZddlZddlZddlZddlmZddlmZmZm Z ddl m Z ddl m Z mZmZmZddlZddlmZmZdd lmZejej� ��eje��Ze d ��Ze���d ee fd ���Ze� ��de!dee!efd eeezfd���Z d"de!de e!de!de e!de!de"de e#de!de!d eefd�Z$d �Z%ed!krej&e%����dSdS)#z+MCP server for AI-powered image generation.�N)�Path)�Any�Dict�Optional)�Server)�Tool� TextContent� ImageContent�EmbeddedResource�)�StabilityClient� BFLClient)�generate_filename)�levelzmcp-server-images�returnc��K�tdddddd�ddd�ddd gd dd �dd d�dgd �ddd �dddddd�ddddd�dddd�dddd�d � d!gd"��#��gS)$z&List available image generation tools.�generate_imagezBGenerate images from text prompts using AI image generation models�object�stringz2Detailed text description of the image to generate)�type� descriptionz3Things to avoid in the image (not supported by BFL)� stability�bflzImage generation provider)r�enumr�defaultz;Specific model to use (e.g., 'sd3.5-large', 'flux-pro-1.1')) z16:9�1:1z21:9z2:3z3:2z4:5z5:4z9:16z9:21zImage aspect ratior�numberg�?g$@z2Classifier free guidance scale (Stability AI only)�@)r�minimum�maximumrr�integerrl��z Seed for reproducible generation)rrr rz%Output directory for generated images�./images)rrrz Template for generated filenames�{{.Timestamp}}-{{.Subject}}) �prompt�negative_prompt�provider�model� aspect_ratio� cfg_scale�seed� output_dir�filename_templater$)r� properties�required)�namer� inputSchema)r���m/Users/rmrfslashbin/src/github.com/rmrfslashbin/chatterbox/mcp-servers/images/src/mcp_server_images/server.py� list_toolsr4s���� �!�\� �!)�'[��� !)�'\�(�(� !)�!,�e� 4�'B�#.� !�!�!)�'d��� !)� c� c� c�';�#(� %�%�!)�#&�#'�'[�#&� "�"�!*�#$�#-�'I� ��!)�'N�#-�#�#� !)�'I�#@�*�*�W0�0�b&�J�g4�4�8 �8 �8 �: �:r2r/� argumentsc��ZK�|dkrtdi|���d{V��Std|�����)z'Handle tool calls for image generation.rNzUnknown tool: r1)�generate_image_tool� ValueError)r/r5s r3� call_toolr9]sQ���� ����(�5�5�9�5�5�5�5�5�5�5�5�5��0�$�0�0�1�1�1r2rrrr"r#r$r%r&r'r(r)r*r+r,c ���K�t�d|dd��d���t�d|�d|�d|���� |dvrtd |�d ����|d kr(tjd ��} | std ���d} n'tjd��} | std���d} |s| }t ||||t |��d���} | j�dd���|d krlt| ��} | � ||||||| ����d{V��} | � ���d{V��n�#| � ���d{V��wxYwt| ��} | � ||||||| ����d{V��} | � ���d{V��n#| � ���d{V��wxYw| ddz }| d� d|pd��}d| j�d| �d|d�d |����d!| d"�d#|�� }|r|d kr|d$|��z }|d%|�d&|��z }|d kr|d'|��z }|d(|�d)�z }t!d*|�+��gS#t"$rj}d,t%|���d-|�d.|�d/|dd0��d� }t�d1t%|������t!d*|�+��gcYd}~Sd}~wwxYw)2z>Generate an image using the specified provider and parameters.zGenerating image: N�2z...z Provider: z , Model: z , Aspect: )rrzUnsupported provider: z. Use 'stability' or 'bfl'r�STABILITY_API_KEYz.STABILITY_API_KEY environment variable not setz sd3.5-large� BFL_API_KEYz(BFL_API_KEY environment variable not setz flux-pro-1.1�png)�templater$r&r'r+� extensionT)�parents�exist_ok)r$r%r'r(r)r*� output_path� image_sizei� parameters� actual_seed�randomuJ✅ **Image Generated Successfully!** **File Details:** - **Saved to:** `z` - **Full path:** `z` - **File size:** z.1fz0 MB **Generation Parameters:** - **Provider:** z - **Model:** r'z - **Prompt:** z - **Negative prompt:** z - **Aspect ratio:** z - **Seed:** z - **CFG scale:** z **Template Applied:** `z1` The image has been saved and is ready for use!�text)rrHu,❌ **Image Generation Failed** **Error:** z **Parameters:** - Provider: z - Model: z - Prompt: �dzImage generation failed: )�logger�infor8�os�getenvrr�parent�mkdirr r�closer�getr/�titler � Exception�str�error)r$r%r&r'r(r)r*r+r,�api_key� default_modelrC�client�result� file_size_mbrF� response_text�e� error_msgs r3r7r7fs����� �K�K�5�V�C�R�C�[�5�5�5�6�6�6� �K�K�O�X�O�O��O�O��O�O�P�P�P�f:� �/� /� /��Z�h�Z�Z�Z�[�[� [� �{� "� "��i� 3�4�4�G�� S� �!Q�R�R�R�)�M�M��i� �.�.�G�� M� �!K�L�L�L�*�M�� "�!�E�(�&�����J�'�'��  � � � � �� � ��� �=�=�=� �{� "� "�$�W�-�-�F� %�%�4�4�!�$3��!-�'�� +� 5� � ���������l�l�n�n�$�$�$�$�$�$�$�$��f�l�l�n�n�$�$�$�$�$�$�$�$�����w�'�'�F� %�%�4�4�!�$3��!-�'�� +� 5� � ���������l�l�n�n�$�$�$�$�$�$�$�$��f�l�l�n�n�$�$�$�$�$�$�$�$�����l�+�{�;� ��\�*�.�.�}�d�>N�h�O�O� � ��"� � �� � � � � � ����!�!� � ��W�o� � �� � � � � K�x�;�6�6� �J��J�J� J�M���!��� ��� � � �{� "� "� �>�9�>�>� >�M��2�)�2�2�2� 2� � ��m�<�<�<�=�=�� �:�:�:�h�S��V�V�h�h�nv�h�h�DI�h�h�W]�^b�_b�^b�Wc�h�h�h� �� � �9��Q���9�9�:�:�:���i�8�8�8�9�9�9�9�9�9�9�����:���sQ� CI8�"E�3I8�E*�*I8�="F:�I8�:G�B!I8�8 K,�AK'�!K,�'K,c��RK�t�d��tjj���4�d{V��\}}t�||t������d{V��ddd���d{V��dS#1�d{V��swxYwYdS)zRun the MCP server.z'Starting MCP Image Generation Server...N)rJrK�mcp�server�stdio� stdio_server�run�create_initialization_options)� read_stream� write_streams r3�mainrg�s9���� �K�K�9�:�:�:��z��,�,�.�.� � � � � � � �2M�;� ��j�j� � � � 0� 0� 2� 2� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���� � � � � � s�=B� B �#B �__main__)NrNrrNr"r#)'�__doc__�asyncio�loggingrL�pathlibr�typingrrr� mcp.serverr� mcp.typesrr r r �mcp.server.stdior_� providersr r�utilsr� basicConfig�INFO� getLogger�__name__rJr`r4�listr9rT�float�intr7rgrcr1r2r3�<module>rzs���1�1��������� � � � �������&�&�&�&�&�&�&�&�&�&������������������� ����1�1�1�1�1�1�1�1�$�$�$�$�$�$����'�,�'�'�'�'� �� �8� $� $�� ��#� $� $�������<�$�t�*�<�<�<���<�~�����2�#�2�$�s�C�x�.�2�T�+�P\�B\�=]�2�2�2���2�&*������ �:�v:�v:� �v:��c�]�v:��v:� �C�=� v:� � v:� � v:� �3�-�v:��v:��v:� �+��v:�v:�v:�v:�r  �  �  � �z����G�K�����������r2

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/rmrfslashbin/mcp-server-images'

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