Metadata-Version: 2.4
Name: snap-crewai-tools
Version: 0.1.0
Summary: CrewAI tools for SNAP — private agent-to-agent payments on Solana using zero-knowledge proofs
Author-email: AgentZeny <agentzeny@gmail.com>
License: MIT
Project-URL: Homepage, https://agentzeny.ai
Project-URL: Repository, https://github.com/agentzeny/snap-public
Project-URL: SDK, https://www.npmjs.com/package/snap-solana-sdk
Keywords: crewai,solana,privacy,zero-knowledge-proofs,ai-agents,payments,groth16,snap
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Intended Audience :: Developers
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: crewai>=0.95.0
Requires-Dist: pydantic>=2.0
Provides-Extra: mcp
Requires-Dist: crewai-tools>=0.32.0; extra == "mcp"
Requires-Dist: mcp>=1.0.0; extra == "mcp"

# snap-crewai-tools

CrewAI tools for [SNAP](https://github.com/agentzeny/snap-public) — private agent-to-agent payments on Solana using zero-knowledge proofs.

## Install

```bash
pip install snap-crewai-tools
# for the deposit/withdraw flow via the SNAP MCP server:
pip install "snap-crewai-tools[mcp]"   # also requires Node.js (npx)
```

## Native tools (pure Python)

`snap_list_pools` and `snap_estimate_fee` work with no JS dependency:

```python
from crewai import Agent
from snap_crewai_tools import create_snap_tools

tools = create_snap_tools()  # [SNAPListPoolsTool, SNAPEstimateFeeTool]

agent = Agent(
    role="Payments analyst",
    goal="Inspect SNAP pools and fees",
    tools=tools,
)
```

| Tool | Description |
|------|-------------|
| `snap_list_pools` | List SNAP mainnet shielded pools |
| `snap_estimate_fee` | Estimate the 0.25% protocol fee for a pool |

## Full flow: deposit & withdraw via the SNAP MCP server

Deposit and withdraw require Groth16 proof generation (in the TypeScript SDK), so
in Python those run through the published [`snap-mcp-server`](https://www.npmjs.com/package/snap-mcp-server)
using CrewAI's `MCPServerAdapter`:

```python
from crewai import Agent
from crewai_tools import MCPServerAdapter
from snap_crewai_tools.mcp import snap_mcp_server_params

params = snap_mcp_server_params(
    rpc_url="https://your-rpc-url.com",
    pool_address="B8SyffZKt8LABKogWjH9rZcjY5PV2hyYRCbTxxbcrpFf",
)

with MCPServerAdapter(params) as tools:
    # tools includes snap_deposit, snap_withdraw, snap_withdraw_private,
    # snap_estimate_fee, snap_list_pools, snap_pool_info, snap_balance
    agent = Agent(role="Treasurer", goal="Pay agents privately", tools=tools)
```

## Mainnet Pools

| Pool | Address |
|------|---------|
| 0.1 SOL | `B8SyffZKt8LABKogWjH9rZcjY5PV2hyYRCbTxxbcrpFf` |
| 1 USDC | `5LeuHrPBgHNhgbCy996MEjcsBk5gNHhVj6AiuuCHZ8od` |
| 10 USDC | `ECuHf8kgiWfmL3Q6id4WGBQWvuukhzqvF5vsxuPAKZBv` |

## Links

- [SNAP Protocol](https://github.com/agentzeny/snap-public)
- [Website](https://agentzeny.ai)
- [SDK (snap-solana-sdk)](https://www.npmjs.com/package/snap-solana-sdk)
- [MCP server (snap-mcp-server)](https://www.npmjs.com/package/snap-mcp-server)
- [LangChain tools (snap-langchain-tools)](https://www.npmjs.com/package/snap-langchain-tools)

## License

MIT
