{"serverId":"mcp-registry/com.neblla/neblla","tools":[{"name":"neblla_broadcast","fixed":{"name":"neblla_broadcast","description":"Sends a message to all the users of an app, or of one group, and resumes a stopped send. Needs the inbox module; inbox only (no email or push); one send at a time. More: neblla_get_llms tools/broadcast","inputSchema":{"type":"object","required":["appId","action"],"properties":{"id":{"type":"string","description":"The send (status, resume)"},"env":{"enum":["pro","pre"],"type":"string","description":"\"pro\" (the app's users, default) or \"pre\" (its draft's)"},"data":{"description":"Optional JSON payload, as neblla_send_communication","type":"string"},"role":{"type":"string","description":"With group: only the members with this role"},"appId":{"type":"string","description":"The app public ID"},"group":{"type":"string","description":"Only the members of this group (neblla_group)"},"action":{"enum":["send","resume"],"type":"string","description":"By action: send {same fields}; resume {id}"},"message":{"type":"string","description":"Plain-text message (estimate, send)"}}},"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":true},"title":"Broadcast"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: data. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":281,"tokensAfter":285},{"name":"neblla_broadcast_read","fixed":{"name":"neblla_broadcast_read","description":"Estimates what a message to all users costs and shows how past sends went. More: neblla_get_llms tools/broadcast_read","inputSchema":{"type":"object","required":["appId","action"],"properties":{"id":{"type":"string"},"env":{"enum":["pro","pre"],"type":"string"},"data":{"type":"string"},"role":{"type":"string"},"appId":{"type":"string"},"group":{"type":"string"},"action":{"enum":["estimate","status","list"],"type":"string","description":"By action: estimate {message, data?, group?, role?}; status {id}"},"message":{"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"destructiveHint":false},"title":"Broadcast (read)"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: data. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":159,"tokensAfter":163},{"name":"neblla_business","fixed":{"name":"neblla_business","description":"Changes the places, people, notes, closures, applications and sellers of a business. close cancels upcoming sessions and refunds clients now; approve makes the site and invites the applicant to the team. More: neblla_get_llms tools/business","inputSchema":{"type":"object","required":["appId","action"],"properties":{"id":{"type":"string"},"to":{"type":"string"},"env":{"enum":["pro","pre"],"type":"string","description":"\"pro\" (the published app) or \"pre\" (its test copy: pre's config, on pre's data"},"who":{"type":"string"},"date":{"type":"string"},"from":{"type":"string"},"kind":{"enum":["sites","resources","staff","users"],"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"site":{"type":["string","null"]},"slot":{"type":"string","description":"rateUser: the session they were in"},"text":{"type":"string"},"user":{"type":"string","description":"The user id in the app (userBookings, userNotes, userNote)"},"about":{"type":["string","null"]},"appId":{"type":"string"},"count":{"type":"integer"},"email":{"type":["string","null"]},"hours":{"type":"string"},"limit":{"type":"integer"},"phone":{"type":["string","null"]},"photo":{"type":["string","null"]},"sites":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"action":{"enum":["save","remove","note","removeNote","userNote","removeUserNote","close","reopen","approve","reject","rateUser","hideReview","addSeller","removeSeller","sellerLink"],"type":"string","description":"By action: save {kind, id?, …fields}; remove {kind, id}; note {who, amount, date?, note?}; close {kind?, id?, from, to?, reason?, timeZone?}; reopen {closure}; approve {application}; reject {application, reason?}"},"amount":{"type":"integer","description":"note: cents the business owes them (negative: paid); only a record"},"fields":{"anyOf":[{"type":"object"},{"type":"null"}]},"hidden":{"type":"boolean","description":"reviews: only the hidden (true) or the shown (false); hideReview"},"rating":{"type":"integer","description":"rateUser: 1 to 5"},"reason":{"type":"string","description":"close: what clients read, e.g. \"Public holiday\""},"review":{"type":"string","description":"hideReview: the review's id"},"seller":{"type":"string","description":"addSeller, removeSeller, sellerStatus, sellerLink: \"site:<site id>\" or \"user:<user id>\""},"status":{"enum":["pending","approved","rejected","all"],"type":"string"},"address":{"type":["string","null"]},"closure":{"type":"string","description":"reopen: the closure's id"},"capacity":{"type":"integer"},"timeZone":{"type":["string","null"]},"application":{"type":"string","description":"approve, reject: the application's id"}}},"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":true},"title":"Business"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: hours. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":747,"tokensAfter":751},{"name":"neblla_business_read","fixed":{"name":"neblla_business_read","description":"Reads the places, people, agenda, notes, closures, applications and sellers of a business. More: neblla_get_llms tools/business_read","inputSchema":{"type":"object","required":["appId","action"],"properties":{"id":{"type":"string"},"to":{"type":"string"},"env":{"enum":["pro","pre"],"type":"string"},"who":{"type":"string"},"date":{"type":"string"},"from":{"type":"string"},"kind":{"enum":["sites","resources","staff","users"],"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"site":{"type":["string","null"]},"slot":{"type":"string"},"text":{"type":"string"},"user":{"type":"string"},"about":{"type":["string","null"]},"appId":{"type":"string"},"count":{"type":"integer"},"email":{"type":["string","null"]},"hours":{"type":"string"},"limit":{"type":"integer"},"phone":{"type":["string","null"]},"photo":{"type":["string","null"]},"sites":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"action":{"enum":["list","accounts","agenda","notes","userBookings","userNotes","closures","applications","userRating","reviews","sellers","sellerStatus"],"type":"string","description":"By action: list {kind}; accounts {from?, to?}; agenda {from, to}; notes {from?, to?, who?}; closures {from?, to?}; applications {status?}; reviews {kind?, id?, hidden?}"},"amount":{"type":"integer"},"fields":{"anyOf":[{"type":"object"},{"type":"null"}]},"hidden":{"type":"boolean"},"rating":{"type":"integer"},"reason":{"type":"string"},"review":{"type":"string"},"seller":{"type":"string"},"status":{"enum":["pending","approved","rejected","all"],"type":"string"},"address":{"type":["string","null"]},"closure":{"type":"string"},"capacity":{"type":"integer"},"timeZone":{"type":["string","null"]},"application":{"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":true,"destructiveHint":false},"title":"Business (read)"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: hours. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":494,"tokensAfter":498},{"name":"neblla_publish_community_entry","fixed":{"name":"neblla_publish_community_entry","description":"Publishes a community entry as the developer's own user in the app. More: neblla_get_llms tools/publish_community_entry","inputSchema":{"type":"object","required":["appId","title","contentType"],"properties":{"i18n":{"type":"object","description":"Title/summary in other languages: { \"fr\": { \"title\": \"…\", \"summary\": \"…\" } }"},"lang":{"type":"string","description":"Language of title/summary, e.g. \"es\""},"tags":{"type":"array","items":{"type":"string"}},"appId":{"type":"string","description":"The app public ID"},"title":{"type":"string"},"payload":{"description":"The dev-defined JSON the app stores for this entry","type":"string"},"summary":{"type":"string"},"category":{"type":"string"},"parentId":{"type":"string","description":"Id of the entry this one derives from"},"contentType":{"type":"string","description":"One of the app's community.contentTypes"}}},"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":true},"title":"Publish community entry"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: payload. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":255,"tokensAfter":260},{"name":"neblla_sample_users","fixed":{"name":"neblla_sample_users","description":"Creates, changes or removes invented users and the bookings, purchases (simulated, no money) and messages they make. buy fires the purchase webhook with sample:true. More: neblla_get_llms tools/sample_users","inputSchema":{"type":"object","required":["appId","action"],"properties":{"at":{"type":"string","description":"buy: when they bought it (ISO date, within the last year"},"day":{"type":"string","description":"score: YYYY-MM-DD, a game of that day"},"env":{"enum":["pro","pre"],"type":"string","description":"\"pro\" (the published app) or \"pre\" (its test copy: pre's config, on pre's data"},"for":{"type":"string"},"set":{"type":"string"},"data":{"description":"score: what the game sends to your check; save: their whole document","type":"string"},"form":{"type":"object","description":"apply: what neblla.business.apply takes ({ name, address, timeZone, phone?, about?, photo?","additionalProperties":true},"name":{"type":"string"},"site":{"type":"string","description":"rate: the site of the session"},"slot":{"type":"string"},"team":{"enum":["A","B"],"type":"string","description":"book: the side of a match (a service with results)"},"text":{"type":"string"},"user":{"type":"string","description":"The sample user's id (create answers it)"},"appId":{"type":"string"},"board":{"type":"string","description":"score: the ranking (neblla_update_app scores)"},"email":{"type":"string"},"match":{"type":"string","description":"report: the match (its session's id)"},"party":{"type":"integer"},"photo":{"type":["string","null"]},"score":{"type":"string"},"until":{"type":"string"},"value":{"type":"number","description":"score: the score sent"},"action":{"enum":["create","update","remove","removeAll","book","buy","message","chat","score","save","report","rate","apply"],"type":"string","description":"By action: create {name, email?, photo?, language?}; update {user, name?, email?, photo?, language?}; remove {user}; book {user, set, slot, for?, party?}; buy {user, productId, amount?, at?, until?, series?}; message {user, text}; chat {user, set, slot, text}; score {user, board, value, seconds?, day?, data?}; save {user, data}; report…"},"amount":{"type":"integer"},"rating":{"type":"integer","description":"rate: 1 to 5"},"series":{"type":"string","description":"buy: which repetition of a standing place that offers several"},"winner":{"enum":["A","B","draw"],"type":"string"},"seconds":{"type":"number","description":"score: how long the game took"},"language":{"type":"string"},"productId":{"type":"string"}}},"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"title":"Sample users"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: data. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":711,"tokensAfter":715},{"name":"neblla_sample_users_read","fixed":{"name":"neblla_sample_users_read","description":"Lists the sample users of an app: invented clients so the back office looks full. More: neblla_get_llms tools/sample_users_read","inputSchema":{"type":"object","required":["appId","action"],"properties":{"at":{"type":"string"},"day":{"type":"string"},"env":{"enum":["pro","pre"],"type":"string"},"for":{"type":"string"},"set":{"type":"string"},"data":{"type":"string"},"form":{"type":"object","additionalProperties":true},"name":{"type":"string"},"site":{"type":"string"},"slot":{"type":"string"},"team":{"enum":["A","B"],"type":"string"},"text":{"type":"string"},"user":{"type":"string"},"appId":{"type":"string"},"board":{"type":"string"},"email":{"type":"string"},"match":{"type":"string"},"party":{"type":"integer"},"photo":{"type":["string","null"]},"score":{"type":"string"},"until":{"type":"string"},"value":{"type":"number"},"action":{"enum":["list"],"type":"string"},"amount":{"type":"integer"},"rating":{"type":"integer"},"series":{"type":"string"},"winner":{"enum":["A","B","draw"],"type":"string"},"seconds":{"type":"number"},"language":{"type":"string"},"productId":{"type":"string"}}},"annotations":{"readOnlyHint":true,"openWorldHint":false,"destructiveHint":false},"title":"Sample users (read)"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: data. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":315,"tokensAfter":320},{"name":"neblla_send_communication","fixed":{"name":"neblla_send_communication","description":"Sends a message from the developer to one end user's inbox. Email only for contact:true users. More: neblla_get_llms tools/send_communication","inputSchema":{"type":"object","required":["appId","userId","message"],"properties":{"data":{"description":"Optional JSON payload attached to the communication","type":"string"},"appId":{"type":"string","description":"The app public ID"},"dateTo":{"type":"string","description":"Optional calendar/appointment proposal end (ISO 8601)"},"thread":{"type":"string","description":"Id of the parent communication to thread under"},"userId":{"type":"string","description":"Target user's mongo ObjectId hex string"},"message":{"type":"string","description":"Plain-text message body"},"dateFrom":{"type":"string","description":"Optional calendar/appointment proposal start (ISO 8601)"}}},"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":true},"title":"Send communication"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: data. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":239,"tokensAfter":243},{"name":"neblla_set_panel","fixed":{"name":"neblla_set_panel","description":"Creates, replaces or removes a back office panel: a screen for the developer and their team. More: neblla_get_llms tools/set_panel","inputSchema":{"type":"object","required":["appId","name"],"properties":{"name":{"type":"string","description":"Panel name: letters, digits, _ or - (≤ 40)"},"appId":{"type":"string"},"panel":{"description":"The panel, or null to remove it","type":"string"}}},"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"title":"Set panel"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: panel. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":116,"tokensAfter":121},{"name":"neblla_update_community_entry","fixed":{"name":"neblla_update_community_entry","description":"Edits an entry of the app's community, its own or a user's. More: neblla_get_llms tools/update_community_entry","inputSchema":{"type":"object","required":["appId","entryId"],"properties":{"i18n":{"anyOf":[{"type":"object"},{"type":"null"}],"description":"Title/summary in other languages; replaces the whole map"},"lang":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"appId":{"type":"string","description":"The app public ID"},"title":{"type":"string"},"entryId":{"type":"string","description":"The entry id"},"payload":{"description":"Replaces the stored payload whole","type":"string"},"summary":{"type":"string"},"category":{"type":"string"}}},"annotations":{"readOnlyHint":false,"openWorldHint":false,"destructiveHint":true},"title":"Update community entry"},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: payload. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":197,"tokensAfter":202}],"toolsChanged":10,"tokensSaved":0,"todo":[{"tool":"neblla_alerts_read","params":["id","to","all","via","lang","appId","slack","topic","types","discord","history"]},{"tool":"neblla_assets","params":["lang","limit","offset"]},{"tool":"neblla_auth_secret","params":["action"]},{"tool":"neblla_auth_secret_read","params":["appId","action"]},{"tool":"neblla_backups","params":["action"]},{"tool":"neblla_backups_read","params":["env","date","appId","action"]},{"tool":"neblla_billing_read","params":["action"]},{"tool":"neblla_booking","params":["to","end","min","set","from","site","slot","step","when","appId","limit","scope","staff","start","title","before","reason","repeat","series","toSlot","booking","capacity","resource","skipBusy","productId"]},{"tool":"neblla_booking_read","params":["to","end","env","min","set","from","site","slot","step","text","user","when","appId","limit","scope","staff","start","title","before","reason","refund","repeat","series","toSlot","booking","capacity","resource","skipBusy","productId"]},{"tool":"neblla_broadcast_read","params":["id","env","data","role","appId","group","message"]},{"tool":"neblla_business","params":["id","to","who","date","from","kind","name","note","site","text","about","appId","count","email","hours","limit","phone","photo","sites","fields","status","address","capacity","timeZone"]},{"tool":"neblla_business_read","params":["id","to","env","who","date","from","kind","name","note","site","slot","text","user","about","appId","count","email","hours","limit","phone","photo","sites","amount","fields","hidden","rating","reason","review","seller","status","address","closure","capacity","timeZone","application"]},{"tool":"neblla_byodb_read","params":["env","appId","fresh","action","config","engine","follow"]},{"tool":"neblla_byos","params":["provider"]},{"tool":"neblla_byos_read","params":["appId","action","provider"]},{"tool":"neblla_community_cases","params":["limit","action"]},{"tool":"neblla_community_cases_read","params":["note","appId","limit","caseId","status","outcome"]},{"tool":"neblla_create_product","params":["type","defaultLang"]},{"tool":"neblla_credits","params":["appId"]},{"tool":"neblla_credits_read","params":["env","kind","appId","delta","owner"]},{"tool":"neblla_developer_email","params":["action"]},{"tool":"neblla_developer_notices","params":["action"]},{"tool":"neblla_developer_notices_read","params":["id","action"]},{"tool":"neblla_domains_read","params":["domain","domains","projectId"]},{"tool":"neblla_draws","params":["draw","user","appId","limit"]},{"tool":"neblla_export_users","params":["limit"]},{"tool":"neblla_get_moderation_log","params":["offset"]},{"tool":"neblla_git_read","params":["url","appId","branch","proBranch"]},{"tool":"neblla_group","params":["name","role","user","appId","group"]},{"tool":"neblla_group_read","params":["env","name","role","user","appId","group"]},{"tool":"neblla_list_communications","params":["skip","sort","limit","readFilter","importantOnly"]},{"tool":"neblla_list_community_entries","params":["limit"]},{"tool":"neblla_list_fog_cases","params":["limit","status"]},{"tool":"neblla_list_users","params":["skip","sort","limit"]},{"tool":"neblla_list_webhook_deliveries","params":["limit"]},{"tool":"neblla_mark_communication_read","params":["read"]},{"tool":"neblla_matches","params":["note","appId","limit","winner"]},{"tool":"neblla_matches_read","params":["env","note","user","appId","limit","match","winner"]},{"tool":"neblla_media","params":["alt","text","limit","title","offset"]},{"tool":"neblla_media_read","params":["id","appId","limit","offset","collection"]},{"tool":"neblla_moderate_community_entry","params":["action"]},{"tool":"neblla_orders_read","params":["env","skip","appId","limit","status","carrier","orderId","tracking","trackingUrl"]},{"tool":"neblla_payments_account_read","params":["action","prefix","projectId"]},{"tool":"neblla_pre_access_read","params":["appId","action"]},{"tool":"neblla_projects_read","params":["projectId"]},{"tool":"neblla_promote_read","params":["appId","releaseId","confirmRoomsChange"]},{"tool":"neblla_publish_app","params":["defaultLang"]},{"tool":"neblla_publish_community_entry","params":["tags","title","summary","category"]},{"tool":"neblla_publish_store","params":["store","track","packageName"]},{"tool":"neblla_publish_store_read","params":["appId","store","action"]},{"tool":"neblla_retheme_app","params":["typography"]},{"tool":"neblla_run_panel","params":["name","appId","inputs"]},{"tool":"neblla_sales_read","params":["to","env","from","skip","appId","limit","saleId","seller","status","productId"]},{"tool":"neblla_sample_users","params":["for","set","name","slot","text","appId","email","party","photo","score","until","amount","winner","language","productId"]},{"tool":"neblla_sample_users_read","params":["at","day","env","for","set","data","form","name","site","slot","team","text","user","appId","board","email","match","party","photo","score","until","value","action","amount","rating","series","winner","seconds","language","productId"]},{"tool":"neblla_scores","params":["board","limit","action","period"]},{"tool":"neblla_scores_read","params":["env","appId","board","limit","period","player","rating"]},{"tool":"neblla_search_users_by_email","params":["skip","limit"]},{"tool":"neblla_server_key","params":["action"]},{"tool":"neblla_server_key_read","params":["appId","action"]},{"tool":"neblla_set_automation","params":["set","top","days","path","field","hours","limit","table","hoursAhead"]},{"tool":"neblla_set_communication_important","params":["important"]},{"tool":"neblla_set_panel","params":["appId"]},{"tool":"neblla_store","params":["id","kind","name","tags","price","reason","license","message","reportKind","description"]},{"tool":"neblla_store_read","params":["id","file","kind","look","name","part","tags","major","notes","power","price","offers","reason","recipe","credits","fileUrl","license","message","reportKind","description"]},{"tool":"neblla_table_query","params":["table","offset"]},{"tool":"neblla_table_row","params":["id","data","appId","table"]},{"tool":"neblla_tax","params":["type","appId","runId","state","action","address","country","taxCode","automatic","taxBehavior","registrationId"]},{"tool":"neblla_tax_read","params":["to","from","type","appId","runId","state","action","address","country","taxCode","automatic","inclusive","projectId","taxBehavior","registrationId"]},{"tool":"neblla_team","params":["role","appId","email","panels"]},{"tool":"neblla_team_read","params":["id","own","name","role","appId","email","owner","sites","access","friend","groups","panels","rights","members","expiresInDays"]},{"tool":"neblla_trades","params":["appId","offset","status"]},{"tool":"neblla_trades_read","params":["id","env","user","appId","limit","action","offset"]},{"tool":"neblla_update_community_entry","params":["lang","tags","title","summary","category"]},{"tool":"neblla_update_product","params":["defaultLang"]},{"tool":"neblla_versions_read","params":["url","appId","limit","branch","commit","toBranch","toProBranch"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}