Safe Merchant Solutions assistant: search services and knowledge, and request a contact.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Look up one service by name, as returned by list_services, with a short excerpt of the page describing it. If no such service exists this says so plainly and suggests the nearest names — treat that as authoritative: the business does not offer it.
The service name, exactly as returned by list_services. Matching is case-insensitive.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Look up one service by name, as returned by list_services, with a short excerpt of the page describing it. If no such service exists this says so plainly and suggests the nearest names — treat that as authoritative: the business does not offer it.
| Argument | Type | Description |
|---|---|---|
| name* | string | The service name, exactly as returned by list_services. Matching is case-insensitive. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The service name, exactly as returned by list_services. Matching is case-insensitive."
}
}
}List this business's services from its extracted catalogue. This is a complete, enumerable list with a total count — unlike `services`, which is a semantic search returning only the closest matches. Use `filter` to narrow by name and `offset` to page.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many to return (1-100). Default 25. |
| filter | string | null | Optional words to narrow the list; case-insensitive. Each word must appear in the name or summary, in any order — so fewer, more distinctive words match more. Omit it to list the whole catalogue. |
| offset | integer | How many to skip. Pass the nextOffset from the previous call to get the next page. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 25,
"description": "How many to return (1-100). Default 25."
},
"filter": {
"type": [
"string",
"null"
],
"default": null,
"description": "Optional words to narrow the list; case-insensitive. Each word must appear in the name or summary, in any order — so fewer, more distinctive words match more. Omit it to list the whole catalogue."
},
"offset": {
"type": "integer",
"default": 0,
"description": "How many to skip. Pass the nextOffset from the previous call to get the next page."
}
}
}Search this knowledge base for content relevant to a natural-language query. Returns the closest-matching snippets with their source, not an exhaustive list.
| Argument | Type | Description |
|---|---|---|
| topK | integer | Maximum number of results to return (1–20). |
| query* | string | The natural-language query to search for. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"topK": {
"type": "integer",
"default": 8,
"description": "Maximum number of results to return (1–20)."
},
"query": {
"type": "string",
"description": "The natural-language query to search for."
}
}
}Find service offerings relevant to a natural-language query. Returns the closest matches, not a complete list — use `list_services` for the complete catalogue.
| Argument | Type | Description |
|---|---|---|
| topK | integer | Maximum number of results to return (1–20). |
| query* | string | What the user wants — describe the service they're looking for. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"topK": {
"type": "integer",
"default": 8,
"description": "Maximum number of results to return (1–20)."
},
"query": {
"type": "string",
"description": "What the user wants — describe the service they're looking for."
}
}
}Get someone from safe merchant solutions to contact you. At least one of these is required: what_is_your_phone_number_include_country_code, can_you_provide_your_whatsapp_or_telegram_for_easier_communicati. Ask for the others as well and include any the visitor is happy to give — only the group as a whole is mandatory, so never refuse to submit over one they declined.
| Argument | Type | Description |
|---|---|---|
| what_is_your_name* | string | What is your name? |
| what_is_your_phone_number_include_country_code | string | What is your phone number ? (include country code) Always offer this, even after can_you_provide_your_whatsapp_or_telegram_for_easier_communicati has been given — at that point it is optional, so take it if the visitor is willing and move on if they are not. |
| can_you_provide_your_whatsapp_or_telegram_for_easier_communicati | string | Can you provide your whatsapp or telegram for easier communication? Always offer this, even after what_is_your_phone_number_include_country_code has been given — at that point it is optional, so take it if the visitor is willing and move on if they are not. |
{
"type": "object",
"required": [
"what_is_your_name"
],
"properties": {
"what_is_your_name": {
"type": "string",
"description": "What is your name?"
},
"what_is_your_phone_number_include_country_code": {
"type": "string",
"description": "What is your phone number ? (include country code) Always offer this, even after can_you_provide_your_whatsapp_or_telegram_for_easier_communicati has been given — at that point it is optional, so take it if the visitor is willing and move on if they are not."
},
"can_you_provide_your_whatsapp_or_telegram_for_easier_communicati": {
"type": "string",
"description": "Can you provide your whatsapp or telegram for easier communication? Always offer this, even after what_is_your_phone_number_include_country_code has been given — at that point it is optional, so take it if the visitor is willing and move on if they are not."
}
}
}