@isnow890/naver-search-mcp 1.0.42 → 1.0.44

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/README.md CHANGED
@@ -8,16 +8,22 @@
8
8
 
9
9
  MCP server for Naver Search API and DataLab API integration, enabling comprehensive search across various Naver services and data trend analysis.
10
10
 
11
- > ⚠️ **Smithery Installation Notice**: Due to compatibility issues with the Smithery platform, **direct installation is recommended starting from version 1.0.40**. Smithery installation is only supported up to version 1.0.30.
11
+ > ⚠️ **Smithery Installation Notice**: Due to compatibility issues with the Smithery platform, **npx installation is recommended starting from version 1.0.40**. Smithery installation is only supported up to version 1.0.30.
12
12
 
13
13
  #### Version History
14
14
 
15
+ ###### 1.0.44 (2025-08-31)
16
+
17
+ - `get_current_korean_time` tool added - Essential time context tool for Korean timezone
18
+ - Enhanced all existing tool descriptions to reference time tool for temporal queries
19
+ - Improved temporal context handling for "today", "now", "current" searches
20
+ - Comprehensive Korean time formatting with multiple output formats
21
+
15
22
  ###### 1.0.4 (2025-08-21)
16
23
 
17
24
  - `find_category` tool added - with fuzzy matching and ranking system support
18
25
  - Enhanced parameter validation with Zod schema
19
26
  - Improved category search workflow
20
- - Implemented level-based category ranking system (major categories prioritized)
21
27
 
22
28
  ###### 1.0.30 (2025-08-04)
23
29
 
@@ -39,10 +45,6 @@ MCP server for Naver Search API and DataLab API integration, enabling comprehens
39
45
 
40
46
  - Initial release
41
47
 
42
- #### Information
43
-
44
- **If you want to install the MCP via npm, do NOT use @mseep/server-naver-search (https://www.npmjs.com/package/@mseep/server-naver-search). That package is a copy of my work and was published without my permission. The npx version of that package is also broken and will not work properly. Please use this official package instead.**
45
-
46
48
  #### Prerequisites
47
49
 
48
50
  - Naver Developers API Key (Client ID and Secret)
@@ -64,9 +66,13 @@ MCP server for Naver Search API and DataLab API integration, enabling comprehens
64
66
 
65
67
  ### Available tools:
66
68
 
69
+ #### 🕐 Time & Context Tools
70
+
71
+ - **get_current_korean_time**: Get current Korean time (KST) with comprehensive date/time information. Essential for understanding "today", "now", or "current" context in Korean timezone. Always use this tool when temporal context is needed for searches or analysis.
72
+
67
73
  #### 🆕 Category Search
68
74
 
69
- - **find_category**: Category search tool - No more need to manually check category numbers via URL for trend and shopping insight searches.
75
+ - **find_category**: Category search tool - No more need to manually check category numbers via URL for trend and shopping insight searches. The LLM will find it out as you say.
70
76
 
71
77
  #### Search Tools
72
78
 
@@ -94,43 +100,6 @@ MCP server for Naver Search API and DataLab API integration, enabling comprehens
94
100
  - **datalab_shopping_keyword_by_gender**: Analyze shopping keyword trends by gender
95
101
  - **datalab_shopping_keyword_by_age**: Analyze shopping keyword trends by age group
96
102
 
97
- ### DataLab Shopping Category Codes
98
-
99
- For DataLab shopping analysis tools, you need to use specific **8-digit category codes**. Here are some common examples:
100
-
101
- #### Popular Category Codes:
102
-
103
- - **50000000**: Fashion/Clothing (패션의류)
104
- - **50000002**: Cosmetics/Beauty (화장품/미용)
105
- - **50000003**: Digital/Home Appliances (디지털/가전)
106
- - **50000004**: Sports/Leisure (스포츠/레저)
107
- - **50000005**: Automotive/Tools (자동차/공구)
108
- - **50000006**: Books/Music/DVDs (도서/음반/DVD)
109
- - **50000007**: Toys/Hobbies (완구/취미)
110
- - **50000008**: Food/Beverages (식품/음료)
111
- - **50000009**: Health/Medical (건강/의료용품)
112
- - **50000010**: Household/Living (생활/주방용품)
113
-
114
- #### How to Find Category Codes:
115
-
116
- 1. Visit [Naver Shopping](https://shopping.naver.com)
117
- 2. Navigate to desired category
118
- 3. Check the `cat_id` parameter in the URL
119
- 4. Use the 8-digit code (e.g., `cat_id=50000000` → use `"50000000"`)
120
-
121
- #### Usage Example:
122
-
123
- When using shopping category tools, specify category like:
124
-
125
- ```json
126
- {
127
- "category": "50000000",
128
- "startDate": "2024-01-01",
129
- "endDate": "2024-01-31",
130
- "timeUnit": "month"
131
- }
132
- ```
133
-
134
103
  #### Complete Category List:
135
104
 
136
105
  For a complete list of category codes, you can download from Naver Shopping Partner Center or extract them by browsing Naver Shopping categories.
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Get current Korean time (KST/UTC+9)
3
+ * @param args - No arguments required
4
+ * @returns Current Korean time in multiple formats
5
+ */
6
+ export async function getCurrentKoreanTime(args) {
7
+ const now = new Date();
8
+ const koreanTime = new Date(now.toLocaleString("en-US", { timeZone: "Asia/Seoul" }));
9
+ return {
10
+ current_korean_time: {
11
+ iso_string: koreanTime.toISOString(),
12
+ korean_date: koreanTime.toLocaleDateString("ko-KR", {
13
+ year: "numeric",
14
+ month: "long",
15
+ day: "numeric",
16
+ weekday: "long"
17
+ }),
18
+ korean_time: koreanTime.toLocaleTimeString("ko-KR", {
19
+ hour: "2-digit",
20
+ minute: "2-digit",
21
+ second: "2-digit",
22
+ hour12: false
23
+ }),
24
+ formatted: `${koreanTime.getFullYear()}년 ${koreanTime.getMonth() + 1}월 ${koreanTime.getDate()}일 ${koreanTime.toLocaleDateString("ko-KR", { weekday: "long" })} ${koreanTime.toLocaleTimeString("ko-KR", { hour12: false })}`,
25
+ timezone: "Asia/Seoul (KST)",
26
+ timestamp: koreanTime.getTime()
27
+ }
28
+ };
29
+ }
30
+ export const timeToolHandlers = {
31
+ getCurrentKoreanTime,
32
+ };
package/dist/src/index.js CHANGED
@@ -9,6 +9,8 @@ import { SearchArgsSchema, NaverLocalSearchParamsSchema, } from "./schemas/searc
9
9
  import { DatalabSearchSchema, DatalabShoppingSchema, DatalabShoppingDeviceSchema, DatalabShoppingGenderSchema, DatalabShoppingAgeSchema, DatalabShoppingKeywordsSchema, DatalabShoppingKeywordDeviceSchema, DatalabShoppingKeywordGenderSchema, DatalabShoppingKeywordAgeSchema, } from "./schemas/datalab.schemas.js";
10
10
  import { FindCategorySchema } from "./schemas/category.schemas.js";
11
11
  import { findCategoryHandler } from "./handlers/category.handlers.js";
12
+ import { GetKoreanTimeSchema } from "./schemas/time.schemas.js";
13
+ import { timeToolHandlers } from "./handlers/time.handlers.js";
12
14
  // Configuration schema for Smithery
13
15
  export const configSchema = z.object({
14
16
  NAVER_CLIENT_ID: z.string().describe("Naver API Client ID"),
@@ -24,7 +26,7 @@ export function createNaverSearchServer({ config, }) {
24
26
  // Create a new MCP server only once
25
27
  const server = new McpServer({
26
28
  name: "naver-search",
27
- version: "1.0.40",
29
+ version: "1.0.44",
28
30
  });
29
31
  // Initialize Naver client with config
30
32
  const client = NaverSearchClient.getInstance();
@@ -33,7 +35,7 @@ export function createNaverSearchServer({ config, }) {
33
35
  clientSecret: config.NAVER_CLIENT_SECRET,
34
36
  });
35
37
  server.registerTool("search_news", {
36
- description: "📰 Search latest Korean news articles from major outlets. Perfect for current events, breaking news, and recent developments. Covers politics, economy, society, and international news. (네이버 뉴스 검색 - 최신 뉴스와 시사 정보)",
38
+ description: "📰 Search latest Korean news articles from major outlets. Perfect for current events, breaking news, and recent developments. Covers politics, economy, society, and international news. For today's news or current events, use get_current_korean_time first to understand what 'today' means. (네이버 뉴스 검색 - 최신 뉴스와 시사 정보, 오늘 뉴스를 찾을 때는 먼저 get_current_korean_time으로 현재 시간을 확인하세요)",
37
39
  inputSchema: SearchArgsSchema.shape,
38
40
  }, async (args) => {
39
41
  const result = await searchToolHandlers.search_news(args);
@@ -42,7 +44,7 @@ export function createNaverSearchServer({ config, }) {
42
44
  };
43
45
  });
44
46
  server.registerTool("search_blog", {
45
- description: "✍️ Search personal blogs and reviews for authentic user experiences. Great for product reviews, personal stories, detailed tutorials, and real user opinions. Find genuine Korean perspectives. (네이버 블로그 검색 - 실제 사용자 후기와 개인적 경험)",
47
+ description: "✍️ Search personal blogs and reviews for authentic user experiences. Great for product reviews, personal stories, detailed tutorials, and real user opinions. Find genuine Korean perspectives. For recent posts or 'today's content', use get_current_korean_time first. (네이버 블로그 검색 - 실제 사용자 후기와 개인적 경험, 최근 글이나 오늘 내용을 찾을 때는 먼저 get_current_korean_time으로 현재 시간을 확인하세요)",
46
48
  inputSchema: SearchArgsSchema.shape,
47
49
  }, async (args) => {
48
50
  const result = await searchToolHandlers.search_blog(args);
@@ -51,7 +53,7 @@ export function createNaverSearchServer({ config, }) {
51
53
  };
52
54
  });
53
55
  server.registerTool("search_shop", {
54
- description: "🛒 Search Naver Shopping for products, prices, and shopping deals. Compare prices across vendors, find product specifications, and discover shopping trends in Korea. (네이버 쇼핑 검색 - 상품 정보와 가격 비교)",
56
+ description: "🛒 Search Naver Shopping for products, prices, and shopping deals. Compare prices across vendors, find product specifications, and discover shopping trends in Korea. For current deals or today's specials, use get_current_korean_time first. (네이버 쇼핑 검색 - 상품 정보와 가격 비교, 현재 할인이나 오늘 특가를 찾을 때는 먼저 get_current_korean_time으로 현재 시간을 확인하세요)",
55
57
  inputSchema: SearchArgsSchema.shape,
56
58
  }, async (args) => {
57
59
  const result = await searchToolHandlers.search_shop(args);
@@ -60,7 +62,7 @@ export function createNaverSearchServer({ config, }) {
60
62
  };
61
63
  });
62
64
  server.registerTool("search_image", {
63
- description: "🖼️ Search for images with Korean context and relevance. Find visual content, infographics, charts, and photos related to your search terms. Great for visual research and content discovery. (네이버 이미지 검색 - 시각적 컨텐츠 발견)",
65
+ description: "🖼️ Search for images with Korean context and relevance. Find visual content, infographics, charts, and photos related to your search terms. Great for visual research and content discovery. For recent images or current visual content, use get_current_korean_time first. (네이버 이미지 검색 - 시각적 컨텐츠 발견, 최근 이미지나 현재 시각 자료를 찾을 때는 먼저 get_current_korean_time으로 현재 시간을 확인하세요)",
64
66
  inputSchema: SearchArgsSchema.shape,
65
67
  }, async (args) => {
66
68
  const result = await searchToolHandlers.search_image(args);
@@ -69,7 +71,7 @@ export function createNaverSearchServer({ config, }) {
69
71
  };
70
72
  });
71
73
  server.registerTool("search_kin", {
72
- description: "❓ Search Naver KnowledgeiN for Q&A and community-driven answers. Find solutions to problems, get expert advice, and discover community insights on various topics. (네이버 지식iN 검색 - 질문과 답변, 커뮤니티 지식)",
74
+ description: "❓ Search Naver KnowledgeiN for Q&A and community-driven answers. Find solutions to problems, get expert advice, and discover community insights on various topics. For recent questions or current discussions, use get_current_korean_time first. (네이버 지식iN 검색 - 질문과 답변, 커뮤니티 지식, 최근 질문이나 현재 토론을 찾을 때는 먼저 get_current_korean_time으로 현재 시간을 확인하세요)",
73
75
  inputSchema: SearchArgsSchema.shape,
74
76
  }, async (args) => {
75
77
  const result = await searchToolHandlers.search_kin(args);
@@ -78,7 +80,7 @@ export function createNaverSearchServer({ config, }) {
78
80
  };
79
81
  });
80
82
  server.registerTool("search_book", {
81
- description: "📚 Search for books, publications, and literary content. Find book reviews, author information, publication details, and reading recommendations in Korean literature and translated works. (네이버 책 검색 - 도서 정보와 서평)",
83
+ description: "📚 Search for books, publications, and literary content. Find book reviews, author information, publication details, and reading recommendations in Korean literature and translated works. For new releases or current bestsellers, use get_current_korean_time first. (네이버 책 검색 - 도서 정보와 서평, 신간도서나 현재 베스트셀러를 찾을 때는 먼저 get_current_korean_time으로 현재 시간을 확인하세요)",
82
84
  inputSchema: SearchArgsSchema.shape,
83
85
  }, async (args) => {
84
86
  const result = await searchToolHandlers.search_book(args);
@@ -87,7 +89,7 @@ export function createNaverSearchServer({ config, }) {
87
89
  };
88
90
  });
89
91
  server.registerTool("search_encyc", {
90
- description: "📖 Search Naver Encyclopedia for authoritative knowledge and definitions. Best for academic research, getting reliable information, and understanding Korean concepts and terminology. (네이버 지식백과 검색 - 신뢰할 수 있는 정보와 정의)",
92
+ description: "📖 Search Naver Encyclopedia for authoritative knowledge and definitions. Best for academic research, getting reliable information, and understanding Korean concepts and terminology. For current definitions or recent updates, use get_current_korean_time for context. (네이버 지식백과 검색 - 신뢰할 수 있는 정보와 정의, 현재 정의나 최근 업데이트를 찾을 때는 get_current_korean_time으로 상황을 파악하세요)",
91
93
  inputSchema: SearchArgsSchema.shape,
92
94
  }, async (args) => {
93
95
  const result = await searchToolHandlers.search_encyc(args);
@@ -96,7 +98,7 @@ export function createNaverSearchServer({ config, }) {
96
98
  };
97
99
  });
98
100
  server.registerTool("search_academic", {
99
- description: "🎓 Search academic papers, research documents, and scholarly content. Access Korean academic resources, research papers, theses, and professional publications. (네이버 전문자료 검색 - 학술 논문과 전문 자료)",
101
+ description: "🎓 Search academic papers, research documents, and scholarly content. Access Korean academic resources, research papers, theses, and professional publications. For recent publications or current research, use get_current_korean_time first. (네이버 전문자료 검색 - 학술 논문과 전문 자료, 최근 발표나 현재 연구를 찾을 때는 먼저 get_current_korean_time으로 현재 시간을 확인하세요)",
100
102
  inputSchema: SearchArgsSchema.shape,
101
103
  }, async (args) => {
102
104
  const result = await searchToolHandlers.search_academic(args);
@@ -105,7 +107,7 @@ export function createNaverSearchServer({ config, }) {
105
107
  };
106
108
  });
107
109
  server.registerTool("search_local", {
108
- description: "📍 Search for local businesses, restaurants, and places in Korea. Find location information, reviews, contact details, and business hours for Korean establishments. (네이버 지역 검색 - 지역 업체와 장소 정보)",
110
+ description: "📍 Search for local businesses, restaurants, and places in Korea. Find location information, reviews, contact details, and business hours for Korean establishments. For current business hours or today's availability, use get_current_korean_time first. (네이버 지역 검색 - 지역 업체와 장소 정보, 현재 영업시간이나 오늘 이용 가능 여부를 확인할 때는 먼저 get_current_korean_time으로 현재 시간을 확인하세요)",
109
111
  inputSchema: NaverLocalSearchParamsSchema.shape,
110
112
  }, async (args) => {
111
113
  const result = await searchToolHandlers.search_local(args);
@@ -114,7 +116,7 @@ export function createNaverSearchServer({ config, }) {
114
116
  };
115
117
  });
116
118
  server.registerTool("search_cafearticle", {
117
- description: "☕ Search Naver Cafe articles for community discussions and specialized content. Find niche communities, hobby groups, and specialized discussions on various topics. (네이버 카페글 검색 - 커뮤니티 토론과 전문 정보)",
119
+ description: "☕ Search Naver Cafe articles for community discussions and specialized content. Find niche communities, hobby groups, and specialized discussions on various topics. For recent discussions or current community topics, use get_current_korean_time first. (네이버 카페글 검색 - 커뮤니티 토론과 전문 정보, 최근 논의나 현재 커뮤니티 주제를 찾을 때는 먼저 get_current_korean_time으로 현재 시간을 확인하세요)",
118
120
  inputSchema: SearchArgsSchema.shape,
119
121
  }, async (args) => {
120
122
  const result = await searchToolHandlers.search_cafearticle(args);
@@ -124,7 +126,7 @@ export function createNaverSearchServer({ config, }) {
124
126
  });
125
127
  // Register datalab tools
126
128
  server.registerTool("datalab_search", {
127
- description: "📊 Analyze search keyword trends over time using Naver DataLab. Track popularity changes, seasonal patterns, and compare multiple keywords. Perfect for market research and trend analysis. (네이버 데이터랩 검색어 트렌드 분석)",
129
+ description: "📊 Analyze search keyword trends over time using Naver DataLab. Track popularity changes, seasonal patterns, and compare multiple keywords. Perfect for market research and trend analysis. For current trend analysis or 'recent trends', use get_current_korean_time to determine proper date ranges. (네이버 데이터랩 검색어 트렌드 분석, 현재 트렌드나 최근 동향 분석 시 get_current_korean_time으로 적절한 날짜 범위를 설정하세요)",
128
130
  inputSchema: DatalabSearchSchema.shape,
129
131
  }, async (args) => {
130
132
  const result = await datalabToolHandlers.datalab_search(args);
@@ -133,7 +135,7 @@ export function createNaverSearchServer({ config, }) {
133
135
  };
134
136
  });
135
137
  server.registerTool("datalab_shopping_category", {
136
- description: "🛍️ STEP 2: Analyze shopping category trends over time. Use find_category first to get category codes. BUSINESS CASES: Market size analysis, seasonal trend identification, category performance comparison. EXAMPLE: Compare '패션의류' vs '화장품' trends over 6 months. (네이버 쇼핑 카테고리별 트렌드 분석 - 먼저 find_category 도구로 카테고리 코드를 찾으세요)",
138
+ description: "🛍️ STEP 2: Analyze shopping category trends over time. Use find_category first to get category codes. BUSINESS CASES: Market size analysis, seasonal trend identification, category performance comparison. EXAMPLE: Compare '패션의류' vs '화장품' trends over 6 months. For current period analysis, use get_current_korean_time to set proper date ranges. (네이버 쇼핑 카테고리별 트렌드 분석 - 먼저 find_category 도구로 카테고리 코드를 찾고, 현재 기간 분석시 get_current_korean_time으로 적절한 날짜 범위 설정)",
137
139
  inputSchema: DatalabShoppingSchema.shape,
138
140
  }, async (args) => {
139
141
  const result = await datalabToolHandlers.datalab_shopping_category(args);
@@ -142,7 +144,7 @@ export function createNaverSearchServer({ config, }) {
142
144
  };
143
145
  });
144
146
  server.registerTool("datalab_shopping_by_device", {
145
- description: "📱 Analyze shopping trends by device (PC vs Mobile). Use find_category first. BUSINESS CASES: Mobile commerce strategy, responsive design priority, device-specific campaigns. EXAMPLE: 'PC 사용자가 더 많이 구매하는 카테고리는?' (기기별 쇼핑 트렌드 분석 - 먼저 find_category 도구로 카테고리 코드를 찾으세요)",
147
+ description: "📱 Analyze shopping trends by device (PC vs Mobile). Use find_category first. BUSINESS CASES: Mobile commerce strategy, responsive design priority, device-specific campaigns. EXAMPLE: 'PC 사용자가 더 많이 구매하는 카테고리는?' For current device trends, use get_current_korean_time to set proper analysis period. (기기별 쇼핑 트렌드 분석 - 먼저 find_category 도구로 카테고리 코드를 찾고, 현재 기기 트렌드 분석시 get_current_korean_time으로 적절한 분석 기간 설정)",
146
148
  inputSchema: DatalabShoppingDeviceSchema.pick({
147
149
  startDate: true,
148
150
  endDate: true,
@@ -157,7 +159,7 @@ export function createNaverSearchServer({ config, }) {
157
159
  };
158
160
  });
159
161
  server.registerTool("datalab_shopping_by_gender", {
160
- description: "👥 Analyze shopping trends by gender (Male vs Female). Use find_category first. BUSINESS CASES: Gender-targeted marketing, product positioning, demographic analysis. EXAMPLE: '화장품 쇼핑에서 남녀 비율은?' (성별 쇼핑 트렌드 분석 - 먼저 find_category 도구로 카테고리 코드를 찾으세요)",
162
+ description: "👥 Analyze shopping trends by gender (Male vs Female). Use find_category first. BUSINESS CASES: Gender-targeted marketing, product positioning, demographic analysis. EXAMPLE: '화장품 쇼핑에서 남녀 비율은?' For current gender trends, use get_current_korean_time to set proper analysis period. (성별 쇼핑 트렌드 분석 - 먼저 find_category 도구로 카테고리 코드를 찾고, 현재 성별 트렌드 분석시 get_current_korean_time으로 적절한 분석 기간 설정)",
161
163
  inputSchema: DatalabShoppingGenderSchema.pick({
162
164
  startDate: true,
163
165
  endDate: true,
@@ -172,7 +174,7 @@ export function createNaverSearchServer({ config, }) {
172
174
  };
173
175
  });
174
176
  server.registerTool("datalab_shopping_by_age", {
175
- description: "👶👦👨👴 Analyze shopping trends by age groups (10s, 20s, 30s, 40s, 50s, 60s+). Use find_category first. BUSINESS CASES: Age-targeted products, generational preferences, lifecycle marketing. EXAMPLE: '개발 도구는 어느 연령대가 많이 구매하나?' (연령별 쇼핑 트렌드 - 먼저 find_category 도구로 카테고리 코드를 찾으세요)",
177
+ description: "👶👦👨👴 Analyze shopping trends by age groups (10s, 20s, 30s, 40s, 50s, 60s+). Use find_category first. BUSINESS CASES: Age-targeted products, generational preferences, lifecycle marketing. EXAMPLE: '개발 도구는 어느 연령대가 많이 구매하나?' For current age trends, use get_current_korean_time to set proper analysis period. (연령별 쇼핑 트렌드 - 먼저 find_category 도구로 카테고리 코드를 찾고, 현재 연령 트렌드 분석시 get_current_korean_time으로 적절한 분석 기간 설정)",
176
178
  inputSchema: DatalabShoppingAgeSchema.pick({
177
179
  startDate: true,
178
180
  endDate: true,
@@ -187,7 +189,7 @@ export function createNaverSearchServer({ config, }) {
187
189
  };
188
190
  });
189
191
  server.registerTool("datalab_shopping_keywords", {
190
- description: "🔍 Compare specific keywords within a shopping category. Use find_category first. BUSINESS CASES: Product keyword optimization, competitor analysis, search trend identification. EXAMPLE: Within '패션' category, compare '원피스' vs '자켓' vs '드레스' trends. (카테고리 내 키워드 비교 - 먼저 find_category 도구로 카테고리 코드를 찾으세요)",
192
+ description: "🔍 Compare specific keywords within a shopping category. Use find_category first. BUSINESS CASES: Product keyword optimization, competitor analysis, search trend identification. EXAMPLE: Within '패션' category, compare '원피스' vs '자켓' vs '드레스' trends. For current keyword trends, use get_current_korean_time to set proper analysis period. (카테고리 내 키워드 비교 - 먼저 find_category 도구로 카테고리 코드를 찾고, 현재 키워드 트렌드 분석시 get_current_korean_time으로 적절한 분석 기간 설정)",
191
193
  inputSchema: DatalabShoppingKeywordsSchema.shape,
192
194
  }, async (args) => {
193
195
  const result = await datalabToolHandlers.datalab_shopping_keywords(args);
@@ -222,6 +224,16 @@ export function createNaverSearchServer({ config, }) {
222
224
  content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
223
225
  };
224
226
  });
227
+ // Register current time tool
228
+ server.registerTool("get_current_korean_time", {
229
+ description: "🕐 Get current Korean time (KST) with date and time information. Use this tool whenever you need to know 'today', 'now', 'current time', or any time-related queries. Essential for understanding what 'today' means in Korean context. Always use this tool when users mention 'today' or 'current' to provide accurate time context. (현재 한국 시간 조회 - '오늘', '현재', '지금' 등의 시간 정보가 필요할 때 항상 사용하세요)",
230
+ inputSchema: GetKoreanTimeSchema.shape,
231
+ }, async (args) => {
232
+ const result = await timeToolHandlers.getCurrentKoreanTime(args);
233
+ return {
234
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
235
+ };
236
+ });
225
237
  // Register category search tool
226
238
  server.registerTool("find_category", {
227
239
  description: "🚀 STEP 1: Find shopping categories with Korean search terms. Search in KOREAN (패션, 화장품, 가전제품, etc.) to find category codes needed for datalab tools. Smart fuzzy matching finds similar categories even with partial matches. (카테고리 검색: 한국어로 검색하여 데이터랩 분석에 필요한 카테고리 코드를 찾아주는 필수 도구)",
@@ -303,6 +315,11 @@ try {
303
315
  process.argv[1].endsWith("index.js") ||
304
316
  process.argv[1].includes("naver-search-mcp");
305
317
  }
318
+ // Additional check for NPX execution
319
+ if (!isMainModule && process.argv.some(arg => arg.includes('naver-search-mcp'))) {
320
+ isMainModule = true;
321
+ console.error("Detected NPX execution, forcing main module mode");
322
+ }
306
323
  }
307
324
  catch (error) {
308
325
  // Fallback for environments where import.meta causes issues
@@ -0,0 +1,7 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Schema for Korean time tool - no parameters needed
4
+ */
5
+ export const GetKoreanTimeSchema = z.object({
6
+ // No parameters required for getting current time
7
+ });
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@isnow890/naver-search-mcp",
3
- "version": "1.0.42",
3
+ "version": "1.0.44",
4
4
  "description": "Naver Search MCP Server",
5
5
  "main": "dist/src/index.js",
6
6
  "module": "./src/index.ts",