Skip to main content
Glama
CryptoAPIs-io

@cryptoapis-io/mcp-prepare-transactions

Official
README.md
# @cryptoapis-io/mcp-prepare-transactions

MCP server for [Crypto APIs](https://cryptoapis.io/) Prepare Transactions product. Build unsigned EVM transactions for native coin transfers, fungible token transfers, and NFT transfers.

> **API Version:** Compatible with Crypto APIs version **2024-12-12**

## Features

- Prepare native coin transfer transactions (from address)
- Prepare fungible token (ERC-20) transfer transactions
- Prepare NFT (ERC-721) transfer transactions
- Returns unsigned transaction hex ready for signing with `@cryptoapis-io/mcp-signer`

## Prerequisites

- Node.js 18+
- [Crypto APIs](https://cryptoapis.io/) account and API key ([sign up](https://app.cryptoapis.io/signup) | [get API key](https://app.cryptoapis.io/api-keys))

## Installation

```bash
npm install @cryptoapis-io/mcp-prepare-transactions
```

Or install all Crypto APIs MCP servers: `npm install @cryptoapis-io/mcp`

## Usage

```bash
# Run with API key
npx @cryptoapis-io/mcp-prepare-transactions --api-key YOUR_API_KEY

# Or use environment variable
export CRYPTOAPIS_API_KEY=YOUR_API_KEY
npx @cryptoapis-io/mcp-prepare-transactions

# HTTP transport
npx @cryptoapis-io/mcp-prepare-transactions --transport http --port 3000 --api-key YOUR_API_KEY
```

### Claude Desktop

Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS, `%APPDATA%\Claude\claude_desktop_config.json` on Windows):

```json
{
  "mcpServers": {
    "cryptoapis-prepare-transactions": {
      "command": "npx",
      "args": ["-y", "@cryptoapis-io/mcp-prepare-transactions"],
      "env": {
        "CRYPTOAPIS_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

### Cursor

Add to `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (global):

```json
{
  "mcpServers": {
    "cryptoapis-prepare-transactions": {
      "command": "npx",
      "args": ["-y", "@cryptoapis-io/mcp-prepare-transactions"],
      "env": {
        "CRYPTOAPIS_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

### MCP Inspector

```bash
npx @modelcontextprotocol/inspector npx @cryptoapis-io/mcp-prepare-transactions --api-key YOUR_API_KEY
```

### n8n

1. Start the server in HTTP mode:
   ```bash
   npx @cryptoapis-io/mcp-prepare-transactions --transport http --port 3000 --api-key YOUR_API_KEY
   ```
2. In your n8n workflow, add an **AI Agent** node
3. Under **Tools**, add an **MCP Client Tool** and set the URL to `http://localhost:3000/mcp`

> All servers default to port 3000. Use `--port` to assign different ports when running multiple servers.

## Available Tools

### `prepare_transactions_evm`

Prepare unsigned EVM transactions.

| Action | Description |
|--------|-------------|
| `prepare-transaction-from-address` | Prepare a native coin transfer from an address |
| `prepare-fungible-token-transfer` | Prepare an ERC-20 token transfer |
| `prepare-nft-transfer` | Prepare an ERC-721 NFT transfer |

## CLI Arguments

| Argument | Description | Default |
|----------|-------------|---------|
| `--api-key` | Crypto APIs API key | `CRYPTOAPIS_API_KEY` env var |
| `--transport` | Transport type: `stdio` or `http` | `stdio` |
| `--host` | HTTP host | `0.0.0.0` |
| `--port` | HTTP port | `3000` |
| `--path` | HTTP path | `/mcp` |
| `--stateless` | Enable stateless HTTP mode | `false` |

### HTTP API Key Modes

When using HTTP transport, the server supports two API key modes:

- **With `--api-key`:** The key is used for all requests. `x-api-key` request headers are ignored.
- **Without `--api-key`:** Each request must include an `x-api-key` header with a valid Crypto APIs key. This enables hosting a public server where each user provides their own key.

```bash
# Per-request key mode (multi-tenant)
npx @cryptoapis-io/mcp-prepare-transactions --transport http --port 3000
# Clients send x-api-key header with each request
```

> Stdio transport always requires an API key at startup.

## Important: API Key Required

> **Warning:** Making requests without a valid API key — or with an incorrect one — may result in your IP being banned from the Crypto APIs ecosystem. Always ensure a valid API key is configured before starting any server.

## Remote MCP Server

Crypto APIs provides an official remote MCP server with all tools available via HTTP Streamable transport at [https://ai.cryptoapis.io/mcp](https://ai.cryptoapis.io/mcp). Pass your API key via the `x-api-key` header — no installation required.

## License

MIT

TDQS

A4.2/5.0

Scored across 2 tools

Disambiguation5/5

The two tools are completely distinct: one prepares unsigned EVM transactions with clear sub-actions, the other provides static system reference information. There is no overlap or ambiguity between them.

Naming Consistency4/5

Both tool names use snake_case and are descriptive, but the pattern differs slightly: 'prepare_transactions_evm' is verb_noun while 'system_info' is noun_noun. This is a minor deviation but not confusing given the small set.

Tool Count3/5

With only 2 tools, the server feels slightly thin for a general-purpose service, but the main tool (prepare_transactions_evm) bundles multiple transaction types, and system_info serves as a useful reference. The count is acceptable for a focused transaction preparation server.

Completeness4/5

The server covers the essential EVM transaction preparation scenarios: native transfers, ERC-20 transfers, and NFT transfers. It lacks more advanced options like contract calls or multi-sig transactions, but for a prepare-only tool, the core lifecycle is well covered.

Maintenance

ActivitySlowing
ResponsivenessNo issues