@seldonframe/mcp 1.45.0 → 1.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +2 -1
  2. package/src/tools.js +32 -0
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@seldonframe/mcp",
3
- "version": "1.45.0",
3
+ "version": "1.46.0",
4
+ "mcpName": "io.github.seldonframe/seldonframe-mcp",
4
5
  "description": "Open-source GoHighLevel alternative for agencies. 146+ MCP tools that let Claude Code spin up white-labeled client workspaces — CRM, booking, intake forms, landing pages, AI chatbot, and pre-wired agent archetypes (speed-to-lead, missed-call-text-back, review-requester) — in minutes. AGPL-3.0.",
5
6
  "license": "AGPL-3.0-or-later",
6
7
  "type": "module",
package/src/tools.js CHANGED
@@ -468,6 +468,32 @@ export const TOOLS = [
468
468
  return firstEver ? withFirstCallBanner(payload) : payload;
469
469
  },
470
470
  },
471
+ // create_workspace_from_url — atomic crawl + workspace + chatbot.
472
+ // Thin wrapper around create_full_workspace with include_chatbot=true
473
+ // and auto_extract_faq=true. The orchestrator at /api/v1/workspace/create
474
+ // (POST) handles the multi-phase composition; this tool exists for
475
+ // discoverability — operators reading the MCP tool list see a name
476
+ // that matches the marketing pitch ("paste a URL → workspace").
477
+ {
478
+ name: "create_workspace_from_url",
479
+ description:
480
+ "Crawl a business website URL and create a complete personalized client workspace in one step: CRM, landing page, booking page, intake form, and AI chatbot wired to FAQs auto-extracted from the site plus the booking calendar. The chatbot ships eval-gated (must pass ≥10/11 safety + behavior scenarios). White-label-ready under partner-agency attachment. USE-WHEN: agency operator says 'set up a workspace for dallasplumbing.com' or pastes any client business URL. Returns workspace + agent + embed_url + faq_summary.",
481
+ inputSchema: obj(
482
+ {
483
+ url: str("Business website URL, e.g. https://dallasplumbing.com"),
484
+ },
485
+ ["url"]
486
+ ),
487
+ handler: async (args) =>
488
+ api("POST", "/workspace/create", {
489
+ body: {
490
+ url: args.url,
491
+ include_chatbot: true,
492
+ auto_extract_faq: true,
493
+ },
494
+ allow_anonymous: true,
495
+ }),
496
+ },
471
497
  {
472
498
  name: "list_workspaces",
473
499
  description: "List all workspaces known to this device (plus any Pro workspaces if SELDONFRAME_API_KEY is set).",
@@ -5060,6 +5086,11 @@ export const TOOLS = [
5060
5086
  publish_notes: str(
5061
5087
  "Optional one-line audit note (e.g. 'Added emergency-call FAQ').",
5062
5088
  ),
5089
+ regenerate_synthesized: {
5090
+ type: "boolean",
5091
+ description:
5092
+ "Optional. When true, regenerate the synthesized portion of the chatbot's FAQ from the current soul. Extracted and operator-added FAQ entries are preserved.",
5093
+ },
5063
5094
  },
5064
5095
  ["workspace_id"],
5065
5096
  ),
@@ -5125,6 +5156,7 @@ export const TOOLS = [
5125
5156
  agent_id: agentId,
5126
5157
  patch,
5127
5158
  publish_notes: args.publish_notes ?? undefined,
5159
+ regenerate_synthesized: args.regenerate_synthesized === true ? true : undefined,
5128
5160
  },
5129
5161
  workspace_id: ws,
5130
5162
  });