metalift-langchain 1.0.0__tar.gz

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.
@@ -0,0 +1,74 @@
1
+ Proprietary License — Maximum restriction
2
+
3
+ Copyright (c) 2026 Metalift. All rights reserved.
4
+
5
+ NOTICE: This software and all associated materials (source code, object code,
6
+ documentation, configuration, designs, and data) are proprietary and confidential.
7
+ No license or right is granted except as expressly set forth below.
8
+
9
+ 1. NO GRANT OF RIGHTS
10
+
11
+ Except as expressly authorized in a separate written agreement signed by
12
+ Metalift, you are granted NO rights to use, copy, modify, merge, publish,
13
+ distribute, sublicense, sell, rent, lease, lend, disclose, or otherwise
14
+ transfer this software or any part thereof.
15
+
16
+ 2. RESTRICTED ACTIVITIES
17
+
18
+ Without prior written consent from Metalift, you may NOT:
19
+
20
+ (a) access, use, or run the software in any environment;
21
+ (b) copy, reproduce, or duplicate the software or documentation;
22
+ (c) modify, adapt, translate, or create derivative works;
23
+ (d) reverse engineer, decompile, disassemble, or attempt to derive source
24
+ code, algorithms, or trade secrets;
25
+ (e) remove, alter, or obscure proprietary notices or labels;
26
+ (f) distribute, publish, or make the software available to any third party;
27
+ (g) use the software to develop, train, or improve competing products or
28
+ services;
29
+ (h) benchmark, scrape, or systematically extract outputs for redistribution;
30
+ (i) sublicense, assign, or transfer any rights under this notice.
31
+
32
+ 3. CONFIDENTIALITY
33
+
34
+ The software constitutes confidential information of Metalift. You must
35
+ protect it using at least the same degree of care you use for your own
36
+ confidential information, and in no event less than reasonable care.
37
+
38
+ 4. THIRD-PARTY COMPONENTS
39
+
40
+ Third-party open-source components, if any, remain subject to their
41
+ respective licenses. This notice does not restrict use of those components
42
+ as permitted by their licenses, but does not grant additional rights to
43
+ Metalift proprietary code.
44
+
45
+ 5. TERMINATION
46
+
47
+ Any unauthorized use automatically terminates any permission that may have
48
+ been granted. Upon termination, you must destroy all copies of the software
49
+ and certify destruction if requested.
50
+
51
+ 6. DISCLAIMER OF WARRANTY
52
+
53
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
54
+ IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS
55
+ FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.
56
+
57
+ 7. LIMITATION OF LIABILITY
58
+
59
+ IN NO EVENT SHALL METALIFT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
60
+ CONSEQUENTIAL, OR PUNITIVE DAMAGES, OR ANY LOSS OF PROFITS, DATA, GOODWILL,
61
+ OR BUSINESS INTERRUPTION, ARISING FROM OR RELATED TO THE SOFTWARE, WHETHER
62
+ IN CONTRACT, TORT, OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
63
+ DAMAGES. METALIFT'S TOTAL LIABILITY SHALL NOT EXCEED THE AMOUNT PAID BY YOU
64
+ TO METALIFT FOR AUTHORIZED ACCESS IN THE TWELVE (12) MONTHS PRECEDING THE
65
+ CLAIM, OR ONE HUNDRED U.S. DOLLARS (USD $100) IF NO SUCH PAYMENT WAS MADE.
66
+
67
+ 8. GOVERNING LAW
68
+
69
+ This notice is governed by the laws applicable where Metalift is organized,
70
+ without regard to conflict-of-law principles.
71
+
72
+ 9. CONTACT
73
+
74
+ For licensing inquiries: legal@metalift.ai
@@ -0,0 +1,66 @@
1
+ Metadata-Version: 2.4
2
+ Name: metalift-langchain
3
+ Version: 1.0.0
4
+ Summary: LangChain tools for the Metalift web context API
5
+ Author-email: Metalift <support@metalift.ai>
6
+ License-Expression: LicenseRef-Proprietary
7
+ Project-URL: Homepage, https://metalift.ai
8
+ Project-URL: Documentation, https://metalift.ai/docs
9
+ Project-URL: Repository, https://github.com/Endacoder/scraper-mcp
10
+ Project-URL: Issues, https://github.com/Endacoder/scraper-mcp/issues
11
+ Project-URL: Changelog, https://github.com/Endacoder/scraper-mcp/releases
12
+ Keywords: metalift,langchain,scraping,agents,tools
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Topic :: Internet :: WWW/HTTP
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Requires-Python: >=3.11
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: langchain-core>=0.3.0
26
+ Requires-Dist: metalift-sdk<2,>=1.0.0
27
+ Dynamic: license-file
28
+
29
+ # Metalift LangChain integration
30
+
31
+ LangChain tools for [Metalift](https://app.metalift.ai) — a hosted web context API that turns URLs into LLM-ready markdown for agents. This package wraps the Metalift REST API; it does not use `@langchain/community` `RecursiveUrlLoader` or any local server-side HTTP fetch of user-supplied URLs.
32
+
33
+ ## Get an API key
34
+
35
+ 1. [Sign up for Metalift Cloud](https://app.metalift.ai/signup) and verify your email.
36
+ 2. Complete onboarding on the [dashboard](https://app.metalift.ai/dashboard).
37
+ 3. Copy your API key from [Dashboard → API keys](https://app.metalift.ai/dashboard/keys).
38
+
39
+ New accounts receive **1,000 free credits/month** on the Free tier. Use the hosted API at `https://api.metalift.ai`, or point `api_url` at your own self-hosted scrape API.
40
+
41
+ Do not commit API keys into source code — pass them at runtime or via the `METALIFT_API_KEY` environment variable.
42
+
43
+ ## Security
44
+
45
+ - All URL fetching runs on the Metalift scrape API with SSRF guards: manual redirect validation, private/metadata IP blocklist, DNS pinning, and Playwright egress isolation.
46
+ - Do **not** use LangChain's built-in `RecursiveUrlLoader` (or similar loaders with automatic redirect following) for untrusted URLs — see [CVE-2026-27795](https://cvereports.com/reports/CVE-2026-27795) and [Metalift security](../../docs/security.md).
47
+
48
+ ## Usage
49
+
50
+ ```bash
51
+ pip install metalift-langchain
52
+ ```
53
+
54
+ ```python
55
+ from metalift_langchain import get_metalift_tools
56
+
57
+ tools = get_metalift_tools(api_url="https://api.metalift.ai", api_key="YOUR_API_KEY")
58
+ ```
59
+
60
+ Requires the `metalift-sdk` package and a reachable Metalift scrape API.
61
+
62
+ ## Links
63
+
64
+ - [Documentation](https://app.metalift.ai/docs)
65
+ - [Getting started](https://app.metalift.ai/docs/getting-started)
66
+ - [Support](mailto:support@metalift.ai)
@@ -0,0 +1,38 @@
1
+ # Metalift LangChain integration
2
+
3
+ LangChain tools for [Metalift](https://app.metalift.ai) — a hosted web context API that turns URLs into LLM-ready markdown for agents. This package wraps the Metalift REST API; it does not use `@langchain/community` `RecursiveUrlLoader` or any local server-side HTTP fetch of user-supplied URLs.
4
+
5
+ ## Get an API key
6
+
7
+ 1. [Sign up for Metalift Cloud](https://app.metalift.ai/signup) and verify your email.
8
+ 2. Complete onboarding on the [dashboard](https://app.metalift.ai/dashboard).
9
+ 3. Copy your API key from [Dashboard → API keys](https://app.metalift.ai/dashboard/keys).
10
+
11
+ New accounts receive **1,000 free credits/month** on the Free tier. Use the hosted API at `https://api.metalift.ai`, or point `api_url` at your own self-hosted scrape API.
12
+
13
+ Do not commit API keys into source code — pass them at runtime or via the `METALIFT_API_KEY` environment variable.
14
+
15
+ ## Security
16
+
17
+ - All URL fetching runs on the Metalift scrape API with SSRF guards: manual redirect validation, private/metadata IP blocklist, DNS pinning, and Playwright egress isolation.
18
+ - Do **not** use LangChain's built-in `RecursiveUrlLoader` (or similar loaders with automatic redirect following) for untrusted URLs — see [CVE-2026-27795](https://cvereports.com/reports/CVE-2026-27795) and [Metalift security](../../docs/security.md).
19
+
20
+ ## Usage
21
+
22
+ ```bash
23
+ pip install metalift-langchain
24
+ ```
25
+
26
+ ```python
27
+ from metalift_langchain import get_metalift_tools
28
+
29
+ tools = get_metalift_tools(api_url="https://api.metalift.ai", api_key="YOUR_API_KEY")
30
+ ```
31
+
32
+ Requires the `metalift-sdk` package and a reachable Metalift scrape API.
33
+
34
+ ## Links
35
+
36
+ - [Documentation](https://app.metalift.ai/docs)
37
+ - [Getting started](https://app.metalift.ai/docs/getting-started)
38
+ - [Support](mailto:support@metalift.ai)
@@ -0,0 +1,34 @@
1
+ """LangChain tool integration for Metalift."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any
6
+
7
+ from langchain_core.tools import BaseTool
8
+ from pydantic import BaseModel, Field
9
+
10
+ from metalift_sdk import Metalift
11
+
12
+
13
+ class ScrapeInput(BaseModel):
14
+ url: str = Field(description="URL to scrape")
15
+
16
+
17
+ class MetaliftScrapeTool(BaseTool):
18
+ name: str = "metalift_scrape"
19
+ description: str = "Scrape a URL and return LLM-ready markdown content."
20
+ args_schema: type[BaseModel] = ScrapeInput
21
+ client: Metalift = Field(default_factory=Metalift)
22
+
23
+ def _run(self, url: str) -> str:
24
+ result = self.client.scrape(url, formats=["markdown"])
25
+ data = result.get("data", {})
26
+ return data.get("markdown") or str(data)
27
+
28
+ async def _arun(self, url: str) -> str:
29
+ return self._run(url)
30
+
31
+
32
+ def get_metalift_tools(api_url: str | None = None, api_key: str | None = None) -> list[Any]:
33
+ client = Metalift(api_url=api_url, api_key=api_key)
34
+ return [MetaliftScrapeTool(client=client)]
@@ -0,0 +1,66 @@
1
+ Metadata-Version: 2.4
2
+ Name: metalift-langchain
3
+ Version: 1.0.0
4
+ Summary: LangChain tools for the Metalift web context API
5
+ Author-email: Metalift <support@metalift.ai>
6
+ License-Expression: LicenseRef-Proprietary
7
+ Project-URL: Homepage, https://metalift.ai
8
+ Project-URL: Documentation, https://metalift.ai/docs
9
+ Project-URL: Repository, https://github.com/Endacoder/scraper-mcp
10
+ Project-URL: Issues, https://github.com/Endacoder/scraper-mcp/issues
11
+ Project-URL: Changelog, https://github.com/Endacoder/scraper-mcp/releases
12
+ Keywords: metalift,langchain,scraping,agents,tools
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Topic :: Internet :: WWW/HTTP
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Requires-Python: >=3.11
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: langchain-core>=0.3.0
26
+ Requires-Dist: metalift-sdk<2,>=1.0.0
27
+ Dynamic: license-file
28
+
29
+ # Metalift LangChain integration
30
+
31
+ LangChain tools for [Metalift](https://app.metalift.ai) — a hosted web context API that turns URLs into LLM-ready markdown for agents. This package wraps the Metalift REST API; it does not use `@langchain/community` `RecursiveUrlLoader` or any local server-side HTTP fetch of user-supplied URLs.
32
+
33
+ ## Get an API key
34
+
35
+ 1. [Sign up for Metalift Cloud](https://app.metalift.ai/signup) and verify your email.
36
+ 2. Complete onboarding on the [dashboard](https://app.metalift.ai/dashboard).
37
+ 3. Copy your API key from [Dashboard → API keys](https://app.metalift.ai/dashboard/keys).
38
+
39
+ New accounts receive **1,000 free credits/month** on the Free tier. Use the hosted API at `https://api.metalift.ai`, or point `api_url` at your own self-hosted scrape API.
40
+
41
+ Do not commit API keys into source code — pass them at runtime or via the `METALIFT_API_KEY` environment variable.
42
+
43
+ ## Security
44
+
45
+ - All URL fetching runs on the Metalift scrape API with SSRF guards: manual redirect validation, private/metadata IP blocklist, DNS pinning, and Playwright egress isolation.
46
+ - Do **not** use LangChain's built-in `RecursiveUrlLoader` (or similar loaders with automatic redirect following) for untrusted URLs — see [CVE-2026-27795](https://cvereports.com/reports/CVE-2026-27795) and [Metalift security](../../docs/security.md).
47
+
48
+ ## Usage
49
+
50
+ ```bash
51
+ pip install metalift-langchain
52
+ ```
53
+
54
+ ```python
55
+ from metalift_langchain import get_metalift_tools
56
+
57
+ tools = get_metalift_tools(api_url="https://api.metalift.ai", api_key="YOUR_API_KEY")
58
+ ```
59
+
60
+ Requires the `metalift-sdk` package and a reachable Metalift scrape API.
61
+
62
+ ## Links
63
+
64
+ - [Documentation](https://app.metalift.ai/docs)
65
+ - [Getting started](https://app.metalift.ai/docs/getting-started)
66
+ - [Support](mailto:support@metalift.ai)
@@ -0,0 +1,9 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ metalift_langchain/__init__.py
5
+ metalift_langchain.egg-info/PKG-INFO
6
+ metalift_langchain.egg-info/SOURCES.txt
7
+ metalift_langchain.egg-info/dependency_links.txt
8
+ metalift_langchain.egg-info/requires.txt
9
+ metalift_langchain.egg-info/top_level.txt
@@ -0,0 +1,2 @@
1
+ langchain-core>=0.3.0
2
+ metalift-sdk<2,>=1.0.0
@@ -0,0 +1 @@
1
+ metalift_langchain
@@ -0,0 +1,40 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "metalift-langchain"
7
+ version = "1.0.0"
8
+ description = "LangChain tools for the Metalift web context API"
9
+ readme = "README.md"
10
+ requires-python = ">=3.11"
11
+ license = "LicenseRef-Proprietary"
12
+ license-files = ["LICENSE"]
13
+ authors = [{ name = "Metalift", email = "support@metalift.ai" }]
14
+ keywords = ["metalift", "langchain", "scraping", "agents", "tools"]
15
+ classifiers = [
16
+ "Development Status :: 5 - Production/Stable",
17
+ "Intended Audience :: Developers",
18
+ "Operating System :: OS Independent",
19
+ "Programming Language :: Python :: 3",
20
+ "Programming Language :: Python :: 3.11",
21
+ "Programming Language :: Python :: 3.12",
22
+ "Programming Language :: Python :: 3.13",
23
+ "Topic :: Internet :: WWW/HTTP",
24
+ "Topic :: Software Development :: Libraries :: Python Modules",
25
+ ]
26
+ dependencies = [
27
+ "langchain-core>=0.3.0",
28
+ "metalift-sdk>=1.0.0,<2",
29
+ ]
30
+
31
+ [project.urls]
32
+ Homepage = "https://metalift.ai"
33
+ Documentation = "https://metalift.ai/docs"
34
+ Repository = "https://github.com/Endacoder/scraper-mcp"
35
+ Issues = "https://github.com/Endacoder/scraper-mcp/issues"
36
+ Changelog = "https://github.com/Endacoder/scraper-mcp/releases"
37
+
38
+ [tool.setuptools.packages.find]
39
+ where = ["."]
40
+ include = ["metalift_langchain*"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+