@xiaozhi-client/datetime-mcp 1.10.7 → 1.10.8-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xiaozhi-client/datetime-mcp",
3
- "version": "1.10.7",
3
+ "version": "1.10.8-beta.7",
4
4
  "type": "module",
5
5
  "description": "小智日期时间 MCP 服务,提供日期时间处理功能",
6
6
  "bin": {
package/dist/index.js DELETED
@@ -1,2 +0,0 @@
1
- import{McpServer as g}from"@modelcontextprotocol/sdk/server/mcp.js";import{StdioServerTransport as m}from"@modelcontextprotocol/sdk/server/stdio.js";import{z as a}from"zod";var i={info:t=>{let e=new Date().toISOString();console.error(`${e} - DateTime - INFO - ${t}`)},error:t=>{let e=new Date().toISOString();console.error(`${e} - DateTime - ERROR - ${t}`)}};function o(t){return t instanceof Error?t.message:String(t)}var c=new g({name:"@xiaozhi-client/datetime-mcp",version:"1.0.0"});c.tool("get_current_time","\u83B7\u53D6\u5F53\u524D\u65F6\u95F4\uFF0C\u652F\u6301\u591A\u79CD\u683C\u5F0F",{format:a.string().optional().describe("\u65F6\u95F4\u683C\u5F0F\uFF1A'iso'\uFF08\u9ED8\u8BA4\uFF09\u3001'timestamp'\u3001'locale'\u3001'time-only'")},async({format:t="iso"})=>{try{let e=new Date,n;switch(t){case"timestamp":n=e.getTime();break;case"locale":n=e.toLocaleString();break;case"time-only":n=e.toLocaleTimeString();break;default:n=e.toISOString();break}return i.info(`\u83B7\u53D6\u5F53\u524D\u65F6\u95F4\uFF0C\u683C\u5F0F\uFF1A${t}\uFF0C\u7ED3\u679C\uFF1A${n}`),{content:[{type:"text",text:JSON.stringify({success:!0,result:n,format:t})}]}}catch(e){return i.error(`\u83B7\u53D6\u5F53\u524D\u65F6\u95F4\u9519\u8BEF\uFF1A${o(e)}`),{content:[{type:"text",text:JSON.stringify({success:!1,error:o(e)})}],isError:!0}}});c.tool("get_current_date","\u83B7\u53D6\u5F53\u524D\u65E5\u671F\uFF0C\u652F\u6301\u591A\u79CD\u683C\u5F0F",{format:a.string().optional().describe("\u65E5\u671F\u683C\u5F0F\uFF1A'iso'\uFF08\u9ED8\u8BA4\uFF09\u3001'locale'\u3001'date-only'\u3001'yyyy-mm-dd'")},async({format:t="iso"})=>{try{let e=new Date,n;switch(t){case"locale":n=e.toLocaleDateString();break;case"date-only":n=e.toDateString();break;case"yyyy-mm-dd":n=e.toISOString().split("T")[0];break;default:n=e.toISOString();break}return i.info(`\u83B7\u53D6\u5F53\u524D\u65E5\u671F\uFF0C\u683C\u5F0F\uFF1A${t}\uFF0C\u7ED3\u679C\uFF1A${n}`),{content:[{type:"text",text:JSON.stringify({success:!0,result:n,format:t})}]}}catch(e){return i.error(`\u83B7\u53D6\u5F53\u524D\u65E5\u671F\u9519\u8BEF\uFF1A${o(e)}`),{content:[{type:"text",text:JSON.stringify({success:!1,error:o(e)})}],isError:!0}}});c.tool("format_datetime","\u5C06\u7ED9\u5B9A\u7684\u65E5\u671F\u65F6\u95F4\u5B57\u7B26\u4E32\u6216\u65F6\u95F4\u6233\u683C\u5F0F\u5316\u4E3A\u6307\u5B9A\u683C\u5F0F",{datetime:a.string().describe("\u8981\u683C\u5F0F\u5316\u7684\u65E5\u671F\u65F6\u95F4\u5B57\u7B26\u4E32\u6216\u65F6\u95F4\u6233"),format:a.string().optional().describe("\u8F93\u51FA\u683C\u5F0F\uFF1A'iso'\u3001'locale'\u3001'timestamp'\u3001'yyyy-mm-dd'\u3001'custom'"),custom_format:a.string().optional().describe("\u81EA\u5B9A\u4E49\u683C\u5F0F\u5B57\u7B26\u4E32\uFF08\u5F53 format \u4E3A 'custom' \u65F6\u4F7F\u7528\uFF09")},async({datetime:t,format:e="iso",custom_format:n})=>{try{let s;if(Number.isNaN(Number(t))?s=new Date(t):s=new Date(Number(t)),Number.isNaN(s.getTime()))throw new Error("\u65E0\u6548\u7684\u65E5\u671F\u65F6\u95F4\u683C\u5F0F");let r;switch(e){case"timestamp":r=s.getTime();break;case"locale":r=s.toLocaleString();break;case"yyyy-mm-dd":r=s.toISOString().split("T")[0];break;case"custom":n?r=n.replace("YYYY",String(s.getFullYear())).replace("MM",String(s.getMonth()+1).padStart(2,"0")).replace("DD",String(s.getDate()).padStart(2,"0")).replace("HH",String(s.getHours()).padStart(2,"0")).replace("mm",String(s.getMinutes()).padStart(2,"0")).replace("ss",String(s.getSeconds()).padStart(2,"0")):r=s.toISOString();break;default:r=s.toISOString();break}return i.info(`\u683C\u5F0F\u5316\u65E5\u671F\u65F6\u95F4\uFF1A${t} \u4E3A\u683C\u5F0F\uFF1A${e}\uFF0C\u7ED3\u679C\uFF1A${r}`),{content:[{type:"text",text:JSON.stringify({success:!0,result:r,original:t,format:e})}]}}catch(s){return i.error(`\u683C\u5F0F\u5316\u65E5\u671F\u65F6\u95F4\u9519\u8BEF\uFF1A${o(s)}`),{content:[{type:"text",text:JSON.stringify({success:!1,error:o(s)})}],isError:!0}}});c.tool("add_time","\u5728\u7ED9\u5B9A\u7684\u65E5\u671F\u65F6\u95F4\u57FA\u7840\u4E0A\u589E\u52A0\u6216\u51CF\u5C11\u65F6\u95F4",{datetime:a.string().describe("\u57FA\u51C6\u65E5\u671F\u65F6\u95F4\u5B57\u7B26\u4E32\u6216\u65F6\u95F4\u6233"),amount:a.number().describe("\u8981\u589E\u52A0\uFF08\u6B63\u6570\uFF09\u6216\u51CF\u5C11\uFF08\u8D1F\u6570\uFF09\u7684\u6570\u91CF"),unit:a.string().describe("\u65F6\u95F4\u5355\u4F4D\uFF1A'milliseconds'\u3001'seconds'\u3001'minutes'\u3001'hours'\u3001'days'\u3001'weeks'\u3001'months'\u3001'years'")},async({datetime:t,amount:e,unit:n})=>{try{let s;if(Number.isNaN(Number(t))?s=new Date(t):s=new Date(Number(t)),Number.isNaN(s.getTime()))throw new Error("\u65E0\u6548\u7684\u65E5\u671F\u65F6\u95F4\u683C\u5F0F");let r=new Date(s);switch(n.toLowerCase()){case"milliseconds":r.setTime(r.getTime()+e);break;case"seconds":r.setTime(r.getTime()+e*1e3);break;case"minutes":r.setTime(r.getTime()+e*60*1e3);break;case"hours":r.setTime(r.getTime()+e*60*60*1e3);break;case"days":r.setDate(r.getDate()+e);break;case"weeks":r.setDate(r.getDate()+e*7);break;case"months":r.setMonth(r.getMonth()+e);break;case"years":r.setFullYear(r.getFullYear()+e);break;default:throw new Error(`\u4E0D\u652F\u6301\u7684\u65F6\u95F4\u5355\u4F4D\uFF1A${n}`)}let l=r.toISOString();return i.info(`\u5728 ${t} \u57FA\u7840\u4E0A\u589E\u52A0 ${e} ${n}\uFF0C\u7ED3\u679C\uFF1A${l}`),{content:[{type:"text",text:JSON.stringify({success:!0,result:l,original:t,amount:e,unit:n})}]}}catch(s){return i.error(`\u65F6\u95F4\u52A0\u51CF\u9519\u8BEF\uFF1A${o(s)}`),{content:[{type:"text",text:JSON.stringify({success:!1,error:o(s)})}],isError:!0}}});async function u(){let t=new m;await c.connect(t),i.info("DateTime MCP \u670D\u52A1\u5DF2\u542F\u52A8")}u().catch(t=>{i.error(`\u542F\u52A8\u670D\u52A1\u5931\u8D25\uFF1A${o(t)}`),process.exit(1)});var p=c;export{p as default};
2
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * MCP DateTime Server\n * 提供日期时间功能的 MCP 服务\n */\n\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { z } from \"zod\";\n\n// 日志工具\nconst logger = {\n info: (message: string) => {\n const timestamp = new Date().toISOString();\n console.error(`${timestamp} - DateTime - INFO - ${message}`);\n },\n error: (message: string) => {\n const timestamp = new Date().toISOString();\n console.error(`${timestamp} - DateTime - ERROR - ${message}`);\n },\n};\n\n// 安全获取错误信息\nfunction getErrorMessage(error: unknown): string {\n if (error instanceof Error) {\n return error.message;\n }\n return String(error);\n}\n\n// 创建 MCP 服务器实例\nconst server = new McpServer({\n name: \"@xiaozhi-client/datetime-mcp\",\n version: \"1.0.0\",\n});\n\n// 注册获取当前时间工具\nserver.tool(\n \"get_current_time\",\n \"获取当前时间,支持多种格式\",\n {\n format: z\n .string()\n .optional()\n .describe(\"时间格式:'iso'(默认)、'timestamp'、'locale'、'time-only'\"),\n },\n async ({ format = \"iso\" }) => {\n try {\n const now = new Date();\n let result: string | number;\n\n switch (format) {\n case \"timestamp\":\n result = now.getTime();\n break;\n case \"locale\":\n result = now.toLocaleString();\n break;\n case \"time-only\":\n result = now.toLocaleTimeString();\n break;\n default:\n result = now.toISOString();\n break;\n }\n\n logger.info(`获取当前时间,格式:${format},结果:${result}`);\n\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify({\n success: true,\n result,\n format,\n }),\n },\n ],\n };\n } catch (error) {\n logger.error(`获取当前时间错误:${getErrorMessage(error)}`);\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify({\n success: false,\n error: getErrorMessage(error),\n }),\n },\n ],\n isError: true,\n };\n }\n }\n);\n\n// 注册获取当前日期工具\nserver.tool(\n \"get_current_date\",\n \"获取当前日期,支持多种格式\",\n {\n format: z\n .string()\n .optional()\n .describe(\"日期格式:'iso'(默认)、'locale'、'date-only'、'yyyy-mm-dd'\"),\n },\n async ({ format = \"iso\" }) => {\n try {\n const now = new Date();\n let result: string;\n\n switch (format) {\n case \"locale\":\n result = now.toLocaleDateString();\n break;\n case \"date-only\":\n result = now.toDateString();\n break;\n case \"yyyy-mm-dd\":\n result = now.toISOString().split(\"T\")[0];\n break;\n default:\n result = now.toISOString();\n break;\n }\n\n logger.info(`获取当前日期,格式:${format},结果:${result}`);\n\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify({\n success: true,\n result,\n format,\n }),\n },\n ],\n };\n } catch (error) {\n logger.error(`获取当前日期错误:${getErrorMessage(error)}`);\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify({\n success: false,\n error: getErrorMessage(error),\n }),\n },\n ],\n isError: true,\n };\n }\n }\n);\n\n// 注册格式化日期时间工具\nserver.tool(\n \"format_datetime\",\n \"将给定的日期时间字符串或时间戳格式化为指定格式\",\n {\n datetime: z.string().describe(\"要格式化的日期时间字符串或时间戳\"),\n format: z\n .string()\n .optional()\n .describe(\n \"输出格式:'iso'、'locale'、'timestamp'、'yyyy-mm-dd'、'custom'\"\n ),\n custom_format: z\n .string()\n .optional()\n .describe(\"自定义格式字符串(当 format 为 'custom' 时使用)\"),\n },\n async ({ datetime, format = \"iso\", custom_format }) => {\n try {\n let date: Date;\n\n // 尝试解析输入的日期时间\n if (!Number.isNaN(Number(datetime))) {\n // 是时间戳\n date = new Date(Number(datetime));\n } else {\n // 是日期字符串\n date = new Date(datetime);\n }\n\n if (Number.isNaN(date.getTime())) {\n throw new Error(\"无效的日期时间格式\");\n }\n\n let result: string | number;\n switch (format) {\n case \"timestamp\":\n result = date.getTime();\n break;\n case \"locale\":\n result = date.toLocaleString();\n break;\n case \"yyyy-mm-dd\":\n result = date.toISOString().split(\"T\")[0];\n break;\n case \"custom\":\n if (custom_format) {\n // 简单的自定义格式化\n result = custom_format\n .replace(\"YYYY\", String(date.getFullYear()))\n .replace(\"MM\", String(date.getMonth() + 1).padStart(2, \"0\"))\n .replace(\"DD\", String(date.getDate()).padStart(2, \"0\"))\n .replace(\"HH\", String(date.getHours()).padStart(2, \"0\"))\n .replace(\"mm\", String(date.getMinutes()).padStart(2, \"0\"))\n .replace(\"ss\", String(date.getSeconds()).padStart(2, \"0\"));\n } else {\n result = date.toISOString();\n }\n break;\n default:\n result = date.toISOString();\n break;\n }\n\n logger.info(\n `格式化日期时间:${datetime} 为格式:${format},结果:${result}`\n );\n\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify({\n success: true,\n result,\n original: datetime,\n format,\n }),\n },\n ],\n };\n } catch (error) {\n logger.error(`格式化日期时间错误:${getErrorMessage(error)}`);\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify({\n success: false,\n error: getErrorMessage(error),\n }),\n },\n ],\n isError: true,\n };\n }\n }\n);\n\n// 注册时间加减工具\nserver.tool(\n \"add_time\",\n \"在给定的日期时间基础上增加或减少时间\",\n {\n datetime: z.string().describe(\"基准日期时间字符串或时间戳\"),\n amount: z.number().describe(\"要增加(正数)或减少(负数)的数量\"),\n unit: z\n .string()\n .describe(\n \"时间单位:'milliseconds'、'seconds'、'minutes'、'hours'、'days'、'weeks'、'months'、'years'\"\n ),\n },\n async ({ datetime, amount, unit }) => {\n try {\n let date: Date;\n\n // 尝试解析输入的日期时间\n if (!Number.isNaN(Number(datetime))) {\n date = new Date(Number(datetime));\n } else {\n date = new Date(datetime);\n }\n\n if (Number.isNaN(date.getTime())) {\n throw new Error(\"无效的日期时间格式\");\n }\n\n // 根据单位计算新日期\n const newDate = new Date(date);\n\n switch (unit.toLowerCase()) {\n case \"milliseconds\":\n newDate.setTime(newDate.getTime() + amount);\n break;\n case \"seconds\":\n newDate.setTime(newDate.getTime() + amount * 1000);\n break;\n case \"minutes\":\n newDate.setTime(newDate.getTime() + amount * 60 * 1000);\n break;\n case \"hours\":\n newDate.setTime(newDate.getTime() + amount * 60 * 60 * 1000);\n break;\n case \"days\":\n newDate.setDate(newDate.getDate() + amount);\n break;\n case \"weeks\":\n newDate.setDate(newDate.getDate() + amount * 7);\n break;\n case \"months\":\n newDate.setMonth(newDate.getMonth() + amount);\n break;\n case \"years\":\n newDate.setFullYear(newDate.getFullYear() + amount);\n break;\n default:\n throw new Error(`不支持的时间单位:${unit}`);\n }\n\n const result = newDate.toISOString();\n logger.info(\n `在 ${datetime} 基础上增加 ${amount} ${unit},结果:${result}`\n );\n\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify({\n success: true,\n result,\n original: datetime,\n amount,\n unit,\n }),\n },\n ],\n };\n } catch (error) {\n logger.error(`时间加减错误:${getErrorMessage(error)}`);\n return {\n content: [\n {\n type: \"text\",\n text: JSON.stringify({\n success: false,\n error: getErrorMessage(error),\n }),\n },\n ],\n isError: true,\n };\n }\n }\n);\n\n// 启动服务器\nasync function main() {\n const transport = new StdioServerTransport();\n await server.connect(transport);\n logger.info(\"DateTime MCP 服务已启动\");\n}\n\nmain().catch((error) => {\n logger.error(`启动服务失败:${getErrorMessage(error)}`);\n process.exit(1);\n});\n\nexport default server;\n"],"mappings":"AAKA,OAAS,aAAAA,MAAiB,0CAC1B,OAAS,wBAAAC,MAA4B,4CACrC,OAAS,KAAAC,MAAS,MAGlB,IAAMC,EAAS,CACb,KAAOC,GAAoB,CACzB,IAAMC,EAAY,IAAI,KAAK,EAAE,YAAY,EACzC,QAAQ,MAAM,GAAGA,CAAS,wBAAwBD,CAAO,EAAE,CAC7D,EACA,MAAQA,GAAoB,CAC1B,IAAMC,EAAY,IAAI,KAAK,EAAE,YAAY,EACzC,QAAQ,MAAM,GAAGA,CAAS,yBAAyBD,CAAO,EAAE,CAC9D,CACF,EAGA,SAASE,EAAgBC,EAAwB,CAC/C,OAAIA,aAAiB,MACZA,EAAM,QAER,OAAOA,CAAK,CACrB,CAGA,IAAMC,EAAS,IAAIR,EAAU,CAC3B,KAAM,+BACN,QAAS,OACX,CAAC,EAGDQ,EAAO,KACL,mBACA,iFACA,CACE,OAAQN,EACL,OAAO,EACP,SAAS,EACT,SAAS,6GAAiD,CAC/D,EACA,MAAO,CAAE,OAAAO,EAAS,KAAM,IAAM,CAC5B,GAAI,CACF,IAAMC,EAAM,IAAI,KACZC,EAEJ,OAAQF,EAAQ,CACd,IAAK,YACHE,EAASD,EAAI,QAAQ,EACrB,MACF,IAAK,SACHC,EAASD,EAAI,eAAe,EAC5B,MACF,IAAK,YACHC,EAASD,EAAI,mBAAmB,EAChC,MACF,QACEC,EAASD,EAAI,YAAY,EACzB,KACJ,CAEA,OAAAP,EAAO,KAAK,+DAAaM,CAAM,2BAAOE,CAAM,EAAE,EAEvC,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,KAAK,UAAU,CACnB,QAAS,GACT,OAAAA,EACA,OAAAF,CACF,CAAC,CACH,CACF,CACF,CACF,OAASF,EAAO,CACd,OAAAJ,EAAO,MAAM,yDAAYG,EAAgBC,CAAK,CAAC,EAAE,EAC1C,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,KAAK,UAAU,CACnB,QAAS,GACT,MAAOD,EAAgBC,CAAK,CAC9B,CAAC,CACH,CACF,EACA,QAAS,EACX,CACF,CACF,CACF,EAGAC,EAAO,KACL,mBACA,iFACA,CACE,OAAQN,EACL,OAAO,EACP,SAAS,EACT,SAAS,8GAAkD,CAChE,EACA,MAAO,CAAE,OAAAO,EAAS,KAAM,IAAM,CAC5B,GAAI,CACF,IAAMC,EAAM,IAAI,KACZC,EAEJ,OAAQF,EAAQ,CACd,IAAK,SACHE,EAASD,EAAI,mBAAmB,EAChC,MACF,IAAK,YACHC,EAASD,EAAI,aAAa,EAC1B,MACF,IAAK,aACHC,EAASD,EAAI,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC,EACvC,MACF,QACEC,EAASD,EAAI,YAAY,EACzB,KACJ,CAEA,OAAAP,EAAO,KAAK,+DAAaM,CAAM,2BAAOE,CAAM,EAAE,EAEvC,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,KAAK,UAAU,CACnB,QAAS,GACT,OAAAA,EACA,OAAAF,CACF,CAAC,CACH,CACF,CACF,CACF,OAASF,EAAO,CACd,OAAAJ,EAAO,MAAM,yDAAYG,EAAgBC,CAAK,CAAC,EAAE,EAC1C,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,KAAK,UAAU,CACnB,QAAS,GACT,MAAOD,EAAgBC,CAAK,CAC9B,CAAC,CACH,CACF,EACA,QAAS,EACX,CACF,CACF,CACF,EAGAC,EAAO,KACL,kBACA,6IACA,CACE,SAAUN,EAAE,OAAO,EAAE,SAAS,kGAAkB,EAChD,OAAQA,EACL,OAAO,EACP,SAAS,EACT,SACC,oGACF,EACF,cAAeA,EACZ,OAAO,EACP,SAAS,EACT,SAAS,8GAAmC,CACjD,EACA,MAAO,CAAE,SAAAU,EAAU,OAAAH,EAAS,MAAO,cAAAI,CAAc,IAAM,CACrD,GAAI,CACF,IAAIC,EAWJ,GARK,OAAO,MAAM,OAAOF,CAAQ,CAAC,EAKhCE,EAAO,IAAI,KAAKF,CAAQ,EAHxBE,EAAO,IAAI,KAAK,OAAOF,CAAQ,CAAC,EAM9B,OAAO,MAAME,EAAK,QAAQ,CAAC,EAC7B,MAAM,IAAI,MAAM,wDAAW,EAG7B,IAAIH,EACJ,OAAQF,EAAQ,CACd,IAAK,YACHE,EAASG,EAAK,QAAQ,EACtB,MACF,IAAK,SACHH,EAASG,EAAK,eAAe,EAC7B,MACF,IAAK,aACHH,EAASG,EAAK,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC,EACxC,MACF,IAAK,SACCD,EAEFF,EAASE,EACN,QAAQ,OAAQ,OAAOC,EAAK,YAAY,CAAC,CAAC,EAC1C,QAAQ,KAAM,OAAOA,EAAK,SAAS,EAAI,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,EAC1D,QAAQ,KAAM,OAAOA,EAAK,QAAQ,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,EACrD,QAAQ,KAAM,OAAOA,EAAK,SAAS,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,EACtD,QAAQ,KAAM,OAAOA,EAAK,WAAW,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,EACxD,QAAQ,KAAM,OAAOA,EAAK,WAAW,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,EAE3DH,EAASG,EAAK,YAAY,EAE5B,MACF,QACEH,EAASG,EAAK,YAAY,EAC1B,KACJ,CAEA,OAAAX,EAAO,KACL,mDAAWS,CAAQ,4BAAQH,CAAM,2BAAOE,CAAM,EAChD,EAEO,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,KAAK,UAAU,CACnB,QAAS,GACT,OAAAA,EACA,SAAUC,EACV,OAAAH,CACF,CAAC,CACH,CACF,CACF,CACF,OAASF,EAAO,CACd,OAAAJ,EAAO,MAAM,+DAAaG,EAAgBC,CAAK,CAAC,EAAE,EAC3C,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,KAAK,UAAU,CACnB,QAAS,GACT,MAAOD,EAAgBC,CAAK,CAC9B,CAAC,CACH,CACF,EACA,QAAS,EACX,CACF,CACF,CACF,EAGAC,EAAO,KACL,WACA,+GACA,CACE,SAAUN,EAAE,OAAO,EAAE,SAAS,gFAAe,EAC7C,OAAQA,EAAE,OAAO,EAAE,SAAS,wGAAmB,EAC/C,KAAMA,EACH,OAAO,EACP,SACC,6IACF,CACJ,EACA,MAAO,CAAE,SAAAU,EAAU,OAAAG,EAAQ,KAAAC,CAAK,IAAM,CACpC,GAAI,CACF,IAAIF,EASJ,GANK,OAAO,MAAM,OAAOF,CAAQ,CAAC,EAGhCE,EAAO,IAAI,KAAKF,CAAQ,EAFxBE,EAAO,IAAI,KAAK,OAAOF,CAAQ,CAAC,EAK9B,OAAO,MAAME,EAAK,QAAQ,CAAC,EAC7B,MAAM,IAAI,MAAM,wDAAW,EAI7B,IAAMG,EAAU,IAAI,KAAKH,CAAI,EAE7B,OAAQE,EAAK,YAAY,EAAG,CAC1B,IAAK,eACHC,EAAQ,QAAQA,EAAQ,QAAQ,EAAIF,CAAM,EAC1C,MACF,IAAK,UACHE,EAAQ,QAAQA,EAAQ,QAAQ,EAAIF,EAAS,GAAI,EACjD,MACF,IAAK,UACHE,EAAQ,QAAQA,EAAQ,QAAQ,EAAIF,EAAS,GAAK,GAAI,EACtD,MACF,IAAK,QACHE,EAAQ,QAAQA,EAAQ,QAAQ,EAAIF,EAAS,GAAK,GAAK,GAAI,EAC3D,MACF,IAAK,OACHE,EAAQ,QAAQA,EAAQ,QAAQ,EAAIF,CAAM,EAC1C,MACF,IAAK,QACHE,EAAQ,QAAQA,EAAQ,QAAQ,EAAIF,EAAS,CAAC,EAC9C,MACF,IAAK,SACHE,EAAQ,SAASA,EAAQ,SAAS,EAAIF,CAAM,EAC5C,MACF,IAAK,QACHE,EAAQ,YAAYA,EAAQ,YAAY,EAAIF,CAAM,EAClD,MACF,QACE,MAAM,IAAI,MAAM,yDAAYC,CAAI,EAAE,CACtC,CAEA,IAAML,EAASM,EAAQ,YAAY,EACnC,OAAAd,EAAO,KACL,UAAKS,CAAQ,mCAAUG,CAAM,IAAIC,CAAI,2BAAOL,CAAM,EACpD,EAEO,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,KAAK,UAAU,CACnB,QAAS,GACT,OAAAA,EACA,SAAUC,EACV,OAAAG,EACA,KAAAC,CACF,CAAC,CACH,CACF,CACF,CACF,OAAST,EAAO,CACd,OAAAJ,EAAO,MAAM,6CAAUG,EAAgBC,CAAK,CAAC,EAAE,EACxC,CACL,QAAS,CACP,CACE,KAAM,OACN,KAAM,KAAK,UAAU,CACnB,QAAS,GACT,MAAOD,EAAgBC,CAAK,CAC9B,CAAC,CACH,CACF,EACA,QAAS,EACX,CACF,CACF,CACF,EAGA,eAAeW,GAAO,CACpB,IAAMC,EAAY,IAAIlB,EACtB,MAAMO,EAAO,QAAQW,CAAS,EAC9BhB,EAAO,KAAK,6CAAoB,CAClC,CAEAe,EAAK,EAAE,MAAOX,GAAU,CACtBJ,EAAO,MAAM,6CAAUG,EAAgBC,CAAK,CAAC,EAAE,EAC/C,QAAQ,KAAK,CAAC,CAChB,CAAC,EAED,IAAOa,EAAQZ","names":["McpServer","StdioServerTransport","z","logger","message","timestamp","getErrorMessage","error","server","format","now","result","datetime","custom_format","date","amount","unit","newDate","main","transport","src_default"]}