Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CONTEST_MCP_DBNoPath 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_contestsA

공모전을 검색한다 (같은 공고는 여러 소스에 있어도 1건으로 묶인다).

Args: query: 제목·주최 부분 일치 검색어. field: 분야 부분 일치 (예: "웹/모바일", "아이디어"). region: 지역 부분 일치. dday_max: 마감까지 남은 일수 상한. 45면 6주 안에 마감하는 것만. status: open(진행·예정) | upcoming(접수 전) | all(마감 포함). limit: 최대 반환 건수.

get_contestA

공모전 1건의 상세(자격·시상·배점·제출물·발표·문의처)를 원문 근거와 함께 가져온다.

Args: ident: wevity:112073 같은 id, 상세 URL, 또는 ix·contest_pk 값. refresh_detail: True면 상세 페이지를 지금 받아 갱신(하루 1회 캐시).

refreshB

소스에서 목록을 다시 수집해 DB를 갱신한다.

Args: sources: 수집할 소스 이름 목록 (wevity, thinkgood, allcon). 생략하면 전체. max_pages: 소스별 최대 페이지 수.

deadlinesA

마감 일정을 모은다. ics_path 를 주면 ICS 파일도 만든다.

include_announcements 는 상세 원문에서 찾은 발표일(추정) 을 함께 넣는다. 원문 문장에서 뽑은 값이라 ICS 제목에 [발표?] 로 표시하고, 근거 문장을 설명에 붙인다.

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

공고의 응모 자격을 프로필(~/.contest-mcp/profile.json)과 대조해 축별로 판정한다.

판정은 pass/fail/unknown 세 가지이며, 원문 문장 근거가 있을 때만 pass/fail을 준다. 학교·지역(주민등록지 기준)·나이·신분·팀 구성 5축을 본다. 프로필이 없으면 unknown이 정상이다.

Args: ident: contest id, 상세 URL, 또는 ix·contest_pk.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 7 tools

Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues