scrapeloop-mcp 0.19.0 → 0.21.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 +2 -2
- package/src/index.js +16 -0
- package/src/mutation-policies.js +1 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "scrapeloop-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Scrapeloop MCP server - set up and run Scrapeloop end-to-end (integrations, scraping, lead database, verification, cleaners, enrichment, strategies, Instantly campaigns) from any MCP client (Claude Desktop, Cursor, ChatGPT,
|
|
3
|
+
"version": "0.21.0",
|
|
4
|
+
"description": "Scrapeloop MCP server - set up and run Scrapeloop end-to-end (integrations, scraping, lead database, verification, cleaners, enrichment, strategies, Instantly campaigns) from any MCP client (Claude Desktop, Cursor, ChatGPT, …).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"test": "node --check src/index.js && node test/mcp_table_tools.mjs && node test/mcp_playbook_plans.mjs && node test/mcp_community_intent.mjs && node test/mcp_api_key_preflight.mjs && node test/mutation_retry_contract.mjs && node test/release_readiness.mjs && node test/mcp_server_version.mjs",
|
package/src/index.js
CHANGED
|
@@ -1016,6 +1016,22 @@ const TOOLS = {
|
|
|
1016
1016
|
def: { description: 'Read campaign membership, actual daily email activity, sequence steps, sending calendar, dated sender queues and remaining-month follow-up estimates. Counts shared Instantly mailbox capacity once, deducts waiting sender leads and exposes stale or unknown history. Background reads refresh about every five minutes. Other sender metrics may be unavailable. This never fills or starts campaigns, and the estimate does not change scrape goals or budgets.', inputSchema: obj({}) },
|
|
1017
1017
|
run: () => api('GET', '/campaigns/sending-metrics'),
|
|
1018
1018
|
},
|
|
1019
|
+
get_campaign_shared_stops: {
|
|
1020
|
+
def: { description: 'Review shared replies and stops for campaigns in one pipeline. Shows local blocks separately from unconfirmed sender removals. This reads only.', inputSchema: obj({ campaign_id: S }, ['campaign_id']) },
|
|
1021
|
+
run: (a) => a.campaign_id ? api('GET', `/campaigns/${enc(a.campaign_id)}/shared-stops`) : { ok: false, status: 400, error: { detail: 'campaign_id is required.' } },
|
|
1022
|
+
},
|
|
1023
|
+
save_campaign_shared_stops: {
|
|
1024
|
+
def: { description: 'Save the exact reviewed shared stop group for a completed pipeline. Campaigns must be paused or draft with feeds off. Retains replies locally and lists removal needs. Does not contact a provider or start outreach. Inspect after an uncertain result. Sender removal setup and proof are still needed before launch.', inputSchema: obj({ campaign_id: S, reviewed_revision: S }, ['campaign_id', 'reviewed_revision']) },
|
|
1025
|
+
run: (a) => a.campaign_id && a.reviewed_revision ? api('PUT', `/campaigns/${enc(a.campaign_id)}/shared-stops`, { reviewed_revision: a.reviewed_revision }) : { ok: false, status: 400, error: { detail: 'campaign_id and reviewed_revision are required.' } },
|
|
1026
|
+
},
|
|
1027
|
+
get_campaign_handoff_status: {
|
|
1028
|
+
def: {
|
|
1029
|
+
description: 'Read waiting, completed and held review Table handoffs for a campaign. No provider call, retry or write. Held copies may already have happened; inspect before moving again.',
|
|
1030
|
+
inputSchema: obj({ campaign_id: S }, ['campaign_id']),
|
|
1031
|
+
},
|
|
1032
|
+
run: (a) => a.campaign_id ? api('GET', `/campaigns/${enc(a.campaign_id)}/handoffs`)
|
|
1033
|
+
: { ok: false, status: 400, error: { detail: 'campaign_id is required.' } },
|
|
1034
|
+
},
|
|
1019
1035
|
get_campaign_ready_supply: {
|
|
1020
1036
|
def: { description: 'Read dated verified ready stock, count shared businesses and emails once, and compare planning shares with estimated remaining-month demand. Includes linked goals, coverage and shared credit allowance. This is a read-only planning view, not a reservation or sender approval. Unknown proof remains unknown. The remaining-month estimate accounts for saved follow-ups and deducts the current sender queue before allocating local stock.', inputSchema: obj({}) },
|
|
1021
1037
|
run: () => api('GET', '/campaigns/supply'),
|
package/src/mutation-policies.js
CHANGED
|
@@ -37,6 +37,7 @@ const never = (method, inspectWith, matchFields) => ({
|
|
|
37
37
|
});
|
|
38
38
|
|
|
39
39
|
export const MUTATION_POLICIES = Object.freeze({
|
|
40
|
+
save_campaign_shared_stops: reconcile('PUT', ['get_campaign_shared_stops'], ['campaign_id', 'reviewed_revision']),
|
|
40
41
|
create_integration: keyed('POST', ['list_integrations'], ['vendor', 'plugin_kind']),
|
|
41
42
|
add_credential: reconcile('POST', ['list_credentials'], ['integration_id', 'label']),
|
|
42
43
|
test_credential: idempotent('POST', ['list_credentials'], ['credential_id']),
|