MCP Server Setup Guide

A step-by-step guide to installing, configuring, and using the DUAL MCP Server with your AI assistant. By the end of this guide, you'll have an AI agent that can mint tokens, manage templates, execute actions, and interact with the full DUAL platform through natural language.

Prerequisites

DUAL accountFor API access
DUAL API keyFrom the DUAL Console
MCP clientClaude Desktop, Cursor, or any MCP-compatible tool
Internet connectionHosted server — no local install needed
The DUAL MCP server is fully hosted at https://mcp.blockv.io/mcp — no Node.js, cloning, or building required. Just configure your MCP client to connect.

Authentication

The hosted MCP server authenticates requests using your API key sent via the X-API-Key header. You have two options.

1

Option A: API Key (Recommended)

Create an API key in the DUAL Console, then pass it to your MCP client via the headers configuration. No environment variables or local server setup required.

API keys persist across sessions and don't expire like JWT tokens. This is the recommended approach.
2

Option B: Interactive Login

No pre-configured credentials? The AI agent can log in interactively using the dual_login tool. Just tell the agent “log in to DUAL” and provide your email and OTP code when prompted.

Interactive login sets the auth token for the current session only.

Client Configuration

3

Claude Desktop

Add the following to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "dual": {
      "url": "https://mcp.blockv.io/mcp",
      "headers": {
        "X-API-Key": "your-api-key"
      }
    }
  }
}

Restart Claude Desktop after saving. You should see DUAL tools available in the tool picker.

4

Cursor

Add to your Cursor MCP settings (.cursor/mcp.json in your project or global config):

.cursor/mcp.json
{
  "mcpServers": {
    "dual": {
      "url": "https://mcp.blockv.io/mcp",
      "headers": {
        "X-API-Key": "your-api-key"
      }
    }
  }
}
5

Claude Code (CLI)

Add via the Claude Code CLI:

claude mcp add dual --transport sse https://mcp.blockv.io/mcp

Set the API key header in your MCP client configuration or shell environment.

Usage Examples

Once configured, you can interact with the DUAL platform through natural language. Here are real-world examples of what your AI agent can do.

Create a Reward Token

“Create a redeemable reward token called BrandPoints with a 1 million supply. Add an expiry property that defaults to 12 months from mint date.”

1
dual_create_templateCreates the BrandPoints template with points, expiry_date, and redeemable properties
2
dual_create_action_typeRegisters 'Redeem' and 'Expire' actions with payload schemas
3
dual_create_faceAttaches a visual representation to the template
4
dual_execute_actionMints the initial supply of 1M tokens

Monitor Platform Activity

“How many objects are on the platform? Show me the latest sequencer batch and any recent checkpoints.”

1
dual_public_get_statsFetches total objects, templates, and wallets
2
dual_list_batchesGets the latest sequencer batch with transactions
3
dual_list_checkpointsShows recent ZK-rollup checkpoints with state roots

Set Up Webhooks for Real-Time Events

“Set up a webhook to notify my server whenever a token is transferred. Send test payloads to make sure it works.”

1
dual_create_webhookRegisters an HTTPS endpoint for transfer events
2
dual_test_webhookSends a test payload to verify the endpoint responds
3
dual_list_webhooksConfirms the webhook is active and correctly scoped

Manage Organizations and Members

“Create an organization called Acme Corp, set up an admin role and a viewer role, then add my team member.”

1
dual_create_organizationCreates the Acme Corp workspace
2
dual_create_org_roleCreates 'Admin' role with full permissions
3
dual_create_org_roleCreates 'Viewer' role with read-only permissions
4
dual_add_org_memberAdds the team member with the appropriate role

Batch Operations (Atomic)

“Transfer 100 tokens to three different wallets and update the status to distributed — all in one atomic batch.”

1
dual_batch_actionsExecutes all 4 actions atomically — 3 transfers + 1 status update. If any fails, all roll back.

Configuration Reference

SettingDescriptionRequired
urlMCP endpoint: https://mcp.blockv.io/mcpYes
X-API-Key headerYour DUAL API key for authenticationYes

Troubleshooting

"Error: Authentication required"

No API key configured. Ensure the X-API-Key header is set in your MCP client config, or use the dual_login tool to authenticate interactively.

"Error: Cannot reach DUAL MCP"

Check your internet connection. The hosted endpoint is https://mcp.blockv.io/mcp — verify it is reachable from your network.

Tools not showing in Claude Desktop

Verify the url field in claude_desktop_config.json is correct and headers include your API key. Restart Claude Desktop after editing the config.

"Error: Rate limit exceeded"

You're making too many requests. Wait a moment and try again. For high-volume operations, use dual_batch_actions to group multiple actions.

Next Steps