World Monitor
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.
Description from the maker (original English)
Make sure nothing falls through the cracks in your cleaning business, even when you're not watching.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://sergio.serviche.com/api/agent/mcpRun this in your terminal
claude mcp add --transport http sergio https://sergio.serviche.com/api/agent/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"sergio": {
"url": "https://sergio.serviche.com/api/agent/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"sergio": {
"type": "http",
"url": "https://sergio.serviche.com/api/agent/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://sergio.serviche.com/api/agent/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 9, 2026. The maker wrote them, not us; we show them as plain text.
whoamiReturns this agent seat: its name, role, member id, the organization it belongs to, the key id this call used, whether the owner allowed it to run SQL queries, and what it reads as (readsAs: "owner" when the owner allowed owner-level reading for this key, else its role) versus wh
catalogReturns `asks`, a short list of things a person can ask (give your user these when they ask what you can do), then lists every tool this seat can call right now, grouped by family, with whether each one changes anything, and under `held` the actions only a person can do (sending,
report_feedbackFiles a bug report or feature request with the Sergio team. It lands in the team's one Feedback inbox, the same place the in-app help bubble's reports go, tagged with this agent seat, and the team is notified the moment it is filed. There is no other feedback channel to try. Chec
events_subscribeCreate or update this seat's one event subscription. inputs: which arrivals (omit for all: text_in, text_out, email_in, email_out, call_answered, call_missed, voicemail, booking_created, booking_changed, booking_cancelled, staff_clocked_in, staff_not_clocked_in, job_finished, vis
events_listReturns the next events for this seat, oldest first, after `cursor` (omit it to continue from your last ack). Each event names an arrival by id (a text, email, call, or booking change); fetch its detail with read(). Delivery is at-least-once: dedupe on event_id. Pass next_cursor
events_ackStores `cursor` (a next_cursor you received) as this seat's high-water mark, so events_list with no cursor resumes after it. It only moves forward; an older cursor changes nothing.
readRead ANYTHING about the business: read(entity, filters). ENTITIES (key: purpose [main filters]): conversations: The inbox list of conversations [status, from, to, needs_reply, conversation_id, ...] | conversation_transcript: A client's whole history in one timeline [conversation_
queryRun a read-only SQL SELECT over the business database and get rows back. It is the FALLBACK, not the first move: when a read(entity) answers the question (leads, clients, conversations, bookings and the rest of read's catalog), use read, which carries the business's own definitio
findClientByIdentifierLook up a client ID by a single identifier (phone or email). Returns the client ID or null. Simpler than resolveClient. No creation, no merge. Use for a quick check: "is this phone number already a client?".
send_textTexts a client or teammate on your person's order, from the business number, as a Manual send under the business's Sending setting. Use it whenever your person asks you to text someone now, with their words or words you wrote for them ("text today's cleaners about the weather");
start_group_textOpens the one group text thread for 2 to 9 contacts who each have a phone, as the inbox's New conversation with several people checked does (an existing group for the same people is reused). Nothing is sent; texting it is send_conversational_message, which shows your person the w
open_conversation_by_phoneOpens (or finds) the one conversation for a phone number nobody is saved under, as the inbox search's Text does. Nothing is sent. Pass the same idempotency_key when retrying.
assign_conversationAssigns a conversation to a teammate, as the thread header's Assign menu does: assigned_member_id is the teammate's id (read entity org_members), or null to unassign; assigned_to (the teammate's exact name) is accepted instead. A name that is not exactly one current teammate is r
set_conversation_statusMarks a thread done (status resolved) or reopens it (status new), as the inbox's Done and Reopen do; the Quo inbox follows when the business's write setting allows. A thread that still owes the customer a reply is refused unless replyOwedOverride is true (say why to your person f
bulk_clear_conversationsClears every thread older than a cutoff at once, as the inbox's bulk Clear does (owner or admin seats only): mode date clears threads quiet for olderThanDays (default 14) or since cutoff (ISO date); mode leads clears threads a lead follow-up owns. includeTasks also closes their o
snooze_conversationMutes a conversation until snoozed_until (ISO 8601, in the future), at most 10 minutes from now (a later time is cut to 10 minutes), as the inbox's Mute does while someone is on a call. note is optional. For a later follow-up, use set_conversation_reminder. Pass the same idempote
unsnooze_conversationEnds a conversation's mute now, as the inbox's Unmute does. Pass the same idempotency_key when retrying.
set_conversation_reminderAdds a reminder on a conversation, as the thread's bell does: remind_at (ISO 8601) and an optional note become a task due then. hide_until_due: true also tucks the thread away until the reminder is due (a reply from the person brings it back). Pass the same idempotency_key when r
dismiss_conversation_remindersDismisses every open reminder on a conversation, as the bell's Dismiss does. Pass the same idempotency_key when retrying.
link_conversation_to_clientLinks a conversation to a contact, as the inbox's Link to a contact does: if the contact already has a one-to-one thread, it is folded into this one, and an email thread's address is saved to the contact. Sergio learns the correction for later emails. Pass the same idempotency_ke
merge_conversationsMoves everything in conversation_id (messages, calls, emails, tasks) into target_conversation_id and removes the empty one, as the thread menu's Merge does. It cannot be split back. Pass the same idempotency_key when retrying; the same pair merges once.
track_conversation_as_leadOpens a lead for this thread's contact, as the thread header's Track this as a new lead does, for a customer asking about new work. request is what they asked for, in a line. Refused when lead follow-up is off, the thread has no contact, or the contact is staff, an applicant or s
disposition_conversationRecords why a quiet thread needs no reply, as the clear gate's picker does: spam (the contact becomes spam; its lead work stops and its Quo card is tagged when the business's write setting allows), lead (the contact becomes a lead), reengage (tags the contact for a later marketin
start_conversation_flowStarts a flow on a conversation, as the thread's flow picker does: flowId names an active flow (read entity flows); its steps become tasks with deadlines. label is optional. Pass the same idempotency_key when retrying.
close_conversation_flowMarks a conversation's flow done, as the flow chip's Mark done does. conversationFlowId names the flow when the thread has more than one. outcome (for example declined) closes it early without marking its steps done; close_note is optional. Pass the same idempotency_key when retr
remove_conversation_flowTakes one flow off a conversation, as the flow chip's Remove does; its open step tasks are removed. conversationFlowId names the flow. reason is optional. Pass the same idempotency_key when retrying.
edit_draftEdits a draft in a conversation's draft box, as a person typing in it does: body, subject (email), whyNote, isReady, or status 'discarded' to throw it away. Nothing is sent; a person still presses Send. draft_id comes from create_draft or read. Pass the same idempotency_key when
send_emailEmails a client from the business mailbox on your person's order, as a Manual send under the business's Sending setting. First call without confirm_token: nothing is sent; you get a preview (to, subject and the exact text) and a confirm_token. Show your person the preview word fo
create_draftWrites a message into a client conversation's draft box. It never sends: a person on the team reviews the exact text and presses Send in Sergio, where the organization's sending policy applies. Give conversationId, or clientId to use that client's conversation. Pass the same idem
redraft_lead_stepRewrites the text of a lead's upcoming step that a person sends, from the conversation so far, as the journey's Update draft does (one AI draft, billed like the composer's Draft). Refused for a call step, a step Sergio sends on its own, or a step already past. Nothing is sent. ta
set_lead_outcomeRecords what happened with a lead, as the lead card's Close menu and taps do. tap: quoted (they have a price); booked (closes it won, on the booking when one for them exists, else on your word); confirmed_booked (the same as booked); call_back_on (date YYYY-MM-DD, or at as an ISO
move_lead_journeyMoves a lead to another follow-up journey (segmentId, as Settings > Lead follow-ups names them: read the lead program), at the same place in the sequence, as the lead's journey tag does. Pass the same idempotency_key when retrying.
hold_follow_upsPuts a lap's automatic follow-ups on hold, as its Hold follow-ups switch does: lead follow-ups, a feedback check-in and a review request all obey the one hold. No step goes out on its own; each is drafted for a person. Turning them back on is your person's, in the app. Pass the s
hold_lead_follow_upsPuts a lap's automatic follow-ups on hold, as its Hold follow-ups switch does: lead follow-ups, a feedback check-in and a review request all obey the one hold. No step goes out on its own; each is drafted for a person. Turning them back on is your person's, in the app. Pass the s
edit_lead_stepChanges one step of one lead's follow-ups, as the journey list does. Send one or more of: dueAt (ISO time, or null for the plan's timing; must stay after the step before it), channel ('message', 'email', 'call', 'reply', or null for the plan), removed (true takes it out, false pu
update_payroll_settingsChanges one payroll setting per call, as Payroll settings on the staff page does: providerPayFallbackPct (0 to 1), providerPayDefault ({ unit: visit or hour, cents }), or payHoursFrom (booked or approved_time_logs). Staff pay settings only; no money moves. Pass the same idempoten
add_staff_memberTo rename someone already on the roster, pass rename_staff_id with the new name; the old spelling keeps pointing at them. Otherwise adds a field worker to the roster, as the staff page's Add staff does: name (a profile with that name is reused, never duplicated), optional employm
clear_staff_availability_overrideClears one field worker's schedule change on a date (YYYY-MM-DD), so their normal weekly hours apply again, as Clear on the staff calendar does. To set a change, use set_staff_availability. Nothing is sent. Pass the same idempotency_key when retrying.
set_staff_weekly_hoursReplaces the regular weekly hours of the workers named in staffNames with exactly the windows in entries (day_of_week 0 = Sunday to 6 = Saturday, HH:MM times; several windows a day allowed; a named worker with no entries has no regular hours). Workers not in staffNames are untouc
add_staff_scheduling_ruleAdds a plain-English scheduling rule for one field worker (staff_id), as Add rule on their Rules tab does, e.g. "Won't work Tuesdays" or "Only mornings in Brooklyn". hardness hard (default: never scheduled against it) or soft (avoided when possible). The same wording again update
remove_staff_scheduling_ruleRemoves one plain-English scheduling rule (ruleId, from add_staff_scheduling_rule or read staff_scheduling_rules) from a field worker (staff_id), as remove on their Rules tab does. Answers the rules left. Pass the same idempotency_key when retrying. An owner-level change: Sergio
review_cleaner_rosterSorts one cleaner name found on bookings, as the Get started card's Review your cleaner roster does: action add (adds them to the roster and links their past jobs), not_staff (this name is not one of our cleaners), or link (it is staffId under another spelling; links their past j
answer_google_review_matchSays which client wrote a Google review, as Contacts > Needs review does: client_id links it (also moving a review linked to the wrong client), client_id null says no client wrote it (unlinking a linked review). A link closes that client's review requests. Find reviews and their
edit_contactsApplies one edit to up to 5000 contacts, as the Contacts page's selection bar does: op add_to_list / remove_from_list (listId), add_tags / remove_tags (tagIds), set_service_category (value residential, commercial, both or null), set_lead_source (value thumbtack, google_lsa, yelp,
accept_smaller_syncApplies a booking sync Sergio held back for returning far fewer bookings than it holds, once, and makes that size the new normal, as Accept this smaller sync on Data sources does. job_id is the held sync's import job. Pass the same idempotency_key when retrying. An owner-level ch
upload_spreadsheetUploads a bookings or clients spreadsheet (CSV text) and queues its import, as Upload on the Imports page does; nothing is written to customers until its columns are checked. source is the import source spelling, not a free label: a booking platform's key for its bookings export
start_spreadsheet_importStarts the import of a spreadsheet uploaded with upload_spreadsheet, as Start in the import drawer does: Sergio checks its columns; a confident mapping imports, an uncertain one answers status needs_review and waits for review_import_mapping. Pass the same idempotency_key when re
review_import_mappingSettles an import waiting at the column review, as its review card does: decision approve (the import runs with the confident columns plus keepFields; keepValues and assignValues teach status words) or discard (nothing is written). Pass the same idempotency_key when retrying. An
set_scanner_onTurns one of the business's Scanners on or off, as the On switch in Automations > Scanners does. A Scanner is only ever on or off (never a trial mode). scanner_id comes from read('scanners'). Pass the same idempotency_key when retrying. An owner-level change: Sergio tells the own
create_scannerSaves a new Scanner, as Save on New Scanner does: question (required), and optionally name, inputs, look-again timing, who gets the task, due rule, destination, contact types, and enabled (on or off; there is no trial mode). Pass the same idempotency_key when retrying. An owner-l
edit_scannerChanges a Scanner, as its editor on the Scanners page does: any of name, question, inputs, look-again timing, who gets the task, due rule, destination, contact types, enabled. scanner_id comes from read('scanners'). Pass the same idempotency_key when retrying. An owner-level chan
delete_scannerDeletes a Scanner, as Delete in its editor does; the tasks it already made stay. To pause it instead, use set_scanner_on with enabled false. Pass the same idempotency_key when retrying. An owner-level change: Sergio tells the owner after it is made.
create_contact_listMakes a contact list on the Contacts page, or answers the live one with that name. Add people to it with edit_contacts (op add_to_list). Pass the same idempotency_key when retrying.
edit_contact_listRenames a contact list or archives it (archived: true; its people keep their other lists), as the Contacts page's list menu does. Pass the same idempotency_key when retrying.
create_contact_tagMakes a tag on the Contacts page, or answers the live one with that name. Tag people with edit_contacts (op add_tags). Pass the same idempotency_key when retrying.
edit_contact_tagRenames a Contacts tag or archives it (archived: true), as the Contacts page's tag menu does. Pass the same idempotency_key when retrying.
create_campaignBuilds a campaign as the Campaigns page's New campaign does, always saved as a draft: name, the messages (steps: the opener first, each { template, delayDays?, channel? text | email | call }), offer, audience (audience_filter, or audience_source { kind: list | view | people | fil
edit_campaignEdits a campaign as its builder does (the fields you pass change; the rest stay), or pauses (status paused, pulls back its queued sends) or archives it. Turning automatic sending off (auto_send false) is open. To start or resume one, use start_campaign (your person confirms first
delete_campaignDeletes a campaign as Delete on its card does: its queued messages are pulled back first; messages already sent stay in their threads. It cannot be undone; to stop it for now, edit_campaign with status paused. Pass the same idempotency_key when retrying.
start_campaignStarts a draft or paused campaign on your person's order, as Start campaign does: it enrolls the people waiting and drafts their first message; starting sends nothing by itself. First call without confirm_token: nothing changes; you get a preview (every message's exact words, how
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026
The registry lists no source repo, so we cannot match the publisher (serviche.com) to the code
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 1707 ms (HTTP 200)
No sign-in needed
Read 60 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 2 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.0.2) reached the registry 2 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: World Monitor, Claude Flow, Tldraw
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.
AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.
No README found in the repo