Skip to main content
Glama
server.cpython-312.pyc8.38 kB
� �h55��d�dZddlZddlZddlZddlmZmZmZddlZddl m Z ddl m Z m Z ddlmZddlmZmZmZmZmZmZmZmZmZmZmZmZmZej<e�Z e d �Z!e!jE�d ee fd ��Z"e!jG�d e$d ee$efd ee fd��Z#dde$fd�Z%y)u TOS MCP Server 实现 �N)�Any�Dict�List)�Server)�Tool� TextContent�)� tos_config) � create_bucket� list_buckets�get_bucket_meta� delete_bucket� put_object� get_object� list_objects� delete_object� presigned_url� image_process� image_info�video_snapshot� video_infoztos-mcp�returnc��VK�tdddddd�ddgd�d d �d �d gd ���tdddid���tdddd ddd�id gd ���tdddd ddd�id gd ���tdddddd�ddd�ddd�dddd�dddd�d �gd!�d ���td"d#dddd�ddd�dd$dd�d%�d d&gd ���td'd(dddd�dd)d*d�dd+d*d�d,d-d.d�d/�d gd ���td0d1dddd�ddd�d2�d d&gd ���td3d4dddd�ddd�dd5gd6�d7d �d,d8d9d�d:�d d&gd ���td;d<dddd�dd=d�d2�d d&gd ���td>d?dddd�dd=d�dd@d�ddAd�ddBd�dC�gdC�d ���tdDdEdddd�ddFd�dGdHdId�ddJdKdLgdKd �ddMd�ddNd�dO�gdP�d ���tdQdRdddd�ddFd�d2�d d&gd ���g S�w)Su列出所有可用的工具�tos_create_bucketu创建 TOS 存储桶�object�stringu存储桶名称)�type� descriptionu访问控制权限)�privatez public-readzpublic-read-writer)rr�enum�default)� bucket_name�aclr")r� properties�required)�namer� inputSchema�tos_list_bucketsu列举 TOS 存储桶)rr$�tos_get_bucket_metau获取存储桶元数据�tos_delete_bucketu删除 TOS 存储桶�tos_put_objectu上传对象到 TOSu 对象键名u-文件内容(base64编码)或文本内容u 内容类型zapplication/octet-stream)rrr!�booleanu内容是否为base64编码F)r"� object_key�content� content_type� is_base64)r"r-r.�tos_get_objectu从 TOS 下载对象u!是否以base64格式返回内容)r"r-�return_as_base64r-�tos_list_objectsu列举 TOS 对象u对象键前缀�u 分隔符�integeru最大返回对象数量i�)r"�prefix� delimiter�max_keys�tos_delete_objectu删除 TOS 对象)r"r-�tos_presigned_urlu生成预签名 URLu HTTP方法)�GET�PUT�POST�DELETEr;u过期时间(秒)i)r"r-�method�expires�tos_image_infou获取图片信息u图片对象键名�tos_image_processu9图片处理(组合操作,支持多种处理参数)u�图片处理参数。参数格式通常为 'image/操作,参数',如: 'image/resize,h_100' 或 'image/format,jpg'。常用操作包括:resize(缩放),format(格式转换),quality(质量),crop(裁剪),rotate(旋转)等。u保存的存储桶名称u保存的对象键名)r"r-�process� save_bucket�save_key�tos_video_snapshotu!视频截帧(支持持久化)u视频对象键名�numberu6截帧时间点(毫秒),如300表示第300毫秒i,u 输出格式�jpg�pngu$保存截帧图片的存储桶名称u!保存截帧图片的对象键名)r"r-�time�formatrDrE)r"r-rDrE�tos_video_infou获取视频信息)r���?/Users/bytedance/Documents/tos-mcp/src/tos_mcp_server/server.py� list_toolsrPs���� �$�.� �!)�'8�$� !)�';� O�#,� � �+�O�� �( �#�.� � �� � �&�2� �!� (�'8�$�� +�O� � � �$�.� �!� (�'8�$�� +�O� � � �!�-� �!)�'8�$� !)�'5�#� !)�'V� � !)�'5�#=�%� !*�'D�#(�"�%�0E�5� �@ �!�.� �!)�'8�$� !)�'5�#� !*�'J�#(�)��+�L�9�#� �. �#�+� �!)�'8�$� !)�'8�#%�� !)�'2�#%�"� !*�'A�#'�!��*+�O�/� �: �$�+� �!)�'8�$� !)�'5�#� �+�L�9� � �( �$�-� �!)�'8�$� !)�'5�#� !)�'3� @�#(� �!*�'>�#'� ��*+�L�9�/� �< �!�,� �!)�'8�$� !)�';�#� �+�L�9� � �& �$�S� �!)�'8�$� !)�';�#� !)�(J� � !)�'A�$� !)�'>�!�#�,`�1� �@ �%�;� �!)�'8�$� !)�';�#� !)�'_�#&�� !)�'5�!&���#(� �!)�'M�$� !)�'J�!�1�:U�? �$ �J �!�,� �!)�'8�$� !)�';�#� �+�L�9� � �ul �l�s�F'F)r&� argumentsc ��K� |dk(rt|��d{���S|dk(rt|��d{���S|dk(rt|��d{���S|dk(rt|��d{���S|dk(rt |��d{���S|dk(rt |��d{���S|dk(rt |��d{���S|d k(rt|��d{���S|d k(rt|��d{���S|d k(rt|��d{���S|d k(rt|��d{���S|d k(rt|��d{���S|dk(rt|��d{���Stdd|����gS7��67��!7�� 7��7��7��7��7��7��7�r7�\7�F7�0#t$rH}tj!d|�dt#|����tddt#|�����gcYd}~Sd}~wwxYw�w)u处理工具调用rNr(r)r*r+r1r3r9r:rBrArFrL�textu未知工具: )rrSu工具调用错误 z: u错误: )r r r rrrrrrrrrrr� Exception�logger�error�str)r&rQ�es rO� call_toolrYMs�����D� �&� &�&�y�1�1� 1� �'� '�%�i�0�0� 0� �*� *�(��3�3� 3� �(� (�&�y�1�1� 1� �%� %�#�I�.�.� .� �%� %�#�I�.�.� .� �'� '�%�i�0�0� 0� �(� (�&�y�1�1� 1� �(� (�&�y�1�1� 1� �(� (�&�y�1�1� 1� �%� %�#�I�.�.� .� �)� )�'� �2�2� 2� �%� %�#�I�.�.� .��V�N�4�&�2I�J�K� K�52��0��3��1��.��.��0��1��1��1��.��2��.�� �D�� � �*�4�&��3�q�6�(�;�<�����Q���.A�B�C�C��D�s��F>�E*�E �E*�F>�E*�E�E*�F>�E*�E�E*� F>� E*�E� E*�#F>�$E*�7E�8E*�;F>�<E*�E�E*�F>�E*�'E�(E*�+F>�,E*�?E�E*�F>�E*�E �E*�F>�E*�/E"�0E*�3F>�4E*�E$�E*� F>� E*�E&� E*�#F>�$E*�7E(�8E*�;F>�<E*� F>� E*�E*�E*�E*�E*�E*�E*�E*� E*�"E*�$E*�&E*�(E*�* F;�3=F6�0F;�1F>�6F;�;F>� transportc��JK�|dk(r\ ddlm}|�4�d{���\}}tj ||tj ���d{���ddd��d{���ytd|�d���#t$r ddlm}Y�uwxYw7�m7�;7�-#1�d{���7swYyxYw�w)u运行MCP服务器�stdior)� stdio_serverNz Transport z not implemented)�mcp.server.stdior]� ImportError� mcp.server�server�run�create_initialization_options�NotImplementedError)rZr]� read_stream� write_streams rO� run_serverrgqs������G�� 0� 5� �>� � �%@�k�<��*�*����4�4�6�� � � � � �"�J�y�k�9I�"J�K�K��� 0� /� 0�� �� �� �� � � �sx�B#�A3� B#�B�B#�0B�B �B� B#�B �B#�3B�B#�B�B#� B� B#�B �B �B �B#)r\)&�__doc__�json�base64�logging�typingrrr�tosr`r� mcp.typesrr�configr �handlersr r r rrrrrrrrrr� getLogger�__name__rUrarPrYrWrgrMrNrO�<module>rss���� � ��"�"� ��'������ �� � �8� $�� � � ������n�$�t�*�n��n�` ����!D�#�!D�$�s�C�x�.�!D�T�+�=N�!D��!D�FL��LrN

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/jneless/tos-mcp'

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