{"schema_version":"ai-tools.registry.v1","service":{"name":"인플스 AI","name_for_model":"infls","description":"ChatGPT·Claude 안에서 한국 인플루언서를 검색·컨택하고, 계약·정산·분쟁 중재까지 이어주는 AI 인플루언서 거래 플랫폼입니다.","version":"v1","updated_at":"2026-06-10","canonical_url":"https://infls.ai","docs_url":"https://infls.ai/ai","ai_docs_url":"https://infls.ai/docs/ai","mcp_docs_url":"https://infls.ai/docs/mcp","mcp_server_url":"https://infls.ai/api/mcp","openapi_url":"https://infls.ai/openapi.json","tool_registry_url":"https://infls.ai/ai/tools"},"registry_version":"v1","transport":"mcp-streamable-http","mcp_server":"https://infls.ai/api/mcp","auth":{"type":"oauth","authorization_server":"https://infls.ai/.well-known/oauth-authorization-server","scopes_supported":["search","outreach:read","outreach:write","contracts:read","contracts:write","escrow:write","notifications:read","brand:read","campaigns:write","manager:call"]},"authoritative_schema_source":"POST /api/mcp method=tools/list","tools":[{"name":"search_influencers","description":"Search Korean influencers by category, platform, follower count, audience demographics. Returns a ranked list with match scores (0-100).","permission":"public","category":"search","version":"v1","status":"available","input_schema":{"type":"object","properties":{"category":{"type":"string","enum":["beauty","fashion","food","lifestyle","tech","fitness","travel","parenting","gaming","education","living","finance"],"description":"Content category to filter by"},"platform":{"type":"string","enum":["instagram","youtube","tiktok","naver","kakao"],"description":"Primary platform of the influencer"},"min_followers":{"type":"number","description":"Minimum follower count"},"max_followers":{"type":"number","description":"Maximum follower count"},"min_engagement":{"type":"number","description":"Minimum engagement rate (0-1). 0.04 = 4%"},"target_gender":{"type":"string","enum":["female","male"],"description":"Audience gender skew to optimize match score for"},"region":{"type":"string","description":"인플루언서 활동 지역 (오프라인 방문 매칭) e.g. '서울','제주'"},"tags":{"type":"array","items":{"type":"string"},"description":"검색 태그 (하나라도 매칭되면 포함)"},"sub_topic":{"type":"string","description":"세부 주제 필터"},"accepts_offline":{"type":"boolean","description":"오프라인 방문 가능한 인플만"},"query":{"type":"string","description":"Text search by display name"},"limit":{"type":"number","default":10,"description":"Number of results to return (max 30)"}}},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_influencers","arguments":{"category":"beauty","platform":"instagram","min_followers":10000,"limit":10}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"get_influencer_detail","description":"Get full details of one influencer by ID. Includes audience demographics, pricing estimates per content type, and match breakdown.","permission":"public","category":"search","version":"v1","status":"available","input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Influencer ID (UUID)"}},"required":["id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_influencer_detail","arguments":{"id":"influencer_id"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"compare_influencers","description":"Compare 2-10 influencers side by side. Returns match scores, audience overlap, pricing comparison, and a winner recommendation.","permission":"public","category":"search","version":"v1","status":"available","input_schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"minItems":2,"maxItems":10},"context":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"string"}},"target_gender":{"type":"string","enum":["female","male"]},"target_age_ranges":{"type":"array","items":{"type":"string"},"description":"e.g. ['25-34','35-44']"}}}},"required":["ids"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"compare_influencers","arguments":{"ids":["influencer_id_1","influencer_id_2"]}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"get_pricing_intelligence","description":"Get market-rate pricing analysis for an influencer across content types (Instagram feed/reel/story, YouTube integrated/shorts, TikTok, Naver blog). Returns midpoint, min, max, and market baseline.","permission":"public","category":"search","version":"v1","status":"available","input_schema":{"type":"object","properties":{"id":{"type":"string"},"content_type":{"type":"string","enum":["instagram_feed","instagram_reel","instagram_story","youtube_integrated","youtube_shorts","tiktok","naver_blog"],"description":"Specific content type. If omitted, returns all types."}},"required":["id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_pricing_intelligence","arguments":{"id":"influencer_id","content_type":"instagram_reel"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"create_campaign","description":"ACTION: Create a campaign for the authenticated brand. Set recruiting=true to open it for influencer applications immediately (레뷰식 공개 모집 — status becomes active, influencers can apply via apply_to_campaign). Requires brand auth. Per 규칙5: confirm budget/deliverables/target audience and public-visibility flags with the user before calling.","permission":"campaigns:write","category":"campaign","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"name":{"type":"string","description":"캠페인 이름"},"brief":{"type":"string","description":"캠페인 개요/요구 설명"},"total_budget":{"type":"number","description":"총 예산(원)"},"target_audience":{"type":"object","properties":{"categories":{"type":"array","items":{"type":"string"}},"age_range":{"type":"array","items":{"type":"number"},"description":"[최소나이, 최대나이]"},"gender":{"type":"string","enum":["male","female","any"]},"regions":{"type":"array","items":{"type":"string"}},"min_followers":{"type":"number"},"max_followers":{"type":"number"}}},"deliverables_required":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"count":{"type":"number"}},"required":["type","count"]}},"industry":{"type":"string"},"product_type":{"type":"string"},"region_target":{"type":"string","description":"오프라인 방문 지역(있으면)"},"link_url":{"type":"string"},"requirements":{"type":"object","properties":{"mustInclude":{"type":"array","items":{"type":"string"}},"mustNotInclude":{"type":"array","items":{"type":"string"}},"postingWindow":{"type":"string"},"usageRights":{"type":"string"},"notes":{"type":"string"}}},"recruiting":{"type":"boolean","description":"true면 즉시 공개 모집(active). 생략/false면 draft."},"recruit_slots":{"type":"number","description":"모집 인원(선택)"},"brand_name_public":{"type":"boolean"},"assets_public":{"type":"boolean"},"link_public":{"type":"boolean"}},"required":["name"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"create_campaign","arguments":{"name":"신제품 런칭","brief":"30대 여성 타깃","total_budget":3000000}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"list_open_campaigns","description":"List campaigns currently open for influencer applications (레뷰식 공개 모집). Brand identity is masked unless made public. Public — creators use it to find campaigns to apply to via apply_to_campaign.","permission":"public","category":"campaign","version":"v1","status":"available","input_schema":{"type":"object","properties":{"category":{"type":"string","description":"카테고리 필터(선택)"},"region":{"type":"string","description":"지역 필터(선택)"}}},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_open_campaigns","arguments":{"category":"food","limit":10}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"apply_to_campaign","description":"ACTION (creator): Apply to an open campaign on behalf of the authenticated creator. Idempotent — re-applying returns the existing application. Requires creator auth + a linked influencer profile.","permission":"authenticated:user","category":"campaign","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"campaign_id":{"type":"string"},"pitch":{"type":"string","description":"지원 한마디(선택)"},"proposed_price":{"type":"number","description":"희망 단가(원, 선택)"}},"required":["campaign_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"apply_to_campaign","arguments":{"campaign_id":"campaign_id","pitch":"콘텐츠 방향 제안"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"list_campaign_applicants","description":"ACTION (brand): List influencers who applied to one of your campaigns, with pitch and proposed price. Requires brand auth (own campaign only).","permission":"brand:read","category":"campaign","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"campaign_id":{"type":"string"}},"required":["campaign_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_campaign_applicants","arguments":{"campaign_id":"campaign_id"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"accept_application","description":"ACTION (brand): Accept an influencer's campaign application. Promotes it to an accepted outreach so you can proceed with create_contract. Requires brand auth (own campaign only).","permission":"outreach:write","category":"campaign","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"application_id":{"type":"string"}},"required":["application_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"accept_application","arguments":{"application_id":"application_id"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"call_manager","description":"ACTION (brand): Call a dedicated 인플스 AI manager for hands-on human help at any stage. ONLY available to brands with a payment card on file (결제 임박 구매자 자격 게이트). If no card, returns a link to register one. Routes to the brand's assigned manager, or all operators if none. Use when the brand wants a human to help with sourcing/negotiation/contract/delivery/payment/dispute.","permission":"manager:call","category":"support","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"stage":{"type":"string","enum":["sourcing","campaign_setup","negotiation","contract","delivery_review","payment","dispute"],"description":"어느 단계에서 도움이 필요한지"},"campaign_id":{"type":"string"},"outreach_id":{"type":"string"},"contract_id":{"type":"string"},"note":{"type":"string","description":"도움이 필요한 내용"}},"required":["stage"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"call_manager","arguments":{"stage":"negotiation","note":"단가 협상이 막혔습니다."}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"list_my_campaigns","description":"List the current authenticated brand's campaigns. Requires Bearer token authentication. Returns campaigns with status, budget, and progress.","permission":"brand:read","category":"campaign","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"status":{"type":"string","enum":["draft","active","completed","cancelled"]}}},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_my_campaigns","arguments":{"status":"active"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"get_market_trends","description":"Get current Korean influencer marketing trends for a category — average pricing, engagement benchmarks, top creators in the category.","permission":"public","category":"search","version":"v1","status":"available","input_schema":{"type":"object","properties":{"category":{"type":"string","description":"Category to analyze"}},"required":["category"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_market_trends","arguments":{"category":"beauty"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"estimate_campaign_cost","description":"Estimate total cost for a campaign given a list of influencer IDs and the content types you want from each. Returns line-item breakdown, total, platform fee, and creator payouts.","permission":"public","category":"search","version":"v1","status":"available","input_schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"influencer_id":{"type":"string"},"content_type":{"type":"string","enum":["instagram_feed","instagram_reel","instagram_story","youtube_integrated","youtube_shorts","tiktok","naver_blog"]},"count":{"type":"number","default":1}},"required":["influencer_id","content_type"]}}},"required":["items"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"estimate_campaign_cost","arguments":{"items":[{"influencer_id":"influencer_id","content_type":"instagram_reel"}]}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"draft_outreach_messages","description":"Generate preview outreach messages for a list of influencers given a campaign brief. Returns drafts the user can review before sending. The LLM should write the actual message bodies using the brief + influencer context.","permission":"public","category":"outreach","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"campaign_id":{"type":"string"},"influencer_ids":{"type":"array","items":{"type":"string"}},"message_template":{"type":"string","description":"Template with optional {{name}} placeholder. The LLM should write this."}},"required":["campaign_id","influencer_ids","message_template"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"draft_outreach_messages","arguments":{"campaign_id":"campaign_id","influencer_ids":["influencer_id"],"message_template":"협업 제안"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"send_outreach","description":"ACTION: Actually send outreach messages to influencers. Creates outreach rows + initial messages + notifications. Requires brand auth.","permission":"outreach:write","category":"outreach","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"campaign_id":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"influencer_id":{"type":"string"},"message":{"type":"string"}},"required":["influencer_id","message"]}}},"required":["campaign_id","items"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"send_outreach","arguments":{"campaign_id":"campaign_id","items":[{"influencer_id":"influencer_id","message":"안녕하세요."}]}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"list_my_outreach","description":"List your outreach campaigns with current status (brand view) or received offers (creator view). Requires auth.","permission":"outreach:read","category":"outreach","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"status":{"type":"string","enum":["draft","sent","opened","replied","declined","accepted"]}}},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_my_outreach","arguments":{"status":"sent"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"get_outreach_thread","description":"Get the full message thread for an outreach by ID, including all messages and current status. Requires auth.","permission":"outreach:read","category":"outreach","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"outreach_id":{"type":"string"}},"required":["outreach_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_outreach_thread","arguments":{"outreach_id":"outreach_id"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"reply_to_outreach","description":"ACTION: Send a reply message in an outreach thread. Works for both brand and creator sides. Kind can be 'text', 'offer', 'counter_offer', 'accept', or 'decline'.","permission":"outreach:write","category":"outreach","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"outreach_id":{"type":"string"},"body":{"type":"string"},"kind":{"type":"string","enum":["text","offer","counter_offer","accept","decline"],"default":"text"}},"required":["outreach_id","body"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"reply_to_outreach","arguments":{"outreach_id":"outreach_id","body":"조건 확인했습니다."}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"create_contract","description":"ACTION: Create a contract from an accepted outreach. Auto-creates system message in thread. Requires brand auth + outreach must be 'accepted'. ⚠️ 브랜드에게 '재수정을 몇 회까지 포함할지(revision_limit)'를 반드시 물어보고 설정하세요(미입력 시 기본 2회).","permission":"contracts:write","category":"contract","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"outreach_id":{"type":"string"},"agreed_price":{"type":"number","description":"Total in KRW (integer)"},"deliverables":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"count":{"type":"number","default":1},"description":{"type":"string"}},"required":["type"]}},"revision_limit":{"type":"number","description":"계약에 포함된 재수정 허용 횟수(기본 2). 사전 합의 항목이니 브랜드에게 반드시 확인."},"deal_type":{"type":"string","enum":["cash","product","hybrid"],"description":"거래 형태. cash=현금 보수 / product=무상 제품협찬(보수 0) / hybrid=현금+제품. 체험단·협찬이면 product/hybrid 사용, agreed_price엔 현금 보수만(무상이면 0). 어느 형태인지 브랜드에게 확인."},"product_value":{"type":"number","description":"협찬 제품 시가(원). product/hybrid일 때 기록(에스크로 밖, GMV·분쟁 근거)."}},"required":["outreach_id","agreed_price","deliverables"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"create_contract","arguments":{"outreach_id":"outreach_id","agreed_price":1000000,"deliverables":[{"type":"instagram_reel"}]}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"sign_contract","description":"ACTION: Sign a contract. Records signature + staged escrow ledger when both sides signed. Requires auth (brand or creator).","permission":"contracts:write","category":"contract","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"},"signed_name":{"type":"string","description":"Legal name or company name of signer"}},"required":["contract_id","signed_name"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"sign_contract","arguments":{"contract_id":"contract_id","signed_name":"홍길동"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"list_my_contracts","description":"List your contracts (brand or creator side) with status and staged escrow ledger info. Requires auth.","permission":"contracts:read","category":"contract","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"status":{"type":"string","enum":["pending","active","completed","disputed","cancelled"]}}},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_my_contracts","arguments":{"status":"active"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"get_contract_detail","description":"Full contract detail: parties, price split (90/10), deliverables, signatures, escrow ledger. Requires auth.","permission":"contracts:read","category":"contract","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"}},"required":["contract_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_contract_detail","arguments":{"contract_id":"contract_id"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"submit_deliverable","description":"ACTION (creator): Submit a posted content URL as deliverable. Auto-runs compliance check (#광고·platform·brand mention). Requires creator auth.","permission":"contracts:write","category":"contract","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"},"type":{"type":"string"},"url":{"type":"string","description":"Posted content URL"},"caption":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"}},"performance":{"type":"object","description":"Post performance metrics (after it's been live a while)","properties":{"views":{"type":"number"},"likes":{"type":"number"},"comments":{"type":"number"},"saves":{"type":"number"},"clicks":{"type":"number"},"conversions":{"type":"number"}}}},"required":["contract_id","type","url"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"submit_deliverable","arguments":{"contract_id":"contract_id","type":"instagram_reel","url":"https://example.com/post"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"release_escrow_payment","description":"ACTION (brand): Mark staged escrow release on a contract. Records 90% creator / 10% platform fee ledger entries and sets contract to completed. Requires brand auth.","permission":"escrow:write","category":"settlement","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"}},"required":["contract_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"release_escrow_payment","arguments":{"contract_id":"contract_id"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"get_my_notifications","description":"Get the authenticated user's recent notifications (outreach received, contract signed, escrow released, etc.). Requires auth.","permission":"notifications:read","category":"profile","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"unread_only":{"type":"boolean","default":false},"limit":{"type":"number","default":10}}},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_my_notifications","arguments":{"limit":20}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"get_brand_profile","description":"Get the authenticated brand's own profile (company name, past campaigns, preferred categories). Useful for the AI to understand context before drafting messages. Requires brand auth.","permission":"brand:read","category":"profile","version":"v1","status":"beta","input_schema":{"type":"object","properties":{}},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_brand_profile","arguments":{}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"generate_campaign_report","description":"Generate a performance report for a campaign — aggregates all deliverables (reach, engagement, clicks, conversions), spend, estimated ROAS, compliance rate. Brand auth required; pass notify=true to also notify the brand owner.","permission":"brand:read","category":"reporting","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"campaign_id":{"type":"string"},"notify":{"type":"boolean","default":false}},"required":["campaign_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"generate_campaign_report","arguments":{"campaign_id":"campaign_id"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"get_campaign_brief","description":"(Creator) Get the brief for a received offer by outreach_id — privacy-aware: brand name / product photos / URLs stay hidden until a contract is active. Returns industry, requirements, and what's still hidden.","permission":"outreach:read","category":"campaign","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"outreach_id":{"type":"string"}},"required":["outreach_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_campaign_brief","arguments":{"outreach_id":"outreach_id"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"update_my_profile","description":"(Creator) Update your own influencer profile via natural language — bio, location (for offline campaigns), sub-topics, tags, channels, follower count, offline-visit availability, marketing-hidden flag. Requires creator auth.","permission":"authenticated:user","category":"profile","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"bio":{"type":"string"},"location":{"type":"string","description":"활동 지역 e.g. '서울','제주'"},"sub_topics":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"categories":{"type":"array","items":{"type":"string"}},"followers_total":{"type":"number"},"accepts_offline":{"type":"boolean"},"marketing_hidden":{"type":"boolean"},"min_price":{"type":"number"}}},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"update_my_profile","arguments":{"display_name":"브랜드 담당자"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"record_result","description":"(Creator) Record performance numbers for a posted deliverable — views, likes, comments, clicks, conversions. Feeds the campaign report the brand sees. Requires creator auth.","permission":"authenticated:user","category":"reporting","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"},"type":{"type":"string","description":"콘텐츠 타입 e.g. instagram_feed"},"url":{"type":"string"},"views":{"type":"number"},"likes":{"type":"number"},"comments":{"type":"number"},"clicks":{"type":"number"},"conversions":{"type":"number"}},"required":["contract_id","type","url"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"record_result","arguments":{"contract_id":"contract_id","type":"instagram_reel","url":"https://example.com/post","views":10000}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"request_sourcing","description":"(Brand) Ask 인플스 AI to source/recruit influencers for you (concierge). Describe who you want — category, region (offline visits), tags, follower range, count. 인플스 AI operators source candidates and notify you by KakaoTalk when ready. First request free; further requests require a card on file (returns a card_required notice).","permission":"brand:read","category":"search","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"campaign_id":{"type":"string"},"category":{"type":"string"},"region":{"type":"string","description":"오프라인 방문 지역"},"tags":{"type":"array","items":{"type":"string"}},"min_followers":{"type":"number"},"max_followers":{"type":"number"},"count":{"type":"number","description":"원하는 후보 수"},"accepts_offline":{"type":"boolean"},"note":{"type":"string","description":"자유 요청사항"}}},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"request_sourcing","arguments":{"brief":"제주 감귤 농가 공동구매 크리에이터 추천"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"set_marketing_consent","description":"(Creator) Opt in/out of receiving new-offer KakaoTalk alerts, and set the phone number alerts go to. When opted in, you get a KakaoTalk whenever a brand shortlists you.","permission":"authenticated:user","category":"profile","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"consent":{"type":"boolean"},"phone":{"type":"string","description":"카톡 알림 받을 번호"}},"required":["consent"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"set_marketing_consent","arguments":{"consent":true}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"submit_feature_request","description":"ACTION: 사용자가 인플스 AI가 '현재 지원하지 않는' 기능/작업을 요청할 때 호출하세요. 다른 도구로 처리할 수 없는 요청이면 '할 수 없다'고만 답하지 말고, 반드시 이 도구로 사용자의 요청을 원문 그대로 기록하세요. 인플스 AI 제품팀에 전달되어 개발 우선순위에 반영됩니다. 기록 후 사용자에게 '제품팀에 전달했고 검토 후 반영하겠다'고 안내하세요. 인증 없이도 동작하지만 로그인 상태면 요청자도 함께 기록됩니다.","permission":"public","category":"support","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"request":{"type":"string","description":"사용자가 원한 기능/작업 (원문 그대로, 구체적으로)"},"context":{"type":"string","description":"사용자가 무엇을 하려다 막혔는지 배경 (선택)"}},"required":["request"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"submit_feature_request","arguments":{"request":"새로운 리포트 지표를 추가해주세요."}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"approve_deliverable","description":"ACTION(브랜드): 크리에이터가 제출한 시안(게시 전) 또는 게시물을 승인합니다. 시안이면 게시 허가, 게시물이면 정산 준비 완료(이후 release_escrow_payment).","permission":"contracts:write","category":"contract","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"deliverable_id":{"type":"string"}},"required":["deliverable_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"approve_deliverable","arguments":{"deliverable_id":"deliverable_id"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"request_revision","description":"ACTION(브랜드): 제출된 시안/게시물에 재수정을 요청합니다. 'feedback'에 무엇을 어떻게 고칠지 구체적으로(비면 사용자에게 먼저 물어보세요). 계약 합의 재수정 횟수를 넘기면 거부되고 재협의/분쟁을 안내합니다.","permission":"contracts:write","category":"contract","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"deliverable_id":{"type":"string"},"feedback":{"type":"string","description":"구체적 수정 요청 내용"}},"required":["deliverable_id","feedback"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"request_revision","arguments":{"deliverable_id":"deliverable_id","feedback":"광고 표기를 더 명확히 해주세요."}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"submit_draft","description":"ACTION(크리에이터): 게시 '전' 시안(사진/원고/영상 가편)을 브랜드 검토용으로 제출합니다. 브랜드 승인 후 실제 게시하고 submit_deliverable로 게시 URL을 등록하세요.","permission":"contracts:write","category":"contract","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"},"type":{"type":"string","description":"산출물 종류 e.g. instagram_feed, naver_blog"},"url":{"type":"string","description":"시안 링크(드라이브/노션 등)"},"description":{"type":"string","description":"시안 설명·원고 텍스트"},"media_type":{"type":"string"}},"required":["contract_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"submit_draft","arguments":{"contract_id":"contract_id","draft_url":"https://example.com/draft"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"cancel_contract","description":"ACTION: 계약을 취소합니다(브랜드/크리에이터). 에스크로 충전돼 있으면 브랜드에 환불. 정산 완료 계약은 취소 불가(분쟁 사용). reason 필수 — 사유를 사용자에게 물어보세요.","permission":"contracts:write","category":"contract","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"},"reason":{"type":"string"}},"required":["contract_id","reason"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"cancel_contract","arguments":{"contract_id":"contract_id","reason":"일정 변경"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"dispute_contract","description":"ACTION: 계약 분쟁을 제기합니다(브랜드/크리에이터). 에스크로가 보류되고 인플스 AI 운영자가 중재합니다. 게시물 불만·불이행·정산 거부 등에 사용. reason 필수.","permission":"contracts:write","category":"support","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"},"reason":{"type":"string"}},"required":["contract_id","reason"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"dispute_contract","arguments":{"contract_id":"contract_id","reason":"결과물 범위 이견"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"request_mediation","description":"ACTION: 인플스 AI 운영자(사람)의 중개 개입을 요청합니다. 평소엔 자동으로 굴러가지만 협상이 꼬이거나 사람 도움이 필요할 때 부르는 버튼. reason에 어떤 도움이 필요한지 적고, 가능하면 outreach_id/contract_id도 함께.","permission":"contracts:write","category":"support","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"outreach_id":{"type":"string"},"contract_id":{"type":"string"},"reason":{"type":"string"}},"required":["reason"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"request_mediation","arguments":{"reason":"수정 요청 범위 조율 필요"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"report_issue","description":"ACTION: 문제를 신고합니다(신고 버튼). 예: 인플루언서 방문/게시 누락, 영수증 미제출, 게시물 임의 삭제, 가이드 위반. 운영자가 사실 확인 후 조치. reason 필수.","permission":"contracts:write","category":"support","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"outreach_id":{"type":"string"},"contract_id":{"type":"string"},"reason":{"type":"string"}},"required":["reason"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"report_issue","arguments":{"reason":"게시 지연 신고"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"get_deal_status","description":"READ: 딜의 현재 단계와 '다음에 누가 무엇을 해야 하는지'(블로커)를 정리해 보여줍니다. contract_id 또는 outreach_id로 조회. 양쪽이 진행상황 파악용으로 사용.","permission":"contracts:read","category":"contract","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"},"outreach_id":{"type":"string"}}},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_deal_status","arguments":{"contract_id":"contract_id"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"request_metrics","description":"ACTION(브랜드): 인플루언서가 게시 후 남겨줄 성과지표를 지정해 요청합니다(예: 조회수·저장·링크클릭·전환). 외부 연동 없이 요청→인플 기입(record_result)→리포트 공유 방식.","permission":"contracts:write","category":"reporting","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"},"metrics":{"type":"array","items":{"type":"string"}}},"required":["contract_id","metrics"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"request_metrics","arguments":{"contract_id":"contract_id","metrics":["views","clicks"]}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"mark_shipped","description":"ACTION(브랜드): 협찬/체험단 제품을 발송했다고 기록합니다(택배사·운송장). 크리에이터에게 알림이 가고, 수령 확인 후 콘텐츠 제작이 시작됩니다.","permission":"contracts:write","category":"contract","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"},"carrier":{"type":"string","description":"택배사"},"tracking_no":{"type":"string","description":"운송장 번호"},"product_name":{"type":"string"},"declared_value":{"type":"number","description":"제품 시가(원)"}},"required":["contract_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"mark_shipped","arguments":{"contract_id":"contract_id","tracking_number":"1234567890"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"confirm_received","description":"ACTION(크리에이터): 협찬 제품을 받았다고 확인합니다. 이때부터 콘텐츠 제작 단계로 넘어가고 브랜드에 알림이 갑니다.","permission":"contracts:write","category":"contract","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"}},"required":["contract_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"confirm_received","arguments":{"contract_id":"contract_id"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"propose_milestones","description":"ACTION(브랜드): 계약 금액을 단계(마일스톤)로 쪼개 부분 정산을 설정합니다. 마일스톤 합계는 계약 금액과 같아야 합니다(예: 기획 30% / 촬영 30% / 게시 40%). 고예산·장기 제작에 권장.","permission":"escrow:write","category":"settlement","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"contract_id":{"type":"string"},"milestones":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","description":"단계명 e.g. 기획·촬영·게시"},"amount":{"type":"number","description":"이 단계 금액(원)"}},"required":["label","amount"]}}},"required":["contract_id","milestones"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"propose_milestones","arguments":{"contract_id":"contract_id","milestones":[{"label":"1차 게시","amount":700000}]}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}},{"name":"release_milestone_payment","description":"ACTION(브랜드): 특정 마일스톤을 정산합니다(해당 단계 금액의 90% 크리에이터 / 10% 플랫폼). 산출물이 있어야 하고, 모든 마일스톤이 정산되면 계약이 완료됩니다.","permission":"escrow:write","category":"settlement","version":"v1","status":"beta","input_schema":{"type":"object","properties":{"milestone_id":{"type":"string"}},"required":["milestone_id"]},"output_schema":{"type":"object","required":["content"],"properties":{"content":{"type":"array","items":{"type":"object","required":["type","text"],"properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"isError":{"type":"boolean"}},"additionalProperties":true},"example":{"request":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"release_milestone_payment","arguments":{"milestone_id":"milestone_id"}}},"response":{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"요청이 처리되었습니다."}]}}}}]}