Skip to main content
Glama
tools_4.py2.93 kB
from pydantic import BaseModel from typing import Optional import httpx from main import __mcp_server__, success_response, error_response # ======================= # ✅ 定義請求參數 # ======================= class TranslatorSearchParams(BaseModel): creator_id: Optional[str] = None # 作譯者 ID,如 A000439 creator: Optional[str] = None # 作譯者姓名模糊搜尋,如 "竺" creator_name: Optional[str] = None # 僅搜尋尚未確認 ID 的譯者,如 "竺" # ======================= # ✅ 註冊 MCP 工具 # ======================= @__mcp_server__.tool() async def search_works_by_translator(params: TranslatorSearchParams): """ 📘 根據 CBETA Online 的作譯者資訊搜尋作品。 支援三種搜尋方式: 1. 指定作譯者 ID 搜尋(creator_id) 2. 作譯者姓名模糊搜尋(creator) 3. 僅搜尋尚未確認 ID 的姓名(creator_name) ✅ 示例請求: { "creator_id": "A000439" } 或: { "creator": "竺" } 或: { "creator_name": "竺" } ✅ 示例返回: { "status": "success", "result": { "num_found": 6, "results": [ { "work": "T0001", "title": "長阿含經", "creators": "佛陀耶舍,竺佛念", "creators_with_id": "佛陀耶舍(A000439);竺佛念(A000435)", "byline": "後秦 佛陀耶舍共竺佛念譯", "canon": "T", "category": "阿含部類", "vol": "T01", "juan": 22, "time_dynasty": "後秦", "time_from": 412, "time_to": 413, "places": [ { "name": "長安", "latitude": 34.3288, "longitude": 108.9064 } ] }, ... 更多結果 ] } } """ url = "https://api.cbetaonline.cn/works" query_params = {} # 根據參數建立對應查詢條件 if params.creator_id: query_params["creator_id"] = params.creator_id elif params.creator: query_params["creator"] = params.creator elif params.creator_name: query_params["creator_name"] = params.creator_name else: return error_response("請至少提供一個搜尋參數:creator_id、creator 或 creator_name") try: async with httpx.AsyncClient() as client: resp = await client.get(url, params=query_params) resp.raise_for_status() data = resp.json() return success_response(data) except Exception as e: return error_response(f"查詢失敗: {str(e)}")

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/tendayspace/CbetaMCP'

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