MCP Server
Skills teach your AI how to write Algorand code. The MCP server lets it actually do things: deploy contracts, call methods, create accounts, manage assets.
MCP (Model Context Protocol) is a standard for giving AI tools access to external systems. VibeKit’s MCP server exposes 45 blockchain operations that your AI can call directly.
How it works
The server starts automatically when you open a VibeKit-configured project in Claude Code or OpenCode. Your AI sees the available tools and uses them as needed.
No manual orchestration. Ask your AI to deploy a contract, and it builds the transaction, requests a signature from your account provider, and submits it to the network.
MCP selection
During vibekit init, you choose which MCP servers to configure. There are two categories:
Documentation MCPs
These give your AI access to Algorand documentation:
| Option | Description |
|---|---|
| Kappa (default) | Interactive Q&A search for official Algorand docs. No setup required. |
| Context7 | Library-based docs access. Requires a free API key from context7.com/dashboard. |
| Skip | Don’t configure a documentation MCP. |
Development MCPs
These give your AI hands-on blockchain capabilities:
| Option | Description |
|---|---|
| VibeKit MCP (default) | Full local development with 45 blockchain operations. Requires Docker (for Vault provider), an account provider, and optionally a GitHub PAT for code search. |
| GoPlausible Remote | Community-maintained tools for mainnet, testnet, and ecosystem operations. No local setup required—connects to remote servers. |
| Skip | Don’t configure a development MCP. |
You can skip either category if you don’t need it. For example, if you only want documentation search, skip the development MCP.
What the AI can do
| Category | Examples |
|---|---|
| Contracts | Deploy, call methods, delete apps |
| State | Read global, local, and box storage |
| Accounts | Create, fund, check balances |
| Assets | Create ASAs, transfer, opt-in |
| Network | Switch between localnet/testnet/mainnet |
| Transactions | Simulate groups, send atomic transactions |
| Search | Query indexer, search GitHub for examples |
Tool reference
| Tool | Description | |------|-------------| | list_accounts | List all accounts with
balances | | get_account_info | Get detailed account information | | create_account | Create
a new account | | switch_account | Switch the active account | | get_active_account | Get
the currently active account | | send_payment | Send ALGO payment | | fund_account | Fund an
account from the dispenser |
| Tool | Description | |------|-------------| | create_asset | Create a new ASA | |
get_asset_info | Get asset details | | asset_opt_in | Opt into an asset | | asset_transfer
| Transfer assets | | asset_opt_out | Opt out of an asset | | asset_freeze | Freeze/unfreeze
asset holdings | | asset_config | Reconfigure an asset | | asset_destroy | Destroy an asset
|
| Tool | Description | |------|-------------| | app_deploy | Deploy a smart contract | |
app_call | Call a contract method | | app_get_info | Get application info | |
app_list_methods | List available methods | | app_opt_in | Opt into an application | |
app_close_out | Close out of an application | | app_delete | Delete an application |
| Tool | Description | |------|-------------| | read_global_state | Read application global
state | | read_local_state | Read account local state | | read_box | Read box storage |
| Tool | Description | |------|-------------| | indexer_lookup_transaction | Look up a
transaction by ID | | indexer_search_transactions | Search transactions with filters | |
indexer_lookup_application | Look up application details | | indexer_lookup_application_logs
| Get application log messages | | indexer_lookup_asset | Look up asset details |
| Tool | Description | |------|-------------| | switch_network | Switch between
localnet/testnet/mainnet | | get_network | Get current network configuration |
| Tool | Description | |------|-------------| | github_get_file_contents | Get file contents
from a repository | | github_search_code | Search code across repositories | |
github_search_repositories | Search for repositories |
| Tool | Description | |------|-------------| | send_atomic_group | Send an atomic transaction
group | | simulate_transaction | Dry-run transaction groups without submitting |
| Tool | Description | |------|-------------| | get_provider | Get current account provider |
| validate_address | Validate an Algorand address | | get_application_address | Get address
for an application | | algo_to_microalgo | Convert ALGO to microALGO | | microalgo_to_algo |
Convert microALGO to ALGO | | calculate_min_balance | Calculate minimum balance requirement |
Running manually
The server starts automatically with your AI tool, but you can also run it directly:
vibekit mcpThis is useful for debugging or connecting to tools that don’t auto-detect MCP servers.
Configuration
The MCP server is configured during vibekit init. It stores connection settings in your project’s .mcp.json or your AI tool’s config directory.
To reconfigure:
vibekit initNetwork switching
Your AI can switch networks on the fly:
- localnet — AlgoKit LocalNet, for development
- testnet — Algorand TestNet, for integration testing
- mainnet — Algorand MainNet, for production
Accounts in your configured provider (Keyring or Vault) work on any network. KMD is only used for dispensers on localnet.
What the AI can’t do
The MCP server is designed with limits:
- No key access. It can request signatures, not export keys.
- No arbitrary code execution. It can only call the defined tools.
- No network bypass. All transactions go through standard Algorand nodes.
These aren’t bugs. They’re the security model. See Account Providers for how signing works.