feat: 新增飞书和文件工具MCP服务并优化机器人配置

- 新增飞书MCP服务,包含图片上传和消息卡片发送功能
- 新增文件工具MCP服务,提供文件转JSON和data URI功能
- 更新机器人MCP服务配置,移除环境变量硬编码
- 升级机器人版本至0.1.28并优化迎宾功能参数
- 添加.gitignore和项目配置文件
This commit is contained in:
2026-02-11 18:57:31 +08:00
parent ff39bdbd8a
commit 0a308726a6
20 changed files with 1005 additions and 22 deletions

67
file_tools/test_tools.py Normal file
View 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()