Skip to main content
Glama
isnow890

Naver Search MCP Server

search_news

Search Naver News using a specific query to retrieve relevant articles sorted by similarity or date, with customizable result display and start position.

Instructions

Perform a search on Naver News. (네이버 뉴스 검색)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
displayNoNumber of results to display (default: 10)
queryYesSearch query
sortNoSort method (sim: similarity, date: date)
startNoStart position of search results (default: 1)

Implementation Reference

  • Core handler function that executes the news search logic by calling NaverSearchClient.search('news', params)
     * 뉴스 검색 핸들러
     */
    export async function handleNewsSearch(params: SearchArgs) {
      return client.search("news", params);
    }
  • Dispatcher handler for search_news tool that validates args with SearchArgsSchema and delegates to handleNewsSearch
    search_news: (args) => {
      console.error("search_news called with args:", JSON.stringify(args, null, 2));
      return handleNewsSearch(SearchArgsSchema.parse(args));
  • Zod input schema defining parameters for search tools including search_news (query, display, start, sort)
    export const SearchArgsSchema = z.object({
      query: z.string().describe("검색어"),
      display: z.number().optional().describe("한 번에 가져올 결과 수 (기본 10)"),
      start: z.number().optional().describe("검색 시작 위치 (기본 1)"),
      sort: z
        .enum(["sim", "date"])
        .optional()
        .describe("정렬 방식 (sim: 유사도, date: 날짜순)"),
    });
  • src/index.ts:117-129 (registration)
    MCP server registration of the search_news tool, including description, input schema, and handler wrapper that calls searchToolHandlers.search_news
    server.registerTool(
      "search_news",
      {
        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으로 현재 시간을 확인하세요)",
        inputSchema: SearchArgsSchema.shape,
      },
      async (args) => {
        const result = await searchToolHandlers.search_news(args);
        return {
          content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
        };
      }
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states it performs a search but doesn't disclose behavioral traits like rate limits, authentication needs, result format, or whether it's read-only or has side effects. This is a significant gap for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with just two short phrases, front-loading the essential action and resource. There's no wasted language, and the bilingual note adds clarity without verbosity, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the search returns, potential limitations, or how it differs from siblings. For a search tool with no structured output information, more context is needed to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional parameter information beyond what's in the schema, resulting in the baseline score of 3 where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Perform a search') and resource ('on Naver News'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like search_blog or search_webkr, which perform similar searches on different platforms, so it doesn't reach the highest score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like search_blog and search_webkr available, there's no indication of what makes Naver News unique or when it's the appropriate choice, leaving usage unclear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Related Tools

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/isnow890/naver-search-mcp'

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