contest-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CONTEST_MCP_DB | No | Path to the SQLite database file. Defaults to `~/.contest-mcp/db.sqlite`. | ~/.contest-mcp/db.sqlite |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_contestsA | 공모전을 검색한다 (같은 공고는 여러 소스에 있어도 1건으로 묶인다). Args: query: 제목·주최 부분 일치 검색어. field: 분야 부분 일치 (예: "웹/모바일", "아이디어"). region: 지역 부분 일치. dday_max: 마감까지 남은 일수 상한. 45면 6주 안에 마감하는 것만. status: open(진행·예정) | upcoming(접수 전) | all(마감 포함). limit: 최대 반환 건수. |
| get_contestA | 공모전 1건의 상세(자격·시상·배점·제출물·발표·문의처)를 원문 근거와 함께 가져온다. Args:
ident: |
| refreshB | 소스에서 목록을 다시 수집해 DB를 갱신한다. Args: sources: 수집할 소스 이름 목록 (wevity, thinkgood, allcon). 생략하면 전체. max_pages: 소스별 최대 페이지 수. |
| deadlinesA | 마감 일정을 모은다.
Args: days: 앞으로 며칠 안의 마감만 (기본 30). ics_path: ICS를 저장할 경로 (예: ~/Downloads/contest.ics). dday_max: days 대신 남은 일수 상한을 직접 지정. include_announcements: 상세에서 찾은 발표일(추정)도 캘린더에 넣을지. |
| markB | 공모전에 내 상태를 기록한다 (submitted | dropped | skip). Args: ident: contest id, URL, 또는 목록에서 받은 값. state: submitted(냈음) | dropped(버림) | skip(관심 없음). note: 메모 (제출 시각·경로 등). |
| my_listB | 내가 표시한 공고 목록 (제출/버림/관심 없음). Args: state: submitted | dropped | skip. 생략하면 전체. |
| check_eligibilityA | 공고의 응모 자격을 프로필( 판정은 pass/fail/unknown 세 가지이며, 원문 문장 근거가 있을 때만 pass/fail을 준다. 학교·지역(주민등록지 기준)·나이·신분·팀 구성 5축을 본다. 프로필이 없으면 unknown이 정상이다. Args: ident: contest id, 상세 URL, 또는 ix·contest_pk. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Most tools have clearly distinct purposes: searching, fetching detail, refreshing sources, collecting deadlines, personal marking, listing marked contests, and eligibility checking. The main overlap is between search_contests and deadlines, since both filter contests by dday/status, though deadlines is calendar/ICS-oriented and sufficiently differentiated.
The set mixes verb_noun names (get_contest, search_contests, check_eligibility) with bare verbs (refresh, mark) and noun/possessive forms (deadlines, my_list). It remains readable, but there is no single predictable convention across all tools.
Seven tools is well-scoped for a contest discovery and tracking server, with each tool earning its place across search, detail, refresh, deadlines, personal state, and eligibility. There is no obvious filler or missing core operation at the count level.
The surface covers the main contest workflow: discovery, detail lookup, source refresh, deadline export, personal status tracking, and eligibility checking. Minor gaps exist, notably no tool to create or manage the eligibility profile file and no explicit unmark/delete operation for personal states.