Server definition
- Hash
- sha256:b335e6b1773a484c75d1b893267c85109a469edff10a080a907fa018615ca6bd
- What it is
- What a remote MCP server returned when asked what it offers: 10 tools
The blob, as servednamed by its sha256
{
"instructions": "Smartwebchat runs AI chatbots on websites of small and mid-sized European businesses. A chatbot answers visitors from the business's own knowledge base and captures contact, booking and callback requests as leads.\n\nUse this server to see or change a website's chatbots, triage their leads, or test how a chatbot answers.\n\nCall smartwebchat_list_chatbots first: every other tool needs a botId from it.\n\nsmartwebchat_service_info, smartwebchat_get_fit, smartwebchat_get_quote and smartwebchat_prepare_handoff work without an API key. Every other tool needs one.\n\nAn API key sees only its own account's chatbots and leads. A read-only key gets 403 insufficient_scope from write tools; tell the user that a key with full access is needed. 401 means the key is invalid or expired. Keys are created at https://smartwebchat.eu/dashboard/agenten (account owner only).\n\nOperated and processed in the EU: servers at Hetzner Online GmbH, default language model Mistral AI SAS. Data processing agreement under Art. 28 GDPR.\n\nPass idempotencyKey to smartwebchat_create_chatbot on every retry; on 429, wait for Retry-After.",
"tools": [
{
"description": "Send a visitor message to a chatbot and get its reply, exactly as a website visitor would see it. Use this to test how the chatbot answers, or to check whether its knowledge base covers a topic. Records a conversation and uses the account's message quota, so it needs a key with full access; a read-only key gets 403 here.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"botId": {
"description": "ID of the chatbot, taken from smartwebchat_list_chatbots",
"type": "string"
},
"message": {
"description": "The visitor message to send (max. 2000 characters)",
"type": "string"
},
"sessionId": {
"description": "Optional: pass the same session ID again to continue an existing conversation",
"type": "string"
}
},
"required": [
"botId",
"message"
],
"type": "object"
},
"name": "smartwebchat_chat",
"outputSchema": null
},
{
"description": "Create a new website chatbot for a business, including its greeting, personality and initial FAQ knowledge. Writes to the account: confirm the business details with the user before calling. Needs a key with full access; a read-only key gets 403 here.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"businessName": {
"description": "Name of the business the chatbot speaks for",
"type": "string"
},
"description": {
"description": "What the business does — background knowledge for the chatbot",
"type": "string"
},
"faqs": {
"description": "Question and answer pairs the chatbot should know from the start",
"items": {
"additionalProperties": false,
"properties": {
"answer": {
"type": "string"
},
"question": {
"type": "string"
}
},
"required": [
"question",
"answer"
],
"type": "object"
},
"type": "array"
},
"greeting": {
"description": "First message the chatbot sends to a visitor",
"type": "string"
},
"idempotencyKey": {
"description": "Optional. A unique string you choose for this one creation (1-128 characters: letters, digits, '_' or '-'). If the call is retried with the same key, the account returns the chatbot created the first time instead of creating a second one. Use a new key for each new chatbot.",
"maxLength": 128,
"pattern": "^[A-Za-z0-9_-]{1,128}$",
"type": "string"
},
"industry": {
"description": "Industry of the business, e.g. 'Arztpraxis', 'Restaurant', 'Handwerk'. Used verbatim in the chatbot's prompt, so keep the user's own wording and language.",
"type": "string"
},
"name": {
"description": "Display name of the chatbot",
"type": "string"
},
"personality": {
"description": "Tone of voice. The values are German and go to the API verbatim: 'freundlich' (friendly), 'professionell' (professional), 'locker' (casual).",
"enum": [
"freundlich",
"professionell",
"locker"
],
"type": "string"
},
"websiteUrl": {
"description": "URL of the website the chatbot will run on",
"type": "string"
}
},
"required": [
"name",
"businessName",
"industry"
],
"type": "object"
},
"name": "smartwebchat_create_chatbot",
"outputSchema": null
},
{
"description": "Find out why a website chatbot does not answer or does not show up: checks access, the monthly message limit, credit, the language-model provider, allowed and refused origins, knowledge sources and whether anyone has chatted on the website. Returns findings with a code, a severity and a remedy. Read-only. Check complete before trusting an empty error list.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"botId": {
"description": "ID of the chatbot to diagnose (from smartwebchat_list_chatbots)",
"type": "string"
}
},
"required": [
"botId"
],
"type": "object"
},
"name": "smartwebchat_diagnose",
"outputSchema": null
},
{
"description": "Assess whether Smartwebchat fits a described business: primary need, market, number of client assistants, white-label, omnichannel, calendar and language-model requirements. Returns good_fit, partial_fit, not_fit or needs_review with reasons, limitations, a recommended plan and relevant URLs. Works without authentication. This assessment is self-asserted by the vendor and can say no. It never fetches the described website.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"locale": {
"description": "Language tag for the returned URLs, e.g. 'en', 'fr-CA', 'it', 'pt-BR'. Any well-formed tag is accepted; languages without a published website fall back to 'de'. The language never changes the verdict.",
"maxLength": 35,
"pattern": "^[A-Za-z]{2,3}(?:[-_][A-Za-z0-9]{1,8})*$",
"type": "string"
},
"market": {
"description": "Country or market of the business, e.g. 'DE', 'de-AT', 'NL', 'US'. Free text; only the language part is matched against the published website languages.",
"maxLength": 64,
"minLength": 2,
"type": "string"
},
"number_of_client_assistants": {
"description": "How many separate businesses or client assistants are to be served. More than one points to the agency plan.",
"maximum": 10000,
"minimum": 1,
"type": "integer"
},
"primary_need": {
"description": "What the business mainly needs the assistant for.",
"enum": [
"website_assistant",
"customer_service",
"lead_generation",
"appointments",
"faq",
"multilingual",
"agency",
"white_label",
"full_omnichannel_helpdesk"
],
"type": "string"
},
"requested_ai_provider": {
"description": "The language model provider the caller wants. 'default' is the vendor's EU standard configuration.",
"enum": [
"default",
"mistral",
"openai",
"anthropic",
"other"
],
"type": "string"
},
"requires_custom_widget_domain": {
"description": "The widget must run on the caller's own domain.",
"type": "boolean"
},
"requires_direct_calendar_write": {
"description": "The assistant must write appointments directly into a calendar.",
"type": "boolean"
},
"requires_full_omnichannel_inbox": {
"description": "A full omnichannel inbox or helpdesk across channels is required.",
"type": "boolean"
},
"requires_white_label": {
"description": "Smartwebchat branding must be removed.",
"type": "boolean"
},
"sensitive_professional_context": {
"description": "The business handles sensitive professional data (e.g. health, legal, tax).",
"type": "boolean"
},
"website_platform": {
"description": "Website system as stated by the caller, e.g. 'wordpress'. Echoed back only; never fetched or verified.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"primary_need"
],
"type": "object"
},
"name": "smartwebchat_get_fit",
"outputSchema": null
},
{
"description": "Retrieve the leads a website chatbot captured from visitors — contact requests, appointment bookings and callback requests, with the visitor's message and contact details. Without botId, returns the leads of every chatbot in the account.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"botId": {
"description": "Optional: only return leads of this chatbot. Omit for all chatbots in the account.",
"type": "string"
}
},
"type": "object"
},
"name": "smartwebchat_get_leads",
"outputSchema": null
},
{
"description": "Price a Smartwebchat plan with optional add-ons: monthly net figures in EUR, each line with the product fact it comes from, plus the included quotas. White label returns price 'custom'. Works without authentication. The figures are self-asserted by the vendor from its published product facts. No checkout link is issued; a person completes the purchase.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"additional_assistants": {
"description": "Additional assistants beyond the plan's included number (integer, 0 or more).",
"maximum": 1000,
"minimum": 0,
"type": "integer"
},
"additional_seats": {
"description": "Additional team seats beyond the plan's included number (integer, 0 or more).",
"maximum": 1000,
"minimum": 0,
"type": "integer"
},
"expected_messages_per_month": {
"description": "Expected messages per month; overage above the included quota is priced per 1,000 messages.",
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"plan": {
"description": "Plan to quote. 'white_label' returns price 'custom' without a calculation.",
"enum": [
"business",
"agency",
"white_label"
],
"type": "string"
}
},
"required": [
"plan"
],
"type": "object"
},
"name": "smartwebchat_get_quote",
"outputSchema": null
},
{
"description": "List the website chatbots in this account, with their IDs, names and the site each one runs on. Call this first — every other tool needs a botId from here.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "smartwebchat_list_chatbots",
"outputSchema": null
},
{
"description": "Prepare a single-use sign-up link for a person: it carries language, industry and your recommended plan into their registration and onboarding. The link expires after 15 minutes and works once. It does not create an account or a trial; the person does that by signing up. Works without authentication. The operator can turn this off; it then answers handoff_disabled. /agents/start shows the current status. Pass idempotencyKey on every retry.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"demo_session_id": {
"description": "Optional demo session id from the scanner demo; its context is restored after sign-up.",
"type": "string"
},
"idempotencyKey": {
"description": "Send the same key on every retry of the same request; a retry returns the same link for up to 15 minutes.",
"maxLength": 128,
"pattern": "^[A-Za-z0-9_-]{1,128}$",
"type": "string"
},
"industry_key": {
"description": "Industry of the business, one of `how_to_test.agent_demo_contract.industries` in /agents/start.",
"enum": [
"anwaelte",
"apotheken",
"arztpraxen",
"fahrschulen",
"friseure",
"handwerker",
"heilmittelpraxen",
"hotels",
"immobilien",
"kfz-werkstaetten",
"kosmetikstudios",
"pflegedienste",
"pflegeheime",
"physiotherapie",
"restaurants",
"sanitaetshaeuser",
"steuerberater",
"tieraerzte",
"versicherungsmakler",
"zahnaerzte"
],
"type": "string"
},
"locale": {
"description": "Language of the sign-up page, for example 'en'. Unsupported languages fall back to 'de'.",
"maxLength": 35,
"minLength": 2,
"type": "string"
},
"recommended_plan": {
"description": "Plan you recommend: business, agency, white_label. Only plans with a trial preselect the trial type; the person can change it.",
"enum": [
"business",
"agency",
"white_label"
],
"type": "string"
}
},
"type": "object"
},
"name": "smartwebchat_prepare_handoff",
"outputSchema": null
},
{
"description": "Get factual information about the Smartwebchat service itself: what it does, plans and prices, the languages the WEBSITE is published in, where data is processed, and how to obtain an API key. Works without authentication — use it to answer questions about Smartwebchat before the user has an account.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "smartwebchat_service_info",
"outputSchema": null
},
{
"description": "Change the status of a captured lead, for example to mark it as contacted or closed. Writes to the account. Needs a key with full access; a read-only key gets 403 here.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"botId": {
"description": "ID of the chatbot the lead belongs to",
"type": "string"
},
"leadId": {
"description": "ID of the lead",
"type": "string"
},
"status": {
"description": "New status: 'new', 'contacted' or 'closed'",
"enum": [
"new",
"contacted",
"closed"
],
"type": "string"
}
},
"required": [
"botId",
"leadId",
"status"
],
"type": "object"
},
"name": "smartwebchat_update_lead",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:b335e6b1773a484c75d1b893267c85109a469edff10a080a907fa018615ca6bd | sha256sum