NewsDigest MCP
뉴스다이제스트 MCP
NewsAPI.org REST 엔드포인트를 사용하여 뉴스 기사를 집계, 검색, 포맷하는 TypeScript로 작성된 MCP(Model Context Protocol) 서버입니다.
특징
국가(ISO‑2 코드), 언어(ISO‑639‑1 코드), 카테고리(예: 비즈니스, 스포츠)별로 주요 헤드라인을 가져옵니다 .
옵션 필터(언어, 날짜 범위, 정렬, 페이지 크기)를 사용하여 전체 텍스트 쿼리(키워드)를 통해 모든 것을 검색합니다 .
마크다운으로 포맷하기 : LLM(Gemini와 Claude)을 사용하여 원시 JSON 응답을 깔끔하고 독자 친화적인 마크다운 다이제스트로 변환합니다.
Related MCP server: MCP Server with SSE and Bearer Authentication
요구 사항
Node.js 18+ (기본 제공
fetch지원용)npm 또는 yarn
NewsAPI.org API 키 (무료 계층 사용 가능)
LLM API 키 (Gemini 및 Claude)
설치
지엑스피1
구성
프로젝트 루트에 .env 파일을 만듭니다.
# .env
NEWSAPI_KEY=<your_newsapi_key>
GEMINI_API_KEY=<your_gemini_key> # for Google Gemini
ANTHROPIC_API_KEY=<your_claude_key> # for Anthropic Claude용법
MCP 서버를 시작합니다.
claude다음은 몇 가지 사용자 쿼리와 응답의 예입니다.
Q: 비트코인 관련 뉴스
A: 최신 비트코인 뉴스(2025년 5월 1일)
엘살바도르, IMF 요구에도 불구하고 비트코인 구매 약속
엘살바도르 경제부 장관은 IMF의 비트코인 노출 감소 요구 사항에도 불구하고 비트코인을 더 많이 축적하겠다는 국가의 의지를 재확인했습니다.
장관은 이를 나이브 부켈레 대통령이 시작한 "중요한 프로젝트"라고 불렀습니다.
노스캐롤라이나주, 1,270억 달러 규모 연금 기금에 비트코인 통합 법안 통과
노스캐롤라이나 주 하원은 주 연금 기금이 암호화폐에 투자할 수 있도록 하는 법안을 승인했습니다.
이 법안은 주정부의 1,270억 달러 규모의 연금 기금에 대한 투자 전략을 현대화합니다.
Coinbase 임원에 따르면 미국은 올해 1,000억 달러 상당의 비트코인을 구매할 수 있습니다.
Coinbase Asset Management의 사장인 Sebastian Bea는 워싱턴이 금을 계산하는 방식의 기술적 변화가 전략적 비트코인 매수를 가능하게 할 수 있다고 제안했습니다.
제안된 매수 규모는 시장 예상보다 수년 앞서 1,000억 달러에 달할 수 있습니다.
노스캐롤라이나 주 하원, 주 암호화폐 투자 법안 통과
디지털 자산 투자법(하원 법안 92호)이 3차 독회를 통과했습니다.
법안은 주 재무관이 승인된 암호화폐에 공적 자금을 투자할 수 있도록 허용합니다.
이제 상원으로 이동하여 심의합니다.
두바이에서 열린 암호화폐 산업 행사, "트럼프 열풍" 잦아들 조짐
암호화폐 애호가들이 두바이에서 열린 TOKEN2049 컨퍼런스에 모였습니다.
도널드 트럼프가 암호화폐에 미치는 영향에 대해 업계는 엇갈린 감정을 보이고 있다
올해는 상당한 벤처 캐피털 투자로 강력한 시작을 보였지만
말레이시아 경찰, 전기를 훔치는 비트코인 채굴 작전을 해체하다
말레이시아 트렝가누 경찰, 불법 비트코인 채굴 위해 전기 훔친 조직 해체
Hulu Terengganu 및 Marang 지역에서 운영이 발견되었습니다.
Available Tools
12 toolsdelete_symbolB
Delete a TypeScript/JavaScript symbol (variable, function, class, etc.) and all its references
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root directory for resolving relative paths | |
| filePath | Yes | File path containing the symbol (relative to root) | |
| line | Yes | Line number (1-based) or string to match in the line | |
| symbolName | Yes | Name of the symbol to delete | |
| removeReferences | No | Also delete all references to the symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the destructive action ('Delete') and the scope of deletion ('all its references'), but lacks critical details such as whether the operation is reversible, what permissions are needed, how errors are handled, or what the output looks like. For a destructive tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and resource without unnecessary words. Every part of the sentence contributes essential information about the tool's purpose and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a destructive operation with no annotations and no output schema, the description is incomplete. It fails to address critical aspects like error handling, confirmation prompts, side effects on dependent code, or return values, leaving significant gaps for an AI agent to understand the tool's full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters thoroughly. The description adds no additional meaning about parameters beyond implying that 'symbolName' refers to a TypeScript/JavaScript symbol and 'removeReferences' relates to deleting references. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Delete') and target resource ('TypeScript/JavaScript symbol'), including what types of symbols are affected ('variable, function, class, etc.') and the scope ('and all its references'). It distinguishes itself from sibling tools like 'rename_symbol' by specifying deletion rather than modification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'rename_symbol' or 'find_references', nor does it mention prerequisites, constraints, or typical scenarios for deletion. It states what the tool does but not when it should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_referencesC
Find all references to a TypeScript/JavaScript symbol across the codebase
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root directory for resolving relative paths | |
| filePath | Yes | File path (relative to root) | |
| line | Yes | Line number (1-based) or string to match in the line | |
| symbolName | Yes | Name of the symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behaves: no information on performance (e.g., speed, scalability), error handling (e.g., invalid paths), output format (e.g., list of locations), or limitations (e.g., symbol resolution accuracy). For a tool with 4 required parameters and no annotation coverage, this leaves significant gaps in understanding its operational characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place: 'Find all references' specifies the action, 'to a TypeScript/JavaScript symbol' defines the target, and 'across the codebase' sets the scope. There's zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 required parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns (e.g., a list of reference locations), how results are structured, or any behavioral nuances like handling ambiguous symbols. For a code analysis tool with multiple inputs, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond implying that parameters relate to symbol location (filePath, line, symbolName) and codebase context (root). Since the schema does the heavy lifting, the baseline score of 3 is appropriate—the description doesn't compensate but doesn't need to given the high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Find all references') and target ('TypeScript/JavaScript symbol across the codebase'), making the purpose immediately understandable. It distinguishes from siblings like 'get_definitions' or 'get_symbols_in_scope' by focusing specifically on reference finding rather than definitions or scope analysis. However, it doesn't explicitly contrast with 'get_type_at_symbol' or 'rename_symbol', which might also involve symbol operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'get_definitions' or 'get_symbols_in_scope'. It doesn't mention prerequisites (e.g., needing a codebase root) or exclusions (e.g., not for non-symbol references). Without such context, an agent might struggle to choose between this and sibling tools for related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_definitionsC
Get the definition(s) of a TypeScript symbol
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root directory for resolving relative paths | |
| filePath | Yes | File path (relative to root) | |
| line | Yes | Line number (1-based) or string to match in the line | |
| symbolName | Yes | Name of the symbol | |
| before | No | Number of lines to show before the definition | |
| after | No | Number of lines to show after the definition |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It doesn't mention whether this is a read-only operation, what the output format looks like (e.g., structured data vs. plain text), error conditions, or performance implications. The description is too vague to guide the agent effectively beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly. There's no wasted space or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a TypeScript symbol definition tool with 6 parameters and no output schema, the description is insufficient. It doesn't explain what constitutes a 'definition' (e.g., source code location, type details), how results are returned, or error handling. Without annotations or output schema, the agent lacks critical context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-specific information beyond what's already in the schema, which has 100% coverage with detailed descriptions for all 6 parameters. This meets the baseline score of 3, as the schema adequately documents parameters like 'root', 'filePath', and 'symbolName' without needing duplication in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('definition(s) of a TypeScript symbol'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'get_symbols_in_scope' or 'get_type_at_symbol', which would require more specificity about what distinguishes 'definitions' from other symbol-related queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'find_references' or 'get_type_at_symbol'. It lacks context about prerequisites (e.g., needing a TypeScript project setup) or typical use cases (e.g., debugging vs. documentation), leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_diagnosticsB
Get TypeScript diagnostics (errors, warnings) for a single file
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root directory for resolving relative paths | |
| filePath | Yes | File path to check for diagnostics (relative to root) | |
| virtualContent | No | Virtual content to use for diagnostics instead of file content |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behaves—such as whether it requires TypeScript configuration, how it handles missing files, what the output format looks like, or if there are rate limits. For a tool with 3 parameters and no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every element ('Get TypeScript diagnostics', 'errors, warnings', 'for a single file') earns its place by clarifying scope and function, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain the return values, error handling, or behavioral nuances like how diagnostics are generated or what happens with invalid inputs. For a diagnostic tool with rich parameter schema but missing output details, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain how 'virtualContent' interacts with 'filePath' or provide examples). Baseline 3 is appropriate when the schema handles parameter documentation effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get TypeScript diagnostics') and resource ('for a single file'), distinguishing it from sibling tools like 'get_definitions' or 'get_symbols_in_scope' which focus on different aspects of TypeScript analysis. It specifies the scope (errors, warnings) and single-file limitation, making the purpose immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'get_type_at_symbol' or 'find_references', nor does it mention prerequisites or exclusions. It implies usage for TypeScript file analysis but lacks context about when this specific diagnostic tool is appropriate compared to other analysis tools in the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_module_symbolsC
Get all exported symbols from a TypeScript/JavaScript module without detailed signatures
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root directory for resolving relative paths | |
| moduleName | Yes | The module to analyze (e.g., 'neverthrow', './local-module') | |
| filePath | No | Context file for resolving relative imports |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves symbols 'without detailed signatures', hinting at limited output detail, but fails to describe critical behaviors like error handling (e.g., invalid module names), performance (e.g., speed for large modules), or output format (e.g., list of symbols vs. structured data). For a tool with 3 parameters and no annotations, this is a significant gap, scoring 2 for vague behavioral hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get all exported symbols...') and adds a key constraint ('without detailed signatures'). There is zero waste or redundancy, making it highly concise and well-structured for quick understanding, earning a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no annotations, no output schema), the description is incomplete. It lacks details on output (what symbols look like), error cases, or integration with siblings. Without annotations or output schema, the description should provide more context for effective use, but it falls short, scoring 2 for being under-specified relative to the tool's needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for each parameter (e.g., 'moduleName' as 'The module to analyze'). The description adds no additional parameter semantics beyond the schema, such as examples for 'filePath' usage or constraints on 'root'. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but doesn't detract either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('exported symbols from a TypeScript/JavaScript module'), specifying the scope ('without detailed signatures'). It distinguishes from siblings like 'get_symbols_in_scope' or 'get_definitions' by focusing on exported symbols from a module rather than local symbols or definitions. However, it doesn't explicitly contrast with all siblings, keeping it at 4 instead of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'get_symbols_in_scope' or 'get_definitions'. It lacks context on prerequisites (e.g., needing a module name) or exclusions (e.g., not for detailed type analysis). This leaves the agent without clear usage direction, scoring 2 for minimal implied usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_symbols_in_scopeA
Get all symbols (variables, types, functions, etc.) visible at a specific location in a TypeScript/JavaScript file
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root directory for resolving relative paths | |
| filePath | Yes | File path containing the location (relative to root) | |
| line | Yes | Line number (1-based) or string to match in the line | |
| meaning | No | Symbol types to include | All |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states what the tool does but lacks behavioral details: no information about permissions needed, rate limits, error conditions, output format, or whether it's a read-only operation. 'Get' implies read-only, but this isn't explicitly confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the core purpose, no wasted words. Every element (verb, resource, location constraint, language context) earns its place efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no annotations, and no output schema, the description is minimal. It covers the purpose but lacks behavioral context (e.g., output format, error handling) and usage guidance relative to siblings. It's adequate but has clear gaps given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional parameter semantics beyond implying location-based filtering. Baseline 3 is appropriate since the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('all symbols visible at a specific location'), specifies the language context ('TypeScript/JavaScript file'), and distinguishes from siblings like 'get_module_symbols' (module-level) or 'get_type_at_symbol' (type-focused). It's specific about scope and resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for symbol visibility at a location, but doesn't explicitly state when to use this versus alternatives like 'get_module_symbols' (for module-level symbols) or 'find_references' (for finding usages). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_type_at_symbolC
Get type information for a TypeScript/JavaScript symbol at a specific location
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root directory for resolving relative paths | |
| filePath | Yes | File path containing the symbol (relative to root) | |
| line | Yes | Line number (1-based) or string to match in the line | |
| symbolName | Yes | Name of the symbol to get type information for | |
| symbolIndex | No | Index of the symbol occurrence if it appears multiple times on the line (0-based) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behaves: it doesn't mention error conditions (e.g., invalid file paths or symbols), performance characteristics, or what the output looks like (though there's no output schema). For a tool with 5 parameters and no annotation coverage, this leaves significant gaps in understanding its operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the core purpose without unnecessary words. It's front-loaded with the main action ('Get type information') and specifies the domain and scope concisely, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like error handling or output format, and while the schema covers parameters well, the overall context for safe and effective use is lacking, especially compared to sibling tools in the server.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond implying that 'symbol' refers to TypeScript/JavaScript identifiers and 'location' involves file paths and line numbers, which is already clear from the schema. This meets the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get type information') and resource ('for a TypeScript/JavaScript symbol at a specific location'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_type_in_module' or 'get_definitions', which likely serve related but distinct purposes in the TypeScript/JavaScript analysis context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It doesn't mention sibling tools like 'get_type_in_module' or 'get_definitions', nor does it specify prerequisites or contexts where this tool is appropriate versus others in the server's toolset.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_type_in_moduleC
Get detailed signature information for a specific type (function, class, interface, type alias, etc.) from a module
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root directory for resolving relative paths | |
| moduleName | Yes | The module containing the type (e.g., 'neverthrow', './utils') | |
| typeName | Yes | The name of the type to analyze | |
| filePath | No | Context file for resolving relative imports |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get detailed signature information') but does not describe the return format, error conditions, performance characteristics (e.g., rate limits), or side effects. For a tool with 4 parameters and no output schema, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('Get detailed signature information') and specifies the target ('specific type from a module') with useful examples of type categories. There is no wasted verbiage, and it directly communicates the tool's function without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, no annotations, no output schema), the description is incomplete. It lacks details on return values (e.g., what 'detailed signature information' includes), error handling, and behavioral context. Without annotations or output schema, the agent has insufficient information to use this tool effectively beyond basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for each parameter (e.g., 'Context file for resolving relative imports' for filePath). The description adds no additional parameter semantics beyond the schema, such as examples or constraints. Baseline 3 is appropriate when the schema does the heavy lifting, but no extra value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'detailed signature information for a specific type from a module', specifying the type categories (function, class, interface, type alias, etc.). It distinguishes from siblings like 'get_module_symbols' (which lists symbols) and 'get_type_at_symbol' (which analyzes a location rather than a named type), though not explicitly. The purpose is specific but could better differentiate from similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'get_module_symbols' (for listing types) or 'get_type_at_symbol' (for analyzing a symbol at a location). It implies usage for detailed type analysis but lacks explicit context, prerequisites, or exclusions, leaving the agent to infer based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_toolsA
List all available MCP tools with descriptions and categories
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter tools by category (typescript, lsp, or all) | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the core functionality but lacks details about response format, pagination, rate limits, authentication requirements, or error conditions. The description is accurate but minimal in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the essential purpose without unnecessary words. It's appropriately sized for a simple listing tool and front-loads the core functionality immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one well-documented parameter and no output schema, the description is minimally adequate. However, without annotations or output schema, it could benefit from more detail about the response structure or behavioral characteristics to be truly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'category' fully documented in the schema. The description doesn't add any parameter semantics beyond what the schema already provides, maintaining the baseline score appropriate when schema documentation is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all available MCP tools'), specifying what information is included ('with descriptions and categories'). It distinguishes itself from siblings like 'get_symbols_in_scope' or 'get_definitions' by focusing on tool metadata rather than code analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for discovering available tools, but provides no explicit guidance on when to use it versus alternatives. There's no mention of prerequisites, timing considerations, or comparison to other tools in the context of tool discovery workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_directoryA
Move a directory to a new location, updating all TypeScript imports and references automatically
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Root directory for resolving relative paths | |
| sourcePath | Yes | The relative path of the directory to move | |
| targetPath | Yes | The new relative path for the directory | |
| overwrite | No | Whether to overwrite existing directory at target path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the key behavioral trait of updating TypeScript imports/references, which is valuable beyond basic move operations. However, it doesn't mention potential side effects like error handling, permission requirements, or whether the operation is atomic/reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and key benefit. Every word earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is moderately complete—it covers the primary purpose and a key behavioral trait. However, it lacks details on error conditions, return values, or advanced usage scenarios that would be helpful given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what the schema provides (e.g., it doesn't clarify path formats or the scope of 'overwrite'). Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('move a directory') and the key behavioral outcome ('updating all TypeScript imports and references automatically'), which distinguishes it from sibling tools like 'move_file' (which presumably moves individual files) and 'rename_symbol' (which renames symbols rather than directories).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for moving directories in TypeScript projects where import/ref updates are needed, but doesn't explicitly state when to use this vs. alternatives like 'move_file' or when not to use it (e.g., for non-TypeScript projects). No prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_fileB
Move a TypeScript/JavaScript file to a new location and update all import statements
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root directory for resolving relative paths | |
| oldPath | Yes | Current file path (relative to root) | |
| newPath | Yes | New file path (relative to root) | |
| overwrite | No | Overwrite the destination file if it exists |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions updating import statements, which is useful behavioral context. However, it doesn't disclose critical details like whether this is a destructive operation (it moves files), what happens on failure, permission requirements, or rate limits. For a file mutation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that efficiently conveys the core functionality. Every word earns its place with no redundancy or fluff. The description is appropriately sized and front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a file mutation tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It should address behavioral aspects like safety (destructive nature), error handling, and what the tool returns. The mention of import updates is helpful but insufficient for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description doesn't add any parameter-specific semantics beyond what's in the schema (e.g., it doesn't explain path format conventions or import update mechanics). Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Move'), resource ('TypeScript/JavaScript file'), and scope ('to a new location and update all import statements'). It distinguishes from siblings like 'rename_symbol' (renaming within same file) and 'mcp__typescript__move_directory' (moving directories).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for moving files with import updates, but doesn't explicitly state when to use this vs. alternatives like 'rename_symbol' for renaming symbols or 'mcp__typescript__move_directory' for moving directories. No guidance on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_symbolB
Rename a TypeScript symbol (variable, function, class, etc.) across the codebase
| Name | Required | Description | Default |
|---|---|---|---|
| root | Yes | Root directory for resolving relative paths | |
| filePath | Yes | File path (relative to root) | |
| line | Yes | Line number (1-based) or string to match in the line | |
| oldName | Yes | Current name of the symbol | |
| newName | Yes | New name for the symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose that this is a destructive mutation (renames symbols globally), potential side effects (e.g., breaking references), error conditions, or output format. This is inadequate for a complex refactoring tool with significant behavioral implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It front-loads the core action and scope, making it immediately understandable without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, destructive refactoring tool with 5 parameters and no annotations or output schema, the description is insufficient. It lacks critical context about mutation behavior, error handling, and what happens after renaming (e.g., success confirmation or diff output), leaving significant gaps for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 5 parameters. The description adds no parameter-specific information beyond implying that 'oldName' and 'newName' refer to TypeScript symbols. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Rename'), the target ('TypeScript symbol'), and scope ('across the codebase'), with specific examples of symbol types (variable, function, class, etc.). It distinguishes from siblings like delete_symbol (destructive removal) and find_references (read-only search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like delete_symbol or find_references. It doesn't mention prerequisites (e.g., needing a TypeScript project) or exclusions (e.g., not for non-TypeScript files), leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
- First observed
delete_symbol - First observed
find_references - First observed
get_definitions - First observed
get_diagnostics - First observed
get_module_symbols - First observed
get_symbols_in_scope - First observed
get_type_at_symbol - First observed
get_type_in_module - First observed
list_tools - First observed
move_directory - First observed
move_file - First observed
rename_symbol
TDQS
Scored across 12 tools
Most tools have distinct purposes targeting specific TypeScript/JavaScript code analysis tasks, but there is some overlap between get_definitions and get_type_at_symbol that could cause confusion. Tools like find_references and rename_symbol are clearly differentiated by their action scope.
All tools follow a consistent verb_noun naming pattern with clear, descriptive names. The naming convention is uniform throughout, using snake_case consistently without any deviations or mixed styles.
12 tools is well-scoped for a TypeScript/JavaScript code analysis server, covering a comprehensive range of operations from diagnostics to refactoring. Each tool appears to serve a specific, justified purpose within the domain.
The toolset provides strong coverage for code analysis, refactoring, and diagnostics, but lacks tools for creating or modifying code (e.g., add_symbol, update_file). This minor gap could limit agents in full development workflows, though core analysis tasks are well-covered.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Google News search and topics with the full article text in Markdown for LLMs.
A Model Context Protocol server for Wix AI tools
SERP + haber + içerik çıkarımı MCP sunucusu — web araması (Brave/SerpApi BYOK), anahtarsız haber…
Related MCP Servers
- AlicenseBqualityDmaintenanceA TypeScript implementation of the Model Context Protocol server that enables searching arXiv papers and extracting paper information through standardized client-server communication.28 npmMIT
- -licenseNot gradedqualityNot gradedmaintenanceA TypeScript implementation of a Model Context Protocol server that uses Server-Sent Events for real-time communication and Bearer Token authentication to enable secure interaction with LLM clients like Claude Desktop.-
- AlicenseNot gradedqualityAmaintenanceA Model Context Protocol (MCP) server that provides real-time news intelligence using NewsAPI.ai. This server enables LLMs to search articles, track events, and analyze news through natural conversation.23 npm2MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server that provides access to global news articles through the News API. It implements a standardized interface for searching news articles, retrieving top headlines, and listing available news sources.312MIT