feat: 新增飞书和文件工具MCP服务并优化机器人配置
- 新增飞书MCP服务,包含图片上传和消息卡片发送功能 - 新增文件工具MCP服务,提供文件转JSON和data URI功能 - 更新机器人MCP服务配置,移除环境变量硬编码 - 升级机器人版本至0.1.28并优化迎宾功能参数 - 添加.gitignore和项目配置文件
This commit is contained in:
67
file_tools/test_tools.py
Normal file
67
file_tools/test_tools.py
Normal file
@@ -0,0 +1,67 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user