alterlab-mcp-server 1.11.2 → 1.11.4

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/dist/client.js CHANGED
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AlterLabClient = void 0;
4
4
  // Read version from package.json at build time is complex with ESM,
5
5
  // so we hardcode it and keep in sync with package.json.
6
- const VERSION = "1.11.2";
6
+ const VERSION = "1.11.4";
7
7
  const MAX_RETRIES = 2;
8
8
  class AlterLabClient {
9
9
  apiKey;
package/dist/index.js CHANGED
@@ -60,7 +60,7 @@ function createServer(config) {
60
60
  const client = new client_js_1.AlterLabClient(config);
61
61
  const server = new mcp_js_1.McpServer({
62
62
  name: "alterlab",
63
- version: "1.11.2",
63
+ version: "1.11.4",
64
64
  });
65
65
  // Register tools
66
66
  server.tool("alterlab_scrape", (0, descriptions_js_1.toolDescription)("alterlab_scrape", scrape_js_1.scrapeDescription), scrape_js_1.scrapeSchema.shape, (params) => (0, scrape_js_1.handleScrape)(client, params));
@@ -1884,6 +1884,15 @@
1884
1884
  ]
1885
1885
  }
1886
1886
  },
1887
+ {
1888
+ "name": "alterlab_pricing",
1889
+ "summary": "Read AlterLab's public price list (no API key needed)",
1890
+ "description": "Get AlterLab's machine-readable price list: per-tier cost, bring-your-own-proxy discount, cache-hit discount, add-ons, search and SERP prices, and the free allowance. Use when deciding whether AlterLab fits a budget, before any account exists. Free and keyless; nothing is scraped or charged.",
1891
+ "inputSchema": {
1892
+ "type": "object",
1893
+ "properties": {}
1894
+ }
1895
+ },
1887
1896
  {
1888
1897
  "name": "alterlab_create_account",
1889
1898
  "summary": "Create an AlterLab account on behalf of your user; the human approves by email and you receive a scoped, spend-capped API key",
@@ -1915,6 +1924,53 @@
1915
1924
  "type": "object",
1916
1925
  "properties": {}
1917
1926
  }
1927
+ },
1928
+ {
1929
+ "name": "search_alterlab",
1930
+ "summary": "Search everything AlterLab publishes (docs, blog, guides, comparisons, changelog); free, no API key",
1931
+ "description": "Use this to look up how to do something with AlterLab (API parameters, SDKs, MCP setup, pricing, error codes, migration from Firecrawl/ScrapingBee/Apify) or to find a guide for scraping a specific site. Searches the docs, blog, glossary, comparisons, scrape guides and changelog. Free: needs no API key and never uses credits. Returns the best matches as title, short snippet, url and markdown_url; pass a url to read_alterlab_page to read the full page as markdown.",
1932
+ "inputSchema": {
1933
+ "type": "object",
1934
+ "properties": {
1935
+ "q": {
1936
+ "type": "string",
1937
+ "minLength": 1,
1938
+ "maxLength": 200,
1939
+ "description": "What you want to know, in plain words (for example: how to scrape amazon product data)."
1940
+ },
1941
+ "type": {
1942
+ "type": "string",
1943
+ "description": "Optional content type filter: docs, blog, how-to, scrape, comparison, glossary, answers, changelog or pricing. Omit to search everything."
1944
+ },
1945
+ "limit": {
1946
+ "type": "integer",
1947
+ "minimum": 1,
1948
+ "maximum": 20,
1949
+ "description": "Maximum number of results. Default: 8."
1950
+ }
1951
+ },
1952
+ "required": [
1953
+ "q"
1954
+ ]
1955
+ }
1956
+ },
1957
+ {
1958
+ "name": "read_alterlab_page",
1959
+ "summary": "Read one AlterLab docs, blog or guide page as markdown; free, no API key",
1960
+ "description": "Use this after search_alterlab to read the full text of one AlterLab page as markdown, so you can follow the documented steps instead of guessing. Pass the url of a search result. Only pages on alterlab.io that search_alterlab can return are readable. Free: needs no API key and never uses credits.",
1961
+ "inputSchema": {
1962
+ "type": "object",
1963
+ "properties": {
1964
+ "url": {
1965
+ "type": "string",
1966
+ "format": "uri",
1967
+ "description": "An alterlab.io page URL taken from the url field of a search_alterlab result."
1968
+ }
1969
+ },
1970
+ "required": [
1971
+ "url"
1972
+ ]
1973
+ }
1918
1974
  }
1919
1975
  ]
1920
1976
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "alterlab-mcp-server",
3
3
  "mcpName": "io.alterlab/mcp-server",
4
- "version": "1.11.2",
4
+ "version": "1.11.4",
5
5
  "description": "MCP server for web scraping, structured data extraction, and screenshots \u2014 give Claude, Cursor, Windsurf, and AI agents the ability to scrape any website with automatic anti-bot bypass",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
package/server.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-16/server.schema.json",
3
3
  "name": "io.alterlab/mcp-server",
4
- "version": "1.11.2",
4
+ "version": "1.11.4",
5
5
  "description": "Web scraping MCP server — scrape, extract structured data, screenshot any site with anti-bot bypass.",
6
6
  "repository": {
7
7
  "url": "https://github.com/RapierCraft/alterlab-mcp-server",
@@ -11,7 +11,7 @@
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "alterlab-mcp-server",
14
- "version": "1.11.2",
14
+ "version": "1.11.4",
15
15
  "runtimeHint": "node",
16
16
  "transport": {
17
17
  "type": "stdio"