Metadata-Version: 2.4
Name: llama-index-tools-instanode
Version: 0.2.0
Summary: LlamaIndex tools for instanode.dev — provision Postgres + webhooks from LlamaIndex agents
License: MIT
Project-URL: Homepage, https://instanode.dev
Project-URL: Repository, https://github.com/InstaNode-dev/llama-index-instanode
Project-URL: Bug Tracker, https://github.com/InstaNode-dev/llama-index-instanode/issues
Keywords: llama-index,llama-index-tools,llamahub,instanode,postgres,database,webhook,ai-agents
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Topic :: Database
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: instanode>=0.3.0
Requires-Dist: llama-index-core>=0.11.0
Provides-Extra: test
Requires-Dist: pytest>=8.0; extra == "test"
Dynamic: license-file

# llama-index-tools-instanode

LlamaIndex tool spec for [instanode.dev](https://instanode.dev). Lets a
LlamaIndex agent provision ephemeral Postgres databases + webhook receivers
mid-task. No Docker, no account for the free tier.

```
pip install llama-index-tools-instanode
```

## Usage

```python
from llama_index.agent.openai import OpenAIAgent
from llama_index_tools_instanode import InstanodeToolSpec

tool_spec = InstanodeToolSpec()
agent = OpenAIAgent.from_tools(tool_spec.to_tool_list(), verbose=True)

agent.chat(
    "Stand up a Postgres DB with pgvector, then store this embedding in it: "
    "<embedding>."
)
```

The agent gets four tools:

- `provision_postgres(name)` → `postgres://` DSN (pgvector pre-installed).
- `provision_webhook(name)` → HTTPS receiver URL.
- `list_resources()` → enumerate resources owned by the current API key.

MongoDB, Redis/cache, NATS queue, and heartbeat-monitor tools are on the
roadmap, gated on the matching backend endpoints landing. They live on
the `feature/full-api` branch.

### Scoping to specific tools

```python
tool_list = [
    t for t in tool_spec.to_tool_list()
    if t.metadata.name in {"provision_postgres"}
]
```

### Paid-tier credentials

Set `INSTANODE_API_KEY` in your environment, or pass it explicitly:

```python
tool_spec = InstanodeToolSpec(api_key="sk_...")
```

## Tier model

| Tier | Postgres | Webhooks | Persistence |
|---|---|---|---|
| Anonymous (no key) | 10 MB / 2 connections | 100 stored | 24 hours |
| Paid (free signup at instanode.dev) | 500 MB / 5 connections | 1000 stored | Permanent |

## Related

- Python SDK: <https://pypi.org/project/instanode/>
- MCP server (for Claude Code/Cursor): <https://www.npmjs.com/package/@instanode/mcp>
- LangChain variant: <https://pypi.org/project/langchain-instanode/>
- HTTP API reference: <https://instanode.dev/llms.txt>

## License

MIT.
