{"name":"com.asyntai/support-agent","slug":"asyntai-support-agent","title":"Asyntai","description":"Run your website's AI support agent: knowledge, conversations, leads and live replies.","url":"https://mcp.market/server/asyntai-support-agent","rating":null,"grade":"A","score":86,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":34,"stars":1,"forks":0,"downloads_week":39,"last_push_at":"2026-09-08T04:22:59.000Z","license":"MIT"},"uptime":{"percent":100,"checks":7,"ok":7,"last_checked_at":"2026-09-21T01:45:55.222Z","last_ok_at":"2026-09-21T01:45:55.222Z","latency_ms":63},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://asyntai.com/documentation/mcp/","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://asyntai.com/mcp"}],"packages":[{"registryType":"npm","identifier":"@asyntai/mcp","version":"1.0.1","transport":{"type":"stdio"}}],"tools":[{"name":"add_image","description":"Add an image the chatbot may show. The description is what the AI reads to decide when the image answers the question, so describe what it shows and when it helps.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"image_url":{"type":"string","description":"Address of the image."},"description":{"type":"string","description":"What the image shows and when the chatbot should send it."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["image_url","description"],"additionalProperties":false}},{"name":"add_knowledge_text","description":"Add a titled block of text to one website's knowledge base. The chatbot can use it in answers as soon as this returns. Adds a new entry; it never replaces an existing one.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"title":{"type":"string","description":"Short name for this entry, shown in the dashboard."},"content":{"type":"string","description":"The text itself. At least 10 characters."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["title","content"],"additionalProperties":false}},{"name":"add_knowledge_url","description":"Fetch one web page and add its text to the knowledge base. Use this for a single page. To take in a whole site, use start_crawl instead.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Full address of the page, including https://."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["url"],"additionalProperties":false}},{"name":"add_product","description":"Add a product the chatbot can show as a card. Needs the Standard plan or higher.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","description":"Product name."},"description":{"type":"string","description":"Short description shown on the card."},"price":{"type":"string","description":"Price as text, for example 29 EUR."},"product_link":{"type":"string","description":"Address of the product page."},"image_url":{"type":"string","description":"Address of the product image."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["name"],"additionalProperties":false}},{"name":"add_webhook","description":"Register a URL to receive events, for example every new message. Returns a signing secret once; store it, because it is never shown again. Needs a paid plan.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"HTTPS address that will receive the events."},"events":{"type":"array","items":{"type":"string"},"description":"Event names to subscribe to."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["url","events"],"additionalProperties":false}},{"name":"ask_ai","description":"Ask one website's chatbot a question and get the answer a real visitor would receive. Use this to test the bot. It spends one message from the account's monthly allowance, and it calls an external model provider.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"message":{"type":"string","description":"The question to ask, as a visitor would type it."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."},"session_id":{"type":"string","description":"Reuse the same value across calls to continue one test conversation. Omit to start a fresh one."}},"required":["message"],"additionalProperties":false}},{"name":"create_website","description":"Add a new website (a new AI agent) to the account and return its embed code. Each plan allows a limited number of websites, and this refuses once that limit is reached. By default it also starts a crawl of the site to build the knowledge base.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"The website address, for example shop.example.com."},"name":{"type":"string","description":"Display name for this agent. Optional."},"crawl":{"type":"boolean","description":"Crawl the site after adding it. True by default."}},"required":["domain"],"additionalProperties":false}},{"name":"delete_image","description":"Remove one image so the chatbot stops showing it.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"image_id":{"type":"integer","description":"Image id from list_images."}},"required":["image_id"],"additionalProperties":false}},{"name":"delete_knowledge_entry","description":"Permanently delete one knowledge base entry and every passage built from it. The chatbot stops using that content immediately. This cannot be undone.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"entry_id":{"type":"string","description":"The entry id from list_knowledge."}},"required":["entry_id"],"additionalProperties":false}},{"name":"delete_product","description":"Remove one product so the chatbot stops offering it.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"product_id":{"type":"integer","description":"Product id from list_products."}},"required":["product_id"],"additionalProperties":false}},{"name":"delete_webhook","description":"Delete one webhook. Events stop reaching that address at once.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"webhook_id":{"type":"string","description":"The webhook id from list_webhooks."}},"required":["webhook_id"],"additionalProperties":false}},{"name":"get_account","description":"Get the signed-in account's email, plan, and how many chat messages it has used against its monthly allowance.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"get_ai_instructions","description":"Get the instructions that shape how one website's chatbot answers: its role, tone and rules.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"additionalProperties":false}},{"name":"get_analytics","description":"Summarise one website's chat activity over a period: conversations, messages, leads captured, escalations, and the countries visitors came from.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."},"days":{"type":"integer","description":"How many days back to measure (1-90, default 30).","minimum":1,"maximum":90}},"additionalProperties":false}},{"name":"get_asyntai_doc","description":"Read one page of Asyntai's documentation in full, given the url or slug from search_asyntai_docs, for example /documentation/mcp/ or just mcp.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"page":{"type":"string","description":"The url or slug of the page to read."}},"required":["page"],"additionalProperties":false}},{"name":"get_conversation","description":"Read the full message history of one conversation, in order, from its session id.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"session_id":{"type":"string","description":"Session id from list_conversations."},"limit":{"type":"integer","description":"How many messages to return (1-200, default 100).","minimum":1,"maximum":200}},"required":["session_id"],"additionalProperties":false}},{"name":"get_daily_report","description":"Say whether the daily email summary is on for one website, and when the last one went out.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"additionalProperties":false}},{"name":"get_knowledge_entry","description":"Read the stored text of one knowledge base entry. Works for the content you supplied: text, documents, spreadsheets, single pages and videos. A website crawl is listed but not exported, because the source is your own public site.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"entry_id":{"type":"string","description":"The entry id from list_knowledge."}},"required":["entry_id"],"additionalProperties":false}},{"name":"get_website","description":"Get the full record for one website: its name, domain, platform, widget id and the embed code to paste into the site.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"additionalProperties":false}},{"name":"get_website_features","description":"Read the plan-gated features for one website: Real-Time Data Feed and its Max tier, Product Cards, Dynamic Images, User Context, Link Parameters, Chat Retention, Chat Categories, Access Tags, Widget Pinning, Zero Retention, PII Redaction and the Output Classifier. Shows current values, which features the plan allows, and the plan each locked feature needs.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"additionalProperties":false}},{"name":"get_widget_settings","description":"Read all appearance and behaviour settings for one website's chat widget: colours, greeting, position, auto-trigger, data collection, bookings and the rest. Also returns which settings this account's plan cannot change, and the plan each of those needs.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"additionalProperties":false}},{"name":"list_active_sessions","description":"List the visitors currently in a chat: which page they are on, their country, how long they have been there, and whether a human has taken the conversation over. Needs the Standard plan or higher.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."},"limit":{"type":"integer","description":"How many sessions to return (1-100, default 25).","minimum":1,"maximum":100}},"additionalProperties":false}},{"name":"list_audit_log","description":"Read the record of what changed on this account: who did it, when, and from where. Recorded on the Enterprise plan only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"days":{"type":"integer","description":"How many days back to read (1-90, default 30).","minimum":1,"maximum":90},"limit":{"type":"integer","description":"How many entries to return (1-100, default 50).","minimum":1,"maximum":100},"category":{"type":"string","description":"Only entries in this category. Optional."}},"additionalProperties":false}},{"name":"list_booking_types","description":"List the appointment types visitors can book, with length, price and how many spots each has. Bookings needs the Standard plan or higher.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"additionalProperties":false}},{"name":"list_conversations","description":"List recent visitor conversations for one website, newest first, with the session id, message count and any email or phone the visitor gave.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."},"days":{"type":"integer","description":"How many days back to look (1-90, default 7).","minimum":1,"maximum":90},"limit":{"type":"integer","description":"How many conversations to return (1-100, default 20).","minimum":1,"maximum":100},"with_leads_only":{"type":"boolean","description":"Only return conversations where the visitor left an email or phone."}},"additionalProperties":false}},{"name":"list_crawls","description":"List recent crawl jobs for one website with their status, how many pages they took, and why each one stopped.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."},"limit":{"type":"integer","description":"How many jobs to return (1-50, default 10).","minimum":1,"maximum":50}},"additionalProperties":false}},{"name":"list_embeds","description":"List the third-party tools embedded in the chat, such as a booking calendar or a form. Embeds needs the Standard plan or higher.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"additionalProperties":false}},{"name":"list_images","description":"List the images the chatbot may show a visitor, with the description that tells it when each one is relevant.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"additionalProperties":false}},{"name":"list_knowledge","description":"List the sources in one website's knowledge base: uploaded text, documents, added pages and crawls.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."},"limit":{"type":"integer","description":"How many entries to return (1-100, default 50).","minimum":1,"maximum":100}},"additionalProperties":false}},{"name":"list_knowledge_gaps","description":"List the Knowledge Gaps Asyntai recorded: real visitor questions the chatbot could not answer. Use this to find what to fill in with add_knowledge_text. Needs the Standard plan or higher.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."},"days":{"type":"integer","description":"How many days back to look (1-90, default 30).","minimum":1,"maximum":90},"limit":{"type":"integer","description":"How many gaps to return (1-100, default 25).","minimum":1,"maximum":100},"include_resolved":{"type":"boolean","description":"Include gaps already marked as resolved. Off by default."}},"additionalProperties":false}},{"name":"list_leads","description":"List the email addresses and phone numbers visitors left in chat, newest first, with the page they were on.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."},"limit":{"type":"integer","description":"How many leads to return (1-100, default 50).","minimum":1,"maximum":100}},"additionalProperties":false}},{"name":"list_plans","description":"List every Asyntai plan with its price, monthly message allowance and the features it includes, alongside the plan this account is on. Use it to answer which plan someone should move to, and why.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"list_products","description":"List the products the chatbot can show as cards, with price and links. Product Cards needs the Standard plan or higher.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"additionalProperties":false}},{"name":"list_team_members","description":"List the people who share this account, what each may reach, and how many seats the plan allows.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"list_tickets","description":"List support tickets raised from chat, with status, priority and the visitor's details. Needs the Standard plan or higher.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."},"status":{"type":"string","description":"Only tickets with this status, for example open or resolved."},"limit":{"type":"integer","description":"How many tickets to return (1-100, default 25).","minimum":1,"maximum":100}},"additionalProperties":false}},{"name":"list_webhooks","description":"List the webhooks registered on this account. The signing secret is never returned; it is shown once, when the webhook is created.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"list_websites","description":"List the websites (AI agents) on this Asyntai account, with the id every other tool takes. Start here when the account may have more than one.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"list_widget_translations","description":"List the languages the chat widget has its own wording for, with the greeting and agent name used in each.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"additionalProperties":false}},{"name":"release_conversation","description":"Hand a taken-over conversation back to the AI, which answers the visitor again from the next message.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"session_id":{"type":"string","description":"Session id of the conversation."}},"required":["session_id"],"additionalProperties":false}},{"name":"search_asyntai_docs","description":"Search Asyntai's own product documentation and get back the pages that match, with a short excerpt from each. Use this to find out how a feature works before changing anything, rather than guessing. This searches Asyntai's documentation, NOT the customer's own content: for that, use search_knowledge_base. Matching is by keyword, so if the results look wrong, search again using Asyntai's own feature names, for example data feed, widget pinning, access tags, AI instructions.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"What to look for."},"limit":{"type":"integer","description":"How many pages to return, 1 to 20. Default 8."}},"required":["query"],"additionalProperties":false}},{"name":"search_knowledge_base","description":"Search one website's knowledge base and return the passages the chatbot would retrieve for this question, with a relevance score. Use this to check what the chatbot knows about a topic. It does not generate an answer and does not use the message allowance.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"What to look for, in plain language."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."},"limit":{"type":"integer","description":"How many passages to return (1-20, default 5).","minimum":1,"maximum":20}},"required":["query"],"additionalProperties":false}},{"name":"send_agent_reply","description":"Send a message, as a human agent, to a real visitor who is chatting right now. Take the conversation over first. The visitor sees this immediately, so show the user the exact wording and get their agreement before calling this.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"session_id":{"type":"string","description":"Session id of the conversation."},"message":{"type":"string","description":"The text to send to the visitor."},"agent_name":{"type":"string","description":"Name shown to the visitor. Defaults to the account's agent name."}},"required":["session_id","message"],"additionalProperties":false}},{"name":"set_access_tags","description":"Switch Access Tags on or off for one website. Turning it on creates the signing secret your server needs to sign visitor entitlements. Needs the Enterprise plan.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"enabled":{"type":"boolean","description":"True to switch it on."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["enabled"],"additionalProperties":false}},{"name":"set_daily_report","description":"Turn the daily email summary of chats on or off for one website. Needs the Standard plan or higher.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"enabled":{"type":"boolean","description":"True to switch it on."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["enabled"],"additionalProperties":false}},{"name":"set_data_feed","description":"Point the chatbot at a product feed and index it. This fetches the feed, checks it really is a feed, clears whatever was indexed before, and rebuilds the index in the background. Send an empty url to remove the feed. Needs the Standard plan or higher.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Address of the product feed. Empty removes it."},"enabled":{"type":"boolean","description":"Whether the chatbot may use the feed."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["url"],"additionalProperties":false}},{"name":"set_data_feed_max","description":"Same as set_data_feed, for the Max tier, which indexes a larger catalogue. Fetches, validates, clears the old index and rebuilds it in the background. Needs the Pro plan or higher.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Address of the product feed. Empty removes it."},"enabled":{"type":"boolean","description":"Whether the chatbot may use the feed."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["url"],"additionalProperties":false}},{"name":"set_knowledge_tags","description":"Restrict who can retrieve one knowledge base entry. A visitor must present a matching tag, signed by your own server, before the chatbot will use the entry. Send an empty list to make it public again. Access Tags needs the Enterprise plan.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"entry_id":{"type":"string","description":"The entry id from list_knowledge."},"access_tags":{"type":"array","items":{"type":"string"},"description":"Tag names. An empty list makes the entry public."}},"required":["entry_id","access_tags"],"additionalProperties":false}},{"name":"set_widget_pinning","description":"Freeze the chat widget at its current version, so the site always serves the same copy with an integrity hash. Turning it on builds that snapshot and changes the embed code. Needs the Enterprise plan.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"enabled":{"type":"boolean","description":"True to pin the widget."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["enabled"],"additionalProperties":false}},{"name":"set_widget_translation","description":"Set the chat widget's greeting, agent name and bubble text for one language. A visitor in that language sees this wording instead of the default.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"language_code":{"type":"string","description":"Language code, for example de or fr."},"ai_support_name":{"type":"string","description":"Agent name shown in the header."},"initial_message":{"type":"string","description":"The greeting the visitor sees first."},"notification_bubble_text":{"type":"string","description":"Text of the notification bubble."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["language_code"],"additionalProperties":false}},{"name":"start_crawl","description":"Crawl a website and add its pages to the knowledge base. Runs in the background; check on it with list_crawls. Each plan caps the pages per crawl, and asking for more than the cap is refused.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."},"start_url":{"type":"string","description":"Where to start. Defaults to the website's own domain."},"max_pages":{"type":"integer","description":"How many pages to take at most. Capped by the plan.","minimum":1}},"additionalProperties":false}},{"name":"take_over_conversation","description":"Stop the AI answering one conversation so a human can reply instead. The visitor is told a person has joined. Use send_agent_reply afterwards, and release_conversation when done. Needs the Standard plan or higher.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"session_id":{"type":"string","description":"Session id from list_active_sessions."}},"required":["session_id"],"additionalProperties":false}},{"name":"update_ai_instructions","description":"Replace one website's AI instructions with new text. This overwrites the current instructions and changes how the live chatbot answers every visitor. Read them with get_ai_instructions first, and show the user what will change before calling this.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"instructions":{"type":"string","description":"The full new instructions text."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["instructions"],"additionalProperties":false}},{"name":"update_website_features","description":"Turn website features on or off and set their values, for example the Real-Time Data Feed URL or the PII Redaction rules. Pass an object of field name to value; read them with get_website_features first. A feature the plan does not include is refused with the plan it needs. These change how the live chatbot behaves for every visitor.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"fields":{"type":"object","description":"Field name to new value, for example real_time_products_enabled set to true."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["fields"],"additionalProperties":false}},{"name":"update_widget_settings","description":"Change one or more chat widget settings. Pass an object of setting name to new value; read them with get_widget_settings first. Changes are live for every visitor at once. Settings the plan does not include are refused with the plan they need, and nothing is written unless every value is valid.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"settings":{"type":"object","description":"Setting name to new value, for example widget_color set to #6366f1."},"website_id":{"type":"integer","description":"Numeric id of the website, from list_websites. Omit to use the account's primary website."}},"required":["settings"],"additionalProperties":false}}],"scan":{"score":86,"grade":"A","scanned_at":"2026-09-20T20:09:19.154Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T20:09:19.107Z","components":{"code":{"score":25,"max":25,"notes":["4 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1504ms"]},"poisoning":{"score":15,"max":15,"notes":["54 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 9 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 13 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","website matches verified namespace"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://asyntai.com/mcp","reachable":true,"authRequired":false,"latencyMs":1504,"serverInfo":{"name":"asyntai","version":"1.0.0"}}],"packages":[{"registryType":"npm","identifier":"@asyntai/mcp","version":"1.0.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":0,"publishedAt":"2026-09-02T08:34:17.839Z","repositoryUrl":"git+https://github.com/asyntai/mcp-bridge.git","weeklyDownloads":39}],"repo":{"found":true,"owner":"asyntai","repo":"mcp-bridge","archived":false,"pushedAt":"2026-09-08T04:22:59Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/235241561?v=4","ownerCreatedAt":"2025-09-30T05:34:03Z","license":"MIT"},"icon":{"url":"https://asyntai.com/static/images/icon-512.png","source":"registry","width":512,"height":512},"presence":{"stars":1,"forks":0,"downloadsWeek":39,"license":"MIT","lastPushAt":"2026-09-08T04:22:59.000Z","score":34}}}},"grade_history":[],"reviews":[]}