{"name":"sewapedia-owner","version":"1.0.0","mcpEndpoint":"https://sewapedia.id/api/v1/mcp-owner","transport":"streamable-http","roleRequired":"VENDOR","toolCounts":{"consumer":{"public":26,"auth":45,"total":71},"owner":{"public":6,"auth":63,"total":69},"combined":{"public":32,"auth":108,"total":140}},"publicTools":["register_vendor_account","owner_login","create_login_link","get_login_status","get_category_fields","get_vendor_theme_presets"],"authTools":[{"name":"list_owner_requests","scopes":["read:owner"]},{"name":"get_owner_calendar","scopes":["read:owner"]},{"name":"approve_booking","scopes":["write:owner"]},{"name":"reject_booking","scopes":["write:owner"]},{"name":"list_owner_bookings","scopes":["read:owner"]},{"name":"list_my_assets","scopes":["read:owner"]},{"name":"get_owner_analytics","scopes":["read:owner"]},{"name":"manage_blackout","scopes":["read:owner","write:owner"]},{"name":"create_asset","scopes":["write:owner"]},{"name":"get_owner_booking_detail","scopes":["read:owner"]},{"name":"create_counter_offer","scopes":["write:owner"]},{"name":"review_renter_documents","scopes":["read:owner","write:owner"]},{"name":"manage_booking_chat","scopes":["read:owner","write:owner"]},{"name":"update_asset","scopes":["write:owner"]},{"name":"edit_asset","scopes":["write:owner"]},{"name":"manage_asset_requirements","scopes":["read:owner","write:owner"]},{"name":"delete_asset","scopes":["write:owner"]},{"name":"respond_extension","scopes":["write:owner"]},{"name":"get_finance_summary","scopes":["read:owner"]},{"name":"list_finance_entries","scopes":["read:owner"]},{"name":"create_finance_entry","scopes":["write:owner"]},{"name":"get_finance_entry","scopes":["read:owner"]},{"name":"get_storefront","scopes":["read:owner"]},{"name":"update_storefront","scopes":["write:owner"]},{"name":"upload_storefront_image","scopes":["write:owner"]},{"name":"delete_storefront_image","scopes":["write:owner"]},{"name":"upload_vendor_document","scopes":["write:owner"]},{"name":"upload_asset_image","scopes":["write:owner"]},{"name":"delete_asset_image","scopes":["write:owner"]},{"name":"manage_booking_condition","scopes":["read:owner","write:owner"]},{"name":"get_finance_pnl","scopes":["read:owner"]},{"name":"update_finance_entry","scopes":["write:owner"]},{"name":"delete_finance_entry","scopes":["write:owner"]},{"name":"list_owner_payouts","scopes":["read:owner"]},{"name":"manage_payout_bank","scopes":["read:owner","write:owner"]},{"name":"confirm_offline_payment","scopes":["write:owner"]},{"name":"get_renter_snapshot","scopes":["read:owner"]},{"name":"get_owner_asset_detail","scopes":["read:owner"]},{"name":"get_pricing_recommendation","scopes":["read:owner"]},{"name":"manage_owner_commissions","scopes":["read:owner"]},{"name":"upload_commission_proof","scopes":["write:owner"]},{"name":"export_finance_csv","scopes":["read:owner"]},{"name":"manage_finance_tax","scopes":["read:owner","write:owner"]},{"name":"get_finance_categories","scopes":["read:owner"]},{"name":"duplicate_finance_entry","scopes":["write:owner"]},{"name":"manage_acquisitions","scopes":["read:owner","write:owner"]},{"name":"manage_opex_recurring","scopes":["read:owner","write:owner"]},{"name":"manage_opex_checklist","scopes":["read:owner"]},{"name":"opex_quick_add","scopes":["write:owner"]},{"name":"get_portfolio_pricing","scopes":["read:owner"]},{"name":"get_asset_finance","scopes":["read:owner"]},{"name":"manage_repair_expenses","scopes":["read:owner","write:owner"]},{"name":"manage_maintenance","scopes":["read:owner","write:owner"]},{"name":"manage_duration_rules","scopes":["read:owner","write:owner"]},{"name":"manage_vendor_terms","scopes":["read:owner","write:owner"]},{"name":"manage_storefront_slug","scopes":["read:owner","write:owner"]},{"name":"update_vendor_type","scopes":["write:owner"]},{"name":"get_seo_listings","scopes":["read:owner"]},{"name":"get_chat_metrics","scopes":["read:owner"]},{"name":"manage_owner_feedback","scopes":["read:owner","write:owner"]},{"name":"manage_booking_incidents","scopes":["read:owner","write:owner"]},{"name":"manage_booking_dispute","scopes":["read:owner","write:owner"]},{"name":"list_conversations","scopes":["read:owner"]}],"authentication":{"recommended":"deviceFlow","securityNote":"Device flow (create_login_link) keeps the password out of agent context; direct login works but stores credentials in conversation history.","deviceFlow":{"createTool":"create_login_link","pollTool":"get_login_status","restEndpoints":{"create":"/api/v1/auth/device","poll":"/api/v1/auth/device/poll","grant":"/api/v1/auth/device/grant"},"connectPage":"https://sewapedia.id/id/agent/connect","pollIntervalSec":5,"codeTtlSec":900,"credentialTtlDays":90,"roleRequired":"VENDOR","scopes":["read:owner","write:owner"]},"passwordLogin":{"tool":"owner_login","description":"Method B: user provides vendor email/password to agent; agent calls owner_login → Bearer accessToken"},"apiKey":{"header":"X-Api-Key","scopes":["read:owner","write:owner"],"managementUrl":"/akun/pengaturan/api-keys"},"register":{"pemilikDirect":{"tool":"register_vendor_account","restEndpoint":"POST /api/v1/auth/register (accountType=vendor)","rateLimit":"paused until 2027-01-03 WIB (Owner MCP only); then 5/hour per IP (auth:register)","then":"owner_login or create_login_link after admin approves vendor"},"pemilikFromPenyewa":{"note":"Existing CUSTOMER upgrades via consumer MCP activate_vendor","consumerTool":"activate_vendor","consumerManifest":"/.well-known/mcp"}}},"customerMcpManifest":"/.well-known/mcp","customerMcpGuide":"/mcp-agent-guide.md","openapi":"/openapi-agent.yaml","llmsTxt":"/llms.txt","mcpGuide":"/mcp-owner-guide.md","mcpFeatureList":"/mcp-feature-list.md","developers":"/id/developers","documentation":{"llmsTxt":"https://sewapedia.id/llms.txt","consumerManifest":"https://sewapedia.id/.well-known/mcp","ownerManifest":"https://sewapedia.id/.well-known/mcp-owner","agentGuide":"https://sewapedia.id/mcp-agent-guide.md","ownerGuide":"https://sewapedia.id/mcp-owner-guide.md","featureList":"https://sewapedia.id/mcp-feature-list.md","developers":"https://sewapedia.id/id/developers","openapiAgent":"https://sewapedia.id/openapi-agent.yaml","openapiAgentApi":"https://sewapedia.id/api/v1/openapi/agent","toolCounts":{"consumer":{"public":26,"auth":45,"total":71},"owner":{"public":6,"auth":63,"total":69},"combined":{"public":32,"auth":108,"total":140}},"authentication":"Method A (recommended): create_login_link + get_login_status device flow. Method B: login / owner_login with user password. See agentGuide and llmsTxt.","categoryGuidance":{"campingTentVsEventTent":{"decisionRule":{"en":"Classify by PRIMARY USE (outdoor camping vs event/party/exhibition), not by the word tent/tenda alone.","id":"Kategorisasi berdasarkan TUJUAN PEMAKAIAN UTAMA (camping outdoor vs pesta/acara/pameran), bukan kata tenda saja."},"campingOutdoor":{"categorySlug":"camping-outdoor","catalogPath":"/sewa-camping","specsGearType":"tent","updateAssetSection":"outdoor","examples":{"en":["dome 2P tent","hiking tent","Coleman Skydome","tunnel tent"],"id":["tenda dome 2P","tenda hiking","Coleman Skydome","tenda tunnel"]}},"musicGear":{"categorySlug":"alat-music","catalogPath":"/sewa-alat-music","specsGearType":["instruments","dj-equipment","portable-pa"],"updateAssetSection":"music","examples":{"en":["Pioneer DDJ controller","Shure SM58 mic","portable PA"],"id":["controller Pioneer DDJ","mic Shure SM58","portable PA"]}},"musicEvent":{"categorySlug":"alat-event","catalogPath":"/sewa-alat-event","specsGearType":["stage-truss","paket-event"],"updateAssetSection":"event","examples":{"en":["party decor tent","work-site canopy","exhibition tent","wedding tent structure"],"id":["tenda dekorasi pesta","tenda kerja proyek","tenda pameran","tenda wedding"]}},"antiPattern":{"en":"Do NOT list party/event/work tents under camping-outdoor just because the title says tent/tenda.","id":"Jangan masukkan tenda pesta/kerja/pameran ke camping-outdoor hanya karena judul mengandung tenda."},"verify":{"tool":"get_category_fields","compareSlugs":["camping-outdoor","alat-music","alat-event"],"note":"Compare specsFields, rulesSection, and enum values for each slug before create_asset."}},"partyTentVsCampingTent":{"decisionRule":{"en":"Party/event/wedding tents → furnitur (specs.furnitureType party_tent). Hiking/camping dome tents → camping-outdoor (specs.gearType tent).","id":"Tenda pesta/acara/wedding → furnitur (specs.furnitureType party_tent). Tenda hiking/camping dome → camping-outdoor (specs.gearType tent)."},"campingOutdoor":{"categorySlug":"camping-outdoor","catalogPath":"/sewa-camping","specsGearType":"tent","updateAssetSection":"outdoor","examples":{"en":["dome 2P tent","hiking tent","Coleman Skydome","tunnel tent"],"id":["tenda dome 2P","tenda hiking","Coleman Skydome","tenda tunnel"]}},"furnitur":{"categorySlug":"furnitur","catalogPath":"/sewa-furnitur","specsFurnitureType":"party_tent","updateAssetSection":"furniture","bookingFields":["rentalQuantity","usageLocationDetail","venueFloor","venueHasElevator","furnitureManifestAck","furnitureManifestItems"],"examples":{"en":["party tent sarnafil 10x10","wedding tent structure","event decor canopy","chiavari chairs + round tables"],"id":["tenda pesta sarnafil 10x10","tenda wedding dekorasi","kanopi acara outdoor","kursi chiavari + meja bulat"]}},"antiPattern":{"en":"Do NOT use camping-outdoor for tenda pesta / party tent — use furnitur with furnitureType party_tent.","id":"Jangan pakai camping-outdoor untuk tenda pesta — gunakan furnitur dengan furnitureType party_tent."},"verify":{"tool":"get_category_fields","compareSlugs":["camping-outdoor","furnitur"],"note":"Compare specsFields (gearType vs furnitureType), rulesSection (outdoor vs furniture), and stock/manifest rules."}}}},"guides":{"platformSummary":"https://sewapedia.id/llms.txt","consumer":"https://sewapedia.id/mcp-agent-guide.md","owner":"https://sewapedia.id/mcp-owner-guide.md","featureList":"https://sewapedia.id/mcp-feature-list.md","developers":"https://sewapedia.id/id/developers"},"dataCompletionPolicy":{"mandate":"AI agents MUST complete ALL vendor storefront fields AND all asset fields (core, pricing, category rules, images, requirements) before reporting setup as done or publishing. Always call get_storefront and get_owner_asset_detail after updates; only proceed when readiness.complete is true.","storefrontRequired":["displayName","branding.logoUrl (upload_storefront_image)","branding.bannerUrl (upload_storefront_image)","branding.tagline","branding.description","branding.publicWhatsapp or publicPhone","branding.layoutPreset + theme","payout bank (manage_payout_bank)","vendor terms published (manage_vendor_terms)","duration rules (manage_duration_rules)","vendor documents NPWP + BANK_ACCOUNT (+ NIB for COMPANY)"],"assetRequired":["title, brand, model, year, city, assetValue, rentalModes, transmission (if vehicle)","min 1 photo (recommended 3+) via upload_asset_image","active price tiers + deposit + duration + insurance","manage_asset_requirements (general section)","category specs + update_asset section per category (motor/heavy/bus/phone/…)","status ACTIVE only after readiness.complete"],"readinessTools":["get_storefront","get_owner_asset_detail"]}}