@seldonframe/mcp 1.46.1 → 1.47.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.
- package/package.json +1 -1
- package/src/tools.js +35 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seldonframe/mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.47.0",
|
|
4
4
|
"mcpName": "io.github.seldonframe/seldonframe-mcp",
|
|
5
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.",
|
|
6
6
|
"license": "AGPL-3.0-or-later",
|
package/src/tools.js
CHANGED
|
@@ -478,14 +478,16 @@ export const TOOLS = [
|
|
|
478
478
|
{
|
|
479
479
|
name: "create_workspace_from_url",
|
|
480
480
|
description:
|
|
481
|
-
"⚡ MUST USE WHEN A URL IS PROVIDED — this is the atomic URL-input path for agency client workspace creation. " +
|
|
481
|
+
"⚡ MUST USE WHEN A URL IS PROVIDED — this is the LEAN atomic URL-input path for agency client workspace creation (v1.47, ~10-30s). " +
|
|
482
482
|
"PATTERNS THAT ROUTE HERE (do not even consider other workspace-creation tools when input matches): " +
|
|
483
483
|
"'create a workspace for <URL>', 'set up <client> at <URL>', 'spin up <URL>', '<URL>' alone, or any operator message containing http://, https://, or a recognizable domain (.com/.io/.net/.co/.app/.dev/.us etc). " +
|
|
484
|
-
"WHAT THIS TOOL
|
|
484
|
+
"WHAT THIS TOOL DOES: backend crawls the URL → extracts business info → creates CRM + booking + intake + eval-gated AI chatbot wired to FAQs auto-pulled from the site. " +
|
|
485
|
+
"DOES NOT GENERATE A LANDING PAGE BY DEFAULT — agency clients typically already have their own website (the URL the operator passed). The chatbot ships as an embed snippet (`chatbot_embed_snippet` in the response) which the agency pastes onto the client's existing site. " +
|
|
486
|
+
"If you ALSO need a SeldonFrame-hosted landing page (only when the client has no site of their own), call `generate_landing_page({ workspace_id })` AFTER this returns — it's a separate ~30-60s opt-in step. " +
|
|
485
487
|
"DO NOT use create_workspace_v2 or create_full_workspace when a URL is available. Those tools require PRE-EXTRACTED structured fields (business_name, services[], phone) and will produce INFERIOR results for URL input because they skip the URL crawler, the FAQ extractor, and the auto-chatbot build. " +
|
|
486
488
|
"DO NOT manually WebFetch the URL first — the SeldonFrame backend's soul-compiler is already wired to scrape + extract. Forwarding pre-fetched HTML wastes a round-trip and bypasses the FAQ-from-URL pipeline. " +
|
|
487
489
|
"Eval gate: chatbot must pass ≥10 of 11 safety + behavior scenarios to ship 'live'. White-label-ready under partner-agency attachment. " +
|
|
488
|
-
"Returns: workspace + agent +
|
|
490
|
+
"Returns: workspace + agent + chatbot_embed_snippet + faq_summary. MANDATORY FOLLOW-UP: ask the operator verbatim 'What email should I use for your account?' then call finalize_workspace({ workspace_id, email }) — the admin dashboard URL is ONLY created by finalize_workspace.",
|
|
489
491
|
inputSchema: obj(
|
|
490
492
|
{
|
|
491
493
|
url: str("Business website URL, e.g. https://dallasplumbing.com"),
|
|
@@ -498,6 +500,36 @@ export const TOOLS = [
|
|
|
498
500
|
url: args.url,
|
|
499
501
|
include_chatbot: true,
|
|
500
502
|
auto_extract_faq: true,
|
|
503
|
+
include_landing_page: false,
|
|
504
|
+
},
|
|
505
|
+
allow_anonymous: true,
|
|
506
|
+
}),
|
|
507
|
+
},
|
|
508
|
+
// v1.47 — explicit opt-in landing-page generator. create_workspace_from_url
|
|
509
|
+
// defaults to NO landing page (the client already has their own site);
|
|
510
|
+
// when the operator DOES want a SeldonFrame-hosted landing page, this
|
|
511
|
+
// tool generates it on demand.
|
|
512
|
+
{
|
|
513
|
+
name: "generate_landing_page",
|
|
514
|
+
description:
|
|
515
|
+
"Generate a SeldonFrame-hosted landing page for an EXISTING workspace. " +
|
|
516
|
+
"USE-WHEN: operator explicitly asks for a landing page after the workspace exists, OR the client has no website of their own and the agency wants SeldonFrame to host the public-facing site. " +
|
|
517
|
+
"If the client already has a website (the common agency case), the chatbot embed snippet returned by create_workspace_from_url is the canonical deliverable; you do NOT need a generated landing page. " +
|
|
518
|
+
"Latency: ~30-60s. Returns the public landing URL. Operator can later customize per-block via update_landing_section / persist_block.",
|
|
519
|
+
inputSchema: obj(
|
|
520
|
+
{
|
|
521
|
+
workspace_id: str("Workspace UUID (from create_workspace_from_url or other creation tool)."),
|
|
522
|
+
style: str(
|
|
523
|
+
"Optional archetype override: 'bold-urgency', 'editorial-warm', 'clinical-trust', 'cinematic-aspirational'. If omitted, the soul's base_framework picks the default style."
|
|
524
|
+
),
|
|
525
|
+
},
|
|
526
|
+
["workspace_id"]
|
|
527
|
+
),
|
|
528
|
+
handler: async (args) =>
|
|
529
|
+
api("POST", "/workspace/generate-landing-page", {
|
|
530
|
+
body: {
|
|
531
|
+
workspace_id: args.workspace_id,
|
|
532
|
+
style: args.style ?? null,
|
|
501
533
|
},
|
|
502
534
|
allow_anonymous: true,
|
|
503
535
|
}),
|