Skip to main content
Glama
1Money-Co

1Money Network MCP

Official
by 1Money-Co
README.md
# 1Money Network MCP
<img src="./public/logo.png" alt="1Money Logo" width="200"/> 

MCP (stdio) server for the 1Money Network Protocol, backed by `@1money/protocol-ts-sdk`.

## What This MCP Server Does

- Exposes protocol API endpoints (accounts, tokens, transactions, checkpoints, chain) as MCP tools.
- Includes utility tools for signing, hashing, RLP encoding, and address derivation.
- Uses the SDK client configuration and respects network/base URL/timeouts.

## Configuration

Environment variables:

- `ONEMONEY_PROTOCOL_NETWORK`: `testnet`, `mainnet`, or `local` (default: `testnet`)
- `ONEMONEY_PROTOCOL_BASE_URL`: override the network base URL
- `ONEMONEY_PROTOCOL_TIMEOUT_MS`: request timeout in ms (default: `10000`)
- `ONEMONEY_PROTOCOL_HEADERS`: optional JSON string of headers to include in all requests (only needed for custom gateways/proxies)

Example `.env` file (see `.env.example`):

```bash
export ONEMONEY_PROTOCOL_NETWORK=testnet
export ONEMONEY_PROTOCOL_TIMEOUT_MS=15000
```
Most users can omit `ONEMONEY_PROTOCOL_HEADERS`.

## Integration

### Cursor (one-click install)

After installation, add your configuration to `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "1money-network": {
      "command": "npx",
      "args": ["-y", "@1money/network-mcp"],
      "env": {
        "ONEMONEY_PROTOCOL_NETWORK": "testnet"
      }
    }
  }
}
```

### Claude Code

Run the following command in your terminal:

```bash
claude mcp add --transport stdio 1money-network --env ONEMONEY_PROTOCOL_NETWORK=testnet -- npx -y @1money/network-mcp
```

### Claude Desktop

Add to your Claude Desktop configuration file:

macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`  
Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "1money-network": {
      "command": "npx",
      "args": ["-y", "@1money/network-mcp"],
      "env": {
        "ONEMONEY_PROTOCOL_NETWORK": "testnet"
      }
    }
  }
}
```

### Codex Integration

Add the MCP server to your Codex config file, then restart Codex:

```toml
[mcp_servers.1money-network]
command = "npx"
args = ["-y", "@1money/network-mcp"]
env = { ONEMONEY_PROTOCOL_NETWORK = "testnet" }
```

## Example Tool Calls

```json
{
  "tool": "accounts.get_nonce",
  "input": {
    "address": "0x9E1E9688A44D058fF181Ed64ddFAFbBE5CC74ff3"
  }
}
```

```json
{
  "tool": "transactions.estimate_fee",
  "input": {
    "from": "0x9E1E9688A44D058fF181Ed64ddFAFbBE5CC74ff3",
    "value": "1000000000",
    "token": "0x2cd8999Be299373D7881f4aDD11510030ad1412F"
  }
}
```

```json
{
  "tool": "utils.sign_message",
  "input": {
    "payload": [
      1212101,
      2,
      "0x0000000000000000000000000000000000000000",
      "1000000000000000000",
      "0x0000000000000000000000000000000000000000"
    ],
    "private_key": "0xYOUR_PRIVATE_KEY"
  }
}
```

Note: `utils.sign_message` accepts a private key directly. Avoid using real keys in shared environments.

## Example Prompts

- "Get the current chain id."
- "Fetch the latest checkpoint number on testnet."
- "Estimate fee for sending 1000000000 units from 0x... with token 0x...."
- "Get token metadata for 0x...."
- "Derive the token account address for wallet 0x... and mint 0x...."

## Tools

### accounts

- `accounts.get_nonce`
- `accounts.get_bbnonce`
- `accounts.get_token_account`

### chain

- `chain.get_chain_id`

### checkpoints

- `checkpoints.get_number`
- `checkpoints.get_by_hash`
- `checkpoints.get_by_number`
- `checkpoints.get_receipts_by_number`

### tokens

- `tokens.get_token_metadata`
- `tokens.manage_blacklist`
- `tokens.manage_whitelist`
- `tokens.burn`
- `tokens.grant_authority`
- `tokens.issue`
- `tokens.mint`
- `tokens.pause`
- `tokens.update_metadata`
- `tokens.bridge_and_mint`
- `tokens.burn_and_bridge`

### transactions

- `transactions.get_by_hash`
- `transactions.get_receipt_by_hash`
- `transactions.get_finalized_by_hash`
- `transactions.estimate_fee`
- `transactions.payment`

### utils

- `utils.derive_token_address`
- `utils.sign_message`
- `utils.encode_payload`
- `utils.to_hex`
- `utils.calc_tx_hash`
- `utils.typeof`
- `utils.safe_promise_all`
- `utils.safe_promise_line`

Batch tools (`utils.safe_promise_all` and `utils.safe_promise_line`) accept a `calls` array of `{ tool, input }` objects. The `safe_promise_all` variant executes in parallel and fails on the first error. The `safe_promise_line` variant executes sequentially and ignores errors.
## Schema

`schemas/tools.json` is the JSON Schema source for all tools.

TDQS

D1.8/5.0

Scored across 32 tools

Disambiguation4/5

Tools are mostly distinct by domain area (accounts, chain, checkpoints, tokens, transactions, utils). A few pairs like tokens_issue vs tokens_mint or accounts_get_nonce vs accounts_get_bbnonce could be ambiguous without descriptions, but the verb/object division generally clarifies purpose.

Naming Consistency5/5

All tool names follow a consistent group_verb_object pattern with snake_case throughout (e.g., accounts_get_nonce, tokens_burn, transactions_estimate_fee). Even compound actions like bridges_and_mints maintain the same style, so the naming is highly predictable.

Tool Count2/5

With 32 tools, the server feels overloaded. Many utilities (utils_typeof, utils_safe_promise_all, utils_safe_promise_line) are not domain-specific and could be omitted, while the core token and transaction areas are well-covered. The count exceeds a comfortable scope for an MCP server.

Completeness4/5

The tool surface covers core blockchain operations: account nonces, chain ID, checkpoint queries, token lifecycle (issue, mint, burn, pause, whitelist/blacklist, metadata, authority), and transaction submission/estimation/retrieval. Minor gaps exist, such as an explicit token transfer tool (though payment may cover that) and no direct block query, but overall coverage is strong.

Maintenance

ActivityInactive
ResponsivenessUnresponsive