Skip to main content
The Para Migration MCP Server is an AI-powered Model Context Protocol (MCP) server that automates wallet provider migrations to Para. Instead of manually rewriting providers, hooks, imports, and configuration, you can run the migration through your AI coding assistant and have it handle the entire process atomically — all changes succeed together or roll back automatically. It works with Claude Code, Cursor, and Claude Desktop, and supports migrations from Privy, Reown (AppKit), Web3Modal, and WalletConnect.

Supported Migration Paths

Prerequisites

Before starting, make sure you have:

Installation

Add the Migration MCP server to your AI tool of choice:
Run the following command in your terminal:
Restart Claude Code to pick up the new server.

Step-by-Step Migration

Once the MCP server is connected, walk through these steps in your AI tool’s chat interface. Each step corresponds to an MCP tool that runs automatically behind the scenes.
1

Analyze Your Project

Start by asking your AI assistant to analyze your project:
This runs the analyze_project tool, which scans your project’s dependencies, imports, provider components, hooks, and styles. It returns:
  • The detected wallet provider (Privy, Reown, Web3Modal, or WalletConnect)
  • The recommended migration strategy
  • A summary of all provider-related code found (hooks, providers, imports)
If your project uses a non-standard structure, you can also specify the path to your package.json directly.
2

Check Wagmi Compatibility

Para maintains full Wagmi compatibility, so your existing Wagmi hooks continue to work after migration. Verify this by asking:
This runs check_compatibility and reports which Wagmi hooks are in use and whether they’re compatible with Para’s provider.
3

Preview the Migration (Dry Run)

Before making any changes, preview what the migration will do:
This runs execute_atomic_migration with dryRun: true. It returns a detailed list of every operation that would be performed — dependency removals, import replacements, provider swaps, hook updates, and CSS additions — without actually modifying any files.Review the output to make sure you’re comfortable with the changes.
4

Execute the Migration

When you’re ready, execute the migration:
This runs execute_atomic_migration with dryRun: false. The migration is atomic — either all operations succeed together, or everything rolls back to the original state. You’ll never be left with a half-migrated project.The tool will:
  1. Remove old wallet provider imports
  2. Add Para SDK imports
  3. Replace provider components with ParaProvider
  4. Update hook usages (e.g., usePrivy becomes useAccount)
  5. Add Para CSS imports to your entry point
Make sure your project is committed to version control before running the migration, so you can easily review the diff afterward.
5

Validate the Migration

After the migration completes, run validation to catch the issues that cause 90% of migration failures:
This runs validate_para_migration and checks for five critical issues:
  1. Modal ownership — use the modal embedded in <ParaProvider>, or disable it before rendering your own <ParaModal />
  2. CSS imports missing@getpara/react-sdk/styles.css must be imported in your entry point
  3. Environment enum — Must use Environment.DEVELOPMENT (not the string "development")
  4. Old dependencies present — Old provider packages should be fully removed
  5. Para dependencies missing@getpara/react-sdk must be installed
You can also check the overall migration completion percentage:
This runs validate_migration_state and returns a breakdown of how much of the migration is complete across dependencies, imports, providers, hooks, and styles.
6

Install Updated Dependencies

Based on the validation output, update your dependencies:
Terminal
Then run your project to verify everything works:
Terminal

Generating Additional Components

If you need to generate specific components after the migration, the MCP server includes several code generation tools you can invoke through your AI assistant.

Provider Component

Generate a production-ready ParaProvider component:
This runs generate_provider_component and outputs a complete provider with embedded modal configuration, CSS imports, and Environment enum already configured correctly.

Connect Button

Generate a styled wallet connection button:
Supported styling options: tailwind, styled-components, css-modules, or none.

CSS Imports

Auto-detect your project’s entry point and generate the correct CSS import:
This runs generate_css_imports and detects whether your entry point is main.tsx, layout.tsx, _app.tsx, or another file, then generates the appropriate import statement.

Hook Migration Examples

See before/after examples of how hooks change during migration:
This runs generate_hooks_examples and shows the mapping for each hook — for example, usePrivy becomes useAccount, useWallets becomes useWallet, and so on. Supported source providers: privy, reown, walletconnect.

Next.js Layout with Styles

Generate a complete Next.js root layout with Para styles properly imported:
This runs generate_layout_with_styles and outputs a layout.tsx file with the @getpara/react-sdk/styles.css import in the correct location.

Common Issues

Duplicate ParaModal: ParaProvider renders an embedded modal by default. Remove any separate <ParaModal />, or set disableEmbeddedModal: true in the provider config before rendering your own modal.
Missing CSS Import: Para’s modal requires its stylesheet. Make sure @getpara/react-sdk/styles.css is imported in your application’s entry point (e.g., layout.tsx, main.tsx, or _app.tsx). Without it, the modal renders without styling.
Environment String vs Enum: Use the Environment enum from @getpara/react-sdk rather than a plain string. For example, use Environment.DEVELOPMENT instead of "development". Using a string will cause runtime errors.

Tool Reference

Full parameter documentation for all 14 MCP tools provided by the migration server.
analyze_project — Analyze a project to detect wallet provider usage and prepare a migration plan.
check_compatibility — Check compatibility between current Wagmi hooks and Para.
validate_migration — Validate migration setup and check for common issues.
validate_para_migration — Validate the 5 critical issues that cause 90% of migration failures.
validate_migration_state — Get migration completion percentage across dependencies, imports, providers, hooks, and styles.
execute_atomic_migration — Execute a complete atomic migration with automatic rollback on failure.
generate_migration_config — Generate a Para configuration object.
generate_provider_component — Generate a React provider component for Para integration.
generate_connect_button — Generate a styled connect button component.
generate_css_imports — Generate CSS import statements for the correct entry point.
generate_layout_with_styles — Generate a Next.js layout with Para SDK styles properly imported.
generate_hooks_examples — Generate before/after hook usage examples showing migration patterns.
create_migration_guide — Generate a step-by-step migration guide tailored to your project.
quick_migration_mode — Generate an ultra-fast development configuration with timeouts and fallbacks.

Next Steps

Migrate from Reown (Manual)

Step-by-step manual migration guide from Reown to Para

Migrate from Web3Modal (Manual)

Step-by-step manual migration guide from Web3Modal to Para

React Quickstart

Get started with the Para React SDK from scratch

Migration MCP Repository

View the Migration MCP source code and contribute

Eliza AI Agent Integration

Intermediate · 30 min · Wallet-enabled AI agents

Thirdweb Integration

Advanced · 40 min · Smart accounts and gas sponsorship

Ethereum Transfers

Intermediate · 20 min · Send ETH with Ethers and Viem