zambo-ai 1.0.3__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.
- zambo-ai-1.0.3/LICENSE +21 -0
- zambo-ai-1.0.3/PKG-INFO +91 -0
- zambo-ai-1.0.3/README.md +72 -0
- zambo-ai-1.0.3/pyproject.toml +29 -0
- zambo-ai-1.0.3/setup.cfg +4 -0
- zambo-ai-1.0.3/zambo_ai/__init__.py +145 -0
- zambo-ai-1.0.3/zambo_ai.egg-info/PKG-INFO +91 -0
- zambo-ai-1.0.3/zambo_ai.egg-info/SOURCES.txt +8 -0
- zambo-ai-1.0.3/zambo_ai.egg-info/dependency_links.txt +1 -0
- zambo-ai-1.0.3/zambo_ai.egg-info/top_level.txt +1 -0
zambo-ai-1.0.3/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Zambo
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
zambo-ai-1.0.3/PKG-INFO
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: zambo-ai
|
|
3
|
+
Version: 1.0.3
|
|
4
|
+
Summary: Official Python SDK for Zambo (zambo.dev), 100+ MCP tools over plain JSON-RPC. No account, no API key. Free: 20 calls/tool/day.
|
|
5
|
+
Author-email: Zambo <brennanzambo@zambo.dev>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://zambo.dev
|
|
8
|
+
Project-URL: Documentation, https://zambo.dev
|
|
9
|
+
Project-URL: Source, https://gitlab.com/rambozambodotdev/zambo
|
|
10
|
+
Keywords: mcp,ai-tools,zambo,agents,crypto,seo-audit
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
|
|
20
|
+
# zambo-ai
|
|
21
|
+
|
|
22
|
+
Official Python SDK for [Zambo](https://zambo.dev), 100+ MCP tools for AI agents and apps over plain JSON-RPC 2.0. **No account, no API key.** Free: 20 calls/tool/day.
|
|
23
|
+
|
|
24
|
+
Every call returns a **verifiable receipt** (UUID + timestamp + SHA-256). Check any receipt at `https://zambo.dev/run/<id>`.
|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install zambo-ai
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Zero dependencies, stdlib only. Python 3.8+.
|
|
33
|
+
|
|
34
|
+
## Quickstart
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
from zambo_ai import Zambo
|
|
38
|
+
|
|
39
|
+
z = Zambo()
|
|
40
|
+
|
|
41
|
+
# Live crypto price
|
|
42
|
+
btc = z.price("BTC")
|
|
43
|
+
print(btc.text)
|
|
44
|
+
# BTC · $75,704.00 USD ... (live value at publish time)
|
|
45
|
+
|
|
46
|
+
# Describe any job in plain language — Zambo chains the right tools
|
|
47
|
+
job = z.universal("audit https://example.com for AI discoverability", session="my-session-1")
|
|
48
|
+
print(job.text)
|
|
49
|
+
print("receipt:", job.receipt_id) # verify at https://zambo.dev/run/<id>
|
|
50
|
+
|
|
51
|
+
# Call any tool directly
|
|
52
|
+
r = z.call("live_price", {"coin": "ETH"})
|
|
53
|
+
|
|
54
|
+
# Search the 100+ tool catalog
|
|
55
|
+
found = z.search("generate QR code")
|
|
56
|
+
|
|
57
|
+
# List exposed tools
|
|
58
|
+
tools = z.list_tools()
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## API
|
|
62
|
+
|
|
63
|
+
| Method | Description |
|
|
64
|
+
|---|---|
|
|
65
|
+
| `z.price(coin)` | Live crypto price (`"BTC"`, `"ETH"`, …) |
|
|
66
|
+
| `z.universal(goal, session=None)` | Plain-language job → Zambo routes and executes tools. Pass a stable `session` id to continue a trail across models. |
|
|
67
|
+
| `z.call(tool, args)` | Direct tool call, e.g. `z.call("live_price", {"coin": "ETH"})` |
|
|
68
|
+
| `z.search(query)` | Search the full 100+ tool catalog |
|
|
69
|
+
| `z.list_tools()` | List exposed tools with descriptions |
|
|
70
|
+
|
|
71
|
+
Every result: `text`, `receipt`, `receipt_id`, `audit_url`, `raw`. JSON-RPC failures raise `zambo_ai.ZamboError`.
|
|
72
|
+
|
|
73
|
+
## Pricing
|
|
74
|
+
|
|
75
|
+
- **Free:** 20 calls/tool/day, no account
|
|
76
|
+
- **Day pass:** $0.99 / 24 hours (USDC on Base)
|
|
77
|
+
- **Monthly:** $29
|
|
78
|
+
- **Annual:** $290
|
|
79
|
+
- **$ZAMBO holder:** $19/month
|
|
80
|
+
|
|
81
|
+
(From [zambo.dev/pricing](https://zambo.dev/pricing).)
|
|
82
|
+
|
|
83
|
+
## Links
|
|
84
|
+
|
|
85
|
+
- Zambo: https://zambo.dev
|
|
86
|
+
- Full tool catalog: https://zambo.dev/api/mcp?full=true
|
|
87
|
+
- MCP endpoint: `https://zambo.dev/api/mcp`
|
|
88
|
+
|
|
89
|
+
## License
|
|
90
|
+
|
|
91
|
+
MIT
|
zambo-ai-1.0.3/README.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# zambo-ai
|
|
2
|
+
|
|
3
|
+
Official Python SDK for [Zambo](https://zambo.dev), 100+ MCP tools for AI agents and apps over plain JSON-RPC 2.0. **No account, no API key.** Free: 20 calls/tool/day.
|
|
4
|
+
|
|
5
|
+
Every call returns a **verifiable receipt** (UUID + timestamp + SHA-256). Check any receipt at `https://zambo.dev/run/<id>`.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install zambo-ai
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Zero dependencies, stdlib only. Python 3.8+.
|
|
14
|
+
|
|
15
|
+
## Quickstart
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
from zambo_ai import Zambo
|
|
19
|
+
|
|
20
|
+
z = Zambo()
|
|
21
|
+
|
|
22
|
+
# Live crypto price
|
|
23
|
+
btc = z.price("BTC")
|
|
24
|
+
print(btc.text)
|
|
25
|
+
# BTC · $75,704.00 USD ... (live value at publish time)
|
|
26
|
+
|
|
27
|
+
# Describe any job in plain language — Zambo chains the right tools
|
|
28
|
+
job = z.universal("audit https://example.com for AI discoverability", session="my-session-1")
|
|
29
|
+
print(job.text)
|
|
30
|
+
print("receipt:", job.receipt_id) # verify at https://zambo.dev/run/<id>
|
|
31
|
+
|
|
32
|
+
# Call any tool directly
|
|
33
|
+
r = z.call("live_price", {"coin": "ETH"})
|
|
34
|
+
|
|
35
|
+
# Search the 100+ tool catalog
|
|
36
|
+
found = z.search("generate QR code")
|
|
37
|
+
|
|
38
|
+
# List exposed tools
|
|
39
|
+
tools = z.list_tools()
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## API
|
|
43
|
+
|
|
44
|
+
| Method | Description |
|
|
45
|
+
|---|---|
|
|
46
|
+
| `z.price(coin)` | Live crypto price (`"BTC"`, `"ETH"`, …) |
|
|
47
|
+
| `z.universal(goal, session=None)` | Plain-language job → Zambo routes and executes tools. Pass a stable `session` id to continue a trail across models. |
|
|
48
|
+
| `z.call(tool, args)` | Direct tool call, e.g. `z.call("live_price", {"coin": "ETH"})` |
|
|
49
|
+
| `z.search(query)` | Search the full 100+ tool catalog |
|
|
50
|
+
| `z.list_tools()` | List exposed tools with descriptions |
|
|
51
|
+
|
|
52
|
+
Every result: `text`, `receipt`, `receipt_id`, `audit_url`, `raw`. JSON-RPC failures raise `zambo_ai.ZamboError`.
|
|
53
|
+
|
|
54
|
+
## Pricing
|
|
55
|
+
|
|
56
|
+
- **Free:** 20 calls/tool/day, no account
|
|
57
|
+
- **Day pass:** $0.99 / 24 hours (USDC on Base)
|
|
58
|
+
- **Monthly:** $29
|
|
59
|
+
- **Annual:** $290
|
|
60
|
+
- **$ZAMBO holder:** $19/month
|
|
61
|
+
|
|
62
|
+
(From [zambo.dev/pricing](https://zambo.dev/pricing).)
|
|
63
|
+
|
|
64
|
+
## Links
|
|
65
|
+
|
|
66
|
+
- Zambo: https://zambo.dev
|
|
67
|
+
- Full tool catalog: https://zambo.dev/api/mcp?full=true
|
|
68
|
+
- MCP endpoint: `https://zambo.dev/api/mcp`
|
|
69
|
+
|
|
70
|
+
## License
|
|
71
|
+
|
|
72
|
+
MIT
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "zambo-ai"
|
|
7
|
+
version = "1.0.3"
|
|
8
|
+
description = "Official Python SDK for Zambo (zambo.dev), 100+ MCP tools over plain JSON-RPC. No account, no API key. Free: 20 calls/tool/day."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.8"
|
|
11
|
+
license = { text = "MIT" }
|
|
12
|
+
authors = [{ name = "Zambo", email = "brennanzambo@zambo.dev" }]
|
|
13
|
+
keywords = ["mcp", "ai-tools", "zambo", "agents", "crypto", "seo-audit"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 5 - Production/Stable",
|
|
16
|
+
"Intended Audience :: Developers",
|
|
17
|
+
"License :: OSI Approved :: MIT License",
|
|
18
|
+
"Programming Language :: Python :: 3",
|
|
19
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
20
|
+
]
|
|
21
|
+
dependencies = []
|
|
22
|
+
|
|
23
|
+
[project.urls]
|
|
24
|
+
Homepage = "https://zambo.dev"
|
|
25
|
+
Documentation = "https://zambo.dev"
|
|
26
|
+
Source = "https://gitlab.com/rambozambodotdev/zambo"
|
|
27
|
+
|
|
28
|
+
[tool.setuptools.packages.find]
|
|
29
|
+
include = ["zambo_ai*"]
|
zambo-ai-1.0.3/setup.cfg
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"""zambo-ai — official Python SDK for Zambo (https://zambo.dev).
|
|
2
|
+
|
|
3
|
+
100+ MCP tools over plain JSON-RPC 2.0. No account, no API key.
|
|
4
|
+
Free: 20 calls/tool/day. Every call returns a verifiable receipt
|
|
5
|
+
(UUID + timestamp + SHA-256) you can check at https://zambo.dev/run/<id>.
|
|
6
|
+
|
|
7
|
+
Zero dependencies — stdlib only.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
import http.client
|
|
11
|
+
import json
|
|
12
|
+
import time
|
|
13
|
+
import urllib.request
|
|
14
|
+
import urllib.error
|
|
15
|
+
|
|
16
|
+
ENDPOINT = "https://zambo.dev/api/mcp"
|
|
17
|
+
HEADERS = {
|
|
18
|
+
"Content-Type": "application/json",
|
|
19
|
+
"Accept": "application/json, text/event-stream",
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
# The upstream intermittently resets connections or sends headers with an
|
|
23
|
+
# empty body (server-side flake). Retry transient transport failures; never
|
|
24
|
+
# retry a received JSON-RPC error.
|
|
25
|
+
_TRANSIENT = (
|
|
26
|
+
http.client.IncompleteRead,
|
|
27
|
+
http.client.RemoteDisconnected,
|
|
28
|
+
http.client.BadStatusLine,
|
|
29
|
+
ConnectionResetError,
|
|
30
|
+
BrokenPipeError,
|
|
31
|
+
TimeoutError,
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class ZamboError(Exception):
|
|
36
|
+
"""A JSON-RPC error returned by the Zambo server."""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def _rpc_once(method, params, endpoint=ENDPOINT):
|
|
40
|
+
body = json.dumps({"jsonrpc": "2.0", "id": 1, "method": method, "params": params}).encode()
|
|
41
|
+
req = urllib.request.Request(endpoint, data=body, headers=HEADERS, method="POST")
|
|
42
|
+
with urllib.request.urlopen(req, timeout=60) as resp:
|
|
43
|
+
raw = resp.read().decode()
|
|
44
|
+
return raw
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _parse_payload(raw):
|
|
48
|
+
text = raw.strip()
|
|
49
|
+
if text.startswith("{"):
|
|
50
|
+
return json.loads(text)
|
|
51
|
+
# Server may answer SSE: data: {...} lines
|
|
52
|
+
for line in text.splitlines():
|
|
53
|
+
if line.startswith("data:"):
|
|
54
|
+
try:
|
|
55
|
+
return json.loads(line[5:].strip())
|
|
56
|
+
except json.JSONDecodeError:
|
|
57
|
+
continue
|
|
58
|
+
raise ZamboError("Unparseable response from Zambo: " + raw[:200])
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _rpc(method, params, endpoint=ENDPOINT, attempts=6):
|
|
62
|
+
last = None
|
|
63
|
+
for n in range(attempts):
|
|
64
|
+
try:
|
|
65
|
+
payload = _parse_payload(_rpc_once(method, params, endpoint))
|
|
66
|
+
break
|
|
67
|
+
except _TRANSIENT as e:
|
|
68
|
+
last = e
|
|
69
|
+
time.sleep(0.6 * (n + 1))
|
|
70
|
+
else:
|
|
71
|
+
raise ZamboError(
|
|
72
|
+
"Transport failed after %d attempts: %s: %s" % (attempts, type(last).__name__, last)
|
|
73
|
+
)
|
|
74
|
+
if "error" in payload:
|
|
75
|
+
raise ZamboError("Zambo error: " + json.dumps(payload["error"]))
|
|
76
|
+
return payload["result"]
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
class ZamboResult:
|
|
80
|
+
"""A shaped tool result: text, receipt, receipt_id, audit_url, raw."""
|
|
81
|
+
|
|
82
|
+
def __init__(self, result):
|
|
83
|
+
text = ""
|
|
84
|
+
for block in result.get("content", []):
|
|
85
|
+
if block.get("type") == "text":
|
|
86
|
+
text += block.get("text", "") + "\n"
|
|
87
|
+
self.text = text.strip()
|
|
88
|
+
self.receipt = result.get("_receipt") or {}
|
|
89
|
+
self.receipt_id = self.receipt.get("id")
|
|
90
|
+
# Per-receipt verification URL — this exact pattern appears in the
|
|
91
|
+
# live tool output (zambo.dev/run/<id> on every call).
|
|
92
|
+
self.audit_url = (
|
|
93
|
+
"https://zambo.dev/run/" + self.receipt_id
|
|
94
|
+
if self.receipt_id
|
|
95
|
+
else self.receipt.get("audit")
|
|
96
|
+
)
|
|
97
|
+
self.raw = result
|
|
98
|
+
|
|
99
|
+
def __repr__(self):
|
|
100
|
+
return "<ZamboResult receipt_id=%r>" % (self.receipt_id,)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
class Zambo:
|
|
104
|
+
"""Client for the Zambo MCP endpoint."""
|
|
105
|
+
|
|
106
|
+
def __init__(self, endpoint=ENDPOINT):
|
|
107
|
+
self.endpoint = endpoint
|
|
108
|
+
|
|
109
|
+
def _call_raw(self, method, params):
|
|
110
|
+
return _rpc(method, params, self.endpoint)
|
|
111
|
+
|
|
112
|
+
def call(self, tool, args=None):
|
|
113
|
+
"""Call any Zambo tool directly: z.call('live_price', {'coin': 'ETH'})"""
|
|
114
|
+
return ZamboResult(
|
|
115
|
+
self._call_raw("tools/call", {"name": tool, "arguments": args or {}})
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
def universal(self, goal, session=None):
|
|
119
|
+
"""Describe the job in plain language — Zambo chains the right tools
|
|
120
|
+
automatically. Pass a stable session id to continue a trail across models."""
|
|
121
|
+
args = {"goal": goal}
|
|
122
|
+
if session:
|
|
123
|
+
args["_session_id"] = session
|
|
124
|
+
return ZamboResult(
|
|
125
|
+
self._call_raw("tools/call", {"name": "zambo_universal", "arguments": args})
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
def search(self, query):
|
|
129
|
+
"""Search the 100+ tool catalog: z.search('generate QR code')"""
|
|
130
|
+
return ZamboResult(
|
|
131
|
+
self._call_raw(
|
|
132
|
+
"tools/call", {"name": "capability_search", "arguments": {"query": query}}
|
|
133
|
+
)
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
def price(self, coin):
|
|
137
|
+
"""Live crypto price helper: z.price('ETH')"""
|
|
138
|
+
return self.call("live_price", {"coin": coin})
|
|
139
|
+
|
|
140
|
+
def list_tools(self):
|
|
141
|
+
"""List the exposed tools with one-line descriptions."""
|
|
142
|
+
return self._call_raw("tools/list", {}).get("tools", [])
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
__all__ = ["Zambo", "ZamboResult", "ZamboError", "ENDPOINT"]
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: zambo-ai
|
|
3
|
+
Version: 1.0.3
|
|
4
|
+
Summary: Official Python SDK for Zambo (zambo.dev), 100+ MCP tools over plain JSON-RPC. No account, no API key. Free: 20 calls/tool/day.
|
|
5
|
+
Author-email: Zambo <brennanzambo@zambo.dev>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://zambo.dev
|
|
8
|
+
Project-URL: Documentation, https://zambo.dev
|
|
9
|
+
Project-URL: Source, https://gitlab.com/rambozambodotdev/zambo
|
|
10
|
+
Keywords: mcp,ai-tools,zambo,agents,crypto,seo-audit
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
|
|
20
|
+
# zambo-ai
|
|
21
|
+
|
|
22
|
+
Official Python SDK for [Zambo](https://zambo.dev), 100+ MCP tools for AI agents and apps over plain JSON-RPC 2.0. **No account, no API key.** Free: 20 calls/tool/day.
|
|
23
|
+
|
|
24
|
+
Every call returns a **verifiable receipt** (UUID + timestamp + SHA-256). Check any receipt at `https://zambo.dev/run/<id>`.
|
|
25
|
+
|
|
26
|
+
## Install
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install zambo-ai
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Zero dependencies, stdlib only. Python 3.8+.
|
|
33
|
+
|
|
34
|
+
## Quickstart
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
from zambo_ai import Zambo
|
|
38
|
+
|
|
39
|
+
z = Zambo()
|
|
40
|
+
|
|
41
|
+
# Live crypto price
|
|
42
|
+
btc = z.price("BTC")
|
|
43
|
+
print(btc.text)
|
|
44
|
+
# BTC · $75,704.00 USD ... (live value at publish time)
|
|
45
|
+
|
|
46
|
+
# Describe any job in plain language — Zambo chains the right tools
|
|
47
|
+
job = z.universal("audit https://example.com for AI discoverability", session="my-session-1")
|
|
48
|
+
print(job.text)
|
|
49
|
+
print("receipt:", job.receipt_id) # verify at https://zambo.dev/run/<id>
|
|
50
|
+
|
|
51
|
+
# Call any tool directly
|
|
52
|
+
r = z.call("live_price", {"coin": "ETH"})
|
|
53
|
+
|
|
54
|
+
# Search the 100+ tool catalog
|
|
55
|
+
found = z.search("generate QR code")
|
|
56
|
+
|
|
57
|
+
# List exposed tools
|
|
58
|
+
tools = z.list_tools()
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## API
|
|
62
|
+
|
|
63
|
+
| Method | Description |
|
|
64
|
+
|---|---|
|
|
65
|
+
| `z.price(coin)` | Live crypto price (`"BTC"`, `"ETH"`, …) |
|
|
66
|
+
| `z.universal(goal, session=None)` | Plain-language job → Zambo routes and executes tools. Pass a stable `session` id to continue a trail across models. |
|
|
67
|
+
| `z.call(tool, args)` | Direct tool call, e.g. `z.call("live_price", {"coin": "ETH"})` |
|
|
68
|
+
| `z.search(query)` | Search the full 100+ tool catalog |
|
|
69
|
+
| `z.list_tools()` | List exposed tools with descriptions |
|
|
70
|
+
|
|
71
|
+
Every result: `text`, `receipt`, `receipt_id`, `audit_url`, `raw`. JSON-RPC failures raise `zambo_ai.ZamboError`.
|
|
72
|
+
|
|
73
|
+
## Pricing
|
|
74
|
+
|
|
75
|
+
- **Free:** 20 calls/tool/day, no account
|
|
76
|
+
- **Day pass:** $0.99 / 24 hours (USDC on Base)
|
|
77
|
+
- **Monthly:** $29
|
|
78
|
+
- **Annual:** $290
|
|
79
|
+
- **$ZAMBO holder:** $19/month
|
|
80
|
+
|
|
81
|
+
(From [zambo.dev/pricing](https://zambo.dev/pricing).)
|
|
82
|
+
|
|
83
|
+
## Links
|
|
84
|
+
|
|
85
|
+
- Zambo: https://zambo.dev
|
|
86
|
+
- Full tool catalog: https://zambo.dev/api/mcp?full=true
|
|
87
|
+
- MCP endpoint: `https://zambo.dev/api/mcp`
|
|
88
|
+
|
|
89
|
+
## License
|
|
90
|
+
|
|
91
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
zambo_ai
|