{"id":1234587,"recorded_at":"2026-10-30T08:21:13.498704Z","observed_at":"2026-10-30T08:21:13.498640Z","subject_kind":"endpoint","subject":"5e29bfe3-044e-4dca-a2c4-2b92028a50c7","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":18,"tools":[{"description":"모든 안건을 지금 마감하고 결과를 확정한다. 되돌릴 수 없다. 공고한 마감보다 일찍 닫으면 결의가 다투어질 수 있다 — 주최자가 지시한 경우에만. manageToken 필요.","inputSchema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"description":"주최자의 마감 지시를 받았다는 뜻. 반드시 true","type":"boolean"},"manageToken":{"description":"주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다","type":"string"},"meetingId":{"description":"집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: \"m_8f3kq2\"","type":"string"}},"required":["meetingId","manageToken","confirm"],"type":"object"},"name":"close_meeting"},{"description":"집회 초안을 만든다. 초안은 \"확인 대기\" 상태라 아무것도 열리지 않고 돈도 들지 않는다 — 돌려받은 confirmUrl 을 주최자(관리인)에게 전달하면 주최자가 내용을 검토하고 체크한 뒤 휴대폰 본인인증·결제를 해야 투표가 열린다. 관리 토큰은 주최자가 받으며, 운영을 맡길지는 주최자가 정한다. 집합건물(bldg)은 agendas[].preset 에 bldg_general / bldg_bylaw / bldg_common_change 등 법정 유형을 넣고, closesAt(전자투표 마감)은 paperClosesAt(집회일) 전날까지여야 한다. roster 는 선택이며 넣을 때는 서버에 원문을 보내지 않는다: 각 사람의 hash = sha256(\"voter:\" + 이름 + \"|\" + 생년월일(YYYYMMDD) + \"|\" + 휴대폰(숫자만)) 의 16진수, 면적 의결권이면 weight(㎡). 없으면 주최자가 대시보드에서 엑셀로 올린다.","inputSchema":{"additionalProperties":false,"properties":{"agendas":{"description":"안건 목록(1~30개). 안건마다 투표가 하나씩 열린다","items":{"properties":{"description":{"description":"안건 설명(2,000자까지). 투표 화면에 그대로 보인다","maxLength":2000,"type":"string"},"kind":{"description":"\"yesno\"(찬반, 기본) 또는 \"choice\"(선택지·후보 중 고름)","enum":["yesno","choice"],"type":"string"},"options":{"description":"kind 가 choice 일 때 선택지(후보) 이름 목록. 예: [\"홍길동\", \"김영희\"]","items":{"type":"string"},"type":"array"},"preset":{"description":"법정 안건 유형 키(get_resolution_requirement 의 key). 예: \"bldg_general\". etc 단체는 생략 가능","type":"string"},"title":{"description":"안건 이름. 예: \"제1호 2026년 관리비 예산안 승인\"","type":"string"}},"required":["title"],"type":"object"},"maxItems":30,"minItems":1,"type":"array"},"agent":{"description":"에이전트 이름(기록용). 예: \"claude-desktop\"","type":"string"},"closesAt":{"description":"전자투표 마감 시각, ISO 8601(한국 시간 오프셋 포함). 예: \"2026-11-20T18:00:00+09:00\". 집합건물은 paperClosesAt 전날까지","type":"string"},"declaredCount":{"description":"투표할 수 있는 사람 수(구분소유자·조합원 수). 요금과 정족수의 기준. 예: 366","minimum":1,"type":"integer"},"isAnonymous":{"default":true,"description":"익명(비밀) 투표 여부. 기본 true. 법이 비밀투표를 요구하는 안건은 true 로 고정된다","type":"boolean"},"orgType":{"description":"단체 유형 키. 예: \"bldg\"(집합건물 관리단), \"redev\"(정비사업조합), \"apt\"(입주자대표회의)","enum":["bldg","apt","redev","union","assoc","coop","housing","school","student","etc"],"type":"string"},"paperClosesAt":{"description":"현장·서면 접수 마감(집회일) ISO 8601. 예: \"2026-11-21T14:00:00+09:00\". 집합건물은 closesAt 다음 날 이후","type":"string"},"roster":{"description":"선거인 명부(선택). 해시만 보낸다. 없으면 주최자가 대시보드에서 엑셀로 올린다","items":{"properties":{"hash":{"description":"sha256(\"voter:\" + 이름 + \"|\" + 생년월일 YYYYMMDD + \"|\" + 휴대폰 숫자만) 의 16진수 64자. 원문은 보내지 않는다","type":"string"},"weight":{"description":"의결권(면적 ㎡). 집합건물처럼 면적 의결권이 있을 때만. 예: 84.97","type":"number"}},"required":["hash"],"type":"object"},"type":"array"},"title":{"description":"집회 이름. 예: \"트레젠웰가 2026년 정기 관리단집회\"","maxLength":200,"type":"string"},"useWeighted":{"description":"면적 의결권 사용 여부. etc 단체만 고른다 — 법정 안건은 법이 정한다","type":"boolean"}},"required":["orgType","title","declaredCount","agendas","closesAt"],"type":"object"},"name":"create_draft_meeting"},{"description":"이 안건을 전자투표로 할 수 있는가 — 법이 직접 허용 / 규약·정관 근거 필요 / 불가(전자서명 요구 등) — 와 그 근거 조문.","inputSchema":{"additionalProperties":false,"properties":{"key":{"description":"안건 유형 키. 예: \"coop_bylaw\", \"stock_ordinary\"","type":"string"}},"required":["key"],"type":"object"},"name":"electronic_voting_basis"},{"description":"서면결의서(현장 표)를 입력한다. 한 사람 = 명부 해시 + 안건별 선택지 id. 증빙 사진(data:image/… URL)이 반드시 필요하다. 전자투표한 사람이 섞이면 묶음 전체가 거절된다. 표가 더해지는 행동이다. manageToken 필요.","inputSchema":{"additionalProperties":false,"properties":{"evidenceImageDataUrl":{"description":"서면결의서 묶음 사진, data:image/jpeg;base64,… 형식(필수). 해시가 체인에 남는다","type":"string"},"manageToken":{"description":"주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다","type":"string"},"meetingId":{"description":"집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: \"m_8f3kq2\"","type":"string"},"note":{"description":"비고(선택). 예: \"11월 21일 현장 접수분\"","type":"string"},"voters":{"description":"서면 투표자 목록. 예: [{\"hash\":\"3fa9…\",\"choices\":{\"p_1\":\"o_yes\",\"p_2\":\"o_no\"}}]","items":{"properties":{"choices":{"additionalProperties":{"type":"string"},"description":"안건 id → 선택지 id. 안건·선택지 id 는 get_dashboard 에 있다. 예: {\"p_1\":\"o_yes\"}","type":"object"},"hash":{"description":"명부 해시(create_draft_meeting 의 hash 규칙, 64자 16진수)","type":"string"}},"required":["hash","choices"],"type":"object"},"type":"array"}},"required":["meetingId","manageToken","voters","evidenceImageDataUrl"],"type":"object"},"name":"enter_paper_ballots"},{"description":"집회의 결제 상태·안건별 집계·명부 현황. manageToken 필요.","inputSchema":{"additionalProperties":false,"properties":{"manageToken":{"description":"주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다","type":"string"},"meetingId":{"description":"집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: \"m_8f3kq2\"","type":"string"}},"required":["meetingId","manageToken"],"type":"object"},"name":"get_dashboard"},{"description":"초안이 확인됐는지, 결제됐는지, 투표가 열렸는지 본다. 확인 전에는 confirmToken, 확인 뒤에는 주최자가 넘겨준 manageToken 을 token 에 넣는다.","inputSchema":{"additionalProperties":false,"properties":{"draftId":{"description":"create_draft_meeting 응답의 draftId. 예: \"d_7q2m9x\"","type":"string"},"token":{"description":"확인 전에는 create_draft_meeting 응답의 confirmToken, 주최자가 확인한 뒤에는 주최자가 넘겨준 manageToken","type":"string"}},"required":["draftId","token"],"type":"object"},"name":"get_draft_status"},{"description":"투표 인원으로 세 갈래(AI 투표함·직접 투표함·맞춤 투표함) 요금을 계산한다. 부가세 포함 금액. 아무것도 바꾸지 않는다.","inputSchema":{"additionalProperties":false,"properties":{"people":{"description":"투표할 수 있는 사람 수. 예: 366","minimum":1,"type":"integer"}},"required":["people"],"type":"object"},"name":"get_quote"},{"description":"집회 전체 결과보고서(안건별 표수·의결권·판정·근거·검증값). 마감 전에는 봉인(sealed). manageToken 필요.","inputSchema":{"additionalProperties":false,"properties":{"manageToken":{"description":"주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다","type":"string"},"meetingId":{"description":"집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: \"m_8f3kq2\"","type":"string"}},"required":["meetingId","manageToken"],"type":"object"},"name":"get_report"},{"description":"안건 유형 하나의 의결정족수(인원·의결권), 근거 조문, 전자투표 가능 여부와 근거, 소집통지 요건, 본인확인 등급, 명부 필요 여부, 주의사항.","inputSchema":{"additionalProperties":false,"properties":{"key":{"description":"안건 유형 키(list_resolution_types 의 key). 예: \"bldg_general\", \"bldg_bylaw\", \"redev_general\", \"apt_rep_multi\"","type":"string"}},"required":["key"],"type":"object"},"name":"get_resolution_requirement"},{"description":"법령 하나의 조문 원문(조·항·호)과 개정 꼬리표, 투표함이 그 조문을 어떻게 지키는지(적용 내용), 관련 안건 유형. article 을 비우면 추적 조문 전부.","inputSchema":{"additionalProperties":false,"properties":{"article":{"description":"조 번호. 예: \"제38조\". 비우면 그 법령의 추적 조문 전부","type":"string"},"law":{"description":"법령 이름 또는 slug. 예: \"집합건물의 소유 및 관리에 관한 법률\" 또는 \"condominium\" (목록은 list_laws)","type":"string"}},"required":["law"],"type":"object"},"name":"get_statute"},{"description":"표 수와 의결권을 넣어 가결·부결을 판정한다. 투표함이 개표에 쓰는 함수 그대로. 집합건물은 구분소유자 수와 의결권(면적)을 모두 넣어야 두 요건이 판정된다. 아무것도 바꾸지 않는 계산이다.","inputSchema":{"additionalProperties":false,"properties":{"approveCount":{"description":"찬성 인원. 예: 323","type":"number"},"approveWeight":{"description":"찬성 의결권 합(㎡). 집합건물만. 예: 24279.3","type":"number"},"attendeeCount":{"description":"출석(투표) 인원. 전자+서면+현장. 예: 380","type":"number"},"castWeight":{"description":"출석 의결권 합(㎡). 집합건물만. 예: 30800","type":"number"},"directAttendanceCount":{"description":"현장 직접 출석 인원. 정비사업(redev_*)의 10분의 1 요건에 쓴다. 예: 45","type":"number"},"eligibleCount":{"description":"재적 인원(구분소유자·조합원 수). 예: 400","type":"number"},"eligibleWeight":{"description":"재적 의결권 합(면적 ㎡). 집합건물만. 예: 32431.2","type":"number"},"preset":{"description":"안건 유형 키. 예: \"bldg_general\"","type":"string"}},"required":["preset"],"type":"object"},"name":"judge_resolution"},{"description":"추적 법령의 시행일·공포일·조문별 개정 꼬리표·투표함 반영 내용과 시행 예정 개정.","inputSchema":{"additionalProperties":false,"properties":{},"type":"object"},"name":"law_changelog"},{"description":"투표함이 추적하는 한국 법령 목록 — 시행일·공포일·대조일·추적 조문·시행 예정 개정. 출처 국가법령정보센터.","inputSchema":{"additionalProperties":false,"properties":{},"type":"object"},"name":"list_laws"},{"description":"단체 유형(집합건물 관리단·아파트·정비사업조합·노동조합·사단법인·협동조합·주택조합·학교법인·학생자치·그 밖)별 안건 유형과 정족수 요약.","inputSchema":{"additionalProperties":false,"properties":{"group":{"description":"단체 유형 키. 예: \"bldg\"(집합건물 관리단). 비우면 전부","enum":["bldg","apt","redev","union","assoc","coop","housing","school","student","etc"],"type":"string"}},"type":"object"},"name":"list_resolution_types"},{"description":"소집통지를 한 날짜·방법·대상 수를 기록한다(모든 안건). 기록이 하나 더해진다. manageToken 필요.","inputSchema":{"additionalProperties":false,"properties":{"manageToken":{"description":"주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다","type":"string"},"meetingId":{"description":"집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: \"m_8f3kq2\"","type":"string"},"method":{"description":"통지 방법. 예: \"등기우편\", \"문자\", \"게시판 공고\", \"이메일\"","type":"string"},"note":{"description":"비고(선택). 예: \"우편 발송 영수증 보관\"","type":"string"},"notifiedOn":{"description":"통지한 날짜 YYYY-MM-DD. 예: \"2026-11-05\"","type":"string"},"recipients":{"description":"통지 대상 수. 예: 366","type":"integer"}},"required":["meetingId","manageToken","notifiedOn","method"],"type":"object"},"name":"record_notice"},{"description":"운영자가 대신 개설·집계하는 맞춤 투표함(1인당 300원)을 신청한다. 담당자가 연락한다. 담당자 이름·연락처가 필요하다. 사람에게 연락이 가는 행동이다 — 주최자가 원할 때만.","inputSchema":{"additionalProperties":false,"properties":{"contactEmail":{"description":"담당자 이메일(선택). 예: \"manager@example.com\"","type":"string"},"contactName":{"description":"담당자 이름. 예: \"김기용\"","type":"string"},"contactPhone":{"description":"담당자 휴대폰(숫자·하이픈). 예: \"010-1234-5678\"","type":"string"},"headCount":{"description":"투표 예정 인원(선택). 예: 366","type":"integer"},"message":{"description":"요청 내용(2,000자까지). 집회일·안건·명부 상태 등","maxLength":2000,"type":"string"},"orgName":{"description":"단체 이름. 예: \"트레젠웰가 관리단\"","type":"string"},"orgType":{"description":"단체 유형 키(선택). 예: \"bldg\"","type":"string"}},"required":["orgName","contactName","contactPhone"],"type":"object"},"name":"request_consult"},{"description":"질문·안건 이름·법령 이름으로 안건 유형과 법령을 찾는다.","inputSchema":{"additionalProperties":false,"properties":{"query":{"description":"한국어 검색어. 예: \"관리규약 개정\", \"재건축 총회 정족수\", \"집합건물법\"","type":"string"}},"required":["query"],"type":"object"},"name":"search"},{"description":"선거인 명부(해시)를 모든 안건에 올린다. 이미 있는 명부는 통째로 바뀐다. 원문은 보내지 않는다 — create_draft_meeting 의 hash 규칙과 같다. 첫 표가 들어온 뒤에는 바꿀 수 없다. manageToken 필요.","inputSchema":{"additionalProperties":false,"properties":{"entries":{"description":"명부 전체(한 사람에 하나). 예: [{\"hash\":\"3fa9…(64자)\",\"weight\":84.97}]","items":{"properties":{"hash":{"description":"sha256(\"voter:\" + 이름 + \"|\" + 생년월일 YYYYMMDD + \"|\" + 휴대폰 숫자만) 의 16진수 64자. 원문은 보내지 않는다","type":"string"},"weight":{"description":"의결권(면적 ㎡). 집합건물처럼 면적 의결권이 있을 때만. 예: 84.97","type":"number"}},"required":["hash"],"type":"object"},"type":"array"},"manageToken":{"description":"주최자가 넘겨준 관리 토큰(영숫자). 대시보드 주소의 # 뒤 값. 주최자가 확인·결제한 뒤에만 생긴다","type":"string"},"meetingId":{"description":"집회 번호. create_draft_meeting 응답의 meetingId 또는 대시보드 주소의 m= 값. 예: \"m_8f3kq2\"","type":"string"}},"required":["meetingId","manageToken","entries"],"type":"object"},"name":"upload_roster"}]},"body_sha256":"50671fba6259415533abdca9a59d8215ec59e076b45e9b41008fa9c0f51ab659","prev_id":1052418,"leaf":"0x37ce1331fc4b2f3a3216c9114f617657351fdbd41670505f95cec092d5af9616","leaf_text":"{\"body\":\"50671fba6259415533abdca9a59d8215ec59e076b45e9b41008fa9c0f51ab659\",\"id\":1234587,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793348473498640,\"prev\":1052418,\"subject\":\"5e29bfe3-044e-4dca-a2c4-2b92028a50c7\",\"subject_kind\":\"endpoint\"}","day":null,"proof":[]}