@yjzf/mcp-server-yjzf 0.1.4 → 0.1.6

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/dist/index.js CHANGED
@@ -4,6 +4,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
4
4
  import * as helloWorldTool from "./tools/hello_world.js";
5
5
  import * as overviewByCTool from "./tools/overview_by_c.js";
6
6
  import * as countAllStatementTool from "./tools/count_all_statement.js";
7
+ import * as getCurrentTimeTool from "./tools/get_current_time.js";
7
8
  // ---------------------------------------------------------------------------
8
9
  // MCP Server
9
10
  // ---------------------------------------------------------------------------
@@ -14,6 +15,7 @@ const server = new McpServer({
14
15
  server.registerTool(helloWorldTool.name, helloWorldTool.schema, helloWorldTool.handler);
15
16
  server.registerTool(overviewByCTool.name, overviewByCTool.schema, overviewByCTool.handler);
16
17
  server.registerTool(countAllStatementTool.name, countAllStatementTool.schema, countAllStatementTool.handler);
18
+ server.registerTool(getCurrentTimeTool.name, getCurrentTimeTool.schema, getCurrentTimeTool.handler);
17
19
  // ---------------------------------------------------------------------------
18
20
  // Start
19
21
  // ---------------------------------------------------------------------------
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,qBAAqB,MAAM,gCAAgC,CAAC;AAExE,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,YAAY,CACjB,cAAc,CAAC,IAAI,EACnB,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,OAAO,CACvB,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,MAAM,EACtB,eAAe,CAAC,OAAO,CACxB,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,CAAC,IAAI,EAC1B,qBAAqB,CAAC,MAAM,EAC5B,qBAAqB,CAAC,OAAO,CAC9B,CAAC;AAEF,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,cAAc,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,qBAAqB,MAAM,gCAAgC,CAAC;AACxE,OAAO,KAAK,kBAAkB,MAAM,6BAA6B,CAAC;AAElE,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,YAAY,CACjB,cAAc,CAAC,IAAI,EACnB,cAAc,CAAC,MAAM,EACrB,cAAc,CAAC,OAAO,CACvB,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,MAAM,EACtB,eAAe,CAAC,OAAO,CACxB,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,CAAC,IAAI,EAC1B,qBAAqB,CAAC,MAAM,EAC5B,qBAAqB,CAAC,OAAO,CAC9B,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,CAAC,IAAI,EACvB,kBAAkB,CAAC,MAAM,EACzB,kBAAkB,CAAC,OAAO,CAC3B,CAAC;AAEF,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"count_all_statement.d.ts","sourceRoot":"","sources":["../../src/tools/count_all_statement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAU5B,eAAO,MAAM,IAAI,wBAAwB,CAAC;AAE1C,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,wBAAsB,OAAO;;;;;;;;;;;;GAuG5B"}
1
+ {"version":3,"file":"count_all_statement.d.ts","sourceRoot":"","sources":["../../src/tools/count_all_statement.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AA6I5B,eAAO,MAAM,IAAI,wBAAwB,CAAC;AAE1C,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,wBAAsB,OAAO;;;;;;;;;;;;GAiI5B"}
@@ -1,7 +1,64 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
+ import * as xlsx from "xlsx";
3
4
  import * as z from "zod/v4";
4
5
  import { getDataDir, getApiKey, generateDatedFileName } from "../utils/env.js";
6
+ import { debug } from "../utils/debug.js";
7
+ const CITY_FIXED_COLUMNS = [
8
+ ["城市公司", "orgLevelSimpleName"],
9
+ ["创建日期", "createTmStr"],
10
+ ["类型", "businessTypeName"],
11
+ ["城市总经理", "managerName"],
12
+ ];
13
+ const MKT_FIXED_COLUMNS = [
14
+ ["姓名", "userName"],
15
+ ["员工id", "employeesId"],
16
+ ["工号", "employeesNo"],
17
+ ["手机号", "phone"],
18
+ ["管理层级名称", "bizlineName"],
19
+ ["城市公司", "branchSimpleName"],
20
+ ];
21
+ function buildStatsHeaders(statisticsItems) {
22
+ const headers = [];
23
+ for (const item of statisticsItems) {
24
+ if (item.hasChild === 1 && item.childNode) {
25
+ for (const child of item.childNode) {
26
+ headers.push(`${item.topCodeName}_${item.codeName}_${child.name}`);
27
+ }
28
+ }
29
+ else {
30
+ headers.push(`${item.topCodeName}_${item.codeName}`);
31
+ }
32
+ }
33
+ return headers;
34
+ }
35
+ function buildStatsValues(statisticsItems) {
36
+ const values = [];
37
+ for (const item of statisticsItems) {
38
+ if (item.hasChild === 1 && item.childNode) {
39
+ for (const child of item.childNode) {
40
+ values.push(child.count);
41
+ }
42
+ }
43
+ else {
44
+ values.push(item.count ?? "");
45
+ }
46
+ }
47
+ return values;
48
+ }
49
+ function buildSheetData(list, fixedColumns) {
50
+ if (list.length === 0)
51
+ return [];
52
+ const fixedHeaders = fixedColumns.map(([label]) => label);
53
+ const statsHeaders = buildStatsHeaders(list[0].statisticsItems);
54
+ const headers = [...fixedHeaders, ...statsHeaders];
55
+ const rows = list.map((item) => {
56
+ const fixedValues = fixedColumns.map(([, field]) => String(item[field] ?? ""));
57
+ const statsValues = buildStatsValues(item.statisticsItems);
58
+ return [...fixedValues, ...statsValues];
59
+ });
60
+ return [headers, ...rows];
61
+ }
5
62
  export const name = "count_all_statement";
6
63
  export const schema = {
7
64
  description: "获取总部数据指标报表 生成 Excel 文件",
@@ -46,8 +103,10 @@ export async function handler() {
46
103
  };
47
104
  }
48
105
  const cities1 = await cities1Response.json();
106
+ debug("zy_cities.json (cities1)", cities1);
49
107
  const cities2 = await cities2Response.json();
50
- // Step 2: POST to count_all_statement with xlsx response
108
+ debug("count_all_step2.json (cities2)", cities2);
109
+ // Step 2: POST to count_all_statement
51
110
  const payload = { cities1, cities2 };
52
111
  const statementResponse = await fetch("https://mcp.yjzf.com/count_all_statement", {
53
112
  method: "POST",
@@ -65,17 +124,34 @@ export async function handler() {
65
124
  isError: true,
66
125
  };
67
126
  }
68
- // Step 3: Read response as buffer (xlsx binary)
69
- const arrayBuffer = await statementResponse.arrayBuffer();
70
- const buffer = Buffer.from(arrayBuffer);
71
- // Step 4: Generate filename with yesterday's date
127
+ // Step 3: Parse JSON response and generate Excel
128
+ const apiResponse = await statementResponse.json();
129
+ debug("count_all_statement response", apiResponse);
130
+ if (!apiResponse.succeed) {
131
+ return {
132
+ content: [
133
+ {
134
+ type: "text",
135
+ text: `网关返回错误: ${apiResponse.msg}`,
136
+ },
137
+ ],
138
+ isError: true,
139
+ };
140
+ }
141
+ // Step 4: Build Excel workbook with two sheets
142
+ const workbook = xlsx.utils.book_new();
143
+ const citySheetData = buildSheetData(apiResponse.data.cityData.data.list, CITY_FIXED_COLUMNS);
144
+ const citySheet = xlsx.utils.aoa_to_sheet(citySheetData);
145
+ xlsx.utils.book_append_sheet(workbook, citySheet, "城市公司维度");
146
+ const mktSheetData = buildSheetData(apiResponse.data.marketingData.data.list, MKT_FIXED_COLUMNS);
147
+ const mktSheet = xlsx.utils.aoa_to_sheet(mktSheetData);
148
+ xlsx.utils.book_append_sheet(workbook, mktSheet, "营销线层级维度");
149
+ // Step 5: Save xlsx file
72
150
  const fileName = generateDatedFileName("城市指标统计", "xlsx");
73
- // Ensure data directory exists
74
151
  const dataDir = getDataDir();
75
152
  fs.mkdirSync(dataDir, { recursive: true });
76
153
  const filePath = path.join(dataDir, fileName);
77
- // Step 5: Write xlsx file
78
- fs.writeFileSync(filePath, buffer);
154
+ xlsx.writeFile(workbook, filePath);
79
155
  return {
80
156
  content: [
81
157
  {
@@ -1 +1 @@
1
- {"version":3,"file":"count_all_statement.js","sourceRoot":"","sources":["../../src/tools/count_all_statement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"count_all_statement.js","sourceRoot":"","sources":["../../src/tools/count_all_statement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import * as z from "zod/v4";
2
+ export declare const name = "get_current_time";
3
+ export declare const schema: {
4
+ description: string;
5
+ inputSchema: z.ZodObject<{}, z.core.$strip>;
6
+ };
7
+ export declare function handler(): Promise<{
8
+ content: {
9
+ type: "text";
10
+ text: string;
11
+ }[];
12
+ }>;
13
+ //# sourceMappingURL=get_current_time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_current_time.d.ts","sourceRoot":"","sources":["../../src/tools/get_current_time.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,eAAO,MAAM,IAAI,qBAAqB,CAAC;AAEvC,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,wBAAsB,OAAO;;;;;GAgB5B"}
@@ -0,0 +1,23 @@
1
+ import * as z from "zod/v4";
2
+ export const name = "get_current_time";
3
+ export const schema = {
4
+ description: "获取当前时间的毫秒时间戳和格式化时间 当需要知晓当前日期时间时必须先调用此工具",
5
+ inputSchema: z.object({}),
6
+ };
7
+ export async function handler() {
8
+ const now = new Date();
9
+ const timestamp = now.getTime();
10
+ const formattedTime = now.toISOString();
11
+ return {
12
+ content: [
13
+ {
14
+ type: "text",
15
+ text: JSON.stringify({
16
+ timestamp: timestamp,
17
+ formattedTime: formattedTime,
18
+ }, null, 2),
19
+ },
20
+ ],
21
+ };
22
+ }
23
+ //# sourceMappingURL=get_current_time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get_current_time.js","sourceRoot":"","sources":["../../src/tools/get_current_time.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAEvC,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,WAAW,EAAE,yCAAyC;IACtD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAChC,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAExC,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,SAAS,EAAE,SAAS;oBACpB,aAAa,EAAE,aAAa;iBAC7B,EAAE,IAAI,EAAE,CAAC,CAAC;aACZ;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -2,9 +2,15 @@ import * as z from "zod/v4";
2
2
  export declare const name = "overview_by_c";
3
3
  export declare const schema: {
4
4
  description: string;
5
- inputSchema: z.ZodObject<{}, z.core.$strip>;
5
+ inputSchema: z.ZodObject<{
6
+ startInclusive: z.ZodOptional<z.ZodNumber>;
7
+ endExclusive: z.ZodOptional<z.ZodNumber>;
8
+ }, z.core.$strip>;
6
9
  };
7
- export declare function handler(): Promise<{
10
+ export declare function handler(args: {
11
+ startInclusive?: number;
12
+ endExclusive?: number;
13
+ }): Promise<{
8
14
  content: {
9
15
  type: "text";
10
16
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"overview_by_c.d.ts","sourceRoot":"","sources":["../../src/tools/overview_by_c.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAqB5B,eAAO,MAAM,IAAI,kBAAkB,CAAC;AAEpC,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,wBAAsB,OAAO;;;;;;;;;;;;GA8I5B"}
1
+ {"version":3,"file":"overview_by_c.d.ts","sourceRoot":"","sources":["../../src/tools/overview_by_c.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAmD5B,eAAO,MAAM,IAAI,kBAAkB,CAAC;AAEpC,eAAO,MAAM,MAAM;;;;;;CAMlB,CAAC;AAEF,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;GA0KrF"}
@@ -2,14 +2,68 @@ import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
3
  import * as xlsx from "xlsx";
4
4
  import * as z from "zod/v4";
5
- import { getDataDir, getApiKey, generateDatedFileName } from "../utils/env.js";
5
+ import { getDataDir, getApiKey } from "../utils/env.js";
6
+ /**
7
+ * 获取当月第一天 00:00:00 的时间戳和当天 00:00:00 的时间戳
8
+ * @returns {{ startInclusive: number; endExclusive: number }}
9
+ */
10
+ function getStartAndEnd() {
11
+ const now = new Date();
12
+ // 当天 00:00:00 (本地时间)
13
+ const todayStart = new Date(now.getFullYear(), now.getMonth(), now.getDate());
14
+ // 当月第一天 00:00:00
15
+ const monthStart = new Date(now.getFullYear(), now.getMonth(), 1);
16
+ return {
17
+ startInclusive: monthStart.getTime(),
18
+ endExclusive: todayStart.getTime(),
19
+ };
20
+ }
21
+ /**
22
+ * 将时间戳格式化为 yyyymmdd 字符串
23
+ * @param timestamp 毫秒时间戳
24
+ * @returns 格式化后的日期字符串
25
+ */
26
+ function formatDateToYyyymmdd(timestamp) {
27
+ const date = new Date(timestamp);
28
+ const year = date.getFullYear();
29
+ const month = String(date.getMonth() + 1).padStart(2, "0");
30
+ const day = String(date.getDate()).padStart(2, "0");
31
+ return `${year}${month}${day}`;
32
+ }
6
33
  export const name = "overview_by_c";
7
34
  export const schema = {
8
35
  description: "获取直营城市C端行为数据数据指标报表 生成Excel文件",
9
- inputSchema: z.object({}),
36
+ inputSchema: z.object({
37
+ startInclusive: z.number().optional().describe("数据开始时间,毫秒时间戳,可选"),
38
+ endExclusive: z.number().optional().describe("数据结束时间,毫秒时间戳,可选"),
39
+ }),
10
40
  };
11
- export async function handler() {
41
+ export async function handler(args) {
12
42
  const apiKey = getApiKey();
43
+ // 根据参数规则计算时间范围
44
+ let startInclusive;
45
+ let endExclusive;
46
+ const defaults = getStartAndEnd();
47
+ if (args.startInclusive === undefined && args.endExclusive === undefined) {
48
+ // 都不出现,使用默认值
49
+ startInclusive = defaults.startInclusive;
50
+ endExclusive = defaults.endExclusive;
51
+ }
52
+ else if (args.startInclusive !== undefined && args.endExclusive === undefined) {
53
+ // 只出现 startInclusive,使用当天00:00作为 endExclusive
54
+ startInclusive = args.startInclusive;
55
+ endExclusive = defaults.endExclusive;
56
+ }
57
+ else if (args.startInclusive === undefined && args.endExclusive !== undefined) {
58
+ // 只出现 endExclusive,使用当月第一天00:00作为 startInclusive
59
+ startInclusive = defaults.startInclusive;
60
+ endExclusive = args.endExclusive;
61
+ }
62
+ else {
63
+ // 都出现,使用传入的值
64
+ startInclusive = args.startInclusive;
65
+ endExclusive = args.endExclusive;
66
+ }
13
67
  // Build request headers
14
68
  const headers = {
15
69
  Accept: "application/json",
@@ -46,6 +100,8 @@ export async function handler() {
46
100
  branch_id: city.branch_id,
47
101
  city_name: city.name,
48
102
  city_code: city.city_code,
103
+ start_inclusive: startInclusive,
104
+ end_exclusive: endExclusive,
49
105
  }),
50
106
  });
51
107
  if (!overviewResponse.ok) {
@@ -102,8 +158,10 @@ export async function handler() {
102
158
  const worksheet = xlsx.utils.aoa_to_sheet(excelData);
103
159
  const workbook = xlsx.utils.book_new();
104
160
  xlsx.utils.book_append_sheet(workbook, worksheet, "城市流量数据");
105
- // Step 5: Generate filename with date
106
- const fileName = generateDatedFileName("城市流量数据报告_v2", "xlsx");
161
+ // Step 5: Generate filename with date range
162
+ const startStr = formatDateToYyyymmdd(startInclusive);
163
+ const endStr = formatDateToYyyymmdd(endExclusive);
164
+ const fileName = `${startStr}-${endStr}_城市流量数据报告.xlsx`;
107
165
  // Ensure data directory exists
108
166
  const dataDir = getDataDir();
109
167
  fs.mkdirSync(dataDir, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"overview_by_c.js","sourceRoot":"","sources":["../../src/tools/overview_by_c.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overview_by_c.js","sourceRoot":"","sources":["../../src/tools/overview_by_c.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Stderr debug logger for MCP server.
3
+ * Enabled by setting DEBUG=1 or DEBUG=true environment variable.
4
+ * Outputs to stderr so it doesn't interfere with stdio JSON-RPC transport.
5
+ */
6
+ export declare function debug(label: string, data: unknown): void;
7
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAiBxD"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Stderr debug logger for MCP server.
3
+ * Enabled by setting DEBUG=1 or DEBUG=true environment variable.
4
+ * Outputs to stderr so it doesn't interfere with stdio JSON-RPC transport.
5
+ */
6
+ export function debug(label, data) {
7
+ if (!process.env.DEBUG)
8
+ return;
9
+ const timestamp = new Date().toISOString();
10
+ let formatted;
11
+ if (data instanceof Buffer || data instanceof ArrayBuffer) {
12
+ const byteLength = data instanceof Buffer ? data.byteLength : data.byteLength;
13
+ formatted = `<binary ${byteLength} bytes>`;
14
+ }
15
+ else if (typeof data === "string") {
16
+ formatted = data;
17
+ }
18
+ else {
19
+ formatted = JSON.stringify(data, null, 2);
20
+ }
21
+ console.error(`[DEBUG ${timestamp}] ${label}: ${formatted}`);
22
+ }
23
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,IAAa;IAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK;QAAE,OAAO;IAE/B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,SAAiB,CAAC;IAEtB,IAAI,IAAI,YAAY,MAAM,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAC1D,MAAM,UAAU,GACd,IAAI,YAAY,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC7D,SAAS,GAAG,WAAW,UAAU,SAAS,CAAC;IAC7C,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,UAAU,SAAS,KAAK,KAAK,KAAK,SAAS,EAAE,CAAC,CAAC;AAC/D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yjzf/mcp-server-yjzf",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "description": "MCP Server for YJZF",
5
5
  "type": "module",
6
6
  "bin": {
@@ -13,7 +13,10 @@
13
13
  "build": "tsc",
14
14
  "dev": "tsc --watch",
15
15
  "start": "node dist/index.js",
16
- "prepublishOnly": "npm run build"
16
+ "prepublishOnly": "npm run build",
17
+ "inspect": "npx @modelcontextprotocol/inspector node dist/index.js",
18
+ "test": "node test-mcp.js",
19
+ "test:debug": "DEBUG=1 node test-mcp.js"
17
20
  },
18
21
  "keywords": [
19
22
  "mcp",