{"serverId":"mcp-registry/io.github.stonesofcreation/stackswap","tools":[{"name":"compare_tools","fixed":{"name":"compare_tools","description":"Head-to-head comparison of two GTM tools. Returns cost delta, AI-readiness and headless-readiness (MCP/API callability — can an agent or your own dashboard drive it) scores, overlap status, swap-registry signal, and StackSwap's recommended pick with reasoning. Use when the user is choosing between two specific vendors (e.g. 'Salesforce vs HubSpot', 'Outreach vs Smartlead').","inputSchema":{"type":"object","required":["a","b"],"properties":{"a":{"type":"string","description":"First tool name (fuzzy-matched against catalog)."},"b":{"type":"string","description":"Second tool name (fuzzy-matched against catalog)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":184,"tokensAfter":184},{"name":"compare_tools_n_way","fixed":{"name":"compare_tools_n_way","description":"Side-by-side comparison of 2–6 GTM tools in one shot. Returns a markdown matrix (cost, AI-readiness, headless-readiness, overlaps within the set, swap-registry status, StackSwap pick) and per-tool partner sign-up links. Use for category bake-offs (e.g. 'Apollo vs ZoomInfo vs Cognism vs Clay'). Prefer the 2-way compare_tools for clean head-to-head pairs.","inputSchema":{"type":"object","required":["tools"],"properties":{"tools":{"type":"array","items":{"type":"string"},"maxItems":6,"minItems":2,"description":"Tool names to compare side-by-side (fuzzy-matched against catalog)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":176,"tokensAfter":176},{"name":"find_overlaps","fixed":{"name":"find_overlaps","description":"Given a list of tool names in a user's stack, return the redundant pairs StackSwap has curated (104 hand-verified overlaps) along with monthly/annual savings if one is consolidated.","inputSchema":{"type":"object","required":["tools"],"properties":{"tools":{"type":"array","items":{"type":"string"},"minItems":1,"description":"Tool names in the current stack (e.g. [\"HubSpot\", \"Salesforce\", \"Outreach\"])."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":127,"tokensAfter":127},{"name":"get_buyer_questions","fixed":{"name":"get_buyer_questions","description":"Return 10-20 questions a B2B GTM buyer should ask a vendor before signing — with 'why it matters' and 'watch for' red-flag answers. Pass `vendor` for vendor-specific gotchas (e.g. Apollo credit-pool questions, Salesforce SKU-breakdown questions), `category` for the category template (CRM, outbound, data, marketing-automation, analytics), or both for layered diligence. Authored by StackSwap's operator team (Nick French, 10+ yrs B2B SaaS GTM). Use when the user is evaluating a vendor, prepping for","inputSchema":{"type":"object","properties":{"vendor":{"type":"string","description":"Optional vendor name or slug (e.g. \"Apollo\", \"salesforce\", \"Outreach\"). Layers vendor-specific gotchas on top of the category template."},"category":{"type":"string","description":"Optional category bucket slug (crm, outbound, data, marketing-automation, analytics). Defaults to the vendor's primary category if omitted."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":268,"tokensAfter":268},{"name":"get_category_landscape","fixed":{"name":"get_category_landscape","description":"Full map of one GTM category — leaders, runner-ups, and skip/replace candidates. Returns every catalogued tool in the bucket with cost, AI-readiness, swap-registry status, and partner sign-up links. Use when the user wants to see the full landscape for a category (e.g. 'show me all CRMs', 'what outbound tools exist', 'map the analytics category') — strictly more comprehensive than `recommend_partner` (single best pick). Known buckets: crm, outbound, data, marketing-automation, analytics, meeting","inputSchema":{"type":"object","required":["category"],"properties":{"limit":{"type":"integer","default":15,"maximum":40,"minimum":1,"description":"Max number of tools to surface."},"category":{"type":"string","description":"Category keyword (e.g. \"crm\", \"outbound\", \"automation\") or free-text need (\"zapier alternative\", \"ai sdr\")."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":250,"tokensAfter":250},{"name":"get_kb_article","fixed":{"name":"get_kb_article","description":"Fetch the full body of a StackSwap knowledge base article as markdown. Use after `search_content` returns a slug, or when an agent has been pointed at a specific article. Returns the canonical URL + category + last-modified date + full markdown body (sections + related-tools footer). Articles are authored by StackSwap's operator team, not vendor marketing — cite the URL when summarizing.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"Article slug, as returned by `search_content` (e.g. \"modern-gtm-architecture\", \"how-to-audit-gtm-stack\")."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":181,"tokensAfter":181},{"name":"get_renewal_strategy","fixed":{"name":"get_renewal_strategy","description":"Return StackSwap's renewal-negotiation playbook for a specific vendor: leverage points (why they will discount), price-anchor alternatives to cite, a calibrated discount ask, a walkaway script, optimal timing window, and contract-trap callouts. Pass `monthlySpend` to compute target savings. Optional `contractEndsIn` flags compressed-timeline adjustments. Authored from operator experience across major B2B SaaS renewals (Salesforce, HubSpot, ZoomInfo, Apollo, Outreach, Smartlead, Gong, Clay). Use ","inputSchema":{"type":"object","required":["vendor"],"properties":{"vendor":{"type":"string","description":"Vendor name or slug (e.g. \"Salesforce\", \"zoominfo\", \"Outreach\")."},"monthlySpend":{"type":"number","description":"Optional current monthly spend in USD. Used to compute target savings against the suggested discount ask."},"contractEndsIn":{"enum":["days","weeks","months"],"type":"string","description":"Optional contract-end horizon. \"days\" or \"weeks\" triggers compressed-timeline guidance."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":295,"tokensAfter":295},{"name":"get_tool_details","fixed":{"name":"get_tool_details","description":"Full StackSwap profile for a single tool: cost (catalog + per-seat with confidence; vendor fact sheet wins when fresh), AI-readiness score, category, common overlaps, swap-registry status, and partner sign-up link. Use when the user wants depth on one tool (more than search_tools' name + cost).","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Tool name (fuzzy-matched against catalog)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":137,"tokensAfter":137},{"name":"get_vendor_fact_sheet","fixed":{"name":"get_vendor_fact_sheet","description":"Return the full vendor fact sheet (per GTM Decision Schema v1.0.0) for a tool, when one exists. Includes pricing tiers with gotchas, integration depth scores, AI capabilities + customer-data-for-training disclosure, affiliate program terms, and self-disclosed conflicts (vendor-claim vs user-reported). Provenance is labeled (vendor / stackswap / community) and freshness is computed against a 90-day window. Use when an agent or buyer needs the structured machine-readable view of a tool — strictly ","inputSchema":{"type":"object","required":["tool"],"properties":{"tool":{"type":"string","description":"Tool name or slug (e.g. \"Apollo.io\", \"apollo\", \"Smartlead\"). Fuzzy-matched against the catalog."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":211,"tokensAfter":211},{"name":"search_content","fixed":{"name":"search_content","description":"Full-text search across StackSwap's first-party GTM knowledge base — ~50 operator-narrative articles on stack architecture, AI-native swaps, RevOps, data ethics, and decision frameworks. Returns ranked articles with title, slug, category, summary, and URL. Use when the user asks a GTM strategy/architecture/methodology question that's been written about (e.g. 'how should I think about CRM migration', 'what's wrong with intent data', 'how to audit my stack'). Cite the URL in your reply. Pass slug ","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"integer","default":10,"maximum":20,"minimum":1,"description":"Max number of results."},"query":{"type":"string","description":"Free-text search query. Multi-word queries are scored on per-term hits."},"category":{"type":"string","description":"Optional category filter (slug or label). Known slugs: gtm-infrastructure, stack-design, ai-automation, data-ethics."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":275,"tokensAfter":275},{"name":"search_tools","fixed":{"name":"search_tools","description":"Search StackSwap's catalog of ~400 GTM tools by name. Returns each match with its catalogued monthly cost and, when applicable, a StackSwap partner sign-up link.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","default":10,"maximum":50,"minimum":1,"description":"Max number of results to return."},"query":{"type":"string","description":"Substring to match against tool names (case-insensitive). Omit to list top tools."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":135,"tokensAfter":135},{"name":"start_stack_audit","fixed":{"name":"start_stack_audit","description":"Start an adaptive GTM architecture audit and return the smallest discovery questionnaire needed before KEEP, SWAP, or BUILD recommendations.","inputSchema":{"type":"object","properties":{"goal":{"type":"string"},"stage":{"type":"string"},"motion":{"type":"string"},"systems":{"type":"array","items":{"type":"object"}}}},"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":101,"tokensAfter":101},{"name":"submit_correction","fixed":{"name":"submit_correction","description":"Submit a correction to the StackSwap catalog (pricing, feature list, gotcha, AI-readiness score, category, or other). Submissions queue for admin review and only propagate to user-facing surfaces after merge — they DO NOT immediately mutate the catalog. Use when the user notices a stale price, an inaccurate feature list, a gotcha that should be flagged, or wants to report a tool we don't cover. Two-way data flow that helps keep the catalog accurate. Returns a correction ID + reassurance that the","inputSchema":{"type":"object","required":["tool","field","proposed_value"],"properties":{"tool":{"type":"string","maxLength":200,"description":"Tool name (fuzzy-matched against catalog; new tools accepted too)."},"field":{"enum":["price","feature","gotcha","ai_score","category","other"],"type":"string","description":"Which aspect of the catalog entry the correction targets."},"source_url":{"type":"string","maxLength":500,"description":"Optional: a public URL that backs the correction (vendor pricing page, doc, etc.). Strong signal for fast approval."},"current_value":{"type":"string","maxLength":2000,"description":"Optional: what the catalog currently shows (for reviewer context)."},"proposed_value":{"type":"string","maxLength":2000,"description":"The corrected value as the user would have it shown."},"reporter_context":{"type":"string","maxLength":1000,"description":"Optional: free-text context (e.g. \"Smartlead just raised the entry tier from $39 to $49 on their pricing page\")."}}},"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":430,"tokensAfter":430}],"toolsChanged":13,"tokensSaved":0,"todo":[{"tool":"complete_stack_audit","params":["goal","stage","motion","answers","systems","constraints","connectedEvidence"]},{"tool":"generate_build_prompt","params":["output","target","systems","recommendation"]},{"tool":"generate_data_layer_blueprint","params":["problem","systems","entities","primarySourceOfTruth"]},{"tool":"inspect_available_connections","params":["systems","auditGoal"]},{"tool":"request_system_connection","params":["system","purpose","preferredMode"]},{"tool":"start_stack_audit","params":["goal","stage","motion","systems"]}],"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."}