Baekjoon MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Baekjoon MCP Servergive me a hint for problem 1000"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Baekjoon MCP Server (beakjoon-mcp)
백준 온라인 저지(BOJ) 문제를 분석하고 사용자에게 힌트, 정답 코드, 테스트 케이스 등을 제공하는 Model Context Protocol (MCP) 서버입니다.
사용 가능한 도구 (Available Tools)
도구 이름 (Tool Name) | 설명 (Description) | 파라미터 (Parameters) |
| 문제의 핵심 아이디어와 알고리즘 분류 힌트를 제공합니다. |
|
| 문제 분석, 복잡도 계산, 최적 정답 코드를 제공합니다. |
|
| 엣지 케이스를 포함한 추가 테스트 케이스를 생성합니다. |
|
| 사용자 코드를 분석하여 개선된 코드를 제안합니다. |
|
Related MCP server: OnlineGDB MCP Server for C++ Code Execution
MCP 클라이언트 설정 (e.g., Claude Desktop)
Claude Desktop과 같은 MCP 클라이언트에서 이 서버를 사용하려면, 클라이언트의 설정 파일에 아래와 같이 서버 정보를 추가해야 합니다.
mcp_servers 설정 예시:
{
"mcpServers": {
"beakjoon-mcp": {
"command": "node",
"args": [
"C:/Users/your-user/path/to/beakjoon-mcp/dist/index.js"
],
"options": {
"cwd": "C:/Users/your-user/path/to/beakjoon-mcp"
}
}
}
}주의:
args와cwd의 경로는 실제 프로젝트가 위치한 절대 경로로 수정해주세요.
Available Tools
4 toolsanswerB
백준 문제 ID를 받아 문제 분석, 복잡도 계산, 그리고 C++ 및 JavaScript로 작성된 최적의 정답 코드를 제공합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| problemId | Yes | 백준 문제 번호 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It usefully discloses the output contents (analysis, complexity, dual-language code), which partially compensates for the absent output schema, but says nothing about guarantees of correctness despite claiming '최적의 정답 코드', nor about permissions, limits, or failure 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?
A single well-formed sentence that front-loads the input and then lists the outputs in a logical order. Nothing is padded, though it is too terse to be maximally useful rather than verbose.
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?
With no output schema, the description must describe returns, and it does so at a high level. However, for a tool that emits analysis plus full source code in two languages, the absence of any note on output shape, language selection, or size makes it only minimally 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?
There is one parameter with 100% schema description coverage ('백준 문제 번호'), so the schema already documents it. The description restates that it takes a problem ID but adds no format or range guidance, and does not clarify the string-or-integer anyOf. Baseline 3 applies when the schema does the work.
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 names a specific input (Baekjoon problem ID) and three concrete outputs (problem analysis, complexity calculation, optimal code in C++ and JavaScript), which is more than the terse name 'answer' conveys. It is clear what the tool produces, but it never distinguishes itself from siblings like hint, testcase, or refactor, so the agent must infer the boundary.
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?
There is no statement of when to use this tool versus hint, testcase, or refactor, no prerequisites, and no exclusions. The description only says what it produces, leaving routing entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hintA
백준 문제 ID를 받아 문제의 핵심 아이디어와 알고리즘 분류 힌트를 제공합니다. 정답 코드는 제공하지 않습니다.
| Name | Required | Description | Default |
|---|---|---|---|
| problemId | Yes | 백준 문제 번호 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose one meaningful boundary — that the output is a hint and never the solution code — but says nothing about rate limits, authentication, or the format/verbosity of the hint. With a read-only lookup this is adequate but thin.
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?
Two short sentences with no filler: the first states the action and output, the second states the constraint. The information is front-loaded and every clause earns its place.
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 single-parameter lookup tool with no output schema, the description usefully characterizes what comes back (core idea plus algorithm classification) and the boundary on output. It stops short of describing hint granularity or failure behavior, keeping it just below fully 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% and there is a single parameter, so the schema already documents 'problemId' as 백준 문제 번호. The description adds no syntax, format, or range detail beyond that, so the baseline 3 applies.
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?
Names a specific verb (제공) and resource (핵심 아이디어와 알고리즘 분류 힌트) scoped to a Baekjoon problem ID, and explicitly carves out what it does not do (정답 코드는 제공하지 않습니다), which separates it from the 'answer' sibling. It does not distinguish itself from 'testcase' or 'refactor', so it falls short of a full 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 negative clause ('does not provide answer code') implicitly steers the agent away from this tool when a full solution is wanted, which is useful routing. However, there is no explicit statement of when to reach for this tool (e.g., when stuck or before attempting a solution), so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refactorB
백준 문제 ID와 사용자 코드를 받아, 코드 스타일, 가독성, 효율성을 분석하고 개선된 리팩토링 코드를 제안합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| userCode | Yes | 사용자가 작성한 코드 | |
| problemId | Yes | 백준 문제 번호 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It discloses the analysis dimensions (style, readability, efficiency) and the deliverable (refactored code), which is useful context, but says nothing about permissions, rate limits, or the shape of the returned suggestion.
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?
A single efficient sentence with inputs front-loaded followed by the action and output. Nothing extraneous, though it is terse rather than richly structured.
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 two-parameter tool with full schema coverage and no output schema, the description is minimally adequate. It covers inputs and intent but omits any hint of the response format or failure 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 both parameters are already documented in the schema. The description restates that problemId and userCode are inputs but adds no format or constraint detail beyond what the schema provides, making 3 the correct baseline.
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?
States a specific verb+resource pair: takes a Baekjoon problem ID and user code, then analyzes style, readability, and efficiency and proposes refactored code. This is clearly distinguishable from siblings hint/answer/testcase, though the description never names or contrasts them.
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?
No explicit guidance on when to use this versus hint, answer, or testcase. The agent must infer that 'refactor' is for code-improvement requests, but no conditions, prerequisites, or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
testcaseB
백준 문제 ID를 받아 기본 예제 외에 엣지 케이스를 포함한 추가 테스트 케이스 3~5개를 생성합니다.
| Name | Required | Description | Default |
|---|---|---|---|
| problemId | Yes | 백준 문제 번호 |
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. It usefully discloses output behavior (3-5 cases, edge cases included, beyond the default examples), but says nothing about determinism, latency, whether results are cached, or how failures (invalid problem ID, no problem found) are surfaced.
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?
A single front-loaded sentence with no filler and the key scope (3-5 edge-case test cases) clearly placed. Efficient, though it lacks the extra routing sentence that would make it maximally useful.
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 one-parameter tool this is nearly adequate, but with no output schema the description should say something about the returned format (e.g., input/output pairs, JSON structure) and whether output varies. It covers quantity but not shape.
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% and the single problemId parameter accepts string or integer, so the schema already documents it. The description only restates '백준 문제 ID를 받아', adding no format or range detail beyond the schema; baseline 3 for 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?
States a specific verb (생성합니다) and resource (추가 테스트 케이스) and specifies scope: 3-5 cases including edge cases beyond the basic examples. It is easy to distinguish from siblings (hint, answer, refactor), though it never names them, so it stops short of explicit sibling differentiation.
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?
Usage is implied by the tool name and purpose (use it when you want extra test data for a solved/attempted problem), but there is no explicit when-to-use, when-not-to-use, or alternative routing to hint/answer/refactor. Minimum viable guidance only.
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.
4 tool updates
v1.0.0- First observed
answer - First observed
hint - First observed
refactor - First observed
testcase
TDQS
Scored across 4 tools
Each tool serves a clearly distinct purpose: hints without code, full solution with code, test case generation, and code refactoring. There is no overlap in functionality, so an agent can easily select the right tool.
All tool names are single lowercase words with no separators or mixed conventions. The pattern is consistent and readable, even though they are not verb_noun.
Four tools are well-scoped for a problem-solving assistant. Each tool covers a unique stage of the workflow, and the count is neither too thin nor too heavy.
The set covers hinting, solving, testing, and refactoring, which is a complete assistance loop. However, it lacks a tool to retrieve the problem statement itself or to execute code against generated test cases, which are minor gaps.
Maintenance
Related MCP Connectors
Search Luogu problems, fetch statements, explore problem sets and get practice recommendations.
Codeforces competitive programming users, contests, problems
Search Codeforces problems and inspect public problem metadata through the official Codeforces API.
Curated Korean AEC expertise for AI agents: KDS·KCS·KS, building law, practice, and the reasoning.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to access solved.ac user profiles and search Baekjoon Online Judge problems by difficulty, tags, and keywords through the solved.ac API.-
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to execute C++ code, test solutions against multiple test cases, analyze performance, and generate test cases using OnlineGDB's online compiler. Perfect for solving competitive programming problems with iterative self-correction capabilities.2-
- AlicenseAqualityDmaintenanceAn MCP toolkit for algorithm learning that enables AI agents to search problems, generate step-by-step hints, analyze code, and create review templates for Baekjoon and Programmers problems.169 npm1MIT
- AlicenseAqualityBmaintenanceUnofficial MCP server for searching and recommending Baekjoon (BOJ) problems using the solved.ac API.1012 npm3MIT