{"serverId":"mcp-registry/io.github.deesmo/arch-tools-mcp","tools":[{"name":"browser-task","fixed":{"name":"browser-task","description":"Headless browser automation (click/type/extract) via Playwright — SSRF hardened","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"URL to open"},"text":{"type":"string","description":"Text for type action"},"action":{"enum":["extract","click","type","html"],"type":"string","default":"extract"},"selector":{"type":"string","description":"CSS selector (required for click/type, optional for extract)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":137,"tokensAfter":137},{"name":"check-domain","fixed":{"name":"check-domain","description":"Check if a domain is available or registered via RDAP. No API key needed.","inputSchema":{"type":"object","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":53,"tokensAfter":53},{"name":"convert-format","fixed":{"name":"convert-format","description":"Convert data between JSON, YAML, CSV, and XML formats","inputSchema":{"type":"object","required":["from","to","data"],"properties":{"to":{"enum":["json","yaml","csv","xml"],"type":"string"},"data":{"description":"Data to convert (string or object)","type":"string"},"from":{"enum":["json","yaml","csv","xml"],"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: data. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":98,"tokensAfter":103},{"name":"currency-convert","fixed":{"name":"currency-convert","description":"Convert between currencies using real-time exchange rates (170+ currencies)","inputSchema":{"type":"object","required":["amount","from","to"],"properties":{"to":{"type":"string","maxLength":3,"description":"Target currency code (e.g. EUR)"},"from":{"type":"string","maxLength":3,"description":"Source currency code (e.g. USD)"},"amount":{"type":"number","description":"Amount to convert"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":121,"tokensAfter":121},{"name":"design-create","fixed":{"name":"design-create","description":"Generate designs and images via DALL-E 3","inputSchema":{"type":"object","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":44,"tokensAfter":44},{"name":"domain-check","fixed":{"name":"domain-check","description":"Check domain availability via RDAP","inputSchema":{"type":"object","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":42,"tokensAfter":42},{"name":"email-find","fixed":{"name":"email-find","description":"Find email addresses for a person at a company domain","inputSchema":{"type":"object","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":47,"tokensAfter":47},{"name":"email-send","fixed":{"name":"email-send","description":"Send transactional emails via Resend","inputSchema":{"type":"object","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":42,"tokensAfter":42},{"name":"fact-check","fixed":{"name":"fact-check","description":"Verify the accuracy of a claim. Returns verdict (TRUE/FALSE/MIXED/UNVERIFIED/MISLEADING), confidence score, summary, and supporting/contradicting evidence with sources.","inputSchema":{"type":"object","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":79,"tokensAfter":79},{"name":"image-remove-bg","fixed":{"name":"image-remove-bg","description":"Remove background from any image","inputSchema":{"type":"object","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":42,"tokensAfter":42},{"name":"ip-lookup","fixed":{"name":"ip-lookup","description":"Geolocate any IP address — country, city, timezone, ISP, VPN/proxy detection","inputSchema":{"type":"object","required":["ip"],"properties":{"ip":{"type":"string","description":"IPv4 or IPv6 address to look up"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":70,"tokensAfter":70},{"name":"jsonpath-query","fixed":{"name":"jsonpath-query","description":"Run JSONPath expressions against any JSON payload","inputSchema":{"type":"object","required":["json","path"],"properties":{"json":{"description":"JSON object or string to query","type":"string"},"path":{"type":"string","description":"JSONPath expression starting with $"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: json. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":83,"tokensAfter":88},{"name":"news-search","fixed":{"name":"news-search","description":"Search for recent news articles on any topic. Returns title, URL, description, source, and publication date from Brave News, Tavily, or Serper.","inputSchema":{"type":"object","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"phone-validate","fixed":{"name":"phone-validate","description":"Parse and validate phone numbers in any format — E.164, carrier type, country","inputSchema":{"type":"object","required":["phone"],"properties":{"phone":{"type":"string","description":"Phone number in any format"},"country_code":{"type":"string","maxLength":2,"description":"ISO 3166-1 alpha-2 country code hint (e.g. US)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102},{"name":"readability-score","fixed":{"name":"readability-score","description":"Compute Flesch-Kincaid readability, grade level, word count, and read time","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to analyze"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":68,"tokensAfter":68},{"name":"search-web","fixed":{"name":"search-web","description":"Search the web and return structured results (Tavily/Serper or DuckDuckGo fallback)","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"integer","default":5,"maximum":10,"minimum":1},"query":{"type":"string","description":"Search query"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":86,"tokensAfter":86},{"name":"semantic-search","fixed":{"name":"semantic-search","description":"AI-powered semantic search across web content","inputSchema":{"type":"object","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":46,"tokensAfter":46},{"name":"send-email","fixed":{"name":"send-email","description":"Send transactional emails via Resend — plain text or HTML.","inputSchema":{"type":"object","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":48,"tokensAfter":48},{"name":"session-create","fixed":{"name":"session-create","description":"Create a persistent AI conversation session","inputSchema":{"type":"object","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":45,"tokensAfter":45},{"name":"summarize","fixed":{"name":"summarize","description":"Summarize text in multiple styles: paragraph, bullets, tldr, headline, executive","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":100000,"description":"Text to summarize"},"style":{"enum":["paragraph","bullets","tldr","headline","executive"],"type":"string","default":"paragraph"},"max_length":{"type":"integer","default":200,"maximum":1000,"minimum":50}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"timezone-convert","fixed":{"name":"timezone-convert","description":"Convert a datetime between any two IANA timezones","inputSchema":{"type":"object","required":["to_tz"],"properties":{"to_tz":{"type":"string","description":"Target IANA timezone (e.g. Asia/Tokyo)"},"from_tz":{"type":"string","description":"Source IANA timezone (e.g. America/New_York). Defaults to UTC."},"datetime":{"type":"string","description":"Datetime string to convert (ISO 8601). Defaults to now."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":125,"tokensAfter":125},{"name":"token-lookup","fixed":{"name":"token-lookup","description":"Search for any token by name or ticker, returns CoinGecko IDs","inputSchema":{"type":"object","properties":{},"additionalProperties":true},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":50,"tokensAfter":50},{"name":"validate-data","fixed":{"name":"validate-data","description":"Validate JSON data against a JSON Schema","inputSchema":{"type":"object","required":["schema","data"],"properties":{"data":{"description":"Data to validate","type":"string"},"schema":{"type":"object","description":"JSON Schema to validate against"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: data. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":77,"tokensAfter":81},{"name":"web-search","fixed":{"name":"web-search","description":"Real-time web search with AI-synthesized answer (requires TAVILY_API_KEY)","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","maxLength":500,"description":"Search query"},"max_results":{"type":"integer","default":5,"maximum":10,"minimum":1},"search_depth":{"enum":["basic","advanced"],"type":"string","default":"basic"},"include_answer":{"type":"boolean","default":true,"description":"Include AI-synthesized answer"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":138,"tokensAfter":138},{"name":"webhook-send","fixed":{"name":"webhook-send","description":"POST a JSON payload to any webhook URL","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"Webhook endpoint URL"},"body":{"description":"JSON payload to send","type":"string"},"method":{"enum":["POST","PUT","PATCH"],"type":"string","default":"POST"},"headers":{"type":"object","description":"Optional extra headers (safe headers only)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: body. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":115,"tokensAfter":119},{"name":"whois-lookup","fixed":{"name":"whois-lookup","description":"Look up domain registration info: registrar, created/expires dates, nameservers, status","inputSchema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain name to look up (e.g. google.com)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":78,"tokensAfter":78}],"toolsChanged":26,"tokensSaved":0,"todo":[{"tool":"ai-generate","params":["model","max_tokens"]},{"tool":"barcode-generate","params":["width","format","height","include_text"]},{"tool":"browser-task","params":["action"]},{"tool":"convert-format","params":["to","from"]},{"tool":"diff-text","params":["format"]},{"tool":"generate-hash","params":["algorithm"]},{"tool":"generate-uuid","params":["type","count"]},{"tool":"image-generate","params":["style","width","height","quality"]},{"tool":"ocr-extract","params":["media_type"]},{"tool":"qr-code","params":["width","format","margin"]},{"tool":"rss-parse","params":["limit"]},{"tool":"screenshot-capture","params":["width","height"]},{"tool":"search-web","params":["limit"]},{"tool":"summarize","params":["style","max_length"]},{"tool":"transform-text","params":["mode"]},{"tool":"web-scrape","params":["format"]},{"tool":"web-search","params":["max_results","search_depth"]},{"tool":"webhook-send","params":["method"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}