# COTI MCP Server

This tool lets you play with the COTI blockchain right from your AI assistant.

## Quick Start

```bash
# Connect this server (installs CLI if needed)
npx -y @smithery/cli@latest mcp add davibauer/coti-mcp

# Browse available tools
npx -y @smithery/cli@latest tool list davibauer/coti-mcp

# Get full schema for a tool
npx -y @smithery/cli@latest tool get davibauer/coti-mcp create_account

# Call a tool
npx -y @smithery/cli@latest tool call davibauer/coti-mcp create_account '{}'
```

## Direct MCP Connection

Endpoint: `https://coti-mcp.run.tools`

## Tools (44)

- `create_account` — Create a new COTI account with a randomly generated private key and AES key. Returns the new account details for the AI…
- `decrypt_value` — Decrypt a value using a COTI AES key. The AI assistant should pass the private key from context. Returns the decrypted …
- `decrypt_message` — Decrypt a message that was encrypted using encrypt_message. Requires the same AES key used to encrypt, the ciphertext, …
- `get_current_network` — Get the currently configured COTI network (testnet or mainnet). The AI assistant should track and pass the current netw…
- `get_current_rpc` — Get the RPC URL for the specified COTI network (testnet or mainnet). Returns the RPC endpoint currently being used for …
- `encrypt_value` — Encrypt a value using a COTI AES key. This is used for encrypting values to be sent to another address for private tran…
- `encrypt_message` — Encrypt a plain text message using a COTI AES key. Unlike encrypt_value, this does not require a contract address or fu…
- `generate_aes_key` — Generate or recover an AES key for a COTI account. Requires the account to be funded. The AI assistant should track the…
- `import_account_from_private_key` — Import a COTI account using only a private key. The public key will be derived automatically, and the AES key placehold…
- `sign_message` — Sign a message using a COTI private key. This creates a cryptographic signature that proves the message was signed by t…
- `switch_network` — Switch between COTI testnet and mainnet networks. The AI assistant should remember this network selection and pass it t…
- `verify_signature` — Verify a message signature and recover the address that signed it. This is used to determine who signed a specific mess…
- `compile_contract` — Compiles Solidity source code without deploying it to the blockchain. Returns bytecode, ABI, and compilation metadata (…
- `compile_and_deploy_contract` — Compiles Solidity source code and immediately deploys it to the COTI blockchain in a single operation. This tool avoids…
- `approve_erc20_spender` — Approve another address to spend tokens on behalf of the owner. This is used for allowing another address (like a contr…
- `deploy_private_erc20_contract` — Deploy a new standard private ERC20 token contract on the COTI blockchain. This creates a new private token with the sp…
- `get_private_erc20_allowance` — Check how many tokens a spender is allowed to use. This is used for checking the current allowance a spender has for an…
- `get_private_erc20_balance` — Get the balance of a private ERC20 token on the COTI blockchain. This is used for checking the current balance of a pri…
- `get_private_erc20_decimals` — Get the number of decimals for a private ERC20 token on the COTI blockchain. This is used for checking the number of de…
- `get_private_erc20_total_supply` — Get the total supply of tokens for a private ERC20 token on the COTI blockchain. This is used for checking how many tok…
- `mint_private_erc20_token` — Mint additional private ERC20 tokens on the COTI blockchain. This adds new tokens to the specified recipient address. R…
- `transfer_private_erc20` — Transfer private ERC20 tokens on the COTI blockchain. This is used for sending private tokens from your wallet to anoth…
- `approve_private_erc721` — Approve an address to transfer a specific private ERC721 NFT token on the COTI blockchain. This allows the approved add…
- `deploy_private_erc721_contract` — Deploy a new standard private ERC721 NFT contract on the COTI blockchain. This creates a new private NFT collection wit…
- `get_private_erc721_approved` — Get the approved address for a private ERC721 NFT token on the COTI blockchain. This is used for checking which address…
- `get_private_erc721_balance` — Get the balance of a private ERC721 NFT collection on the COTI blockchain. This is used for checking how many NFTs an a…
- `get_private_erc721_is_approved_for_all` — Check if an operator is approved to transfer all private ERC721 NFT tokens on the COTI blockchain. This is used for che…
- `get_private_erc721_token_owner` — Get the owner address of a private ERC721 NFT token on the COTI blockchain. This is used for checking who currently own…
- `get_private_erc721_token_uri` — Get the tokenURI for a private ERC721 NFT token on the COTI blockchain. This is used for retrieving the metadata URI of…
- `get_private_erc721_total_supply` — Get the total supply of tokens for a private ERC721 NFT collection on the COTI blockchain. This is used for checking ho…
- `mint_private_erc721_token` — Mint a new private ERC721 NFT token on the COTI blockchain. This creates a new NFT in the specified collection with the…
- `set_private_erc721_approval_for_all` — Approve or revoke an operator to transfer all private ERC721 NFT tokens on the COTI blockchain. This allows the operato…
- `transfer_private_erc721` — Transfer a private ERC721 NFT token on the COTI blockchain. This is used for sending a private NFT from your wallet to …
- `call_contract_function` — Call any function on a smart contract on the COTI blockchain. Supports both read-only (view/pure) functions and state-c…
- `decode_event_data` — Decode event data from a transaction log based on the event signature. This helps interpret the raw data in transaction…
- `get_transaction_status` — Get the status of a transaction on the COTI blockchain. This is used for checking if a transaction has been confirmed, …
- `get_transaction_logs` — Get the logs from a transaction on the COTI blockchain. This is used for retrieving event logs emitted during transacti…
- `deploy_private_message_contract` — Deploys the PrivateMessage contract on the COTI blockchain. This contract allows sending encrypted messages to specific…
- `send_private_message` — Send an encrypted message to a specific recipient address on a deployed PrivateMessage contract. The message is encrypt…
- `read_private_message` — Read and decrypt a private message sent to you on a deployed PrivateMessage contract. The message is decrypted using yo…
- `get_private_message_count` — Returns the number of private messages sent to you by a specific sender on a deployed PrivateMessage contract. Use this…
- `get_private_message_senders` — Returns the list of all wallet addresses that have sent you at least one private message on a deployed PrivateMessage c…
- `get_native_balance` — Get the native COTI token balance of a COTI blockchain account. This is used for checking the current balance of a COTI…
- `transfer_native` — Transfer native COTI tokens to another wallet. This is used for sending COTI tokens from your wallet to another address…

```bash
# Get full input/output schema for a tool
npx -y @smithery/cli@latest tool get davibauer/coti-mcp <tool-name>
```

---

Source: https://github.com/davibauer/coti-mcp | License: MIT
