ICP MCP
About
A developer-friendly and type-safe TypeScript SDK for the ICP MCP API.
Details
- Author
- ai-api-booster
- Categories
- Developer Tools
Jump to
Setup
Install ICP MCP in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/ai-api-booster/mcp-rosetta-icp
Follow the installation instructions in the repository README, then restart your MCP client.
Developer-friendly & type-safe Typescript SDK specifically catered to leverageicpmcpAPI.
[!IMPORTANT] This SDK is not yet ready for production use. To complete setup please follow the steps outlined in yourworkspace. Delete this section before > publishing to a package manager.
Rosetta: Build Once. Integrate Your Blockchain Everywhere.
- icpmcp
- SDK Installation
- Requirements
- SDK Example Usage
- Available Resources and Operations
- Standalone functions
- Retries
- Error Handling
- Custom HTTP Client
- Debugging
[!TIP] To finish publishing your SDK to npm and others you mustrun your first generation action.
The SDK can be installed with eithernpm,pnpm,bunoryarnpackage managers.
yarn add <UNSET> zod # Note that Yarn does not install peer dependencies automatically. You will need # to install zod as shown above.
[!NOTE] This package is published with CommonJS and ES Modules (ESM) support.
This SDK is also an installable MCP server where the various SDK methods are exposed as tools that can be invoked by AI applications.
Node.js v20 or greater is required to run the MCP server from npm.
Add the following server definition to yourclaude_desktop_config.jsonfile:
{ "mcpServers": { "icpmcp-rosetta-api": { "command": "npx", "args": [ "-y", "--package", "icpmcp-rosetta-api", "--", "mcp", "start", "--server-url", "..." ] } } }
Create a.cursor/mcp.jsonfile in your project root with the following content:
{ "mcpServers": { "icpmcp-rosetta-api": { "command": "npx", "args": [ "-y", "--package", "icpmcp-rosetta-api", "--", "mcp", "start", "--server-url", "..." ] } } }
You can also run MCP servers as a standalone binary with no additional dependencies. You must pull these binaries from available Github releases:
curl -L -o mcp-server \ https://github.com/{org}/{repo}/releases/download/{tag}/mcp-server-bun-darwin-arm64 && \ chmod +x mcp-server
If the repo is a private repo you must add your Github PAT to download a release-H "Authorization: Bearer {GITHUB_PAT}".
{ "mcpServers": { "Todos": { "command": "./DOWNLOAD/PATH/mcp-server", "args": [ "start" ] } } }
For a full list of server arguments, run:
npx -y --package icpmcp -- mcp start --help
For supported JavaScript runtimes, please consultRUNTIMES.md.
import { Icpmcp } from "icpmcp-rosetta-api"; const icpmcp = new Icpmcp({ serverURL: "https://api.example.com", }); async function run() { const result = await icpmcp.network.networkList({}); console.log(result); } run();
- accountBalance- Get an Account's Balance
- accountCoins- Get an Account's Unspent Coins
- block- Get a Block
- blockTransaction- Get a Block Transaction
- call- Make a Network-Specific Procedure Call
- constructionDerive- Derive an AccountIdentifier from a PublicKey
- constructionPreprocess- Create a Request to Fetch Metadata
- constructionMetadata- Get Metadata for Transaction Construction
- constructionPayloads- Generate an Unsigned Transaction and Signing Payloads
- constructionCombine- Create Network Transaction from Signatures
- constructionParse- Parse a Transaction
- constructionHash- Get the Hash of a Signed Transaction
- constructionSubmit- Submit a Signed Transaction
- eventsBlocks- [INDEXER] Get a range of BlockEvents
- mempool- Get All Mempool Transactions
- mempoolTransaction- Get a Mempool Transaction
- networkList- Get List of Available Networks
- networkStatus- Get Network Status
- networkOptions- Get Network Options
- searchTransactions- [INDEXER] Search for Transactions
All the methods listed above are available as standalone functions. These functions are ideal for use in applications running in the browser, serverless runtimes or other environments where application bundle size is a primary concern. When using a bundler to build your application, all unused functionality will be either excluded from the final bundle or tree-shaken away.
To read more about standalone functions, check[FUNCTIONS.md.
…
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





