An open API service indexing awesome lists of open source software.

https://github.com/aorumbayev/arcontextify

Algorand ARC-56 to MCP server converter
https://github.com/aorumbayev/arcontextify

ai algokit algorand fastmcp mcp python smart-contracts

Last synced: 3 months ago
JSON representation

Algorand ARC-56 to MCP server converter

Awesome Lists containing this project

README

          


Qm-Zqt55w-HXr-Zzh-Bih-SVz-XDvwp9rguv-LAv-Fh-Um1q-JR6-GYe-Q

---

Convert ARC-56 smart contracts to MCP servers for AI agent integration.

> Disclaimer: this is an experimental proof of concept tool. It is not intended for production use and may contain bugs or incomplete features.

## Features

- ๐Ÿ”„ Converts ARC-56 specs to MCP servers
- ๐Ÿ›ก๏ธ Secure environment-based configuration
- ๐ŸŽฏ Call type filtering (readonly/write-only/both)
- ๐Ÿงช Simulation mode for safe testing
- โšก AlgoKit Utils integration
- ๐Ÿ“ฆ UV-based project generation

## Installation

```bash
pipx install arcontextify
# or
uv tool install arcontextify
```

## Usage

```bash
# Generate MCP server
arcontextify contract.arc56.json

# Readonly calls only (no private key needed)
arcontextify contract.arc56.json --call-types readonly

# Write calls only
arcontextify contract.arc56.json --call-types write-only

# Custom output directory
arcontextify contract.arc56.json --output-dir ./servers
```

## Generated Server

Each server includes:

### Environment Variables
```bash
export ALGORAND_ALGOD_TOKEN="your-token"
export ALGORAND_ALGOD_SERVER="https://testnet-api.algonode.cloud"
export ALGORAND_APP_ID="123456"
export ALGORAND_DELEGATED_PRIVATE_KEY="your-key" # Not needed for readonly
```

### Claude Desktop Config
```json
{
"mcpServers": {
"contract_mcp": {
"command": "uv",
"args": ["run", "python", "-m", "src.contract_mcp"],
"cwd": "/path/to/contract_mcp",
"env": {
"ALGORAND_ALGOD_TOKEN": "your-token",
"ALGORAND_ALGOD_SERVER": "https://testnet-api.algonode.cloud",
"ALGORAND_APP_ID": "123456"
}
}
}
}
```

### Available Tools
- `verify_environment_setup()` - Check configuration
- `get_connection_info()` - Connection status
- `get_application_state()` - Global state
- `get_account_local_state(address)` - Local state
- Contract methods with simulation support

## Security

- Environment-based secrets (no hardcoded keys)
- Dummy accounts for readonly operations
- Transaction simulation for safe testing
- Address validation and input sanitization

## Requirements

- Python 3.10+
- UV package manager
- AlgoKit Utils 2.0+

## License

MIT