scrapeloop-mcp 0.10.0 → 0.11.1

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 +1 -1
  2. package/src/index.js +6 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scrapeloop-mcp",
3
- "version": "0.10.0",
3
+ "version": "0.11.1",
4
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": {
package/src/index.js CHANGED
@@ -574,7 +574,7 @@ const TOOLS = {
574
574
  run: () => api('GET', '/jobs'),
575
575
  },
576
576
  get_job: {
577
- def: { description: 'Get one job with its execution steps (poll this for scrape progress). A scrape job carries `delivery`: how many rows were found, kept, new, already yours, and added to its Table, why rows were left out, and whether adding them to the Table worked.', inputSchema: obj({ job_id: S }, ['job_id']) },
577
+ def: { description: 'Get one job with its execution steps (poll this for scrape progress). A scrape job carries `delivery`: how many rows were found, kept, new, already yours, and added to its Table, why rows were left out, and whether adding them to the Table worked. New native Maps receipts also include search_coverage: complete, partial, or missing proof. Job completion alone never proves a whole place was covered.', inputSchema: obj({ job_id: S }, ['job_id']) },
578
578
  run: (a) => api('GET', `/jobs/${enc(a.job_id)}`),
579
579
  },
580
580
  cancel_job: {
@@ -961,6 +961,10 @@ const TOOLS = {
961
961
  def: { description: 'List campaigns with per-campaign stats and the bound list name.', inputSchema: obj({}) },
962
962
  run: () => api('GET', '/campaigns'),
963
963
  },
964
+ get_campaign_sending_metrics: {
965
+ def: { description: 'Read campaign membership, actual daily email activity, sequence steps, sending calendar and monthly full-sequence estimates. Counts shared Instantly mailbox capacity once and exposes stale or unknown reads. Other sender metrics may be unavailable. This never fills or starts campaigns, and the estimate does not change scrape goals or budgets.', inputSchema: obj({}) },
966
+ run: () => api('GET', '/campaigns/sending-metrics'),
967
+ },
964
968
  get_campaign_setup_options: {
965
969
  def: { description: 'Read this workspace\'s channel choices and defaults for new campaign drafts. Explicit create choices win. Reading options changes nothing and starts no campaign.', inputSchema: obj({}) },
966
970
  run: () => api('GET', '/campaigns/options'),
@@ -2948,7 +2952,7 @@ async function serve() {
2948
2952
  }
2949
2953
 
2950
2954
  const server = new Server(
2951
- { name: 'scrapeloop-mcp', version: '0.10.0' },
2955
+ { name: 'scrapeloop-mcp', version: '0.11.1' },
2952
2956
  { capabilities: { tools: {} } }
2953
2957
  );
2954
2958