korean-stats-mcp 1.8.2 → 1.8.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,eAAO,MAAM,cAAc,EAAE,MAAoB,CAAC;AAClD,gEAAgE;AAChE,eAAO,MAAM,UAAU,KAAK,CAAC;AA0E7B;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAqFxC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMpE,eAAO,MAAM,cAAc,EAAE,MAAoB,CAAC;AAClD,gEAAgE;AAChE,eAAO,MAAM,UAAU,KAAK,CAAC;AAyE7B;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAqFxC"}
package/dist/server.js CHANGED
@@ -25,8 +25,8 @@ import { validateConfig } from './config/index.js';
25
25
  const SERVICE_NAME = 'Korean-stats-mcp';
26
26
  const READONLY_ANN = { readOnlyHint: true, idempotentHint: true, openWorldHint: true };
27
27
  /** server.tool 등록 래퍼 — 서비스명·annotations 일괄 주입, 핸들러 결과를 JSON 텍스트로 래핑 */
28
- function registerTool(server, schema, title, handler) {
29
- server.tool(schema.name, `${SERVICE_NAME} — ${schema.description}`, schema.inputSchema.shape, { title, ...READONLY_ANN }, async (args) => ({
28
+ function registerTool(server, schema, handler) {
29
+ server.tool(schema.name, `${SERVICE_NAME} — ${schema.description}`, schema.inputSchema.shape, { ...READONLY_ANN }, async (args) => ({
30
30
  content: [{ type: 'text', text: JSON.stringify(await handler(args), null, 2) }],
31
31
  }));
32
32
  }
@@ -42,20 +42,20 @@ export function createServer() {
42
42
  description: '한국 국가데이터처 KOSIS OpenAPI 기반 MCP 서버 - 92개 키워드, 17 시도 + 자치구 230+ 라우팅, 시계열 추세, 전국 순위(quick_rank), 출처 각주 생성(explain_statistic), 3개 체인 도구(지역 브리핑·다지역 비교·정책 영역) — 공무원 업무 종합 통계 도우미. v1.8.0: 지역명 미인식 시 전국값 대체 금지(에러 반환), 유사 지표 silent 치환 제거(청년실업률·연봉), 노령화지수 실측표(DT_1IN2030) 교체, 인구동향 잠정치 안내, 출처에 표 ID·자료수정일 포함.',
43
43
  });
44
44
  // ===== 도구 등록 (registerTool: 서비스명·annotations 자동 주입) =====
45
- registerTool(server, searchStatisticsSchema, '통계 검색', searchStatistics);
46
- registerTool(server, getStatisticsListSchema, '통계표 목록', getStatisticsList);
47
- registerTool(server, getStatisticsDataSchema, '통계 데이터 조회', getStatisticsData);
48
- registerTool(server, compareStatisticsSchema, '통계 비교', compareStatistics);
49
- registerTool(server, analyzeTimeSeriesSchema, '시계열 분석', analyzeTimeSeries);
50
- registerTool(server, getTableInfoSchema, '통계표 정보', getTableInfo);
51
- registerTool(server, quickStatsSchema, '자연어 즉답', quickStats);
52
- registerTool(server, quickTrendSchema, '추세 분석', quickTrend);
53
- registerTool(server, quickRankSchema, '전국 순위', quickRank);
54
- registerTool(server, explainStatisticSchema, '통계 정의·인용 각주', explainStatistic);
55
- registerTool(server, fetchKosisExcelSchema, '자치구 엑셀 통계', fetchKosisExcel);
56
- registerTool(server, chainRegionBriefSchema, '지역 종합 브리핑', chainRegionBrief);
57
- registerTool(server, chainCompareRegionsSchema, '다지역 비교 매트릭스', chainCompareRegions);
58
- registerTool(server, chainPolicyIndicatorSchema, '정책영역 시계열', chainPolicyIndicator);
45
+ registerTool(server, searchStatisticsSchema, searchStatistics);
46
+ registerTool(server, getStatisticsListSchema, getStatisticsList);
47
+ registerTool(server, getStatisticsDataSchema, getStatisticsData);
48
+ registerTool(server, compareStatisticsSchema, compareStatistics);
49
+ registerTool(server, analyzeTimeSeriesSchema, analyzeTimeSeries);
50
+ registerTool(server, getTableInfoSchema, getTableInfo);
51
+ registerTool(server, quickStatsSchema, quickStats);
52
+ registerTool(server, quickTrendSchema, quickTrend);
53
+ registerTool(server, quickRankSchema, quickRank);
54
+ registerTool(server, explainStatisticSchema, explainStatistic);
55
+ registerTool(server, fetchKosisExcelSchema, fetchKosisExcel);
56
+ registerTool(server, chainRegionBriefSchema, chainRegionBrief);
57
+ registerTool(server, chainCompareRegionsSchema, chainCompareRegions);
58
+ registerTool(server, chainPolicyIndicatorSchema, chainPolicyIndicator);
59
59
  // ===== 리소스 등록 =====
60
60
  // 1. 통계 분류 체계
61
61
  server.resource('category-tree', 'kosis://categories/tree', {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "korean-stats-mcp",
3
- "version": "1.8.2",
3
+ "version": "1.8.3",
4
4
  "description": "한국 국가데이터처 KOSIS OpenAPI 기반 MCP 서버 - 92개 키워드 + 자연어 별칭/오타 정규화 + 17개 시도/자치구 230+ 라우팅 + 시계열 추세 + 전국 순위(quick_rank) + 출처 각주 생성(explain_statistic) + 체인 도구 3종(지역 브리핑·다지역 비교·정책 영역) + 자치구 정밀 OpenAPI 라우팅 15종 통계표.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",