- 新增飞书MCP服务,包含图片上传和消息卡片发送功能 - 新增文件工具MCP服务,提供文件转JSON和data URI功能 - 更新机器人MCP服务配置,移除环境变量硬编码 - 升级机器人版本至0.1.28并优化迎宾功能参数 - 添加.gitignore和项目配置文件
68 lines
1.9 KiB
Python
68 lines
1.9 KiB
Python
import argparse
|
|
import asyncio
|
|
import base64
|
|
from typing import Optional
|
|
|
|
from file_tools.tools import handle_call_tool
|
|
|
|
|
|
async def _run(
|
|
url: Optional[str],
|
|
file_path: Optional[str],
|
|
text: Optional[str],
|
|
name: str,
|
|
download_url: Optional[str],
|
|
download_path: Optional[str]
|
|
) -> None:
|
|
if url:
|
|
result = await handle_call_tool("url_to_data_uri", {"url": url})
|
|
print("url_to_data_uri:", result[0].text[:80], "len=", len(result[0].text))
|
|
|
|
if file_path:
|
|
result = await handle_call_tool("file_path_to_data_uri", {"file_path": file_path})
|
|
print("file_path_to_data_uri:", result[0].text[:80], "len=", len(result[0].text))
|
|
|
|
if download_url:
|
|
payload = {"url": download_url}
|
|
if download_path:
|
|
payload["file_path"] = download_path
|
|
result = await handle_call_tool("url_to_temp_file", payload)
|
|
print("url_to_temp_file:", result[0].text)
|
|
|
|
if text is not None:
|
|
payload = {
|
|
"file": {
|
|
"name": name,
|
|
"content_base64": base64.b64encode(text.encode("utf-8")).decode("ascii")
|
|
}
|
|
}
|
|
result = await handle_call_tool("file_to_json", payload)
|
|
print("file_to_json:", result[0].text)
|
|
result = await handle_call_tool("file_to_data_uri", payload)
|
|
print("file_to_data_uri:", result[0].text[:80], "len=", len(result[0].text))
|
|
|
|
|
|
def main() -> None:
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--url")
|
|
parser.add_argument("--file-path")
|
|
parser.add_argument("--download-url")
|
|
parser.add_argument("--download-path")
|
|
parser.add_argument("--text")
|
|
parser.add_argument("--name", default="sample.txt")
|
|
args = parser.parse_args()
|
|
asyncio.run(
|
|
_run(
|
|
args.url,
|
|
args.file_path,
|
|
args.text,
|
|
args.name,
|
|
args.download_url,
|
|
args.download_path
|
|
)
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|