{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_27pzwc7fyubf","handle":"simafri-suite","url":"https://wellknown.network/agents/simafri-suite","links":{"self":"https://wellknown.network/agents/simafri-suite/record.json","html":"https://wellknown.network/agents/simafri-suite","markdown":"https://wellknown.network/agents/simafri-suite/record.md","api":"https://wellknown.network/api/v1/agents/simafri-suite","status":"https://wellknown.network/api/v1/agents/simafri-suite/status","claim":"https://wellknown.network/agents/simafri-suite/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/simafri-suite/claim.json","badge":"https://wellknown.network/agents/simafri-suite/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/simafri-suite/history","tools":"https://wellknown.network/api/v1/agents/simafri-suite/tools"},"ard":{"identifier":"urn:air:suite-mcp.simafri.com:server:simafri-suite","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Simafri Suite","summary":"Professional email, calendar, contacts and files on your own domain.","description":"Professional email, calendar, contacts and files on your own domain.","publisher":{"name":"com.simafri","url":null},"homepage":"https://www.simafri.com/en/suite/","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://suite-mcp.simafri.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-12T05:43:25.861483Z","publishedAt":"2026-10-12T05:43:25.861483Z","registryName":"com.simafri/professional-email"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"dev.docs-lookup","name":"Documentation Lookup","confidence":1,"provenance":"derived"},{"slug":"productivity.email","name":"Email","confidence":1,"provenance":"derived"},{"slug":"productivity.crm","name":"CRM & Sales","confidence":0.977,"provenance":"derived"},{"slug":"dev.filesystem","name":"Filesystem","confidence":0.859,"provenance":"derived"},{"slug":"communication.notifications","name":"Notifications","confidence":0.583,"provenance":"derived"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":0.525,"provenance":"derived"},{"slug":"communication.customer-support","name":"Customer Support","confidence":0.525,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":0.525,"provenance":"derived"}],"categories":["communication","dev","finance","productivity"],"language":"fr"},"observed":{"status":"live","statusReason":"Responded 7h ago.","lastOkAt":"2026-10-27T04:24:16.760Z","lastProbedAt":"2026-10-27T04:24:16.760Z","statusComputedAt":"2026-10-27T04:27:01.754Z","reliability30d":{"probes":54,"successRate":1,"p50Ms":67,"basis":"mixed","measures":{"availability":"availability (some checks stopped at authentication)","latency":"response time (mixed)","tools":"partially observed","summary":"Some successful checks reached the service and some stopped at an authentication response; figures combine both."},"checks":{"total":55,"ok":55,"authBoundaryOk":47,"serviceOk":8,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-27T11:24:40.255Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":95,"error":null,"detail":{"tools":[{"name":"list_conversations","description":"Lists threads, most recently updated first, with the contact, the subject of the mail and the one the team gave the thread (\"team_subject\", null until rename_co"},{"name":"search_conversations","description":"Finds the threads of one mailbox by their subject, their text, the people on them or the names of the files they carried, best answer first. Call list_sender_ad"},{"name":"get_conversation","description":"Reads one thread whole: every message in order with its direction, its language and its attachments, the contact fiche, the mailbox the thread arrived through, "},{"name":"get_customer_card","description":"Reads the customer card of a helpdesk ticket: what the account's own system (its client area, CRM or ERP) knows about the correspondent, asked live by their add"},{"name":"get_attachment","description":"Reads a file attached to a message and gives back its CONTENT. Text comes back as text, whatever the sender labelled it: a CSV, an XML, a JSON, a Markdown or a "},{"name":"create_attachment_upload","description":"Opens an address to send a file to, so that a message can attach it without carrying it. Answers with an upload_id and an upload_url: PUT the bytes to that addr"},{"name":"send_email","description":"Writes and sends an email to someone, and opens the thread their answer will land in. The text goes out as given, so this is the tool for a message a person has"},{"name":"reply_to_conversation","description":"Sends an answer in an existing thread, written by the caller, from the address the thread arrived through. A draft left pending on that thread is superseded, so"},{"name":"forward_conversation","description":"Passes the last message of a thread on to someone else: they receive the text quoted under its own header, with the files it carried attached again. Their answe"},{"name":"list_drafts","description":"Lists the answers Iris has written, with the thread each belongs to, the contact it goes to and the text as it stands. Filter on \"pending_review\" for the review"},{"name":"approve_draft","description":"Sends a draft to the contact, with the text as given in \"body\" when you edited it. The draft keeps the original wording and the sent message keeps what actually"},{"name":"reject_draft","description":"Turns a draft down and sends nothing. The thread stays open for another answer, by Iris or by a person."},{"name":"list_compose_drafts","description":"Lists the messages begun on the account addresses and never sent, last written first, with their recipients, subject, text and files. These are unsent texts, no"},{"name":"save_compose_draft","description":"Writes down a message being prepared, so it can be finished later from anywhere. Pass \"from\" to start one; pass its id to write into it again, where the fields "},{"name":"delete_compose_draft","description":"Throws away a message that was started and will not be sent. Nothing was ever delivered, so nothing is lost but the text itself."},{"name":"list_scheduled_sends","description":"Lists the messages given a \"send_at\" that have not left yet, soonest first: when each leaves (in the zone of the person you act for), from which address, to who"},{"name":"cancel_scheduled_send","description":"Calls a scheduled message back before it leaves. Nothing is sent and nothing is lost: it becomes an unsent draft again, with its recipients, text and files, who"},{"name":"set_conversation_status","description":"Says where a thread stands, and optionally where it stands in the pipeline. Both are recorded as decided by a person, so a later reading by Iris keeps them. To "},{"name":"assign_conversation","description":"Puts a colleague's name on a thread of a helpdesk queue: what says, to everyone working that queue, that this one is being dealt with and by whom. It hands over"},{"name":"unassign_conversation","description":"Takes the name off a thread: nobody is handling it, and it goes back to the queue for whoever picks it up. It closes no door, the thread having been readable by"},{"name":"add_note","description":"Leaves a note on a thread for the people who work it: shown on the thread screen beside the messages, marked as internal, and in \"notes\" of get_conversation. It"},{"name":"rename_conversation","description":"Gives a thread a subject that says what it is about, for the people who work it: shown in the lists and on the thread screen in place of the subject of the mail"},{"name":"merge_conversation","description":"Merges a helpdesk ticket into another of the same contact, for the client who wrote again beside their case rather than in it. Everything it held moves to the t"},{"name":"file_conversation","description":"Files a thread where you say: \"archive\" puts it away, out of the Inbox and kept for good; \"trash\" throws it away, where it stays readable and can be brought bac"},{"name":"list_folders","description":"Lists the folders the people of a mailbox made in it, beside the six every mailbox has (inbox, sent, drafts, spam, trash, archive), each with its id, its name, "},{"name":"create_folder","description":"Makes a folder in a mailbox, at the top or under another folder, to file threads in. Every holder of the box sees it, in the webmail and in their mail client. A"},{"name":"update_folder","description":"Renames a folder a person made, moves it under another one or to the top, or both; the folders under it follow, and the threads in it stay. What you leave out k"},{"name":"delete_folder","description":"Deletes a folder a person made and the folders under it. Their threads go to the Trash, where they stay readable and restorable for 30 days; nothing is deleted "},{"name":"delete_conversation","description":"Deletes a thread and everything it holds: every message, the drafts written on it, and the files that came with them, down to the bytes they were stored as. Thi"},{"name":"report_spam","description":"Moves a thread of a mailbox into its Spam folder, where it stays readable and can be taken back out, and blocks its sender: their next message is filed in Spam "},{"name":"mark_not_spam","description":"Puts a thread the filter or someone else filed as spam back into the Inbox of its mailbox, and unblocks its sender. A thread that is not in Spam is left where i"},{"name":"unsubscribe","description":"Leaves the mailing list a thread came from (a newsletter, a promotional mailing, a notification list), in the name of the mailbox it arrived in, with what the l"},{"name":"list_blocked_senders","description":"Lists the addresses whose mail this account files straight into Spam, most recently blocked first, with the day each was blocked. A block is what report_spam le"},{"name":"unblock_sender","description":"Lets an address write to the Inbox again: their next message is filed like anybody else's. Threads already sitting in Spam stay where they are, a block having a"},{"name":"list_suppressed_recipients","description":"Lists the addresses that pressed \"this is spam\" on this account's mail, with the day and the label their provider gave it. The account writes to none of them, a"},{"name":"remove_suppression","description":"Takes an address off the list above, so this account can write to them again. Weigh it before calling it: the row means a person pressed \"this is spam\" on mail "},{"name":"mark_read","description":"Clears the bold on a thread for YOU, exactly as opening it on screen does: a colleague reading the same shared mailbox keeps their own. Reading a thread with ge"},{"name":"mark_unread","description":"Puts a thread back among the bold rows, for you alone: what you want to come back to. A colleague sees no change. To put several threads back among the bold row"},{"name":"poll_mailboxes","description":"Reads the account mailboxes right away instead of waiting for the next scheduled round, and answers with what came in. Call it when you expect a message that ha"},{"name":"list_sender_addresses","description":"Lists the inbound addresses of the account, each with the block that closes what is written from it and, for a mailbox, the other names that deliver into it. Se"},{"name":"set_signature","description":"Writes the block that closes what is written from an address. It belongs to the address, so everyone who writes from it signs the same way; it is put into a mes"},{"name":"set_archive_on_reply","description":"Says whether a thread of a mailbox leaves the Inbox for the Archive as soon as the box answers it, whether the answer is written in the webmail, through these t"},{"name":"list_mailboxes","description":"Lists the mailboxes of the account: each one with the people who hold it, the other names that deliver into it and the storage its plan entitles the account to,"},{"name":"add_mailbox_holder","description":"Puts a person of the account on a mailbox, which is what lets them read it. This is how a company takes back the correspondence of someone who has left; it is r"},{"name":"remove_mailbox_holder","description":"Takes a person off a mailbox: they stop reading it from that moment. Nothing is deleted, and a box left with no holder keeps receiving and keeps everything it h"},{"name":"add_mailbox_alias","description":"Points another address at a mailbox: mail sent to it lands in that box, threads there and counts against the storage of the account. An alias has no password, n"},{"name":"remove_mailbox_alias","description":"Stops an address delivering into a box. What already arrived through it stays in the box, and each message still says which name it came in on."},{"name":"list_people","description":"Lists everyone on the account: how they sign in, the rank they hold, and how far they see into the mail. An owner and a manager work every helpdesk queue, which"},{"name":"invite_person","description":"Opens an access for a colleague without a password: an invitation goes to send_to, and whoever opens it chooses the password from its link, which opens for seve"},{"name":"add_queue_operator","description":"Names a person of the account on a helpdesk queue, which is what lets them work it: they see the threads that arrived on that address, and none of the others. T"},{"name":"remove_queue_operator","description":"Takes a person off a helpdesk queue: they stop seeing its threads from that moment. Nothing is deleted, and a queue nobody is named on keeps receiving and is st"},{"name":"list_teams","description":"Lists the teams of the account, the administrative team or the technical one for instance, each with its slug (what assign_conversation and the other team tools"},{"name":"create_team","description":"Opens a team by its name; its slug comes from the name and never changes, even when the team is renamed. A name too close to one the account already has is refu"},{"name":"rename_team","description":"Gives a team a new name. Its slug stays, so every reference to it keeps working."},{"name":"delete_team","description":"Deletes a team. The threads handed to it go back to their queue with nobody's name on them; the threads one of its members took stay on that member's name."},{"name":"add_team_member","description":"Puts a person of the account in a team, whatever their rank. It opens no queue: they see the threads handed to the team only on the queues they already work, wh"},{"name":"remove_team_member","description":"Takes a person out of a team. The threads they took from it stay on their name."},{"name":"list_brands","description":"Lists the brands of the account, its subdivisions, each with the slug the other tools take."},{"name":"list_contacts","description":"Lists the contacts of the account with their fiche, most recently seen first, and searches them by name, company or address."},{"name":"get_contact","description":"Reads one contact whole: their fiche, the addresses they write from and where each field came from."},{"name":"create_contact","description":"Opens a fiche for someone before any exchange has happened. An address the account already holds returns that contact as it stands, so calling it twice keeps on"},{"name":"update_contact","description":"Writes the fiche fields you pass, and leaves the others as they are. What is written here is recorded as coming from a person, which keeps a later reading by Ir"},{"name":"list_knowledge","description":"Lists the playbook docs of the account with their full content: this is the material Iris reads before drafting, and the place to look when an answer needs to s"},{"name":"create_knowledge","description":"Adds a doc to the playbook Iris reads, scoped to the brands and addresses you give it. Use it to record a price list, an argument that works or a rule to follow"},{"name":"update_knowledge","description":"Writes a doc whole, keeping the previous version dated in its history. Send the title and the content each time, plus the brands and addresses it applies to."},{"name":"delete_knowledge","description":"Takes a doc out of the playbook, with every version it ever had. This is FINAL and there is no trash: Iris stops reading it from the next draft on. A doc that i"},{"name":"get_settings","description":"Reads the settings of the account, starting with whether an incoming message has Iris draft an answer on its own. \"own_domain_spoofs\" says what the account does"},{"name":"set_auto_draft","description":"Says whether an incoming message has Iris draft an answer on its own. With it off, a draft is written when someone asks for one from the inbox, which is what ke"}],"toolCount":68,"toolsHash":"1886bc0627d3e5bcb91dfed597514058b9b96a657442876ab0e1d76b4206a64b","serverName":"simafri-suite","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-27T04:24:16.760Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":61,"error":null,"detail":{"tools":[{"name":"list_conversations","description":"Lists threads, most recently updated first, with the contact, the subject of the mail and the one the team gave the thread (\"team_subject\", null until rename_co"},{"name":"search_conversations","description":"Finds the threads of one mailbox by their subject, their text, the people on them or the names of the files they carried, best answer first. Call list_sender_ad"},{"name":"get_conversation","description":"Reads one thread whole: every message in order with its direction, its language and its attachments, the contact fiche, the mailbox the thread arrived through, "},{"name":"get_customer_card","description":"Reads the customer card of a helpdesk ticket: what the account's own system (its client area, CRM or ERP) knows about the correspondent, asked live by their add"},{"name":"get_attachment","description":"Reads a file attached to a message and gives back its CONTENT. Text comes back as text, whatever the sender labelled it: a CSV, an XML, a JSON, a Markdown or a "},{"name":"create_attachment_upload","description":"Opens an address to send a file to, so that a message can attach it without carrying it. Answers with an upload_id and an upload_url: PUT the bytes to that addr"},{"name":"send_email","description":"Writes and sends an email to someone, and opens the thread their answer will land in. The text goes out as given, so this is the tool for a message a person has"},{"name":"reply_to_conversation","description":"Sends an answer in an existing thread, written by the caller, from the address the thread arrived through. A draft left pending on that thread is superseded, so"},{"name":"forward_conversation","description":"Passes the last message of a thread on to someone else: they receive the text quoted under its own header, with the files it carried attached again. Their answe"},{"name":"list_drafts","description":"Lists the answers Iris has written, with the thread each belongs to, the contact it goes to and the text as it stands. Filter on \"pending_review\" for the review"},{"name":"approve_draft","description":"Sends a draft to the contact, with the text as given in \"body\" when you edited it. The draft keeps the original wording and the sent message keeps what actually"},{"name":"reject_draft","description":"Turns a draft down and sends nothing. The thread stays open for another answer, by Iris or by a person."},{"name":"list_compose_drafts","description":"Lists the messages begun on the account addresses and never sent, last written first, with their recipients, subject, text and files. These are unsent texts, no"},{"name":"save_compose_draft","description":"Writes down a message being prepared, so it can be finished later from anywhere. Pass \"from\" to start one; pass its id to write into it again, where the fields "},{"name":"delete_compose_draft","description":"Throws away a message that was started and will not be sent. Nothing was ever delivered, so nothing is lost but the text itself."},{"name":"list_scheduled_sends","description":"Lists the messages given a \"send_at\" that have not left yet, soonest first: when each leaves (in the zone of the person you act for), from which address, to who"},{"name":"cancel_scheduled_send","description":"Calls a scheduled message back before it leaves. Nothing is sent and nothing is lost: it becomes an unsent draft again, with its recipients, text and files, who"},{"name":"set_conversation_status","description":"Says where a thread stands, and optionally where it stands in the pipeline. Both are recorded as decided by a person, so a later reading by Iris keeps them. To "},{"name":"assign_conversation","description":"Puts a colleague's name on a thread of a helpdesk queue: what says, to everyone working that queue, that this one is being dealt with and by whom. It hands over"},{"name":"unassign_conversation","description":"Takes the name off a thread: nobody is handling it, and it goes back to the queue for whoever picks it up. It closes no door, the thread having been readable by"},{"name":"add_note","description":"Leaves a note on a thread for the people who work it: shown on the thread screen beside the messages, marked as internal, and in \"notes\" of get_conversation. It"},{"name":"rename_conversation","description":"Gives a thread a subject that says what it is about, for the people who work it: shown in the lists and on the thread screen in place of the subject of the mail"},{"name":"merge_conversation","description":"Merges a helpdesk ticket into another of the same contact, for the client who wrote again beside their case rather than in it. Everything it held moves to the t"},{"name":"file_conversation","description":"Files a thread where you say: \"archive\" puts it away, out of the Inbox and kept for good; \"trash\" throws it away, where it stays readable and can be brought bac"},{"name":"list_folders","description":"Lists the folders the people of a mailbox made in it, beside the six every mailbox has (inbox, sent, drafts, spam, trash, archive), each with its id, its name, "},{"name":"create_folder","description":"Makes a folder in a mailbox, at the top or under another folder, to file threads in. Every holder of the box sees it, in the webmail and in their mail client. A"},{"name":"update_folder","description":"Renames a folder a person made, moves it under another one or to the top, or both; the folders under it follow, and the threads in it stay. What you leave out k"},{"name":"delete_folder","description":"Deletes a folder a person made and the folders under it. Their threads go to the Trash, where they stay readable and restorable for 30 days; nothing is deleted "},{"name":"delete_conversation","description":"Deletes a thread and everything it holds: every message, the drafts written on it, and the files that came with them, down to the bytes they were stored as. Thi"},{"name":"report_spam","description":"Moves a thread of a mailbox into its Spam folder, where it stays readable and can be taken back out, and blocks its sender: their next message is filed in Spam "},{"name":"mark_not_spam","description":"Puts a thread the filter or someone else filed as spam back into the Inbox of its mailbox, and unblocks its sender. A thread that is not in Spam is left where i"},{"name":"unsubscribe","description":"Leaves the mailing list a thread came from (a newsletter, a promotional mailing, a notification list), in the name of the mailbox it arrived in, with what the l"},{"name":"list_blocked_senders","description":"Lists the addresses whose mail this account files straight into Spam, most recently blocked first, with the day each was blocked. A block is what report_spam le"},{"name":"unblock_sender","description":"Lets an address write to the Inbox again: their next message is filed like anybody else's. Threads already sitting in Spam stay where they are, a block having a"},{"name":"list_suppressed_recipients","description":"Lists the addresses that pressed \"this is spam\" on this account's mail, with the day and the label their provider gave it. The account writes to none of them, a"},{"name":"remove_suppression","description":"Takes an address off the list above, so this account can write to them again. Weigh it before calling it: the row means a person pressed \"this is spam\" on mail "},{"name":"mark_read","description":"Clears the bold on a thread for YOU, exactly as opening it on screen does: a colleague reading the same shared mailbox keeps their own. Reading a thread with ge"},{"name":"mark_unread","description":"Puts a thread back among the bold rows, for you alone: what you want to come back to. A colleague sees no change. To put several threads back among the bold row"},{"name":"poll_mailboxes","description":"Reads the account mailboxes right away instead of waiting for the next scheduled round, and answers with what came in. Call it when you expect a message that ha"},{"name":"list_sender_addresses","description":"Lists the inbound addresses of the account, each with the block that closes what is written from it and, for a mailbox, the other names that deliver into it. Se"},{"name":"set_signature","description":"Writes the block that closes what is written from an address. It belongs to the address, so everyone who writes from it signs the same way; it is put into a mes"},{"name":"set_archive_on_reply","description":"Says whether a thread of a mailbox leaves the Inbox for the Archive as soon as the box answers it, whether the answer is written in the webmail, through these t"},{"name":"list_mailboxes","description":"Lists the mailboxes of the account: each one with the people who hold it, the other names that deliver into it and the storage its plan entitles the account to,"},{"name":"add_mailbox_holder","description":"Puts a person of the account on a mailbox, which is what lets them read it. This is how a company takes back the correspondence of someone who has left; it is r"},{"name":"remove_mailbox_holder","description":"Takes a person off a mailbox: they stop reading it from that moment. Nothing is deleted, and a box left with no holder keeps receiving and keeps everything it h"},{"name":"add_mailbox_alias","description":"Points another address at a mailbox: mail sent to it lands in that box, threads there and counts against the storage of the account. An alias has no password, n"},{"name":"remove_mailbox_alias","description":"Stops an address delivering into a box. What already arrived through it stays in the box, and each message still says which name it came in on."},{"name":"list_people","description":"Lists everyone on the account: how they sign in, the rank they hold, and how far they see into the mail. An owner and a manager work every helpdesk queue, which"},{"name":"invite_person","description":"Opens an access for a colleague without a password: an invitation goes to send_to, and whoever opens it chooses the password from its link, which opens for seve"},{"name":"add_queue_operator","description":"Names a person of the account on a helpdesk queue, which is what lets them work it: they see the threads that arrived on that address, and none of the others. T"},{"name":"remove_queue_operator","description":"Takes a person off a helpdesk queue: they stop seeing its threads from that moment. Nothing is deleted, and a queue nobody is named on keeps receiving and is st"},{"name":"list_teams","description":"Lists the teams of the account, the administrative team or the technical one for instance, each with its slug (what assign_conversation and the other team tools"},{"name":"create_team","description":"Opens a team by its name; its slug comes from the name and never changes, even when the team is renamed. A name too close to one the account already has is refu"},{"name":"rename_team","description":"Gives a team a new name. Its slug stays, so every reference to it keeps working."},{"name":"delete_team","description":"Deletes a team. The threads handed to it go back to their queue with nobody's name on them; the threads one of its members took stay on that member's name."},{"name":"add_team_member","description":"Puts a person of the account in a team, whatever their rank. It opens no queue: they see the threads handed to the team only on the queues they already work, wh"},{"name":"remove_team_member","description":"Takes a person out of a team. The threads they took from it stay on their name."},{"name":"list_brands","description":"Lists the brands of the account, its subdivisions, each with the slug the other tools take."},{"name":"list_contacts","description":"Lists the contacts of the account with their fiche, most recently seen first, and searches them by name, company or address."},{"name":"get_contact","description":"Reads one contact whole: their fiche, the addresses they write from and where each field came from."},{"name":"create_contact","description":"Opens a fiche for someone before any exchange has happened. An address the account already holds returns that contact as it stands, so calling it twice keeps on"},{"name":"update_contact","description":"Writes the fiche fields you pass, and leaves the others as they are. What is written here is recorded as coming from a person, which keeps a later reading by Ir"},{"name":"list_knowledge","description":"Lists the playbook docs of the account with their full content: this is the material Iris reads before drafting, and the place to look when an answer needs to s"},{"name":"create_knowledge","description":"Adds a doc to the playbook Iris reads, scoped to the brands and addresses you give it. Use it to record a price list, an argument that works or a rule to follow"},{"name":"update_knowledge","description":"Writes a doc whole, keeping the previous version dated in its history. Send the title and the content each time, plus the brands and addresses it applies to."},{"name":"delete_knowledge","description":"Takes a doc out of the playbook, with every version it ever had. This is FINAL and there is no trash: Iris stops reading it from the next draft on. A doc that i"},{"name":"get_settings","description":"Reads the settings of the account, starting with whether an incoming message has Iris draft an answer on its own. \"own_domain_spoofs\" says what the account does"},{"name":"set_auto_draft","description":"Says whether an incoming message has Iris draft an answer on its own. With it off, a draft is written when someone asks for one from the inbox, which is what ke"}],"toolCount":68,"toolsHash":"1886bc0627d3e5bcb91dfed597514058b9b96a657442876ab0e1d76b4206a64b","serverName":"simafri-suite","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T21:25:46.093Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":96,"error":null,"detail":{"tools":[{"name":"list_conversations","description":"Lists threads, most recently updated first, with the contact, the subject of the mail and the one the team gave the thread (\"team_subject\", null until rename_co"},{"name":"search_conversations","description":"Finds the threads of one mailbox by their subject, their text, the people on them or the names of the files they carried, best answer first. Call list_sender_ad"},{"name":"get_conversation","description":"Reads one thread whole: every message in order with its direction, its language and its attachments, the contact fiche, the mailbox the thread arrived through, "},{"name":"get_customer_card","description":"Reads the customer card of a helpdesk ticket: what the account's own system (its client area, CRM or ERP) knows about the correspondent, asked live by their add"},{"name":"get_attachment","description":"Reads a file attached to a message and gives back its CONTENT. Text comes back as text, whatever the sender labelled it: a CSV, an XML, a JSON, a Markdown or a "},{"name":"create_attachment_upload","description":"Opens an address to send a file to, so that a message can attach it without carrying it. Answers with an upload_id and an upload_url: PUT the bytes to that addr"},{"name":"send_email","description":"Writes and sends an email to someone, and opens the thread their answer will land in. The text goes out as given, so this is the tool for a message a person has"},{"name":"reply_to_conversation","description":"Sends an answer in an existing thread, written by the caller, from the address the thread arrived through. A draft left pending on that thread is superseded, so"},{"name":"forward_conversation","description":"Passes the last message of a thread on to someone else: they receive the text quoted under its own header, with the files it carried attached again. Their answe"},{"name":"list_drafts","description":"Lists the answers Iris has written, with the thread each belongs to, the contact it goes to and the text as it stands. Filter on \"pending_review\" for the review"},{"name":"approve_draft","description":"Sends a draft to the contact, with the text as given in \"body\" when you edited it. The draft keeps the original wording and the sent message keeps what actually"},{"name":"reject_draft","description":"Turns a draft down and sends nothing. The thread stays open for another answer, by Iris or by a person."},{"name":"list_compose_drafts","description":"Lists the messages begun on the account addresses and never sent, last written first, with their recipients, subject, text and files. These are unsent texts, no"},{"name":"save_compose_draft","description":"Writes down a message being prepared, so it can be finished later from anywhere. Pass \"from\" to start one; pass its id to write into it again, where the fields "},{"name":"delete_compose_draft","description":"Throws away a message that was started and will not be sent. Nothing was ever delivered, so nothing is lost but the text itself."},{"name":"list_scheduled_sends","description":"Lists the messages given a \"send_at\" that have not left yet, soonest first: when each leaves (in the zone of the person you act for), from which address, to who"},{"name":"cancel_scheduled_send","description":"Calls a scheduled message back before it leaves. Nothing is sent and nothing is lost: it becomes an unsent draft again, with its recipients, text and files, who"},{"name":"set_conversation_status","description":"Says where a thread stands, and optionally where it stands in the pipeline. Both are recorded as decided by a person, so a later reading by Iris keeps them. To "},{"name":"assign_conversation","description":"Puts a colleague's name on a thread of a helpdesk queue: what says, to everyone working that queue, that this one is being dealt with and by whom. It hands over"},{"name":"unassign_conversation","description":"Takes the name off a thread: nobody is handling it, and it goes back to the queue for whoever picks it up. It closes no door, the thread having been readable by"},{"name":"add_note","description":"Leaves a note on a thread for the people who work it: shown on the thread screen beside the messages, marked as internal, and in \"notes\" of get_conversation. It"},{"name":"rename_conversation","description":"Gives a thread a subject that says what it is about, for the people who work it: shown in the lists and on the thread screen in place of the subject of the mail"},{"name":"merge_conversation","description":"Merges a helpdesk ticket into another of the same contact, for the client who wrote again beside their case rather than in it. Everything it held moves to the t"},{"name":"file_conversation","description":"Files a thread where you say: \"archive\" puts it away, out of the Inbox and kept for good; \"trash\" throws it away, where it stays readable and can be brought bac"},{"name":"list_folders","description":"Lists the folders the people of a mailbox made in it, beside the six every mailbox has (inbox, sent, drafts, spam, trash, archive), each with its id, its name, "},{"name":"create_folder","description":"Makes a folder in a mailbox, at the top or under another folder, to file threads in. Every holder of the box sees it, in the webmail and in their mail client. A"},{"name":"update_folder","description":"Renames a folder a person made, moves it under another one or to the top, or both; the folders under it follow, and the threads in it stay. What you leave out k"},{"name":"delete_folder","description":"Deletes a folder a person made and the folders under it. Their threads go to the Trash, where they stay readable and restorable for 30 days; nothing is deleted "},{"name":"delete_conversation","description":"Deletes a thread and everything it holds: every message, the drafts written on it, and the files that came with them, down to the bytes they were stored as. Thi"},{"name":"report_spam","description":"Moves a thread of a mailbox into its Spam folder, where it stays readable and can be taken back out, and blocks its sender: their next message is filed in Spam "},{"name":"mark_not_spam","description":"Puts a thread the filter or someone else filed as spam back into the Inbox of its mailbox, and unblocks its sender. A thread that is not in Spam is left where i"},{"name":"unsubscribe","description":"Leaves the mailing list a thread came from (a newsletter, a promotional mailing, a notification list), in the name of the mailbox it arrived in, with what the l"},{"name":"list_blocked_senders","description":"Lists the addresses whose mail this account files straight into Spam, most recently blocked first, with the day each was blocked. A block is what report_spam le"},{"name":"unblock_sender","description":"Lets an address write to the Inbox again: their next message is filed like anybody else's. Threads already sitting in Spam stay where they are, a block having a"},{"name":"list_suppressed_recipients","description":"Lists the addresses that pressed \"this is spam\" on this account's mail, with the day and the label their provider gave it. The account writes to none of them, a"},{"name":"remove_suppression","description":"Takes an address off the list above, so this account can write to them again. Weigh it before calling it: the row means a person pressed \"this is spam\" on mail "},{"name":"mark_read","description":"Clears the bold on a thread for YOU, exactly as opening it on screen does: a colleague reading the same shared mailbox keeps their own. Reading a thread with ge"},{"name":"mark_unread","description":"Puts a thread back among the bold rows, for you alone: what you want to come back to. A colleague sees no change. To put several threads back among the bold row"},{"name":"poll_mailboxes","description":"Reads the account mailboxes right away instead of waiting for the next scheduled round, and answers with what came in. Call it when you expect a message that ha"},{"name":"list_sender_addresses","description":"Lists the inbound addresses of the account, each with the block that closes what is written from it and, for a mailbox, the other names that deliver into it. Se"},{"name":"set_signature","description":"Writes the block that closes what is written from an address. It belongs to the address, so everyone who writes from it signs the same way; it is put into a mes"},{"name":"set_archive_on_reply","description":"Says whether a thread of a mailbox leaves the Inbox for the Archive as soon as the box answers it, whether the answer is written in the webmail, through these t"},{"name":"list_mailboxes","description":"Lists the mailboxes of the account: each one with the people who hold it, the other names that deliver into it and the storage its plan entitles the account to,"},{"name":"add_mailbox_holder","description":"Puts a person of the account on a mailbox, which is what lets them read it. This is how a company takes back the correspondence of someone who has left; it is r"},{"name":"remove_mailbox_holder","description":"Takes a person off a mailbox: they stop reading it from that moment. Nothing is deleted, and a box left with no holder keeps receiving and keeps everything it h"},{"name":"add_mailbox_alias","description":"Points another address at a mailbox: mail sent to it lands in that box, threads there and counts against the storage of the account. An alias has no password, n"},{"name":"remove_mailbox_alias","description":"Stops an address delivering into a box. What already arrived through it stays in the box, and each message still says which name it came in on."},{"name":"list_people","description":"Lists everyone on the account: how they sign in, the rank they hold, and how far they see into the mail. An owner and a manager work every helpdesk queue, which"},{"name":"invite_person","description":"Opens an access for a colleague without a password: an invitation goes to send_to, and whoever opens it chooses the password from its link, which opens for seve"},{"name":"add_queue_operator","description":"Names a person of the account on a helpdesk queue, which is what lets them work it: they see the threads that arrived on that address, and none of the others. T"},{"name":"remove_queue_operator","description":"Takes a person off a helpdesk queue: they stop seeing its threads from that moment. Nothing is deleted, and a queue nobody is named on keeps receiving and is st"},{"name":"list_teams","description":"Lists the teams of the account, the administrative team or the technical one for instance, each with its slug (what assign_conversation and the other team tools"},{"name":"create_team","description":"Opens a team by its name; its slug comes from the name and never changes, even when the team is renamed. A name too close to one the account already has is refu"},{"name":"rename_team","description":"Gives a team a new name. Its slug stays, so every reference to it keeps working."},{"name":"delete_team","description":"Deletes a team. The threads handed to it go back to their queue with nobody's name on them; the threads one of its members took stay on that member's name."},{"name":"add_team_member","description":"Puts a person of the account in a team, whatever their rank. It opens no queue: they see the threads handed to the team only on the queues they already work, wh"},{"name":"remove_team_member","description":"Takes a person out of a team. The threads they took from it stay on their name."},{"name":"list_brands","description":"Lists the brands of the account, its subdivisions, each with the slug the other tools take."},{"name":"list_contacts","description":"Lists the contacts of the account with their fiche, most recently seen first, and searches them by name, company or address."},{"name":"get_contact","description":"Reads one contact whole: their fiche, the addresses they write from and where each field came from."},{"name":"create_contact","description":"Opens a fiche for someone before any exchange has happened. An address the account already holds returns that contact as it stands, so calling it twice keeps on"},{"name":"update_contact","description":"Writes the fiche fields you pass, and leaves the others as they are. What is written here is recorded as coming from a person, which keeps a later reading by Ir"},{"name":"list_knowledge","description":"Lists the playbook docs of the account with their full content: this is the material Iris reads before drafting, and the place to look when an answer needs to s"},{"name":"create_knowledge","description":"Adds a doc to the playbook Iris reads, scoped to the brands and addresses you give it. Use it to record a price list, an argument that works or a rule to follow"},{"name":"update_knowledge","description":"Writes a doc whole, keeping the previous version dated in its history. Send the title and the content each time, plus the brands and addresses it applies to."},{"name":"delete_knowledge","description":"Takes a doc out of the playbook, with every version it ever had. This is FINAL and there is no trash: Iris stops reading it from the next draft on. A doc that i"},{"name":"get_settings","description":"Reads the settings of the account, starting with whether an incoming message has Iris draft an answer on its own. \"own_domain_spoofs\" says what the account does"},{"name":"set_auto_draft","description":"Says whether an incoming message has Iris draft an answer on its own. With it off, a draft is written when someone asks for one from the inbox, which is what ke"}],"toolCount":68,"toolsHash":"1886bc0627d3e5bcb91dfed597514058b9b96a657442876ab0e1d76b4206a64b","serverName":"simafri-suite","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T14:26:42.968Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":58,"error":null,"detail":{"tools":[{"name":"list_conversations","description":"Lists threads, most recently updated first, with the contact, the subject of the mail and the one the team gave the thread (\"team_subject\", null until rename_co"},{"name":"search_conversations","description":"Finds the threads of one mailbox by their subject, their text, the people on them or the names of the files they carried, best answer first. Call list_sender_ad"},{"name":"get_conversation","description":"Reads one thread whole: every message in order with its direction, its language and its attachments, the contact fiche, the mailbox the thread arrived through, "},{"name":"get_customer_card","description":"Reads the customer card of a helpdesk ticket: what the account's own system (its client area, CRM or ERP) knows about the correspondent, asked live by their add"},{"name":"get_attachment","description":"Reads a file attached to a message and gives back its CONTENT. Text comes back as text, whatever the sender labelled it: a CSV, an XML, a JSON, a Markdown or a "},{"name":"create_attachment_upload","description":"Opens an address to send a file to, so that a message can attach it without carrying it. Answers with an upload_id and an upload_url: PUT the bytes to that addr"},{"name":"send_email","description":"Writes and sends an email to someone, and opens the thread their answer will land in. The text goes out as given, so this is the tool for a message a person has"},{"name":"reply_to_conversation","description":"Sends an answer in an existing thread, written by the caller, from the address the thread arrived through. A draft left pending on that thread is superseded, so"},{"name":"forward_conversation","description":"Passes the last message of a thread on to someone else: they receive the text quoted under its own header, with the files it carried attached again. Their answe"},{"name":"list_drafts","description":"Lists the answers Iris has written, with the thread each belongs to, the contact it goes to and the text as it stands. Filter on \"pending_review\" for the review"},{"name":"approve_draft","description":"Sends a draft to the contact, with the text as given in \"body\" when you edited it. The draft keeps the original wording and the sent message keeps what actually"},{"name":"reject_draft","description":"Turns a draft down and sends nothing. The thread stays open for another answer, by Iris or by a person."},{"name":"list_compose_drafts","description":"Lists the messages begun on the account addresses and never sent, last written first, with their recipients, subject, text and files. These are unsent texts, no"},{"name":"save_compose_draft","description":"Writes down a message being prepared, so it can be finished later from anywhere. Pass \"from\" to start one; pass its id to write into it again, where the fields "},{"name":"delete_compose_draft","description":"Throws away a message that was started and will not be sent. Nothing was ever delivered, so nothing is lost but the text itself."},{"name":"list_scheduled_sends","description":"Lists the messages given a \"send_at\" that have not left yet, soonest first: when each leaves (in the zone of the person you act for), from which address, to who"},{"name":"cancel_scheduled_send","description":"Calls a scheduled message back before it leaves. Nothing is sent and nothing is lost: it becomes an unsent draft again, with its recipients, text and files, who"},{"name":"set_conversation_status","description":"Says where a thread stands, and optionally where it stands in the pipeline. Both are recorded as decided by a person, so a later reading by Iris keeps them. To "},{"name":"assign_conversation","description":"Puts a colleague's name on a thread of a helpdesk queue: what says, to everyone working that queue, that this one is being dealt with and by whom. It hands over"},{"name":"unassign_conversation","description":"Takes the name off a thread: nobody is handling it, and it goes back to the queue for whoever picks it up. It closes no door, the thread having been readable by"},{"name":"add_note","description":"Leaves a note on a thread for the people who work it: shown on the thread screen beside the messages, marked as internal, and in \"notes\" of get_conversation. It"},{"name":"rename_conversation","description":"Gives a thread a subject that says what it is about, for the people who work it: shown in the lists and on the thread screen in place of the subject of the mail"},{"name":"merge_conversation","description":"Merges a helpdesk ticket into another of the same contact, for the client who wrote again beside their case rather than in it. Everything it held moves to the t"},{"name":"file_conversation","description":"Files a thread where you say: \"archive\" puts it away, out of the Inbox and kept for good; \"trash\" throws it away, where it stays readable and can be brought bac"},{"name":"list_folders","description":"Lists the folders the people of a mailbox made in it, beside the six every mailbox has (inbox, sent, drafts, spam, trash, archive), each with its id, its name, "},{"name":"create_folder","description":"Makes a folder in a mailbox, at the top or under another folder, to file threads in. Every holder of the box sees it, in the webmail and in their mail client. A"},{"name":"update_folder","description":"Renames a folder a person made, moves it under another one or to the top, or both; the folders under it follow, and the threads in it stay. What you leave out k"},{"name":"delete_folder","description":"Deletes a folder a person made and the folders under it. Their threads go to the Trash, where they stay readable and restorable for 30 days; nothing is deleted "},{"name":"delete_conversation","description":"Deletes a thread and everything it holds: every message, the drafts written on it, and the files that came with them, down to the bytes they were stored as. Thi"},{"name":"report_spam","description":"Moves a thread of a mailbox into its Spam folder, where it stays readable and can be taken back out, and blocks its sender: their next message is filed in Spam "},{"name":"mark_not_spam","description":"Puts a thread the filter or someone else filed as spam back into the Inbox of its mailbox, and unblocks its sender. A thread that is not in Spam is left where i"},{"name":"unsubscribe","description":"Leaves the mailing list a thread came from (a newsletter, a promotional mailing, a notification list), in the name of the mailbox it arrived in, with what the l"},{"name":"list_blocked_senders","description":"Lists the addresses whose mail this account files straight into Spam, most recently blocked first, with the day each was blocked. A block is what report_spam le"},{"name":"unblock_sender","description":"Lets an address write to the Inbox again: their next message is filed like anybody else's. Threads already sitting in Spam stay where they are, a block having a"},{"name":"list_suppressed_recipients","description":"Lists the addresses that pressed \"this is spam\" on this account's mail, with the day and the label their provider gave it. The account writes to none of them, a"},{"name":"remove_suppression","description":"Takes an address off the list above, so this account can write to them again. Weigh it before calling it: the row means a person pressed \"this is spam\" on mail "},{"name":"mark_read","description":"Clears the bold on a thread for YOU, exactly as opening it on screen does: a colleague reading the same shared mailbox keeps their own. Reading a thread with ge"},{"name":"mark_unread","description":"Puts a thread back among the bold rows, for you alone: what you want to come back to. A colleague sees no change. To put several threads back among the bold row"},{"name":"poll_mailboxes","description":"Reads the account mailboxes right away instead of waiting for the next scheduled round, and answers with what came in. Call it when you expect a message that ha"},{"name":"list_sender_addresses","description":"Lists the inbound addresses of the account, each with the block that closes what is written from it and, for a mailbox, the other names that deliver into it. Se"},{"name":"set_signature","description":"Writes the block that closes what is written from an address. It belongs to the address, so everyone who writes from it signs the same way; it is put into a mes"},{"name":"set_archive_on_reply","description":"Says whether a thread of a mailbox leaves the Inbox for the Archive as soon as the box answers it, whether the answer is written in the webmail, through these t"},{"name":"list_mailboxes","description":"Lists the mailboxes of the account: each one with the people who hold it, the other names that deliver into it and the storage its plan entitles the account to,"},{"name":"add_mailbox_holder","description":"Puts a person of the account on a mailbox, which is what lets them read it. This is how a company takes back the correspondence of someone who has left; it is r"},{"name":"remove_mailbox_holder","description":"Takes a person off a mailbox: they stop reading it from that moment. Nothing is deleted, and a box left with no holder keeps receiving and keeps everything it h"},{"name":"add_mailbox_alias","description":"Points another address at a mailbox: mail sent to it lands in that box, threads there and counts against the storage of the account. An alias has no password, n"},{"name":"remove_mailbox_alias","description":"Stops an address delivering into a box. What already arrived through it stays in the box, and each message still says which name it came in on."},{"name":"list_people","description":"Lists everyone on the account: how they sign in, the rank they hold, and how far they see into the mail. An owner and a manager work every helpdesk queue, which"},{"name":"invite_person","description":"Opens an access for a colleague without a password: an invitation goes to send_to, and whoever opens it chooses the password from its link, which opens for seve"},{"name":"add_queue_operator","description":"Names a person of the account on a helpdesk queue, which is what lets them work it: they see the threads that arrived on that address, and none of the others. T"},{"name":"remove_queue_operator","description":"Takes a person off a helpdesk queue: they stop seeing its threads from that moment. Nothing is deleted, and a queue nobody is named on keeps receiving and is st"},{"name":"list_teams","description":"Lists the teams of the account, the administrative team or the technical one for instance, each with its slug (what assign_conversation and the other team tools"},{"name":"create_team","description":"Opens a team by its name; its slug comes from the name and never changes, even when the team is renamed. A name too close to one the account already has is refu"},{"name":"rename_team","description":"Gives a team a new name. Its slug stays, so every reference to it keeps working."},{"name":"delete_team","description":"Deletes a team. The threads handed to it go back to their queue with nobody's name on them; the threads one of its members took stay on that member's name."},{"name":"add_team_member","description":"Puts a person of the account in a team, whatever their rank. It opens no queue: they see the threads handed to the team only on the queues they already work, wh"},{"name":"remove_team_member","description":"Takes a person out of a team. The threads they took from it stay on their name."},{"name":"list_brands","description":"Lists the brands of the account, its subdivisions, each with the slug the other tools take."},{"name":"list_contacts","description":"Lists the contacts of the account with their fiche, most recently seen first, and searches them by name, company or address."},{"name":"get_contact","description":"Reads one contact whole: their fiche, the addresses they write from and where each field came from."},{"name":"create_contact","description":"Opens a fiche for someone before any exchange has happened. An address the account already holds returns that contact as it stands, so calling it twice keeps on"},{"name":"update_contact","description":"Writes the fiche fields you pass, and leaves the others as they are. What is written here is recorded as coming from a person, which keeps a later reading by Ir"},{"name":"list_knowledge","description":"Lists the playbook docs of the account with their full content: this is the material Iris reads before drafting, and the place to look when an answer needs to s"},{"name":"create_knowledge","description":"Adds a doc to the playbook Iris reads, scoped to the brands and addresses you give it. Use it to record a price list, an argument that works or a rule to follow"},{"name":"update_knowledge","description":"Writes a doc whole, keeping the previous version dated in its history. Send the title and the content each time, plus the brands and addresses it applies to."},{"name":"delete_knowledge","description":"Takes a doc out of the playbook, with every version it ever had. This is FINAL and there is no trash: Iris stops reading it from the next draft on. A doc that i"},{"name":"get_settings","description":"Reads the settings of the account, starting with whether an incoming message has Iris draft an answer on its own. \"own_domain_spoofs\" says what the account does"},{"name":"set_auto_draft","description":"Says whether an incoming message has Iris draft an answer on its own. With it off, a draft is written when someone asks for one from the inbox, which is what ke"}],"toolCount":68,"toolsHash":"1886bc0627d3e5bcb91dfed597514058b9b96a657442876ab0e1d76b4206a64b","serverName":"simafri-suite","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T07:24:55.045Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":76,"error":null,"detail":{"tools":[{"name":"list_conversations","description":"Lists threads, most recently updated first, with the contact, the subject of the mail and the one the team gave the thread (\"team_subject\", null until rename_co"},{"name":"search_conversations","description":"Finds the threads of one mailbox by their subject, their text, the people on them or the names of the files they carried, best answer first. Call list_sender_ad"},{"name":"get_conversation","description":"Reads one thread whole: every message in order with its direction, its language and its attachments, the contact fiche, the mailbox the thread arrived through, "},{"name":"get_customer_card","description":"Reads the customer card of a helpdesk ticket: what the account's own system (its client area, CRM or ERP) knows about the correspondent, asked live by their add"},{"name":"get_attachment","description":"Reads a file attached to a message and gives back its CONTENT. Text comes back as text, whatever the sender labelled it: a CSV, an XML, a JSON, a Markdown or a "},{"name":"create_attachment_upload","description":"Opens an address to send a file to, so that a message can attach it without carrying it. Answers with an upload_id and an upload_url: PUT the bytes to that addr"},{"name":"send_email","description":"Writes and sends an email to someone, and opens the thread their answer will land in. The text goes out as given, so this is the tool for a message a person has"},{"name":"reply_to_conversation","description":"Sends an answer in an existing thread, written by the caller, from the address the thread arrived through. A draft left pending on that thread is superseded, so"},{"name":"forward_conversation","description":"Passes the last message of a thread on to someone else: they receive the text quoted under its own header, with the files it carried attached again. Their answe"},{"name":"list_drafts","description":"Lists the answers Iris has written, with the thread each belongs to, the contact it goes to and the text as it stands. Filter on \"pending_review\" for the review"},{"name":"approve_draft","description":"Sends a draft to the contact, with the text as given in \"body\" when you edited it. The draft keeps the original wording and the sent message keeps what actually"},{"name":"reject_draft","description":"Turns a draft down and sends nothing. The thread stays open for another answer, by Iris or by a person."},{"name":"list_compose_drafts","description":"Lists the messages begun on the account addresses and never sent, last written first, with their recipients, subject, text and files. These are unsent texts, no"},{"name":"save_compose_draft","description":"Writes down a message being prepared, so it can be finished later from anywhere. Pass \"from\" to start one; pass its id to write into it again, where the fields "},{"name":"delete_compose_draft","description":"Throws away a message that was started and will not be sent. Nothing was ever delivered, so nothing is lost but the text itself."},{"name":"list_scheduled_sends","description":"Lists the messages given a \"send_at\" that have not left yet, soonest first: when each leaves (in the zone of the person you act for), from which address, to who"},{"name":"cancel_scheduled_send","description":"Calls a scheduled message back before it leaves. Nothing is sent and nothing is lost: it becomes an unsent draft again, with its recipients, text and files, who"},{"name":"set_conversation_status","description":"Says where a thread stands, and optionally where it stands in the pipeline. Both are recorded as decided by a person, so a later reading by Iris keeps them. To "},{"name":"assign_conversation","description":"Puts a colleague's name on a thread of a helpdesk queue: what says, to everyone working that queue, that this one is being dealt with and by whom. It hands over"},{"name":"unassign_conversation","description":"Takes the name off a thread: nobody is handling it, and it goes back to the queue for whoever picks it up. It closes no door, the thread having been readable by"},{"name":"add_note","description":"Leaves a note on a thread for the people who work it: shown on the thread screen beside the messages, marked as internal, and in \"notes\" of get_conversation. It"},{"name":"rename_conversation","description":"Gives a thread a subject that says what it is about, for the people who work it: shown in the lists and on the thread screen in place of the subject of the mail"},{"name":"merge_conversation","description":"Merges a helpdesk ticket into another of the same contact, for the client who wrote again beside their case rather than in it. Everything it held moves to the t"},{"name":"file_conversation","description":"Files a thread where you say: \"archive\" puts it away, out of the Inbox and kept for good; \"trash\" throws it away, where it stays readable and can be brought bac"},{"name":"list_folders","description":"Lists the folders the people of a mailbox made in it, beside the six every mailbox has (inbox, sent, drafts, spam, trash, archive), each with its id, its name, "},{"name":"create_folder","description":"Makes a folder in a mailbox, at the top or under another folder, to file threads in. Every holder of the box sees it, in the webmail and in their mail client. A"},{"name":"update_folder","description":"Renames a folder a person made, moves it under another one or to the top, or both; the folders under it follow, and the threads in it stay. What you leave out k"},{"name":"delete_folder","description":"Deletes a folder a person made and the folders under it. Their threads go to the Trash, where they stay readable and restorable for 30 days; nothing is deleted "},{"name":"delete_conversation","description":"Deletes a thread and everything it holds: every message, the drafts written on it, and the files that came with them, down to the bytes they were stored as. Thi"},{"name":"report_spam","description":"Moves a thread of a mailbox into its Spam folder, where it stays readable and can be taken back out, and blocks its sender: their next message is filed in Spam "},{"name":"mark_not_spam","description":"Puts a thread the filter or someone else filed as spam back into the Inbox of its mailbox, and unblocks its sender. A thread that is not in Spam is left where i"},{"name":"unsubscribe","description":"Leaves the mailing list a thread came from (a newsletter, a promotional mailing, a notification list), in the name of the mailbox it arrived in, with what the l"},{"name":"list_blocked_senders","description":"Lists the addresses whose mail this account files straight into Spam, most recently blocked first, with the day each was blocked. A block is what report_spam le"},{"name":"unblock_sender","description":"Lets an address write to the Inbox again: their next message is filed like anybody else's. Threads already sitting in Spam stay where they are, a block having a"},{"name":"list_suppressed_recipients","description":"Lists the addresses that pressed \"this is spam\" on this account's mail, with the day and the label their provider gave it. The account writes to none of them, a"},{"name":"remove_suppression","description":"Takes an address off the list above, so this account can write to them again. Weigh it before calling it: the row means a person pressed \"this is spam\" on mail "},{"name":"mark_read","description":"Clears the bold on a thread for YOU, exactly as opening it on screen does: a colleague reading the same shared mailbox keeps their own. Reading a thread with ge"},{"name":"mark_unread","description":"Puts a thread back among the bold rows, for you alone: what you want to come back to. A colleague sees no change. To put several threads back among the bold row"},{"name":"poll_mailboxes","description":"Reads the account mailboxes right away instead of waiting for the next scheduled round, and answers with what came in. Call it when you expect a message that ha"},{"name":"list_sender_addresses","description":"Lists the inbound addresses of the account, each with the block that closes what is written from it and, for a mailbox, the other names that deliver into it. Se"},{"name":"set_signature","description":"Writes the block that closes what is written from an address. It belongs to the address, so everyone who writes from it signs the same way; it is put into a mes"},{"name":"set_archive_on_reply","description":"Says whether a thread of a mailbox leaves the Inbox for the Archive as soon as the box answers it, whether the answer is written in the webmail, through these t"},{"name":"list_mailboxes","description":"Lists the mailboxes of the account: each one with the people who hold it, the other names that deliver into it and the storage its plan entitles the account to,"},{"name":"add_mailbox_holder","description":"Puts a person of the account on a mailbox, which is what lets them read it. This is how a company takes back the correspondence of someone who has left; it is r"},{"name":"remove_mailbox_holder","description":"Takes a person off a mailbox: they stop reading it from that moment. Nothing is deleted, and a box left with no holder keeps receiving and keeps everything it h"},{"name":"add_mailbox_alias","description":"Points another address at a mailbox: mail sent to it lands in that box, threads there and counts against the storage of the account. An alias has no password, n"},{"name":"remove_mailbox_alias","description":"Stops an address delivering into a box. What already arrived through it stays in the box, and each message still says which name it came in on."},{"name":"list_people","description":"Lists everyone on the account: how they sign in, the rank they hold, and how far they see into the mail. An owner and a manager work every helpdesk queue, which"},{"name":"invite_person","description":"Opens an access for a colleague without a password: an invitation goes to send_to, and whoever opens it chooses the password from its link, which opens for seve"},{"name":"add_queue_operator","description":"Names a person of the account on a helpdesk queue, which is what lets them work it: they see the threads that arrived on that address, and none of the others. T"},{"name":"remove_queue_operator","description":"Takes a person off a helpdesk queue: they stop seeing its threads from that moment. Nothing is deleted, and a queue nobody is named on keeps receiving and is st"},{"name":"list_teams","description":"Lists the teams of the account, the administrative team or the technical one for instance, each with its slug (what assign_conversation and the other team tools"},{"name":"create_team","description":"Opens a team by its name; its slug comes from the name and never changes, even when the team is renamed. A name too close to one the account already has is refu"},{"name":"rename_team","description":"Gives a team a new name. Its slug stays, so every reference to it keeps working."},{"name":"delete_team","description":"Deletes a team. The threads handed to it go back to their queue with nobody's name on them; the threads one of its members took stay on that member's name."},{"name":"add_team_member","description":"Puts a person of the account in a team, whatever their rank. It opens no queue: they see the threads handed to the team only on the queues they already work, wh"},{"name":"remove_team_member","description":"Takes a person out of a team. The threads they took from it stay on their name."},{"name":"list_brands","description":"Lists the brands of the account, its subdivisions, each with the slug the other tools take."},{"name":"list_contacts","description":"Lists the contacts of the account with their fiche, most recently seen first, and searches them by name, company or address."},{"name":"get_contact","description":"Reads one contact whole: their fiche, the addresses they write from and where each field came from."},{"name":"create_contact","description":"Opens a fiche for someone before any exchange has happened. An address the account already holds returns that contact as it stands, so calling it twice keeps on"},{"name":"update_contact","description":"Writes the fiche fields you pass, and leaves the others as they are. What is written here is recorded as coming from a person, which keeps a later reading by Ir"},{"name":"list_knowledge","description":"Lists the playbook docs of the account with their full content: this is the material Iris reads before drafting, and the place to look when an answer needs to s"},{"name":"create_knowledge","description":"Adds a doc to the playbook Iris reads, scoped to the brands and addresses you give it. Use it to record a price list, an argument that works or a rule to follow"},{"name":"update_knowledge","description":"Writes a doc whole, keeping the previous version dated in its history. Send the title and the content each time, plus the brands and addresses it applies to."},{"name":"delete_knowledge","description":"Takes a doc out of the playbook, with every version it ever had. This is FINAL and there is no trash: Iris stops reading it from the next draft on. A doc that i"},{"name":"get_settings","description":"Reads the settings of the account, starting with whether an incoming message has Iris draft an answer on its own. \"own_domain_spoofs\" says what the account does"},{"name":"set_auto_draft","description":"Says whether an incoming message has Iris draft an answer on its own. With it off, a draft is written when someone asks for one from the inbox, which is what ke"}],"toolCount":68,"toolsHash":"1886bc0627d3e5bcb91dfed597514058b9b96a657442876ab0e1d76b4206a64b","serverName":"simafri-suite","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T00:28:18.320Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":54,"error":null,"detail":{"tools":[{"name":"list_conversations","description":"Lists threads, most recently updated first, with the contact, the subject of the mail and the one the team gave the thread (\"team_subject\", null until rename_co"},{"name":"search_conversations","description":"Finds the threads of one mailbox by their subject, their text, the people on them or the names of the files they carried, best answer first. Call list_sender_ad"},{"name":"get_conversation","description":"Reads one thread whole: every message in order with its direction, its language and its attachments, the contact fiche, the mailbox the thread arrived through, "},{"name":"get_customer_card","description":"Reads the customer card of a helpdesk ticket: what the account's own system (its client area, CRM or ERP) knows about the correspondent, asked live by their add"},{"name":"get_attachment","description":"Reads a file attached to a message and gives back its CONTENT. Text comes back as text, whatever the sender labelled it: a CSV, an XML, a JSON, a Markdown or a "},{"name":"create_attachment_upload","description":"Opens an address to send a file to, so that a message can attach it without carrying it. Answers with an upload_id and an upload_url: PUT the bytes to that addr"},{"name":"send_email","description":"Writes and sends an email to someone, and opens the thread their answer will land in. The text goes out as given, so this is the tool for a message a person has"},{"name":"reply_to_conversation","description":"Sends an answer in an existing thread, written by the caller, from the address the thread arrived through. A draft left pending on that thread is superseded, so"},{"name":"forward_conversation","description":"Passes the last message of a thread on to someone else: they receive the text quoted under its own header, with the files it carried attached again. Their answe"},{"name":"list_drafts","description":"Lists the answers Iris has written, with the thread each belongs to, the contact it goes to and the text as it stands. Filter on \"pending_review\" for the review"},{"name":"approve_draft","description":"Sends a draft to the contact, with the text as given in \"body\" when you edited it. The draft keeps the original wording and the sent message keeps what actually"},{"name":"reject_draft","description":"Turns a draft down and sends nothing. The thread stays open for another answer, by Iris or by a person."},{"name":"list_compose_drafts","description":"Lists the messages begun on the account addresses and never sent, last written first, with their recipients, subject, text and files. These are unsent texts, no"},{"name":"save_compose_draft","description":"Writes down a message being prepared, so it can be finished later from anywhere. Pass \"from\" to start one; pass its id to write into it again, where the fields "},{"name":"delete_compose_draft","description":"Throws away a message that was started and will not be sent. Nothing was ever delivered, so nothing is lost but the text itself."},{"name":"list_scheduled_sends","description":"Lists the messages given a \"send_at\" that have not left yet, soonest first: when each leaves (in the zone of the person you act for), from which address, to who"},{"name":"cancel_scheduled_send","description":"Calls a scheduled message back before it leaves. Nothing is sent and nothing is lost: it becomes an unsent draft again, with its recipients, text and files, who"},{"name":"set_conversation_status","description":"Says where a thread stands, and optionally where it stands in the pipeline. Both are recorded as decided by a person, so a later reading by Iris keeps them. To "},{"name":"assign_conversation","description":"Puts a colleague's name on a thread of a helpdesk queue: what says, to everyone working that queue, that this one is being dealt with and by whom. It hands over"},{"name":"unassign_conversation","description":"Takes the name off a thread: nobody is handling it, and it goes back to the queue for whoever picks it up. It closes no door, the thread having been readable by"},{"name":"add_note","description":"Leaves a note on a thread for the people who work it: shown on the thread screen beside the messages, marked as internal, and in \"notes\" of get_conversation. It"},{"name":"rename_conversation","description":"Gives a thread a subject that says what it is about, for the people who work it: shown in the lists and on the thread screen in place of the subject of the mail"},{"name":"merge_conversation","description":"Merges a helpdesk ticket into another of the same contact, for the client who wrote again beside their case rather than in it. Everything it held moves to the t"},{"name":"file_conversation","description":"Files a thread where you say: \"archive\" puts it away, out of the Inbox and kept for good; \"trash\" throws it away, where it stays readable and can be brought bac"},{"name":"list_folders","description":"Lists the folders the people of a mailbox made in it, beside the six every mailbox has (inbox, sent, drafts, spam, trash, archive), each with its id, its name, "},{"name":"create_folder","description":"Makes a folder in a mailbox, at the top or under another folder, to file threads in. Every holder of the box sees it, in the webmail and in their mail client. A"},{"name":"update_folder","description":"Renames a folder a person made, moves it under another one or to the top, or both; the folders under it follow, and the threads in it stay. What you leave out k"},{"name":"delete_folder","description":"Deletes a folder a person made and the folders under it. Their threads go to the Trash, where they stay readable and restorable for 30 days; nothing is deleted "},{"name":"delete_conversation","description":"Deletes a thread and everything it holds: every message, the drafts written on it, and the files that came with them, down to the bytes they were stored as. Thi"},{"name":"report_spam","description":"Moves a thread of a mailbox into its Spam folder, where it stays readable and can be taken back out, and blocks its sender: their next message is filed in Spam "},{"name":"mark_not_spam","description":"Puts a thread the filter or someone else filed as spam back into the Inbox of its mailbox, and unblocks its sender. A thread that is not in Spam is left where i"},{"name":"unsubscribe","description":"Leaves the mailing list a thread came from (a newsletter, a promotional mailing, a notification list), in the name of the mailbox it arrived in, with what the l"},{"name":"list_blocked_senders","description":"Lists the addresses whose mail this account files straight into Spam, most recently blocked first, with the day each was blocked. A block is what report_spam le"},{"name":"unblock_sender","description":"Lets an address write to the Inbox again: their next message is filed like anybody else's. Threads already sitting in Spam stay where they are, a block having a"},{"name":"list_suppressed_recipients","description":"Lists the addresses that pressed \"this is spam\" on this account's mail, with the day and the label their provider gave it. The account writes to none of them, a"},{"name":"remove_suppression","description":"Takes an address off the list above, so this account can write to them again. Weigh it before calling it: the row means a person pressed \"this is spam\" on mail "},{"name":"mark_read","description":"Clears the bold on a thread for YOU, exactly as opening it on screen does: a colleague reading the same shared mailbox keeps their own. Reading a thread with ge"},{"name":"mark_unread","description":"Puts a thread back among the bold rows, for you alone: what you want to come back to. A colleague sees no change. To put several threads back among the bold row"},{"name":"poll_mailboxes","description":"Reads the account mailboxes right away instead of waiting for the next scheduled round, and answers with what came in. Call it when you expect a message that ha"},{"name":"list_sender_addresses","description":"Lists the inbound addresses of the account, each with the block that closes what is written from it and, for a mailbox, the other names that deliver into it. Se"},{"name":"set_signature","description":"Writes the block that closes what is written from an address. It belongs to the address, so everyone who writes from it signs the same way; it is put into a mes"},{"name":"set_archive_on_reply","description":"Says whether a thread of a mailbox leaves the Inbox for the Archive as soon as the box answers it, whether the answer is written in the webmail, through these t"},{"name":"list_mailboxes","description":"Lists the mailboxes of the account: each one with the people who hold it, the other names that deliver into it and the storage its plan entitles the account to,"},{"name":"add_mailbox_holder","description":"Puts a person of the account on a mailbox, which is what lets them read it. This is how a company takes back the correspondence of someone who has left; it is r"},{"name":"remove_mailbox_holder","description":"Takes a person off a mailbox: they stop reading it from that moment. Nothing is deleted, and a box left with no holder keeps receiving and keeps everything it h"},{"name":"add_mailbox_alias","description":"Points another address at a mailbox: mail sent to it lands in that box, threads there and counts against the storage of the account. An alias has no password, n"},{"name":"remove_mailbox_alias","description":"Stops an address delivering into a box. What already arrived through it stays in the box, and each message still says which name it came in on."},{"name":"list_people","description":"Lists everyone on the account: how they sign in, the rank they hold, and how far they see into the mail. An owner and a manager work every helpdesk queue, which"},{"name":"invite_person","description":"Opens an access for a colleague without a password: an invitation goes to send_to, and whoever opens it chooses the password from its link, which opens for seve"},{"name":"add_queue_operator","description":"Names a person of the account on a helpdesk queue, which is what lets them work it: they see the threads that arrived on that address, and none of the others. T"},{"name":"remove_queue_operator","description":"Takes a person off a helpdesk queue: they stop seeing its threads from that moment. Nothing is deleted, and a queue nobody is named on keeps receiving and is st"},{"name":"list_teams","description":"Lists the teams of the account, the administrative team or the technical one for instance, each with its slug (what assign_conversation and the other team tools"},{"name":"create_team","description":"Opens a team by its name; its slug comes from the name and never changes, even when the team is renamed. A name too close to one the account already has is refu"},{"name":"rename_team","description":"Gives a team a new name. Its slug stays, so every reference to it keeps working."},{"name":"delete_team","description":"Deletes a team. The threads handed to it go back to their queue with nobody's name on them; the threads one of its members took stay on that member's name."},{"name":"add_team_member","description":"Puts a person of the account in a team, whatever their rank. It opens no queue: they see the threads handed to the team only on the queues they already work, wh"},{"name":"remove_team_member","description":"Takes a person out of a team. The threads they took from it stay on their name."},{"name":"list_brands","description":"Lists the brands of the account, its subdivisions, each with the slug the other tools take."},{"name":"list_contacts","description":"Lists the contacts of the account with their fiche, most recently seen first, and searches them by name, company or address."},{"name":"get_contact","description":"Reads one contact whole: their fiche, the addresses they write from and where each field came from."},{"name":"create_contact","description":"Opens a fiche for someone before any exchange has happened. An address the account already holds returns that contact as it stands, so calling it twice keeps on"},{"name":"update_contact","description":"Writes the fiche fields you pass, and leaves the others as they are. What is written here is recorded as coming from a person, which keeps a later reading by Ir"},{"name":"list_knowledge","description":"Lists the playbook docs of the account with their full content: this is the material Iris reads before drafting, and the place to look when an answer needs to s"},{"name":"create_knowledge","description":"Adds a doc to the playbook Iris reads, scoped to the brands and addresses you give it. Use it to record a price list, an argument that works or a rule to follow"},{"name":"update_knowledge","description":"Writes a doc whole, keeping the previous version dated in its history. Send the title and the content each time, plus the brands and addresses it applies to."},{"name":"delete_knowledge","description":"Takes a doc out of the playbook, with every version it ever had. This is FINAL and there is no trash: Iris stops reading it from the next draft on. A doc that i"},{"name":"get_settings","description":"Reads the settings of the account, starting with whether an incoming message has Iris draft an answer on its own. \"own_domain_spoofs\" says what the account does"},{"name":"set_auto_draft","description":"Says whether an incoming message has Iris draft an answer on its own. With it off, a draft is written when someone asks for one from the inbox, which is what ke"}],"toolCount":68,"toolsHash":"1886bc0627d3e5bcb91dfed597514058b9b96a657442876ab0e1d76b4206a64b","serverName":"simafri-suite","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T17:28:52.458Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":77,"error":null,"detail":{"tools":[{"name":"list_conversations","description":"Lists threads, most recently updated first, with the contact, the subject of the mail and the one the team gave the thread (\"team_subject\", null until rename_co"},{"name":"search_conversations","description":"Finds the threads of one mailbox by their subject, their text, the people on them or the names of the files they carried, best answer first. Call list_sender_ad"},{"name":"get_conversation","description":"Reads one thread whole: every message in order with its direction, its language and its attachments, the contact fiche, the mailbox the thread arrived through, "},{"name":"get_customer_card","description":"Reads the customer card of a helpdesk ticket: what the account's own system (its client area, CRM or ERP) knows about the correspondent, asked live by their add"},{"name":"get_attachment","description":"Reads a file attached to a message and gives back its CONTENT. Text comes back as text, whatever the sender labelled it: a CSV, an XML, a JSON, a Markdown or a "},{"name":"create_attachment_upload","description":"Opens an address to send a file to, so that a message can attach it without carrying it. Answers with an upload_id and an upload_url: PUT the bytes to that addr"},{"name":"send_email","description":"Writes and sends an email to someone, and opens the thread their answer will land in. The text goes out as given, so this is the tool for a message a person has"},{"name":"reply_to_conversation","description":"Sends an answer in an existing thread, written by the caller, from the address the thread arrived through. A draft left pending on that thread is superseded, so"},{"name":"forward_conversation","description":"Passes the last message of a thread on to someone else: they receive the text quoted under its own header, with the files it carried attached again. Their answe"},{"name":"list_drafts","description":"Lists the answers Iris has written, with the thread each belongs to, the contact it goes to and the text as it stands. Filter on \"pending_review\" for the review"},{"name":"approve_draft","description":"Sends a draft to the contact, with the text as given in \"body\" when you edited it. The draft keeps the original wording and the sent message keeps what actually"},{"name":"reject_draft","description":"Turns a draft down and sends nothing. The thread stays open for another answer, by Iris or by a person."},{"name":"list_compose_drafts","description":"Lists the messages begun on the account addresses and never sent, last written first, with their recipients, subject, text and files. These are unsent texts, no"},{"name":"save_compose_draft","description":"Writes down a message being prepared, so it can be finished later from anywhere. Pass \"from\" to start one; pass its id to write into it again, where the fields "},{"name":"delete_compose_draft","description":"Throws away a message that was started and will not be sent. Nothing was ever delivered, so nothing is lost but the text itself."},{"name":"list_scheduled_sends","description":"Lists the messages given a \"send_at\" that have not left yet, soonest first: when each leaves (in the zone of the person you act for), from which address, to who"},{"name":"cancel_scheduled_send","description":"Calls a scheduled message back before it leaves. Nothing is sent and nothing is lost: it becomes an unsent draft again, with its recipients, text and files, who"},{"name":"set_conversation_status","description":"Says where a thread stands, and optionally where it stands in the pipeline. Both are recorded as decided by a person, so a later reading by Iris keeps them. To "},{"name":"assign_conversation","description":"Puts a colleague's name on a thread of a helpdesk queue: what says, to everyone working that queue, that this one is being dealt with and by whom. It hands over"},{"name":"unassign_conversation","description":"Takes the name off a thread: nobody is handling it, and it goes back to the queue for whoever picks it up. It closes no door, the thread having been readable by"},{"name":"add_note","description":"Leaves a note on a thread for the people who work it: shown on the thread screen beside the messages, marked as internal, and in \"notes\" of get_conversation. It"},{"name":"rename_conversation","description":"Gives a thread a subject that says what it is about, for the people who work it: shown in the lists and on the thread screen in place of the subject of the mail"},{"name":"merge_conversation","description":"Merges a helpdesk ticket into another of the same contact, for the client who wrote again beside their case rather than in it. Everything it held moves to the t"},{"name":"file_conversation","description":"Files a thread where you say: \"archive\" puts it away, out of the Inbox and kept for good; \"trash\" throws it away, where it stays readable and can be brought bac"},{"name":"list_folders","description":"Lists the folders the people of a mailbox made in it, beside the six every mailbox has (inbox, sent, drafts, spam, trash, archive), each with its id, its name, "},{"name":"create_folder","description":"Makes a folder in a mailbox, at the top or under another folder, to file threads in. Every holder of the box sees it, in the webmail and in their mail client. A"},{"name":"update_folder","description":"Renames a folder a person made, moves it under another one or to the top, or both; the folders under it follow, and the threads in it stay. What you leave out k"},{"name":"delete_folder","description":"Deletes a folder a person made and the folders under it. Their threads go to the Trash, where they stay readable and restorable for 30 days; nothing is deleted "},{"name":"delete_conversation","description":"Deletes a thread and everything it holds: every message, the drafts written on it, and the files that came with them, down to the bytes they were stored as. Thi"},{"name":"report_spam","description":"Moves a thread of a mailbox into its Spam folder, where it stays readable and can be taken back out, and blocks its sender: their next message is filed in Spam "},{"name":"mark_not_spam","description":"Puts a thread the filter or someone else filed as spam back into the Inbox of its mailbox, and unblocks its sender. A thread that is not in Spam is left where i"},{"name":"unsubscribe","description":"Leaves the mailing list a thread came from (a newsletter, a promotional mailing, a notification list), in the name of the mailbox it arrived in, with what the l"},{"name":"list_blocked_senders","description":"Lists the addresses whose mail this account files straight into Spam, most recently blocked first, with the day each was blocked. A block is what report_spam le"},{"name":"unblock_sender","description":"Lets an address write to the Inbox again: their next message is filed like anybody else's. Threads already sitting in Spam stay where they are, a block having a"},{"name":"list_suppressed_recipients","description":"Lists the addresses that pressed \"this is spam\" on this account's mail, with the day and the label their provider gave it. The account writes to none of them, a"},{"name":"remove_suppression","description":"Takes an address off the list above, so this account can write to them again. Weigh it before calling it: the row means a person pressed \"this is spam\" on mail "},{"name":"mark_read","description":"Clears the bold on a thread for YOU, exactly as opening it on screen does: a colleague reading the same shared mailbox keeps their own. Reading a thread with ge"},{"name":"mark_unread","description":"Puts a thread back among the bold rows, for you alone: what you want to come back to. A colleague sees no change. To put several threads back among the bold row"},{"name":"poll_mailboxes","description":"Reads the account mailboxes right away instead of waiting for the next scheduled round, and answers with what came in. Call it when you expect a message that ha"},{"name":"list_sender_addresses","description":"Lists the inbound addresses of the account, each with the block that closes what is written from it and, for a mailbox, the other names that deliver into it. Se"},{"name":"set_signature","description":"Writes the block that closes what is written from an address. It belongs to the address, so everyone who writes from it signs the same way; it is put into a mes"},{"name":"set_archive_on_reply","description":"Says whether a thread of a mailbox leaves the Inbox for the Archive as soon as the box answers it, whether the answer is written in the webmail, through these t"},{"name":"list_mailboxes","description":"Lists the mailboxes of the account: each one with the people who hold it, the other names that deliver into it and the storage its plan entitles the account to,"},{"name":"add_mailbox_holder","description":"Puts a person of the account on a mailbox, which is what lets them read it. This is how a company takes back the correspondence of someone who has left; it is r"},{"name":"remove_mailbox_holder","description":"Takes a person off a mailbox: they stop reading it from that moment. Nothing is deleted, and a box left with no holder keeps receiving and keeps everything it h"},{"name":"add_mailbox_alias","description":"Points another address at a mailbox: mail sent to it lands in that box, threads there and counts against the storage of the account. An alias has no password, n"},{"name":"remove_mailbox_alias","description":"Stops an address delivering into a box. What already arrived through it stays in the box, and each message still says which name it came in on."},{"name":"list_people","description":"Lists everyone on the account: how they sign in, the rank they hold, and how far they see into the mail. An owner and a manager work every helpdesk queue, which"},{"name":"invite_person","description":"Opens an access for a colleague without a password: an invitation goes to send_to, and whoever opens it chooses the password from its link, which opens for seve"},{"name":"add_queue_operator","description":"Names a person of the account on a helpdesk queue, which is what lets them work it: they see the threads that arrived on that address, and none of the others. T"},{"name":"remove_queue_operator","description":"Takes a person off a helpdesk queue: they stop seeing its threads from that moment. Nothing is deleted, and a queue nobody is named on keeps receiving and is st"},{"name":"list_teams","description":"Lists the teams of the account, the administrative team or the technical one for instance, each with its slug (what assign_conversation and the other team tools"},{"name":"create_team","description":"Opens a team by its name; its slug comes from the name and never changes, even when the team is renamed. A name too close to one the account already has is refu"},{"name":"rename_team","description":"Gives a team a new name. Its slug stays, so every reference to it keeps working."},{"name":"delete_team","description":"Deletes a team. The threads handed to it go back to their queue with nobody's name on them; the threads one of its members took stay on that member's name."},{"name":"add_team_member","description":"Puts a person of the account in a team, whatever their rank. It opens no queue: they see the threads handed to the team only on the queues they already work, wh"},{"name":"remove_team_member","description":"Takes a person out of a team. The threads they took from it stay on their name."},{"name":"list_brands","description":"Lists the brands of the account, its subdivisions, each with the slug the other tools take."},{"name":"list_contacts","description":"Lists the contacts of the account with their fiche, most recently seen first, and searches them by name, company or address."},{"name":"get_contact","description":"Reads one contact whole: their fiche, the addresses they write from and where each field came from."},{"name":"create_contact","description":"Opens a fiche for someone before any exchange has happened. An address the account already holds returns that contact as it stands, so calling it twice keeps on"},{"name":"update_contact","description":"Writes the fiche fields you pass, and leaves the others as they are. What is written here is recorded as coming from a person, which keeps a later reading by Ir"},{"name":"list_knowledge","description":"Lists the playbook docs of the account with their full content: this is the material Iris reads before drafting, and the place to look when an answer needs to s"},{"name":"create_knowledge","description":"Adds a doc to the playbook Iris reads, scoped to the brands and addresses you give it. Use it to record a price list, an argument that works or a rule to follow"},{"name":"update_knowledge","description":"Writes a doc whole, keeping the previous version dated in its history. Send the title and the content each time, plus the brands and addresses it applies to."},{"name":"delete_knowledge","description":"Takes a doc out of the playbook, with every version it ever had. This is FINAL and there is no trash: Iris stops reading it from the next draft on. A doc that i"},{"name":"get_settings","description":"Reads the settings of the account, starting with whether an incoming message has Iris draft an answer on its own. \"own_domain_spoofs\" says what the account does"},{"name":"set_auto_draft","description":"Says whether an incoming message has Iris draft an answer on its own. With it off, a draft is written when someone asks for one from the inbox, which is what ke"}],"toolCount":68,"toolsHash":"1886bc0627d3e5bcb91dfed597514058b9b96a657442876ab0e1d76b4206a64b","serverName":"simafri-suite","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T10:28:02.689Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":95,"error":null,"detail":{"tools":[{"name":"list_conversations","description":"Lists threads, most recently updated first, with the contact, the subject of the mail and the one the team gave the thread (\"team_subject\", null until rename_co"},{"name":"search_conversations","description":"Finds the threads of one mailbox by their subject, their text, the people on them or the names of the files they carried, best answer first. Call list_sender_ad"},{"name":"get_conversation","description":"Reads one thread whole: every message in order with its direction, its language and its attachments, the contact fiche, the mailbox the thread arrived through, "},{"name":"get_customer_card","description":"Reads the customer card of a helpdesk ticket: what the account's own system (its client area, CRM or ERP) knows about the correspondent, asked live by their add"},{"name":"get_attachment","description":"Reads a file attached to a message and gives back its CONTENT. Text comes back as text, whatever the sender labelled it: a CSV, an XML, a JSON, a Markdown or a "},{"name":"create_attachment_upload","description":"Opens an address to send a file to, so that a message can attach it without carrying it. Answers with an upload_id and an upload_url: PUT the bytes to that addr"},{"name":"send_email","description":"Writes and sends an email to someone, and opens the thread their answer will land in. The text goes out as given, so this is the tool for a message a person has"},{"name":"reply_to_conversation","description":"Sends an answer in an existing thread, written by the caller, from the address the thread arrived through. A draft left pending on that thread is superseded, so"},{"name":"forward_conversation","description":"Passes the last message of a thread on to someone else: they receive the text quoted under its own header, with the files it carried attached again. Their answe"},{"name":"list_drafts","description":"Lists the answers Iris has written, with the thread each belongs to, the contact it goes to and the text as it stands. Filter on \"pending_review\" for the review"},{"name":"approve_draft","description":"Sends a draft to the contact, with the text as given in \"body\" when you edited it. The draft keeps the original wording and the sent message keeps what actually"},{"name":"reject_draft","description":"Turns a draft down and sends nothing. The thread stays open for another answer, by Iris or by a person."},{"name":"list_compose_drafts","description":"Lists the messages begun on the account addresses and never sent, last written first, with their recipients, subject, text and files. These are unsent texts, no"},{"name":"save_compose_draft","description":"Writes down a message being prepared, so it can be finished later from anywhere. Pass \"from\" to start one; pass its id to write into it again, where the fields "},{"name":"delete_compose_draft","description":"Throws away a message that was started and will not be sent. Nothing was ever delivered, so nothing is lost but the text itself."},{"name":"list_scheduled_sends","description":"Lists the messages given a \"send_at\" that have not left yet, soonest first: when each leaves (in the zone of the person you act for), from which address, to who"},{"name":"cancel_scheduled_send","description":"Calls a scheduled message back before it leaves. Nothing is sent and nothing is lost: it becomes an unsent draft again, with its recipients, text and files, who"},{"name":"set_conversation_status","description":"Says where a thread stands, and optionally where it stands in the pipeline. Both are recorded as decided by a person, so a later reading by Iris keeps them. To "},{"name":"assign_conversation","description":"Puts a colleague's name on a thread of a helpdesk queue: what says, to everyone working that queue, that this one is being dealt with and by whom. It hands over"},{"name":"unassign_conversation","description":"Takes the name off a thread: nobody is handling it, and it goes back to the queue for whoever picks it up. It closes no door, the thread having been readable by"},{"name":"add_note","description":"Leaves a note on a thread for the people who work it: shown on the thread screen beside the messages, marked as internal, and in \"notes\" of get_conversation. It"},{"name":"rename_conversation","description":"Gives a thread a subject that says what it is about, for the people who work it: shown in the lists and on the thread screen in place of the subject of the mail"},{"name":"merge_conversation","description":"Merges a helpdesk ticket into another of the same contact, for the client who wrote again beside their case rather than in it. Everything it held moves to the t"},{"name":"file_conversation","description":"Files a thread where you say: \"archive\" puts it away, out of the Inbox and kept for good; \"trash\" throws it away, where it stays readable and can be brought bac"},{"name":"list_folders","description":"Lists the folders the people of a mailbox made in it, beside the six every mailbox has (inbox, sent, drafts, spam, trash, archive), each with its id, its name, "},{"name":"create_folder","description":"Makes a folder in a mailbox, at the top or under another folder, to file threads in. Every holder of the box sees it, in the webmail and in their mail client. A"},{"name":"update_folder","description":"Renames a folder a person made, moves it under another one or to the top, or both; the folders under it follow, and the threads in it stay. What you leave out k"},{"name":"delete_folder","description":"Deletes a folder a person made and the folders under it. Their threads go to the Trash, where they stay readable and restorable for 30 days; nothing is deleted "},{"name":"delete_conversation","description":"Deletes a thread and everything it holds: every message, the drafts written on it, and the files that came with them, down to the bytes they were stored as. Thi"},{"name":"report_spam","description":"Moves a thread of a mailbox into its Spam folder, where it stays readable and can be taken back out, and blocks its sender: their next message is filed in Spam "},{"name":"mark_not_spam","description":"Puts a thread the filter or someone else filed as spam back into the Inbox of its mailbox, and unblocks its sender. A thread that is not in Spam is left where i"},{"name":"unsubscribe","description":"Leaves the mailing list a thread came from (a newsletter, a promotional mailing, a notification list), in the name of the mailbox it arrived in, with what the l"},{"name":"list_blocked_senders","description":"Lists the addresses whose mail this account files straight into Spam, most recently blocked first, with the day each was blocked. A block is what report_spam le"},{"name":"unblock_sender","description":"Lets an address write to the Inbox again: their next message is filed like anybody else's. Threads already sitting in Spam stay where they are, a block having a"},{"name":"list_suppressed_recipients","description":"Lists the addresses that pressed \"this is spam\" on this account's mail, with the day and the label their provider gave it. The account writes to none of them, a"},{"name":"remove_suppression","description":"Takes an address off the list above, so this account can write to them again. Weigh it before calling it: the row means a person pressed \"this is spam\" on mail "},{"name":"mark_read","description":"Clears the bold on a thread for YOU, exactly as opening it on screen does: a colleague reading the same shared mailbox keeps their own. Reading a thread with ge"},{"name":"mark_unread","description":"Puts a thread back among the bold rows, for you alone: what you want to come back to. A colleague sees no change. To put several threads back among the bold row"},{"name":"poll_mailboxes","description":"Reads the account mailboxes right away instead of waiting for the next scheduled round, and answers with what came in. Call it when you expect a message that ha"},{"name":"list_sender_addresses","description":"Lists the inbound addresses of the account, each with the block that closes what is written from it and, for a mailbox, the other names that deliver into it. Se"},{"name":"set_signature","description":"Writes the block that closes what is written from an address. It belongs to the address, so everyone who writes from it signs the same way; it is put into a mes"},{"name":"set_archive_on_reply","description":"Says whether a thread of a mailbox leaves the Inbox for the Archive as soon as the box answers it, whether the answer is written in the webmail, through these t"},{"name":"list_mailboxes","description":"Lists the mailboxes of the account: each one with the people who hold it, the other names that deliver into it and the storage its plan entitles the account to,"},{"name":"add_mailbox_holder","description":"Puts a person of the account on a mailbox, which is what lets them read it. This is how a company takes back the correspondence of someone who has left; it is r"},{"name":"remove_mailbox_holder","description":"Takes a person off a mailbox: they stop reading it from that moment. Nothing is deleted, and a box left with no holder keeps receiving and keeps everything it h"},{"name":"add_mailbox_alias","description":"Points another address at a mailbox: mail sent to it lands in that box, threads there and counts against the storage of the account. An alias has no password, n"},{"name":"remove_mailbox_alias","description":"Stops an address delivering into a box. What already arrived through it stays in the box, and each message still says which name it came in on."},{"name":"list_people","description":"Lists everyone on the account: how they sign in, the rank they hold, and how far they see into the mail. An owner and a manager work every helpdesk queue, which"},{"name":"invite_person","description":"Opens an access for a colleague without a password: an invitation goes to send_to, and whoever opens it chooses the password from its link, which opens for seve"},{"name":"add_queue_operator","description":"Names a person of the account on a helpdesk queue, which is what lets them work it: they see the threads that arrived on that address, and none of the others. T"},{"name":"remove_queue_operator","description":"Takes a person off a helpdesk queue: they stop seeing its threads from that moment. Nothing is deleted, and a queue nobody is named on keeps receiving and is st"},{"name":"list_teams","description":"Lists the teams of the account, the administrative team or the technical one for instance, each with its slug (what assign_conversation and the other team tools"},{"name":"create_team","description":"Opens a team by its name; its slug comes from the name and never changes, even when the team is renamed. A name too close to one the account already has is refu"},{"name":"rename_team","description":"Gives a team a new name. Its slug stays, so every reference to it keeps working."},{"name":"delete_team","description":"Deletes a team. The threads handed to it go back to their queue with nobody's name on them; the threads one of its members took stay on that member's name."},{"name":"add_team_member","description":"Puts a person of the account in a team, whatever their rank. It opens no queue: they see the threads handed to the team only on the queues they already work, wh"},{"name":"remove_team_member","description":"Takes a person out of a team. The threads they took from it stay on their name."},{"name":"list_brands","description":"Lists the brands of the account, its subdivisions, each with the slug the other tools take."},{"name":"list_contacts","description":"Lists the contacts of the account with their fiche, most recently seen first, and searches them by name, company or address."},{"name":"get_contact","description":"Reads one contact whole: their fiche, the addresses they write from and where each field came from."},{"name":"create_contact","description":"Opens a fiche for someone before any exchange has happened. An address the account already holds returns that contact as it stands, so calling it twice keeps on"},{"name":"update_contact","description":"Writes the fiche fields you pass, and leaves the others as they are. What is written here is recorded as coming from a person, which keeps a later reading by Ir"},{"name":"list_knowledge","description":"Lists the playbook docs of the account with their full content: this is the material Iris reads before drafting, and the place to look when an answer needs to s"},{"name":"create_knowledge","description":"Adds a doc to the playbook Iris reads, scoped to the brands and addresses you give it. Use it to record a price list, an argument that works or a rule to follow"},{"name":"update_knowledge","description":"Writes a doc whole, keeping the previous version dated in its history. Send the title and the content each time, plus the brands and addresses it applies to."},{"name":"delete_knowledge","description":"Takes a doc out of the playbook, with every version it ever had. This is FINAL and there is no trash: Iris stops reading it from the next draft on. A doc that i"},{"name":"get_settings","description":"Reads the settings of the account, starting with whether an incoming message has Iris draft an answer on its own. \"own_domain_spoofs\" says what the account does"},{"name":"set_auto_draft","description":"Says whether an incoming message has Iris draft an answer on its own. With it off, a draft is written when someone asks for one from the inbox, which is what ke"}],"toolCount":68,"toolsHash":"1886bc0627d3e5bcb91dfed597514058b9b96a657442876ab0e1d76b4206a64b","serverName":"simafri-suite","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T03:23:49.239Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":41,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"augees-mcp\", resource_metadata=\"https://suite-mcp.simafri.com/.well-known/oauth-protected-resource/mcp\", scope=\"mcp\""}},{"at":"2026-10-24T19:24:18.513Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":96,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"augees-mcp\", resource_metadata=\"https://suite-mcp.simafri.com/.well-known/oauth-protected-resource/mcp\", scope=\"mcp\""}}],"tools":[{"name":"list_conversations","description":"Lists threads, most recently updated first, with the contact, the subject of the mail and the one the team gave the thread (\"team_subject\", null until rename_co"},{"name":"search_conversations","description":"Finds the threads of one mailbox by their subject, their text, the people on them or the names of the files they carried, best answer first. Call list_sender_ad"},{"name":"get_conversation","description":"Reads one thread whole: every message in order with its direction, its language and its attachments, the contact fiche, the mailbox the thread arrived through, "},{"name":"get_customer_card","description":"Reads the customer card of a helpdesk ticket: what the account's own system (its client area, CRM or ERP) knows about the correspondent, asked live by their add"},{"name":"get_attachment","description":"Reads a file attached to a message and gives back its CONTENT. Text comes back as text, whatever the sender labelled it: a CSV, an XML, a JSON, a Markdown or a "},{"name":"create_attachment_upload","description":"Opens an address to send a file to, so that a message can attach it without carrying it. Answers with an upload_id and an upload_url: PUT the bytes to that addr"},{"name":"send_email","description":"Writes and sends an email to someone, and opens the thread their answer will land in. The text goes out as given, so this is the tool for a message a person has"},{"name":"reply_to_conversation","description":"Sends an answer in an existing thread, written by the caller, from the address the thread arrived through. A draft left pending on that thread is superseded, so"},{"name":"forward_conversation","description":"Passes the last message of a thread on to someone else: they receive the text quoted under its own header, with the files it carried attached again. Their answe"},{"name":"list_drafts","description":"Lists the answers Iris has written, with the thread each belongs to, the contact it goes to and the text as it stands. Filter on \"pending_review\" for the review"},{"name":"approve_draft","description":"Sends a draft to the contact, with the text as given in \"body\" when you edited it. The draft keeps the original wording and the sent message keeps what actually"},{"name":"reject_draft","description":"Turns a draft down and sends nothing. The thread stays open for another answer, by Iris or by a person."},{"name":"list_compose_drafts","description":"Lists the messages begun on the account addresses and never sent, last written first, with their recipients, subject, text and files. These are unsent texts, no"},{"name":"save_compose_draft","description":"Writes down a message being prepared, so it can be finished later from anywhere. Pass \"from\" to start one; pass its id to write into it again, where the fields "},{"name":"delete_compose_draft","description":"Throws away a message that was started and will not be sent. Nothing was ever delivered, so nothing is lost but the text itself."},{"name":"list_scheduled_sends","description":"Lists the messages given a \"send_at\" that have not left yet, soonest first: when each leaves (in the zone of the person you act for), from which address, to who"},{"name":"cancel_scheduled_send","description":"Calls a scheduled message back before it leaves. Nothing is sent and nothing is lost: it becomes an unsent draft again, with its recipients, text and files, who"},{"name":"set_conversation_status","description":"Says where a thread stands, and optionally where it stands in the pipeline. Both are recorded as decided by a person, so a later reading by Iris keeps them. To "},{"name":"assign_conversation","description":"Puts a colleague's name on a thread of a helpdesk queue: what says, to everyone working that queue, that this one is being dealt with and by whom. It hands over"},{"name":"unassign_conversation","description":"Takes the name off a thread: nobody is handling it, and it goes back to the queue for whoever picks it up. It closes no door, the thread having been readable by"},{"name":"add_note","description":"Leaves a note on a thread for the people who work it: shown on the thread screen beside the messages, marked as internal, and in \"notes\" of get_conversation. It"},{"name":"rename_conversation","description":"Gives a thread a subject that says what it is about, for the people who work it: shown in the lists and on the thread screen in place of the subject of the mail"},{"name":"merge_conversation","description":"Merges a helpdesk ticket into another of the same contact, for the client who wrote again beside their case rather than in it. Everything it held moves to the t"},{"name":"file_conversation","description":"Files a thread where you say: \"archive\" puts it away, out of the Inbox and kept for good; \"trash\" throws it away, where it stays readable and can be brought bac"},{"name":"list_folders","description":"Lists the folders the people of a mailbox made in it, beside the six every mailbox has (inbox, sent, drafts, spam, trash, archive), each with its id, its name, "},{"name":"create_folder","description":"Makes a folder in a mailbox, at the top or under another folder, to file threads in. Every holder of the box sees it, in the webmail and in their mail client. A"},{"name":"update_folder","description":"Renames a folder a person made, moves it under another one or to the top, or both; the folders under it follow, and the threads in it stay. What you leave out k"},{"name":"delete_folder","description":"Deletes a folder a person made and the folders under it. Their threads go to the Trash, where they stay readable and restorable for 30 days; nothing is deleted "},{"name":"delete_conversation","description":"Deletes a thread and everything it holds: every message, the drafts written on it, and the files that came with them, down to the bytes they were stored as. Thi"},{"name":"report_spam","description":"Moves a thread of a mailbox into its Spam folder, where it stays readable and can be taken back out, and blocks its sender: their next message is filed in Spam "},{"name":"mark_not_spam","description":"Puts a thread the filter or someone else filed as spam back into the Inbox of its mailbox, and unblocks its sender. A thread that is not in Spam is left where i"},{"name":"unsubscribe","description":"Leaves the mailing list a thread came from (a newsletter, a promotional mailing, a notification list), in the name of the mailbox it arrived in, with what the l"},{"name":"list_blocked_senders","description":"Lists the addresses whose mail this account files straight into Spam, most recently blocked first, with the day each was blocked. A block is what report_spam le"},{"name":"unblock_sender","description":"Lets an address write to the Inbox again: their next message is filed like anybody else's. Threads already sitting in Spam stay where they are, a block having a"},{"name":"list_suppressed_recipients","description":"Lists the addresses that pressed \"this is spam\" on this account's mail, with the day and the label their provider gave it. The account writes to none of them, a"},{"name":"remove_suppression","description":"Takes an address off the list above, so this account can write to them again. Weigh it before calling it: the row means a person pressed \"this is spam\" on mail "},{"name":"mark_read","description":"Clears the bold on a thread for YOU, exactly as opening it on screen does: a colleague reading the same shared mailbox keeps their own. Reading a thread with ge"},{"name":"mark_unread","description":"Puts a thread back among the bold rows, for you alone: what you want to come back to. A colleague sees no change. To put several threads back among the bold row"},{"name":"poll_mailboxes","description":"Reads the account mailboxes right away instead of waiting for the next scheduled round, and answers with what came in. Call it when you expect a message that ha"},{"name":"list_sender_addresses","description":"Lists the inbound addresses of the account, each with the block that closes what is written from it and, for a mailbox, the other names that deliver into it. Se"},{"name":"set_signature","description":"Writes the block that closes what is written from an address. It belongs to the address, so everyone who writes from it signs the same way; it is put into a mes"},{"name":"set_archive_on_reply","description":"Says whether a thread of a mailbox leaves the Inbox for the Archive as soon as the box answers it, whether the answer is written in the webmail, through these t"},{"name":"list_mailboxes","description":"Lists the mailboxes of the account: each one with the people who hold it, the other names that deliver into it and the storage its plan entitles the account to,"},{"name":"add_mailbox_holder","description":"Puts a person of the account on a mailbox, which is what lets them read it. This is how a company takes back the correspondence of someone who has left; it is r"},{"name":"remove_mailbox_holder","description":"Takes a person off a mailbox: they stop reading it from that moment. Nothing is deleted, and a box left with no holder keeps receiving and keeps everything it h"},{"name":"add_mailbox_alias","description":"Points another address at a mailbox: mail sent to it lands in that box, threads there and counts against the storage of the account. An alias has no password, n"},{"name":"remove_mailbox_alias","description":"Stops an address delivering into a box. What already arrived through it stays in the box, and each message still says which name it came in on."},{"name":"list_people","description":"Lists everyone on the account: how they sign in, the rank they hold, and how far they see into the mail. An owner and a manager work every helpdesk queue, which"},{"name":"invite_person","description":"Opens an access for a colleague without a password: an invitation goes to send_to, and whoever opens it chooses the password from its link, which opens for seve"},{"name":"add_queue_operator","description":"Names a person of the account on a helpdesk queue, which is what lets them work it: they see the threads that arrived on that address, and none of the others. T"},{"name":"remove_queue_operator","description":"Takes a person off a helpdesk queue: they stop seeing its threads from that moment. Nothing is deleted, and a queue nobody is named on keeps receiving and is st"},{"name":"list_teams","description":"Lists the teams of the account, the administrative team or the technical one for instance, each with its slug (what assign_conversation and the other team tools"},{"name":"create_team","description":"Opens a team by its name; its slug comes from the name and never changes, even when the team is renamed. A name too close to one the account already has is refu"},{"name":"rename_team","description":"Gives a team a new name. Its slug stays, so every reference to it keeps working."},{"name":"delete_team","description":"Deletes a team. The threads handed to it go back to their queue with nobody's name on them; the threads one of its members took stay on that member's name."},{"name":"add_team_member","description":"Puts a person of the account in a team, whatever their rank. It opens no queue: they see the threads handed to the team only on the queues they already work, wh"},{"name":"remove_team_member","description":"Takes a person out of a team. The threads they took from it stay on their name."},{"name":"list_brands","description":"Lists the brands of the account, its subdivisions, each with the slug the other tools take."},{"name":"list_contacts","description":"Lists the contacts of the account with their fiche, most recently seen first, and searches them by name, company or address."},{"name":"get_contact","description":"Reads one contact whole: their fiche, the addresses they write from and where each field came from."},{"name":"create_contact","description":"Opens a fiche for someone before any exchange has happened. An address the account already holds returns that contact as it stands, so calling it twice keeps on"},{"name":"update_contact","description":"Writes the fiche fields you pass, and leaves the others as they are. What is written here is recorded as coming from a person, which keeps a later reading by Ir"},{"name":"list_knowledge","description":"Lists the playbook docs of the account with their full content: this is the material Iris reads before drafting, and the place to look when an answer needs to s"},{"name":"create_knowledge","description":"Adds a doc to the playbook Iris reads, scoped to the brands and addresses you give it. Use it to record a price list, an argument that works or a rule to follow"},{"name":"update_knowledge","description":"Writes a doc whole, keeping the previous version dated in its history. Send the title and the content each time, plus the brands and addresses it applies to."},{"name":"delete_knowledge","description":"Takes a doc out of the playbook, with every version it ever had. This is FINAL and there is no trash: Iris stops reading it from the next draft on. A doc that i"},{"name":"get_settings","description":"Reads the settings of the account, starting with whether an incoming message has Iris draft an answer on its own. \"own_domain_spoofs\" says what the account does"},{"name":"set_auto_draft","description":"Says whether an incoming message has Iris draft an answer on its own. With it off, a draft is written when someone asks for one from the inbox, which is what ke"}],"package":null,"toolSurface":{"id":"ts_tvwduw8c8yuf","endpointId":"ep_uy684293qvpx","hash":"1886bc0627d3e5bcb91dfed597514058b9b96a657442876ab0e1d76b4206a64b","toolCount":68,"serverName":"simafri-suite","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-25T10:28:02.693Z","lastSeenAt":"2026-10-27T11:24:40.294Z","observations":8,"toolNames":["list_conversations","search_conversations","get_conversation","get_customer_card","get_attachment","create_attachment_upload","send_email","reply_to_conversation","forward_conversation","list_drafts","approve_draft","reject_draft","list_compose_drafts","save_compose_draft","delete_compose_draft","list_scheduled_sends","cancel_scheduled_send","set_conversation_status","assign_conversation","unassign_conversation","add_note","rename_conversation","merge_conversation","file_conversation","list_folders","create_folder","update_folder","delete_folder","delete_conversation","report_spam","mark_not_spam","unsubscribe","list_blocked_senders","unblock_sender","list_suppressed_recipients","remove_suppression","mark_read","mark_unread","poll_mailboxes","list_sender_addresses","set_signature","set_archive_on_reply","list_mailboxes","add_mailbox_holder","remove_mailbox_holder","add_mailbox_alias","remove_mailbox_alias","list_people","invite_person","add_queue_operator","remove_queue_operator","list_teams","create_team","rename_team","delete_team","add_team_member","remove_team_member","list_brands","list_contacts","get_contact","create_contact","update_contact","list_knowledge","create_knowledge","update_knowledge","delete_knowledge","get_settings","set_auto_draft"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_uy684293qvpx","url":"https://suite-mcp.simafri.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-24T19:24:18.519Z","auth":{"observedAt":"2026-10-24T19:24:18.813Z","authRequired":true,"scheme":"Bearer","resourceMetadata":{"url":"https://suite-mcp.simafri.com/.well-known/oauth-protected-resource/mcp","resource":"https://suite-mcp.simafri.com/mcp","authorizationServers":["https://suite.simafri.com"],"scopesSupported":["mcp"]},"authorizationServer":{"url":"https://suite.simafri.com/.well-known/oauth-authorization-server","issuer":"https://suite.simafri.com","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-24T19:24:18.854Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"suite-mcp.simafri.com","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-06T05:45:45.000Z","validTo":"2026-12-05T06:45:41.000Z","daysToExpiry":38,"sanCount":1,"fingerprint256":"60:BA:97:9B:9D:A6:D4:7E:F1:62:BA:92:72:80:4F:C8:53:8E:0B:99:D7:39:D3:89:56:03:6B:1F:4C:11:07:0D"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.simafri/professional-email","url":"https://registry.modelcontextprotocol.io/v0/servers/com.simafri%2Fprofessional-email","firstSeenAt":"2026-10-12T08:21:12.691Z","fetchedAt":"2026-10-25T10:20:54.630Z","normalizedAt":"2026-10-25T10:20:54.630Z"}]},"firstSeenAt":"2026-10-12T08:21:12.691Z","updatedAt":"2026-10-27T04:28:33.373Z"}