boj-mcp
Server Quality Checklist
Latest release: v1.2.2
- Disambiguation5/5
Each tool has a clearly distinct purpose: tags, contests, problems, and user statistics. Even the two contest guide tools (analyze-contest and recommend-contest-problems) are differentiated by their specific goals (analysis vs. recommendation).
Naming Consistency4/5Most tools follow a hyphenated verb_noun pattern (list-, search-, analyze-, recommend-), but the three user-* tools (user-top100-problems, user-stat, user-stat-tag) deviate by using a noun prefix. The hyphenation convention is consistent, making the deviation minor.
Tool Count5/5With 10 tools, the server is well-scoped for its domain (BOJ), covering tags, contests, problems, and user stats without unnecessary bloat or redundancy.
Completeness4/5Core operations for searching and listing resources are present, but there are minor gaps such as no direct problem-detail fetch or contest-detail fetch. Additionally, two tools are meta-guides rather than direct data operations, slightly limiting direct functionality.
Average 3.5/5 across 10 of 10 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
- Last stable release on
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
This repository is licensed under MIT License.
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
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explains that the tool provides a guide containing difficulty distribution, algorithmic tags, and study direction, which is helpful. However, it does not disclose whether the tool is read-only, whether it fetches live data, rate limits, or any other side effects. No annotation contradictions exist.
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 two concise sentences that front-load the purpose and enumerate the expected output content. Every sentence adds value with no wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks clarity on the exact output format—it says 'provides a guide' without specifying whether the result is text, structured data, or something else. It also omits any mention of the compareYears parameter and how it affects the returned analysis, leaving significant gaps for an agent with no output schema to infer behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides detailed descriptions for both contestSlugs and compareYears, covering 100% of the parameters. The tool description adds minimal parameter-specific context beyond that, so the baseline score of 3 applies—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/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it analyzes problem-setting trends for specific contests and lists expected outputs like difficulty distribution, algorithm tags, and study direction. However, the phrasing '방법을 안내합니다' (guides the method) introduces slight ambiguity about whether the tool actually performs the analysis or merely provides instructions.
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 explicit guidance on when to use this tool versus its siblings (e.g., list-contest, search-contest, recommend-contest-problems). It does not mention alternatives, exclusions, or any prerequisites, leaving the agent to infer usage context on its own.
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?
No annotations are provided, so the description carries full burden. It only says 'returns the tag slug' without disclosing behavior such as error handling (e.g., missing tag), case sensitivity, read-only nature, or any side effects. This is minimal transparency for a tool that will be invoked by an agent.
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 a single, concise sentence that front-loads the core purpose. No unnecessary words or redundant information; every word earns its place. It is appropriately sized for a simple lookup tool.
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 very simple tool with one string parameter and no output schema, the description states the basic operation and result. It does not specify return format or edge cases, but given the low complexity, it is largely complete. A small deduction for missing error/edge-case context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the parameter fully: 'query' is described as 'tag name' (태그 이름) with 100% coverage. The description adds little beyond restating that the tag name is used, so baseline score of 3 is appropriate since the schema already does the heavy lifting.
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 function: using a tag name, it returns the tag slug. It uses a specific verb ('returns') and resource (tag), distinguishing it from sibling tools like search-contest or search-problem which target different entities.
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?
There is no guidance on when to use this tool versus alternatives. It does not mention list-tag for listing tags or explain scenarios where search-tag is appropriate. The single sentence states the operation but lacks any contextual or exclusionary guidance.
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, the description carries the burden of behavioral disclosure. It uses the read verb '조회합니다' implying a safe read operation, but it does not describe the response structure, ordering, or any other behavioral nuances.
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?
A single, concise sentence that immediately states the tool's purpose. No filler or repetition.
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 zero-parameter list tool, the description adequately conveys that it retrieves the list of BOJ algorithm tags. However, without an output schema, it would benefit from mentioning the response format (e.g., list of tag names), but this is a minor gap.
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 tool has zero parameters, and the schema covers 100% (vacuously). The description does not need to explain parameters, so the baseline of 4 applies.
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 states a specific verb ('조회합니다' = retrieves) and a specific resource ('BOJ의 알고리즘 태그 목록' = BOJ's algorithm tag list). It implies listing all tags, distinguishing it from sibling search-tag, though it does not explicitly contrast them.
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?
No guidance is provided on when to use this tool versus search-tag or other siblings. The description simply states the function without context, alternatives, or exclusions.
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?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only says it 'guides' and 'provides a guide' to find problem sets, but does not disclose what the output looks like, whether it depends on specific parameters like targetContest for specific_contest, or any side effects. This is a significant gap given the absence of annotations.
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 concise at two sentences, but the two sentences are somewhat redundant ('guides how to recommend' and 'provides a guide to find customized problem sets'). It is front-loaded with the core purpose and has no fluff, but could be tightened into one sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With five parameters, no annotations, and no output schema, the description is too thin to be complete. It does not clarify how different purposes affect recommendations, the relationship between parameters (e.g., targetContest dependence on specific_contest), or what the returned data structure is. The schema covers parameter specifics, but the description adds almost no contextual completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all five parameters having clear descriptions. The tool description does not add any additional parameter semantics beyond what the schema already provides, so it earns the baseline score of 3.
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 recommends contest problems based on purpose ('목적에 맞는 대회 문제를 추천'), with specific purpose categories like school contests, ICPC, and specific contest preparation. It distinguishes from sibling tools like search-problem and analyze-contest by focusing on generating customized problem sets.
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 provides clear context for when to use the tool: when preparing for school contests, ICPC, specific contests, or general skill improvement. However, it does not mention exclusions or alternatives, such as using search-problem for finding a single known problem, so it just misses a 5.
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?
No annotations are provided, so the description must disclose behavioral traits. It states the input and output but does not explain behavior on edge cases such as no match, multiple matches, or case sensitivity. This lack of transparency could leave agents uncertain about error handling or selection criteria.
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 a single concise sentence that is front-loaded with the key action and result. Every word contributes to meaning, with no filler or redundancy.
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?
The tool is simple with one parameter and no output schema. The description covers the basic purpose and return value, but it does not address failure modes or edge cases (e.g., what happens if the contest name is not found). Given the lack of annotations and output schema, this is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter 'query' is already described as '대회 이름' (contest name). The description reiterates this without adding extra information about format, validation, or alternatives, so it adds no semantic value beyond the schema.
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 function: using a contest name to return the contest slug. The verb '반환합니다' (returns) and resource '대회 슬러그' (contest slug) are specific, and it clearly differentiates from siblings like list-contest which lists contests rather than converting a single name to a slug.
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 the tool should be used when a contest slug is needed for a given contest name, but it does not explicitly state when to use it over alternatives like list-contest or search-problem. No exclusions or alternative recommendations are provided.
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?
No annotations are provided, so the description must disclose behavioral traits. It only states the query action without detailing response format, authentication needs, rate limits, or limitations (e.g., public users only). While read-only behavior is implied, the description does not explicitly address it.
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 a single concise Korean sentence, front-loaded with the main verb and resource. It contains no fluff and every word contributes to the meaning.
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?
The core purpose is clear, but the description lacks details on the return format (e.g., tag-count pairs) and error behavior. Since there is no output schema, the description could have been more explicit about what the user will see, though the intent is inferable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'handle' parameter, which is well-documented. The tool description itself adds no parameter information, but the baseline of 3 applies because the schema fully covers the semantics.
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 function: querying the number of problems solved by a user, grouped by algorithm tag. The verb '조회합니다' and resource '알고리즘 태그 별로' make the purpose specific and distinguish it from sibling tools like user-stat or list-tag.
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 (when tag-wise solved counts are needed) but provides no explicit when-to-use/when-not-to-use guidance or alternative tool references. It does not mention exclusions or prerequisites beyond the schema's handle default.
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?
No annotations are provided, so the description carries the full burden of disclosing behavior. It only states the basic operation without clarifying sort order, how 'high level' is determined, return format, or edge cases (e.g., fewer than 100 solved problems). This is a significant transparency gap for a 'top 100' selection tool.
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 a single, compact sentence with no redundant wording or repetition. It is front-loaded and efficient.
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?
The tool has a simple interface (one optional parameter, no output schema) and a clear single-sentence description. However, the lack of output schema and absence of details about ordering or return format leave the description merely adequate rather than fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not mention the handle parameter, but the schema description covers it fully (100% coverage), including the note that it defaults to an environment variable. Per the baseline rule for high schema coverage, a score of 3 is appropriate.
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: it fetches the top 100 hardest problems the user has solved. It uses a specific verb (가져옵니다) and resource (user's solved problems), and is easily distinguished from siblings like user-stat or search-problem.
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 the usage context (when you need a user's top solved problems), but it does not explicitly differentiate from sibling tools or provide exclusions. The purpose alone gives a clear hint, but no direct guidance on when to choose 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.
- Behavior3/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden. It transparently discloses a notable quirk: some contests (e.g., cnu2025) may not appear in the list, and suggests a workaround. Yet it omits details about the response format or other limitations.
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 concise: two sentences, front-loaded with the core function, followed by a relevant caveat. No unnecessary information is included.
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 simple tool with no parameters and no output schema, the description covers the basic purpose and an edge case. However, the advice to use a higher-level slug is ambiguous given the tool has no parameters, and the response structure is not described.
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 tool has zero parameters and the schema is fully covered (empty object). The description adds no parameter semantics because there are none to explain, aligning with the baseline expectation.
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 that the tool retrieves the list of contests on BOJ, using the specific verb '조회' and resource '대회 목록'. It distinguishes itself from siblings like list-tag by its object, but doesn't explicitly contrast with search-contest.
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 this tool is for listing contests, with a specific note about handling missing entries like cnu2025 by using a parent slug. However, it lacks explicit guidance on when to use this versus search-contest or analyze-contest.
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?
No annotations are provided, so the description carries the full burden. The verb implies a read-only query, but it does not disclose any side effects, authentication needs, or return format details beyond counting by difficulty. It is not contradictory, but adds minimal behavioral context beyond the obvious.
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 a single, clear sentence in Korean that immediately states the action and scope. There is no redundant or extraneous wording.
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 tool has only one optional parameter, high schema coverage, and no output schema, the description sufficiently conveys the essential behavior. It could slightly benefit from mentioning the return structure or contrasting with similar siblings, but for a simple stat query it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the single optional handle parameter, including its default from the BOJ_HANDLE environment variable. The description adds no additional parameter semantics, so the baseline score applies.
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 uses a specific verb ('조회합니다' - retrieves) with a clear resource (user's solved problem count) and scope (by difficulty). It distinguishes from siblings like user-stat-tag, which presumably groups by tag.
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?
No explicit guidance is given about when to use this tool versus alternatives. The description does not mention preferred contexts, exclusions, or contrast with user-stat-tag or user-top100-problems.
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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the basic action (search problems) and the tag validation advice, but does not mention return format, pagination, rate limits, or any side effects. This is a significant gap for a search tool.
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 consists of two concise sentences, front-loaded with the purpose and followed by a targeted usage guideline. Every sentence contributes useful information without redundancy.
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?
The schema richly documents the query syntax and parameters, but the description lacks any information about the return value or output shape (no output schema exists). It is adequate for a simple search tool but has gaps regarding what the caller receives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with detailed descriptions, especially the query parameter's complex syntax. The description adds a small but useful semantic hint about checking tag validity, which relates to the query parameter. This provides minimal added value beyond the schema.
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 states 'BOJ 문제를 검색합니다' (searches BOJ problems), which is a specific verb+resource that clearly identifies the tool's function. This distinguishes it from sibling tools like search-tag and search-contest by making the target resource explicit.
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 provides explicit usage guidance: '알고리즘 태그(#태그)를 사용한 검색 전에는 반드시 'search-tag'나 'list-tag' 도구로 유효한 태그 슬러그/이름을 확인하세요' (before using tag search, verify valid tag slugs with search-tag or list-tag). This clearly instructs when to use alternative tools, though it doesn't cover all potential 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/csh1668/boj-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server