Metadata-Version: 2.4
Name: langchain-zambo
Version: 0.1.5
Summary: Zambo's 153 MCP tools as LangChain StructuredTools: a verifiable AER-1 receipt for every call, no API key
Author: Brennan Zambo
License: MIT
Project-URL: Homepage, https://zambo.dev
Project-URL: Documentation, https://zambo.dev/docs
Keywords: zambo,mcp,langchain,langgraph,agents,ai-tools
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: langchain-mcp-adapters>=0.3.0

# langchain-zambo

Zambo's MCP tools as LangChain `StructuredTool` objects, one import, no API key.

**Zambo** ([zambo.dev](https://zambo.dev)) is the verifiable work layer for AI: 153 tools behind one MCP endpoint, a verifiable AER-1 receipt for every call. Free tier: up to 20 calls per metered tool per day, some tools unlimited, no account. $0.99/24h Day Pass.

This package is a thin wrapper over [`langchain-mcp-adapters`](https://pypi.org/project/langchain-mcp-adapters/), it converts zambo.dev's MCP server into LangChain tools at runtime. Nothing is reimplemented here.

## Install

```bash
pip install langchain-zambo
```

## Quickstart (10 lines)

```python
import asyncio
from langchain_zambo import get_zambo_tools

async def main():
    tools = await get_zambo_tools()          # Zambo tools, no API key
    print(f"loaded {len(tools)} tools")       # every call mints a verifiable receipt
    prices = [t for t in tools if "price" in t.name]
    print("price tools:", [t.name for t in prices][:5])

asyncio.run(main())
```

## Use with a LangGraph agent

```python
import asyncio
from langchain_zambo import get_zambo_tools
from langgraph.prebuilt import create_react_agent

async def main():
    tools = await get_zambo_tools()
    agent = create_react_agent("openai:gpt-4o", tools)   # any chat model
    result = await agent.ainvoke(
        {"messages": [{"role": "user", "content": "What is the price of BTC?"}]}
    )
    print(result["messages"][-1].content)

asyncio.run(main())
```

Requires OPENAI_API_KEY in your environment.

## Bring your own client

```python
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain_zambo import server_config

client = MultiServerMCPClient({**server_config()})  # add your own servers too
```

## Notes

- Endpoint: `https://zambo.dev/mcp` (plain JSON-RPC over HTTPS, `streamable_http` transport, no auth).
- Free tier: up to 20 calls per metered tool per day, some tools unlimited, no account. Need more? The $0.99/24h Day Pass is at [zambo.dev/day-pass](https://zambo.dev/day-pass/).
- Every tool call returns a verifiable receipt: proof the saved result was not changed, so the record of what the agent did can be checked by anyone.
- No GitHub, no extra services: this package, `langchain-mcp-adapters`, and zambo.dev are the whole stack.
