dart-mcp
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation4/5
Most tools have distinct purposes: get_current_date is a simple utility, while the other four focus on company information retrieval with clear specializations. However, search_detailed_financial_data and search_json_financial_data both provide financial data with overlapping functionality, creating some potential confusion despite different data sources and parameter structures.
Naming Consistency5/5All five tools follow a consistent snake_case naming pattern with clear verb_noun structure. Each name accurately describes the tool's function (get_current_date, search_business_information, search_detailed_financial_data, search_disclosure, search_json_financial_data), maintaining excellent consistency throughout the set.
Tool Count4/5Five tools is reasonable for a financial/business data server, though the scope feels slightly thin. The set covers date retrieval and company information with multiple financial data approaches, but could potentially benefit from additional complementary tools like company listing or sector analysis to feel more complete.
Completeness3/5For a Korean financial data server, there are notable gaps in coverage. While financial data retrieval is well-represented with multiple approaches, there's no tool for listing available companies, searching by sector/industry, retrieving historical stock prices, or accessing corporate governance information. The server focuses heavily on financial statements and disclosures but misses broader corporate data aspects.
Average 3.7/5 across 5 of 5 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- No community issues in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool 'provides' information (implying read-only) and describes return format, but lacks critical details: authentication requirements, rate limits, error conditions, data freshness, or whether it performs destructive operations. For a search tool with 4 parameters and no 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.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, Args, Returns) and uses bullet points for the information_type enum values. While comprehensive, it's appropriately sized for a tool with 4 parameters and detailed options. Every sentence earns its place by adding necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters with detailed enum options) and lack of both annotations and output schema, the description provides good parameter documentation but has significant gaps. It explains what information is returned but not the format (beyond '텍스트'), and lacks behavioral context like error handling or data sources. For a search tool without structured output, more behavioral context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds substantial value beyond the input schema, which has 0% description coverage. It provides Korean explanations for all 4 parameters, including detailed enum values for 'information_type' with 7 specific options and their meanings. This fully compensates for the schema's lack of descriptions and gives clear semantic meaning to each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '회사의 사업 관련 현황 정보를 제공하는 도구' (provides company business status information). It specifies the resource (company business information) and verb (provides/search), though it doesn't explicitly differentiate from sibling tools like search_detailed_financial_data or search_disclosure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 search_detailed_financial_data or search_disclosure, nor does it explain what distinguishes business information from financial data or disclosures. The only contextual hint is the parameter descriptions, which don't constitute usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
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. While it mentions parsing XBRL files and returning text with financial details, it doesn't cover important aspects like whether this is a read-only operation, potential rate limits, authentication requirements, error conditions, or what happens with invalid inputs. The description provides basic functional information but lacks behavioral context needed for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections: purpose statement, parameter explanations, and return value description. It's appropriately sized with no wasted sentences. The only minor improvement would be more explicit sibling differentiation, but overall it's efficiently organized and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no annotations and no output schema, the description does a decent job covering the basics: purpose, parameters, and return format. However, it lacks important context about behavioral aspects (safety, limits, errors) and doesn't help the agent choose between similar tools. Given the complexity of financial data extraction, more guidance would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides excellent parameter semantics beyond the schema. With 0% schema description coverage, the description fully compensates by explaining all 4 parameters: company_name (with examples), start_date/end_date (format and examples), statement_type (enum values and None behavior), and even mentions ctx parameter. This adds crucial meaning that the bare schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '회사의 세부적인 재무 정보를 제공하는 도구' (provides detailed financial information for companies) and 'XBRL 파일을 파싱하여 상세한 재무 데이터를 추출합니다' (parses XBRL files to extract detailed financial data). This specifies both the action (parse/extract) and resource (financial data from XBRL files), though it doesn't explicitly differentiate from sibling tools like 'search_json_financial_data'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 'search_json_financial_data' or 'search_disclosure', nor does it specify any prerequisites, exclusions, or contextual factors that would help an agent choose between available options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses key behavioral traits: it filters disclosures based on requested items, returns summaries only when data exists for those items, and handles a null requested_items parameter to target all major items. However, it doesn't mention rate limits, authentication needs, error conditions, or pagination behavior, leaving gaps for a tool with 4 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and well-structured: a purpose statement, filtering behavior explanation, parameter details with examples, and return value clarification. Every sentence adds value, though the parameter section could be slightly more concise. It's front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, financial data filtering), no annotations, and no output schema, the description is moderately complete. It covers parameter semantics well and explains the filtering logic, but lacks details on return format structure, error handling, and behavioral constraints. For a financial search tool with sibling alternatives, more contextual guidance would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains company_name format with examples, date formats (YYYYMMDD), requested_items behavior (filters disclosures, None targets all items), and provides a comprehensive list of available financial items. This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '회사의 주요 재무 정보를 검색하여 제공하는 도구' (search and provide a company's key financial information). It specifies the resource (company financial disclosures) and verb (search/provide), but doesn't explicitly differentiate from sibling tools like 'search_detailed_financial_data' or 'search_json_financial_data' which likely serve similar domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through the filtering behavior ('requested_items가 주어지면 해당 항목 관련 데이터가 있는 공시만 필터링합니다'), suggesting this tool is for finding disclosures containing specific financial items. However, it doesn't provide explicit guidance on when to use this versus the sibling tools (search_detailed_financial_data, search_json_financial_data), nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the return format and mentions an optional context parameter, but doesn't specify whether this is a read-only operation, whether it has side effects, or any rate limits. The description doesn't contradict annotations since none exist, but provides only basic behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly structured and concise with zero waste. It states the purpose in one clear sentence, then provides separate sections for Args and Returns with exactly the information needed. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 0 required parameters and no output schema, the description is nearly complete. It explains what the tool does, the optional parameter, and the return format. The only minor gap is lack of explicit behavioral guarantees (like read-only status), but given the tool's simplicity, this is a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so the baseline would be 3. The description adds value by explaining the optional 'ctx' parameter as 'MCP Context 객체 (선택 사항)' - MCP Context object (optional), providing semantic meaning beyond the empty schema. This elevates the score above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('반환하는' - returns) and resource ('현재 날짜' - current date), including the exact output format ('YYYYMMDD 형식'). It distinguishes itself from sibling tools that search various financial/business data by focusing solely on returning the current date.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying it returns the current date in YYYYMMDD format, suggesting it should be used when this specific date representation is needed. However, it doesn't explicitly state when NOT to use it or mention alternatives for different date formats or time components.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior3/5
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 does reveal some behavioral traits: it's a fallback/supplemental tool, it returns current period data only ('당기 데이터만 표시'), and it returns text with detailed item information. However, it doesn't disclose important aspects like whether it's read-only, potential rate limits, authentication requirements, error handling, or what happens when parameters are invalid. The description adds some context but leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with purpose first, usage guidelines second, then parameter documentation, and finally return information. Each section is focused and adds value. While not extremely brief, every sentence serves a clear purpose. The parameter documentation is comprehensive but necessary given the poor schema coverage. The structure helps an agent quickly understand what the tool does and how to use it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, financial data tool), no annotations, and no output schema, the description does a good job of providing necessary context. It explains the tool's purpose, when to use it, all parameters in detail, and what the return contains. The main gap is in behavioral aspects like error conditions, performance characteristics, or authentication needs. However, for a tool with this level of parameter complexity and no structured documentation support, the description provides substantial contextual information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by providing comprehensive parameter documentation. Each of the 5 parameters gets clear explanations in Korean with examples and enum values where applicable. The description adds crucial semantic information beyond the bare schema, including format requirements (4-digit year), code mappings for reprt_code, statement_type options with their meanings, and the effect of null values. This is exactly what's needed when schema coverage is poor.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '회사의 재무 정보를 JSON API를 통해 제공하는 실패시 보완하는 보조 도구' (provides company financial information via JSON API as a fallback supplement). It specifies the resource (financial information) and method (JSON API), and distinguishes it from siblings by mentioning it's an alternative when search_disclosure and search_detailed_financial_data fail for pre-September 2023 data. However, it doesn't explicitly state the specific verb beyond '제공' (provide).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'search_disclosure, search_detailed_financial_data이 2023년 9월 이전 자료 분석에 실패했을 때 대안으로 활용' (use as an alternative when search_disclosure and search_detailed_financial_data fail for pre-September 2023 data analysis). It names specific sibling tools and gives a clear temporal boundary (before September 2023), making it easy for an agent to decide when to select this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/2geonhyup/dart-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server