Skip to main content
Glama

투표함 — 전자투표 법령 자료 · AI 투표함 (Korean e-voting statutes, quorum & ballot drafting)

Server Details

Korean e-voting statutes, quorum checks and ballot drafting. 18 tools, no auth, no fee.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A3.5/5.0

Scored across 18 tools

Disambiguation4/5

Each tool targets a fairly distinct action or resource: read tools (get_dashboard, get_report, get_draft_status), legal-reference tools (list_laws, get_statute, get_resolution_requirement, judge_resolution, electronic_voting_basis), and mutations (create_draft_meeting, enter_paper_ballots, record_notice, upload_roster, close_meeting). The main soft overlaps are get_dashboard vs get_report (live tallies vs sealed final report) and search vs list_laws/list_resolution_types, but the descriptions make the boundaries clear enough. An agent could still occasionally hesitate between get_resolution_requirement and judge_resolution, hence not a 5.

Naming Consistency4/5

The dominant convention is snake_case verb_noun (close_meeting, create_draft_meeting, upload_roster, record_notice, get_report, list_laws, judge_resolution), applied consistently for most of the surface. A few tools break the pattern with noun phrases or bare verbs: law_changelog, electronic_voting_basis, and search. Minor deviation only, still readable.

Tool Count4/5

18 tools is on the heavy side but each maps to a real operation in a genuinely dual-purpose server (statute lookup plus meeting/ballot lifecycle). Nothing looks like filler; the law-reference cluster (list_laws, get_statute, law_changelog, list_resolution_types, get_resolution_requirement, electronic_voting_basis) is dense but justified by the domain.

Completeness4/5

The core lifecycle is covered end to end: draft creation, status check, roster upload, notice recording, paper ballot entry, dashboard, closure, and sealed report, plus the full statute and quorum surface. Gaps are modest but real: there is no tool to edit or void a meeting/agenda, no way to correct or delete an erroneous paper ballot entry, and no list_meetings to enumerate one's meetings without an out-of-band token. Agents can work around these through the host dashboard.

Available Tools

18 tools
close_meeting지금 마감A
DestructiveIdempotent
Inspect

모든 안건을 지금 마감하고 결과를 확정한다. 되돌릴 수 없다. 공고한 마감보다 일찍 닫으면 결의가 다투어질 수 있다 — 주최자가 지시한 경우에만. manageToken 필요.

NameRequiredDescriptionDefault
confirmYes주최자의 마감 지시를 받았다는 뜻. 반드시 true
meetingIdYes집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: "m_8f3kq2"
manageTokenYes주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true, but the description adds what destruction means: "되돌릴 수 없다" (irreversible) and the contest risk from early closing. It also states the manageToken auth requirement, which annotations don't cover. The return value and the effect on already-cast votes remain undescribed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the action and the irreversibility warning, then the condition and the auth requirement. No sentence repeats another.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, no-output-schema mutation this covers the key agent concerns: irreversibility, when it is permitted, and auth. What happens to the meeting afterward (final state, whether votes are locked) is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so confirm, meetingId and manageToken are already fully documented, including the const true constraint and the 'host instruction received' meaning. The description only repeats "manageToken 필요" and adds no format or usage detail beyond the schema. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: "모든 안건을 지금 마감하고 결과를 확정한다" (close all agenda items now and finalize results). It doesn't distinguish itself from siblings like get_draft_status or judge_resolution, so it can't earn a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"주최자가 지시한 경우에만" gives an explicit gating condition and warns that closing before the announced time risks a contested resolution, which functions as a when-not. It never names an alternative tool for the non-host or post-closing cases, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_draft_meetingAI 투표함 초안 만들기AInspect

집회 초안을 만든다. 초안은 "확인 대기" 상태라 아무것도 열리지 않고 돈도 들지 않는다 — 돌려받은 confirmUrl 을 주최자(관리인)에게 전달하면 주최자가 내용을 검토하고 체크한 뒤 휴대폰 본인인증·결제를 해야 투표가 열린다. 관리 토큰은 주최자가 받으며, 운영을 맡길지는 주최자가 정한다. 집합건물(bldg)은 agendas[].preset 에 bldg_general / bldg_bylaw / bldg_common_change 등 법정 유형을 넣고, closesAt(전자투표 마감)은 paperClosesAt(집회일) 전날까지여야 한다. roster 는 선택이며 넣을 때는 서버에 원문을 보내지 않는다: 각 사람의 hash = sha256("voter:" + 이름 + "|" + 생년월일(YYYYMMDD) + "|" + 휴대폰(숫자만)) 의 16진수, 면적 의결권이면 weight(㎡). 없으면 주최자가 대시보드에서 엑셀로 올린다.

NameRequiredDescriptionDefault
agentNo에이전트 이름(기록용). 예: "claude-desktop"
titleYes집회 이름. 예: "트레젠웰가 2026년 정기 관리단집회"
rosterNo선거인 명부(선택). 해시만 보낸다. 없으면 주최자가 대시보드에서 엑셀로 올린다
agendasYes안건 목록(1~30개). 안건마다 투표가 하나씩 열린다
orgTypeYes단체 유형 키. 예: "bldg"(집합건물 관리단), "redev"(정비사업조합), "apt"(입주자대표회의)
closesAtYes전자투표 마감 시각, ISO 8601(한국 시간 오프셋 포함). 예: "2026-11-20T18:00:00+09:00". 집합건물은 paperClosesAt 전날까지
isAnonymousNo익명(비밀) 투표 여부. 기본 true. 법이 비밀투표를 요구하는 안건은 true 로 고정된다
useWeightedNo면적 의결권 사용 여부. etc 단체만 고른다 — 법정 안건은 법이 정한다
declaredCountYes투표할 수 있는 사람 수(구분소유자·조합원 수). 요금과 정족수의 기준. 예: 366
paperClosesAtNo현장·서면 접수 마감(집회일) ISO 8601. 예: "2026-11-21T14:00:00+09:00". 집합건물은 closesAt 다음 날 이후

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the annotations: draft state is "확인 대기", nothing opens, no charge, confirmUrl must be relayed, admin token goes to the host, and the deadline ordering rule (closesAt before paperClosesAt for bldg). These are exactly the operational facts an agent needs for a non-idempotent, non-destructive write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and every sentence carries operational information. It is a dense run-on paragraph with some restatement of the schema (hash formula, closesAt rule), which costs a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters and no output schema, the description supplies the missing return-value cue (confirmUrl), the state semantics, and the host-side follow-up steps. An agent could invoke this correctly from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds cross-field constraints (bldg preset keys via get_resolution_requirement, closesAt must be the day before paperClosesAt, roster hash formula and weight semantics). It partly repeats schema text, limiting it to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("집회 초안을 만든다") and contrasts a draft with a live vote, so the agent knows this does not open anything. It doesn't name a specific sibling, but the roster alternative (host uploads Excel via dashboard) implicitly points to upload_roster.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the workflow clearly: create draft → relay confirmUrl to host → host verifies with phone auth/payment → voting opens. It also gives the when-to-skip path for roster (host uploads it). Lacks explicit exclusion against other creation/close siblings, but context is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

electronic_voting_basis전자투표 가능 여부A
Read-onlyIdempotent
Inspect

이 안건을 전자투표로 할 수 있는가 — 법이 직접 허용 / 규약·정관 근거 필요 / 불가(전자서명 요구 등) — 와 그 근거 조문.

NameRequiredDescriptionDefault
keyYes안건 유형 키. 예: "coop_bylaw", "stock_ordinary"

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely new behavioral information: the response is a three-way classification plus the specific statutory article underpinning it, which matters because no output schema exists. It stops short of stating edge cases or what happens for an unrecognized key.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, front-loaded with the core question, then the answer categories, then the returned legal basis. No filler and no repetition of schema or annotation content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining what comes back, and it does so by naming the three verdict categories and the accompanying statute citation. It is slightly incomplete in not indicating how to obtain a valid key value or how the citation is formatted, but the essential shape of the call and result is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the single 'key' parameter is documented with type and concrete examples (e.g. "coop_bylaw", "stock_ordinary"). The description adds nothing about the key — not where valid keys come from (perhaps list_resolution_types) — so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the exact question the tool answers (can this agenda item be done by electronic voting) and enumerates the three possible verdicts (permitted directly by law / requires bylaws or articles basis / not possible due to e-signature requirements) plus the legal citation returned. That is a specific verb+resource, far beyond restating the title. It does not explicitly distinguish itself from related siblings such as get_resolution_requirement or judge_resolution, which keeps it at 4.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the tool to call when it needs to know whether electronic voting is allowed for a given agenda type. There is no statement of when not to use it and no pointer to the neighboring tools that also deal with resolution requirements, so the agent must infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enter_paper_ballots서면결의서 입력AInspect

서면결의서(현장 표)를 입력한다. 한 사람 = 명부 해시 + 안건별 선택지 id. 증빙 사진(data:image/… URL)이 반드시 필요하다. 전자투표한 사람이 섞이면 묶음 전체가 거절된다. 표가 더해지는 행동이다. manageToken 필요.

NameRequiredDescriptionDefault
noteNo비고(선택). 예: "11월 21일 현장 접수분"
votersYes서면 투표자 목록. 예: [{"hash":"3fa9…","choices":{"p_1":"o_yes","p_2":"o_no"}}]
meetingIdYes집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: "m_8f3kq2"
manageTokenYes주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다
evidenceImageDataUrlYes서면결의서 묶음 사진, data:image/jpeg;base64,… 형식(필수). 해시가 체인에 남는다

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds meaningful behavior beyond annotations: ballots are additive, manageToken is required, and the whole batch is rejected if any voter already voted electronically. This is strong operational context even though annotations already declare non-readOnly, non-idempotent behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Six short, front-loaded sentences with no filler. The key requirement, failure mode, and token prerequisite are each stated once and clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema, the description covers the essential prerequisites, required evidence, and batch-rejection risk. It could say more about the success response or retry implications, but an agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents meetingId, manageToken, voters, and evidenceImageDataUrl. The description reinforces the required evidence photo and one-voter-equals-hash-plus-choices model, but adds little syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action and resource: entering written resolution ballots (on-site paper votes). It is clear enough to distinguish paper-ballot entry from electronic voting siblings, though it does not explicitly name an alternative tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it (paper/on-site ballots) and gives an important exclusion (do not mix in people who voted electronically), but it does not explicitly name the alternative electronic voting tool or state when-not-to-use conditions beyond that warning.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboard대시보드B
Read-onlyIdempotent
Inspect

집회의 결제 상태·안건별 집계·명부 현황. manageToken 필요.

NameRequiredDescriptionDefault
meetingIdYes집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: "m_8f3kq2"
manageTokenYes주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the manageToken prerequisite, but does not explain return shape, privacy sensitivity, or rate-limit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with the dashboard contents front-loaded and the auth prerequisite second. It is compact and easy to scan, though the second sentence mainly restates schema requirements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With full schema coverage and read-only annotations, the main remaining burden is describing what the dashboard returns. The description lists the three return categories at a useful level, though it does not detail formatting or scope limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters are fully documented in the input schema. The description only repeats that manageToken is required, so it adds no meaning beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the concrete dashboard contents: payment status, per-agenda aggregates, and roster status. It is clear what the tool returns, but it does not distinguish this overview from siblings like get_report or get_draft_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is that manageToken is required, which is already enforced by the schema. There is no explicit guidance on when to choose get_dashboard over get_report, get_draft_status, or other sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_draft_status초안 상태A
Read-onlyIdempotent
Inspect

초안이 확인됐는지, 결제됐는지, 투표가 열렸는지 본다. 확인 전에는 confirmToken, 확인 뒤에는 주최자가 넘겨준 manageToken 을 token 에 넣는다.

NameRequiredDescriptionDefault
tokenYes확인 전에는 create_draft_meeting 응답의 confirmToken, 주최자가 확인한 뒤에는 주최자가 넘겨준 manageToken
draftIdYescreate_draft_meeting 응답의 draftId. 예: "d_7q2m9x"

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real context beyond that: the token changes identity after host confirmation (confirmToken vs manageToken), which is an authorization detail the agent cannot infer. It does not describe the shape of the returned status values, which matters since there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, zero padding: the purpose and the three checked states come first, then the single conditional rule for the token. Nothing is repeated and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with full schema coverage and rich annotations, the description covers purpose and the token lifecycle adequately. The main remaining gap is that no output schema exists and the description does not indicate what the status result looks like (booleans, enum states, etc.).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented with a concrete example draftId and a cross-reference to create_draft_meeting's response fields. The description's token sentence largely restates the schema's token description, adding no new syntax or format detail, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (본다/check) and resource (draft), and enumerates the three states it inspects: confirmed, paid, voting opened. That is far more precise than a generic 'get status', though it never names a sibling tool or contrasts itself with them (e.g. get_dashboard, create_draft_meeting).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the stated purpose – call it to poll the lifecycle state of a draft. The second sentence gives a conditional rule for which token to supply, which helps correct invocation, but there is no explicit 'when not to use' or pointer to an alternative tool among the many siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_quote요금 견적A
Read-onlyIdempotent
Inspect

투표 인원으로 세 갈래(AI 투표함·직접 투표함·맞춤 투표함) 요금을 계산한다. 부가세 포함 금액. 아무것도 바꾸지 않는다.

NameRequiredDescriptionDefault
peopleYes투표할 수 있는 사람 수. 예: 366

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive, and '아무것도 바꾸지 않는다' merely restates that. The one piece of genuine added context is '부가세 포함 금액' (amounts include VAT), which matters because there is no output schema. No pagination, precision, or rounding behavior is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each carrying a distinct fact (what is computed, what the returned amount includes, that nothing is mutated), with the calculation front-loaded. Nothing redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, non-destructive calculator with no output schema this covers the essentials, and naming the three tiers hints at the result structure. It could still say whether three separate amounts are returned and how rounding works, so it falls just short of complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single integer parameter 'people' is already documented with an example. The description only restates that headcount drives the calculation, adding no format or constraint detail beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (요금을 계산한다) and resource (three named ballot-box pricing tiers) plus the input that drives it (투표 인원). An agent can tell immediately that this is a read-only pricing calculator, distinct from the meeting/voting-action siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the phrase '투표 인원으로 ... 요금을 계산한다' — call it when you need a price for a given headcount. There is no explicit when-to-use/when-not or reference to alternatives, but no sibling offers pricing either, so the gap is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_report결과보고서A
Read-onlyIdempotent
Inspect

집회 전체 결과보고서(안건별 표수·의결권·판정·근거·검증값). 마감 전에는 봉인(sealed). manageToken 필요.

NameRequiredDescriptionDefault
meetingIdYes집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: "m_8f3kq2"
manageTokenYes주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, so the safety bar is low, and the description still adds real behavior: the report is sealed until the meeting closes and a manageToken is required. The one gap is not describing what a sealed pre-close call returns (error vs. redacted payload).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences: contents first, then the sealed precondition and auth requirement. Every clause carries information; minor density cost from packing the content list into parentheses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the report's fields, partially standing in for a return-value spec, and flags the auth and sealing preconditions. Missing only the sealed-state return behavior and any note on the report's relation to close_meeting.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already explains both meetingId and manageToken in detail, including where to find each value. The description only restates that manageToken is needed, adding no semantics beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific resource (full results report) and enumerates its contents (per-agenda vote counts, voting rights, judgment, basis, verification values), which distinguishes it from get_dashboard and get_draft_status. It stops short of explicitly contrasting with those siblings, so a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'sealed before closing' note implies the tool is only meaningfully callable after the meeting is finalized, which is useful implicit guidance. However, it never states when to prefer this over get_dashboard or get_draft_status, and does not say affirmatively what happens if called early (error vs. empty result).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_resolution_requirement안건 유형의 요건B
Read-onlyIdempotent
Inspect

안건 유형 하나의 의결정족수(인원·의결권), 근거 조문, 전자투표 가능 여부와 근거, 소집통지 요건, 본인확인 등급, 명부 필요 여부, 주의사항.

NameRequiredDescriptionDefault
keyYes안건 유형 키(list_resolution_types 의 key). 예: "bldg_general", "bldg_bylaw", "redev_general", "apt_rep_multi"

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral caveats such as invalid-key handling or output format, but it does enumerate the returned information and does not contradict the annotations, making it adequate for a static read-only lookup.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence enumerating the returned fields with no obvious waste. It is somewhat unstructured as a bare list and lacks an explicit action verb, but it is appropriately sized and front-loads the core information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because there is no output schema, the description's enumeration of returned fields is important and provides a useful picture of the response content. Input semantics are fully covered by the schema and annotations cover safety, so the only notable gap is the lack of explicit when-to-use context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single parameter's schema clearly explains that key is an agenda type key from list_resolution_types with examples. The description itself adds no parameter meaning, so the schema does the heavy lifting and the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the specific resource: requirements for a single agenda type, and enumerates the exact facts returned (quorum, legal basis, e-voting, notice, identity verification, roster, cautions). It does not use an explicit verb or explicitly distinguish itself from siblings such as judge_resolution, but the resource is clear enough for an agent to recognize it as a lookup tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does 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, nor any exclusions. The only usage clue is in the schema description, which says the key comes from list_resolution_types, but that is parameter sourcing rather than tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statute조문 원문A
Read-onlyIdempotent
Inspect

법령 하나의 조문 원문(조·항·호)과 개정 꼬리표, 투표함이 그 조문을 어떻게 지키는지(적용 내용), 관련 안건 유형. article 을 비우면 추적 조문 전부.

NameRequiredDescriptionDefault
lawYes법령 이름 또는 slug. 예: "집합건물의 소유 및 관리에 관한 법률" 또는 "condominium" (목록은 list_laws)
articleNo조 번호. 예: "제38조". 비우면 그 법령의 추적 조문 전부

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, closed-world, non-destructive, so the safety profile is fully covered. The description earns credit beyond that by disclosing the payload contents — original text, amendment tags, voting-compliance application notes, related agenda types — which matters because there is no output schema. It does not cover missing-law behavior or result size.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact clauses, front-loaded with the resource and then the key conditional, with no filler. Dense domain jargon (개정 꼬리표, 투표함 적용 내용) makes it terse rather than verbose, which is appropriate for the audience.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and heavy annotation coverage, the description carries the return-value burden well by enumerating what each record contains and defining the empty-article case. Missing only edge-case behavior such as an unknown law argument, which is minor for a closed-world read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both law (name or slug, with an example and a pointer to list_laws) and article (e.g. 제38조, empty = all) are already fully documented in structured fields. The description's restatement of the empty-article behavior adds only the nuance that the scope is *tracked* articles, a marginal gain over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: retrieves the raw text of one statute's articles (조·항·호) together with amendment tags, ballot-box compliance notes, and related agenda types. This is clearly distinct from list_laws, which the schema names as the enumeration source. It stops short of an explicit sibling comparison in the description itself, but the resource is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage guidance is the conditional 'article 을 비우면 추적 조문 전부' — it explains how to get everything at once, which is useful. There is no statement of when to reach for this versus law_changelog or list_laws, and no prerequisites or exclusions. Usage is implied rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

judge_resolution정족수 판정A
Read-onlyIdempotent
Inspect

표 수와 의결권을 넣어 가결·부결을 판정한다. 투표함이 개표에 쓰는 함수 그대로. 집합건물은 구분소유자 수와 의결권(면적)을 모두 넣어야 두 요건이 판정된다. 아무것도 바꾸지 않는 계산이다.

NameRequiredDescriptionDefault
presetYes안건 유형 키. 예: "bldg_general"
castWeightNo출석 의결권 합(㎡). 집합건물만. 예: 30800
approveCountNo찬성 인원. 예: 323
approveWeightNo찬성 의결권 합(㎡). 집합건물만. 예: 24279.3
attendeeCountNo출석(투표) 인원. 전자+서면+현장. 예: 380
eligibleCountNo재적 인원(구분소유자·조합원 수). 예: 400
eligibleWeightNo재적 의결권 합(면적 ㎡). 집합건물만. 예: 32431.2
directAttendanceCountNo현장 직접 출석 인원. 정비사업(redev_*)의 10분의 1 요건에 쓴다. 예: 45

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the line '아무것도 바꾸지 않는 계산이다' largely repeats that. It does add useful context that the result mirrors the official tally logic, but says nothing about failure behavior, missing/partial inputs, or what the verdict looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and followed by the key domain caveat. Minimal waste; the 'changes nothing' clause is somewhat redundant given annotations but is brief.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with no output schema, the description never indicates what comes back (a boolean verdict, per-requirement breakdown, margin figures). The input side is adequately covered via schema plus the 집합건물 rule, but the return side is a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description adds a genuine cross-parameter rule not in the schema: for 집합건물, both 구분소유자 수 and 의결권(면적) must be supplied for both requirements to be judged. It still omits guidance on the required `preset` key and the redev_* directAttendanceCount case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: it takes vote counts and voting rights and judges pass/fail (가결·부결). The 'same function the ballot box uses at counting' line makes the computation's role concrete, though it does not explicitly distinguish itself from siblings like get_resolution_requirement or list_resolution_types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (call it when you need the verdict), and it gives one real precondition: for 집합건물 you must supply both owner count and voting-right area. But it never says when to use this versus get_resolution_requirement, nor how to choose the required `preset`.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

law_changelog법령 갱신 이력B
Read-onlyIdempotent
Inspect

추적 법령의 시행일·공포일·조문별 개정 꼬리표·투표함 반영 내용과 시행 예정 개정.

NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is handled. The description adds real value by naming the substantive content returned (revision tags, scheduled amendments, ballot reflection), which annotations cannot convey. It stops short of stating scope (all tracked laws vs. a single one, given zero parameters) or ordering/freshness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single short fragment with no filler, which is good, but the terseness comes at the cost of clarity: it is an unpunctuated noun list rather than a leading statement of what the tool does. Front-loading an action verb would have cost no additional length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no parameters, the description is the only source of information about the return payload, and it does list the content categories well. However, it leaves open how results are scoped across tracked laws, whether output is ordered by date, and whether future amendments are separated from past ones — meaningful gaps for a changelog tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters and the schema is trivially complete, so there is nothing for the description to disambiguate. Baseline 4 applies for a zero-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The text is a noun phrase enumerating data categories (effective dates, promulgation dates, per-article revision tags, ballot reflection, upcoming amendments) for tracked laws, so the resource is identifiable but no verb states the operation. An agent can infer it returns amendment history, but must guess whether it lists, summarizes, or computes it, and there is no explicit contrast with get_statute or list_laws.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus get_statute (which presumably returns statute content) or list_laws (which presumably enumerates laws). No preconditions, no exclusions, and no statement of whose tracked laws are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_laws추적 법령 목록A
Read-onlyIdempotent
Inspect

투표함이 추적하는 한국 법령 목록 — 시행일·공포일·대조일·추적 조문·시행 예정 개정. 출처 국가법령정보센터.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a safe, read-only, idempotent operation, so the description does not need to restate safety. It adds useful context by disclosing the field categories included in the returned list and the data source (국가법령정보센터). It does not mention ordering, pagination, or what an empty result means, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence with the core purpose front-loaded, followed by the relevant field categories and source. Every element earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters and rich safety annotations, the main remaining need is to communicate what the list contains, which the description does by naming the field categories. It does not specify the return structure or ordering, but for a simple read-only list this is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics to explain. The baseline for a parameterless tool is 4, and the description does not introduce unnecessary parameter-like details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb-resource pair in Korean: it lists the Korean laws tracked by the voting system. It also names the returned fields (effective date, promulgation date, comparison date, tracked articles, scheduled amendments), making the purpose clear. It does not explicitly distinguish itself from siblings such as get_statute or law_changelog, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives like get_statute, law_changelog, or search. The phrase '투표함이 추적하는' implies the scope is limited to tracked laws, but the description never says to use this list to discover laws before fetching one with get_statute.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_resolution_types안건 유형 목록B
Read-onlyIdempotent
Inspect

단체 유형(집합건물 관리단·아파트·정비사업조합·노동조합·사단법인·협동조합·주택조합·학교법인·학생자치·그 밖)별 안건 유형과 정족수 요약.

NameRequiredDescriptionDefault
groupNo단체 유형 키. 예: "bldg"(집합건물 관리단). 비우면 전부

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that the output is a per-group-type summary of resolution types and quorum, but does not describe return shape, caching, or whether it is static reference data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence with no redundant wording. The key scope, group-type dimension, and output content are all front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only reference-list tool with one optional filter and no output schema, the description gives enough context about what the result contains: resolution types and quorum summaries by group type. It stops short of describing exact return fields or pagination, but the tool's simplicity makes that a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the enum keys and the optional 'group' parameter are already documented. The description adds the full set of group-type labels, but it does not map them to the enum keys or add filtering syntax beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource: agenda/resolution types and quorum summaries grouped by organizational type, and it enumerates the group categories. However, it does not explicitly contrast this reference-list tool with close siblings such as get_resolution_requirement, and the list/summary action is mostly carried by the title rather than the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives. Given the sibling get_resolution_requirement also deals with quorum requirements, the lack of routing guidance leaves the agent to infer the distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_notice소집통지 기록AInspect

소집통지를 한 날짜·방법·대상 수를 기록한다(모든 안건). 기록이 하나 더해진다. manageToken 필요.

NameRequiredDescriptionDefault
noteNo비고(선택). 예: "우편 발송 영수증 보관"
methodYes통지 방법. 예: "등기우편", "문자", "게시판 공고", "이메일"
meetingIdYes집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: "m_8f3kq2"
notifiedOnYes통지한 날짜 YYYY-MM-DD. 예: "2026-11-05"
recipientsNo통지 대상 수. 예: 366
manageTokenYes주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations by disclosing the append semantic ('기록이 하나 더해진다'), which tells the agent that repeat calls accumulate records rather than updating — meaningful context reinforcing idempotentHint=false. It also surfaces the auth requirement (manageToken). It does not say what the response contains (e.g., the new record id).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences with the core action and scope front-loaded, then the side effect, then the precondition. No filler; only '기록이 하나 더해진다' borders on restating the action, but it carries real semantic weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-idempotent mutation with no output schema, the description covers the essential: what is captured, that a record accumulates, and that a manageToken is required. The only gap is the return value (record identifier or confirmation), which matters if the agent must chain calls.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters are already documented with examples. The description only restates the captured fields (date/method/recipient count) and adds no format, validation, or edge-case guidance beyond the schema; the optional 'note' and 'recipients' handling is left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource (기록한다 / 소집통지) plus exactly which fields are captured: date, method, and recipient count, with the scope constraint '(모든 안건)'. It is clearly distinct from siblings like create_draft_meeting or close_meeting, though it does not name them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: it records a notice once one has been sent, and it discloses the prerequisite 'manageToken 필요'. There is no explicit when-not condition or reference to an alternative tool, so an agent must infer the trigger from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_consult맞춤 투표함 상담 신청AInspect

운영자가 대신 개설·집계하는 맞춤 투표함(1인당 300원)을 신청한다. 담당자가 연락한다. 담당자 이름·연락처가 필요하다. 사람에게 연락이 가는 행동이다 — 주최자가 원할 때만.

NameRequiredDescriptionDefault
messageNo요청 내용(2,000자까지). 집회일·안건·명부 상태 등
orgNameYes단체 이름. 예: "트레젠웰가 관리단"
orgTypeNo단체 유형 키(선택). 예: "bldg"
headCountNo투표 예정 인원(선택). 예: 366
contactNameYes담당자 이름. 예: "김기용"
contactEmailNo담당자 이메일(선택). 예: "manager@example.com"
contactPhoneYes담당자 휴대폰(숫자·하이픈). 예: "010-1234-5678"

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the mutation profile (readOnly=false, idempotent=false, destructive=false), so the description is not obliged to repeat safety. It adds genuinely useful context beyond the annotations: a human staff member will contact the submitter, name and phone are mandatory, and there is a 300원/인 cost — all decision-relevant facts an agent cannot infer from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with purpose and price, then the human-contact caution. Minor redundancy between '담당자가 연락한다' and '사람에게 연락이 가는 행동이다', but overall tight and free of filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a non-destructive, non-idempotent write tool with full schema coverage and no output schema, the description covers purpose, cost, required contact data, and the fact that submission triggers human outreach. It stops short of saying what the caller gets back (confirmation, ticket reference) or how long a response takes, which would be the last useful piece.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all seven parameters are already documented with examples in the schema. The description only restates that 담당자 이름 and 연락처 are required, adding no format, validation, or selection guidance beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (신청한다) and a specific resource (운영자가 대신 개설·집계하는 맞춤 투표함) and adds the distinguishing detail that no sibling tool offers (a paid, operator-run ballot service). An agent can tell immediately that this is not a meeting/voting operation like create_draft_meeting or electronic_voting_basis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear selection condition: only when the organizer wants a human follow-up ('주최자가 원할 때만') and only when operator-run setup is desired. It does not explicitly name alternatives among the siblings, but no sibling is a near-substitute for a consultation request, so the guidance is effectively complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_roster명부 올리기A
DestructiveIdempotent
Inspect

선거인 명부(해시)를 모든 안건에 올린다. 이미 있는 명부는 통째로 바뀐다. 원문은 보내지 않는다 — create_draft_meeting 의 hash 규칙과 같다. 첫 표가 들어온 뒤에는 바꿀 수 없다. manageToken 필요.

NameRequiredDescriptionDefault
entriesYes명부 전체(한 사람에 하나). 예: [{"hash":"3fa9…(64자)","weight":84.97}]
meetingIdYes집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: "m_8f3kq2"
manageTokenYes주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive=true and idempotent=true, but the description adds material behavior the agent could not infer: the existing roster is replaced wholesale ('이미 있는 명부는 통째로 바뀐다'), the change locks after the first ballot, raw voter data is never transmitted, and manageToken is mandatory. That is a strong complement to the annotations rather than a restatement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with what the tool does, then the replacement behavior, the privacy rule, the timing lock, and the auth need. No sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter mutation with no output schema, the description covers destruction, auth, privacy and the immutability window well. It stops short of describing the result (e.g. how many entries were accepted) or what happens to duplicate or invalid hashes, which an agent would need if the call fails.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so hash, weight, meetingId and manageToken are already fully documented in the schema; baseline 3 applies. The description adds only a cross-reference that the hash rule matches create_draft_meeting, which is a useful consistency hint but no new detail on weight or entries semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('선거인 명부(해시)를 ... 올린다') plus the scope '모든 안건에', which no sibling covers. An agent immediately knows this writes a voter roster of hashes across all agenda items rather than a single ballot or notice.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives the hard precondition '첫 표가 들어온 뒤에는 바꿀 수 없다' and the auth requirement 'manageToken 필요', which tells the agent when the call must happen. It does not name an alternative tool or explain what to do instead once voting has begun, so routing is left implicit.

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.

  1. 16 tool updates
    • Changedclose_meeting3 fields changed
      • addedInput schema / properties / confirm / description
        Added value: +"주최자의 마감 지시를 받았다는 뜻. 반드시 true"
      • addedInput schema / properties / manageToken / description
        Added value: +"주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다"
      • addedInput schema / properties / meetingId / description
        Added value: +"집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: \"m_8f3kq2\""
    • Changedcreate_draft_meeting17 fields changed
      • addedInput schema / properties / agendas / description
        Added value: +"안건 목록(1~30개). 안건마다 투표가 하나씩 열린다"
      • addedInput schema / properties / agendas / items / properties / description / description
        Added value: +"안건 설명(2,000자까지). 투표 화면에 그대로 보인다"
      • addedInput schema / properties / agendas / items / properties / kind / description
        Added value: +"\"yesno\"(찬반, 기본) 또는 \"choice\"(선택지·후보 중 고름)"
      • changedInput schema / properties / agendas / items / properties / options / description
        Previous value: -"choice 일 때 선택지(후보)"New value: +"kind 가 choice 일 때 선택지(후보) 이름 목록. 예: [\"홍길동\", \"김영희\"]"
      • changedInput schema / properties / agendas / items / properties / preset / description
        Previous value: -"법정 안건 유형 키 (etc 는 생략 가능)"New value: +"법정 안건 유형 키(get_resolution_requirement 의 key). 예: \"bldg_general\". etc 단체는 생략 가능"
      • addedInput schema / properties / agendas / items / properties / title / description
        Added value: +"안건 이름. 예: \"제1호 2026년 관리비 예산안 승인\""
      • changedInput schema / properties / agent / description
        Previous value: -"에이전트 이름 (기록용)"New value: +"에이전트 이름(기록용). 예: \"claude-desktop\""
      • changedInput schema / properties / closesAt / description
        Previous value: -"전자투표 마감 ISO 8601"New value: +"전자투표 마감 시각, ISO 8601(한국 시간 오프셋 포함). 예: \"2026-11-20T18:00:00+09:00\". 집합건물은 paperClosesAt 전날까지"
      • changedInput schema / properties / declaredCount / description
        Previous value: -"투표할 수 있는 사람 수(구분소유자 수 등)"New value: +"투표할 수 있는 사람 수(구분소유자·조합원 수). 요금과 정족수의 기준. 예: 366"
      • addedInput schema / properties / isAnonymous / description
        Added value: +"익명(비밀) 투표 여부. 기본 true. 법이 비밀투표를 요구하는 안건은 true 로 고정된다"
      • addedInput schema / properties / orgType / description
        Added value: +"단체 유형 키. 예: \"bldg\"(집합건물 관리단), \"redev\"(정비사업조합), \"apt\"(입주자대표회의)"
      • changedInput schema / properties / paperClosesAt / description
        Previous value: -"현장·서면 접수 마감(집회일) ISO 8601. 집합건물은 closesAt 다음 날 이후"New value: +"현장·서면 접수 마감(집회일) ISO 8601. 예: \"2026-11-21T14:00:00+09:00\". 집합건물은 closesAt 다음 날 이후"
      • addedInput schema / properties / roster / description
        Added value: +"선거인 명부(선택). 해시만 보낸다. 없으면 주최자가 대시보드에서 엑셀로 올린다"
      • addedInput schema / properties / roster / items / properties / hash / description
        Added value: +"sha256(\"voter:\" + 이름 + \"|\" + 생년월일 YYYYMMDD + \"|\" + 휴대폰 숫자만) 의 16진수 64자. 원문은 보내지 않는다"
      • addedInput schema / properties / roster / items / properties / weight / description
        Added value: +"의결권(면적 ㎡). 집합건물처럼 면적 의결권이 있을 때만. 예: 84.97"
      • addedInput schema / properties / title / description
        Added value: +"집회 이름. 예: \"트레젠웰가 2026년 정기 관리단집회\""
      • changedInput schema / properties / useWeighted / description
        Previous value: -"etc 만 고른다. 법정 안건은 법이 정한다"New value: +"면적 의결권 사용 여부. etc 단체만 고른다 — 법정 안건은 법이 정한다"
    • Changedelectronic_voting_basis1 field changed
      • addedInput schema / properties / key / description
        Added value: +"안건 유형 키. 예: \"coop_bylaw\", \"stock_ordinary\""
    • Changedenter_paper_ballots7 fields changed
      • addedInput schema / properties / evidenceImageDataUrl / description
        Added value: +"서면결의서 묶음 사진, data:image/jpeg;base64,… 형식(필수). 해시가 체인에 남는다"
      • addedInput schema / properties / manageToken / description
        Added value: +"주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다"
      • addedInput schema / properties / meetingId / description
        Added value: +"집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: \"m_8f3kq2\""
      • addedInput schema / properties / note / description
        Added value: +"비고(선택). 예: \"11월 21일 현장 접수분\""
      • addedInput schema / properties / voters / description
        Added value: +"서면 투표자 목록. 예: [{\"hash\":\"3fa9…\",\"choices\":{\"p_1\":\"o_yes\",\"p_2\":\"o_no\"}}]"
      • addedInput schema / properties / voters / items / properties / choices / description
        Added value: +"안건 id → 선택지 id. 안건·선택지 id 는 get_dashboard 에 있다. 예: {\"p_1\":\"o_yes\"}"
      • addedInput schema / properties / voters / items / properties / hash / description
        Added value: +"명부 해시(create_draft_meeting 의 hash 규칙, 64자 16진수)"
    • Changedget_dashboard2 fields changed
      • addedInput schema / properties / manageToken / description
        Added value: +"주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다"
      • addedInput schema / properties / meetingId / description
        Added value: +"집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: \"m_8f3kq2\""
    • Changedget_draft_status2 fields changed
      • addedInput schema / properties / draftId / description
        Added value: +"create_draft_meeting 응답의 draftId. 예: \"d_7q2m9x\""
      • addedInput schema / properties / token / description
        Added value: +"확인 전에는 create_draft_meeting 응답의 confirmToken, 주최자가 확인한 뒤에는 주최자가 넘겨준 manageToken"
    • Changedget_quote1 field changed
      • addedInput schema / properties / people / description
        Added value: +"투표할 수 있는 사람 수. 예: 366"
    • Changedget_report2 fields changed
      • addedInput schema / properties / manageToken / description
        Added value: +"주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다"
      • addedInput schema / properties / meetingId / description
        Added value: +"집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: \"m_8f3kq2\""
    • Changedget_resolution_requirement1 field changed
      • changedInput schema / properties / key / description
        Previous value: -"예: bldg_general, bldg_bylaw, redev_general, apt_rep_multi"New value: +"안건 유형 키(list_resolution_types 의 key). 예: \"bldg_general\", \"bldg_bylaw\", \"redev_general\", \"apt_rep_multi\""
    • Changedget_statute2 fields changed
      • addedInput schema / properties / article / description
        Added value: +"조 번호. 예: \"제38조\". 비우면 그 법령의 추적 조문 전부"
      • addedInput schema / properties / law / description
        Added value: +"법령 이름 또는 slug. 예: \"집합건물의 소유 및 관리에 관한 법률\" 또는 \"condominium\" (목록은 list_laws)"
    • Changedjudge_resolution8 fields changed
      • changedInput schema / properties / approveCount / description
        Previous value: -"찬성 인원"New value: +"찬성 인원. 예: 323"
      • addedInput schema / properties / approveWeight / description
        Added value: +"찬성 의결권 합(㎡). 집합건물만. 예: 24279.3"
      • changedInput schema / properties / attendeeCount / description
        Previous value: -"출석(투표) 인원"New value: +"출석(투표) 인원. 전자+서면+현장. 예: 380"
      • addedInput schema / properties / castWeight / description
        Added value: +"출석 의결권 합(㎡). 집합건물만. 예: 30800"
      • changedInput schema / properties / directAttendanceCount / description
        Previous value: -"직접 출석 인원(정비사업)"New value: +"현장 직접 출석 인원. 정비사업(redev_*)의 10분의 1 요건에 쓴다. 예: 45"
      • changedInput schema / properties / eligibleCount / description
        Previous value: -"재적 인원"New value: +"재적 인원(구분소유자·조합원 수). 예: 400"
      • changedInput schema / properties / eligibleWeight / description
        Previous value: -"재적 의결권 합"New value: +"재적 의결권 합(면적 ㎡). 집합건물만. 예: 32431.2"
      • addedInput schema / properties / preset / description
        Added value: +"안건 유형 키. 예: \"bldg_general\""
    • Changedlist_resolution_types2 fields changed
      • changedInput schema / properties / group / description
        Previous value: -"단체 유형 키 (bldg, apt, redev, union, assoc, coop, housing, school, student, etc). 비우면 전부"New value: +"단체 유형 키. 예: \"bldg\"(집합건물 관리단). 비우면 전부"
      • addedInput schema / properties / group / enum
        Added value: +[
        +  "bldg",
        +  "apt",
        +  "redev",
        +  "union",
        +  "assoc",
        +  "coop",
        +  "housing",
        +  "school",
        +  "student",
        +  "etc"
        +]
    • Changedrecord_notice6 fields changed
      • addedInput schema / properties / manageToken / description
        Added value: +"주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다"
      • addedInput schema / properties / meetingId / description
        Added value: +"집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: \"m_8f3kq2\""
      • addedInput schema / properties / method / description
        Added value: +"통지 방법. 예: \"등기우편\", \"문자\", \"게시판 공고\", \"이메일\""
      • addedInput schema / properties / note / description
        Added value: +"비고(선택). 예: \"우편 발송 영수증 보관\""
      • changedInput schema / properties / notifiedOn / description
        Previous value: -"YYYY-MM-DD"New value: +"통지한 날짜 YYYY-MM-DD. 예: \"2026-11-05\""
      • addedInput schema / properties / recipients / description
        Added value: +"통지 대상 수. 예: 366"
    • Changedrequest_consult7 fields changed
      • addedInput schema / properties / contactEmail / description
        Added value: +"담당자 이메일(선택). 예: \"manager@example.com\""
      • addedInput schema / properties / contactName / description
        Added value: +"담당자 이름. 예: \"김기용\""
      • addedInput schema / properties / contactPhone / description
        Added value: +"담당자 휴대폰(숫자·하이픈). 예: \"010-1234-5678\""
      • addedInput schema / properties / headCount / description
        Added value: +"투표 예정 인원(선택). 예: 366"
      • addedInput schema / properties / message / description
        Added value: +"요청 내용(2,000자까지). 집회일·안건·명부 상태 등"
      • addedInput schema / properties / orgName / description
        Added value: +"단체 이름. 예: \"트레젠웰가 관리단\""
      • addedInput schema / properties / orgType / description
        Added value: +"단체 유형 키(선택). 예: \"bldg\""
    • Changedsearch1 field changed
      • addedInput schema / properties / query / description
        Added value: +"한국어 검색어. 예: \"관리규약 개정\", \"재건축 총회 정족수\", \"집합건물법\""
    • Changedupload_roster5 fields changed
      • addedInput schema / properties / entries / description
        Added value: +"명부 전체(한 사람에 하나). 예: [{\"hash\":\"3fa9…(64자)\",\"weight\":84.97}]"
      • addedInput schema / properties / entries / items / properties / hash / description
        Added value: +"sha256(\"voter:\" + 이름 + \"|\" + 생년월일 YYYYMMDD + \"|\" + 휴대폰 숫자만) 의 16진수 64자. 원문은 보내지 않는다"
      • addedInput schema / properties / entries / items / properties / weight / description
        Added value: +"의결권(면적 ㎡). 집합건물처럼 면적 의결권이 있을 때만. 예: 84.97"
      • addedInput schema / properties / manageToken / description
        Added value: +"주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다"
      • addedInput schema / properties / meetingId / description
        Added value: +"집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: \"m_8f3kq2\""
  2. 18 tool updates
    • First observedclose_meeting
    • First observedcreate_draft_meeting
    • First observedelectronic_voting_basis
    • First observedenter_paper_ballots
    • First observedget_dashboard
    • First observedget_draft_status
    • First observedget_quote
    • First observedget_report
    • First observedget_resolution_requirement
    • First observedget_statute
    • First observedjudge_resolution
    • First observedlaw_changelog
    • First observedlist_laws
    • First observedlist_resolution_types
    • First observedrecord_notice
    • First observedrequest_consult
    • First observedsearch
    • First observedupload_roster

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 17 tools for accessing Korean statutes, precedents, and administrative rules via the National Law Information Center API, with LLM hallucination prevention, citation verification, impact graphs, and time-travel diff.
    8,867 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search, retrieve, and analyze South Korean legal documents including statutes, precedents, constitutional decisions, and administrative rulings via the Ministry of Government Legislation Open API. Provides 89 specialized tools with features like legal abbreviation auto-recognition, annex extraction, and complex research chain workflows.
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI assistants and terminals to retrieve and cross-reference Korean legal sources through 10 tools built on 42 Ministry of Government Legislation APIs, covering statutes, precedents, administrative rules, ordinances, treaties, and interpretations. Adds hallucination-resistant citation verification, article impact graphs, point-in-time diffing of in-force versions, case citator checks, and applicable-law-at-the-time analysis.
    10
    8,867 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Integrates 132 tools from the Korean Ministry of Legislation OPEN API to provide comprehensive access to Korean legal documents, including statutes, precedents, treaties, administrative rules, and local ordinances.
    8
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources