ICP Control Plane MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ICP_HOST | No | Mainnet or http://127.0.0.1:4943 for local | https://icp-api.io |
| ICP_AUTH_PORT | No | Port for Internet Identity auth | 34567 |
| ICP_IDENTITY_FILE | No | Persistent identity storage | ./mcp-identity.json |
| IDENTITY_PEM_PATH | No | Optional PEM file for identity |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_principal_idA | Returns the Principal ID of the authenticated agent. Check if the result is anonymous (2vxsx-fae) and call icp_login if needed. |
| icp_loginA | Initiates the wallet login flow. Returns a URL for the user to authenticate via Internet Identity or NFID. |
| icp_logoutA | Logs out the current session and reverts to anonymous identity. |
| icp_auth_statusB | Check the current authentication status. |
| call_canisterA | Call any public method on an ICP canister. Specify argument and return types using Candid type strings. |
| get_canister_interfaceA | Fetch the Candid interface definition for a canister. Use this to discover available methods before using call_canister. |
| icp_create_canisterA | Creates a new empty canister. Uses provisional creation (dev mode only - requires cycles faucet on mainnet). |
| icp_install_codeB | Installs or upgrades WASM code in a canister. Reads WASM from local filesystem. |
| icp_manage_canisterB | Manage canister state: start, stop, or delete a canister. |
| icp_get_canister_statusB | Get the status of a canister including cycles balance, memory usage, and settings. |
| icp_get_account_idA | Get the Account ID (hex string) for the current principal. This is needed to receive ICP. |
| icp_check_balanceA | Check the ICP balance of the current account |
| icp_transferA | Transfer ICP to another account. Fee: 0.0001 ICP |
| icp_to_cyclesC | Convert ICP to cycles by creating a new canister. The ICP will be converted to cycles at the current exchange rate. |
| icp_create_projectA | Create a new ICP canister project. Supports Rust (systems programming) or Motoko (ICP-native, easier syntax). Choose "frontend" for HTTP-serving or "backend" for stateful API. |
| icp_init_dfx_projectC | Initialize a new dfx project with customizable configuration. Creates dfx.json and folder structure. |
| icp_add_canister_to_projectA | Add a new canister to an existing dfx.json project. |
| icp_build_rust_canisterA | Compile a Rust canister project to WASM. Requires Rust and wasm32-unknown-unknown target. |
| icp_build_motoko_canisterB | Compile a Motoko canister project to WASM using dfx. Requires dfx installed. |
| icp_deployB | Build and deploy a canister. Auto-detects Rust (Cargo.toml) or Motoko (dfx.json) projects. |
| icp_top_up_canisterA | Add cycles to an existing canister by converting ICP via CMC. |
| icp_canister_infoC | Get useful information about a canister including its URLs. |
| icp_cycles_balanceA | Check your cycles balance on the Cycles Ledger. |
| icp_cycles_withdrawB | Withdraw cycles from Cycles Ledger to a canister. |
| icp_cycles_guideB | Get guidance on cycles management. |
| icp_create_frontendB | Create a new frontend SPA project for deployment to an asset canister. |
| icp_deploy_frontendB | Deploy static frontend files to an asset canister. |
| icp_list_assetsA | List all assets in an asset canister. |
| icp_install_asset_wasmA | Install the certified asset canister WASM. Required before deploying frontend files. |
| icp_create_icrc1_tokenD | Get information about creating an ICRC-1 fungible token (similar to ERC-20). |
| icp_token_balanceA | Check the balance of an ICRC-1 token for a given account. |
| icp_preflight_checkA | Run comprehensive preflight checks before deploying to a canister. Validates controller status, cycles, existing code, and deployment mode safety. |
| icp_upgrade_canisterA | Safely upgrade a canister with preflight checks. This tool ALWAYS uses upgrade mode by default to preserve state. Use icp_install_code directly only if you need reinstall. |
| icp_release_snapshotA | Create a release snapshot/record for a deployed canister. Useful for tracking deployments and enabling rollbacks. |
| icp_controller_checkA | Check if you are a controller of a canister. Essential before any management operation. |
| icp_deployment_guideA | Get a comprehensive guide on safe deployment practices for ICP canisters. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jesse-pink-lab/icp-control-plane-mcp-dist'
If you have feedback or need assistance with the MCP directory API, please join our Discord server