Requirements
- Status
- Connection verified by WebMoney
- Connection channel
- Local public client
- What you do
- Copy the public client_id and local settings into your desktop client, then authorize through id.web.money.
Connection guide
Back to category: Local clientsSign in through id.web.money, then check your available wallets or balance. A successful sign-in alone does not verify every operation.
Codex Local uses WebMoney's published public OAuth client identifier. It identifies the application; it is neither a password nor a user identity. The client uses PKCE and requires no client secret.
The recommended route is to copy the quick-setup block below. It updates only the WebMoney section and the two exact callback settings in the user-level Codex file while preserving every other MCP server and setting. Codex CLI and the Codex IDE integration share that file. Use the separate fragment for a careful manual edit.
After the login command starts:
The setup command only registers the server and starts OAuth. It does not call MCP tools automatically. Never paste an access token, refresh token, authorization code, or Authorization header into a terminal prompt, chat, or website form.
The profile requests the complete capability set, including high-risk operations. Consenting to such a scope lets the client propose an operation; it does not confirm a particular transfer. A real wallet_transfer still requires the tool's exact arguments, dry_run=False, and confirm_real_operation=True. Recheck the wallet, recipient, amount, and description immediately before confirming.
Verified with client version 0.162.0-alpha.17.2 on 2026-10-28.
The fresh OAuth, two-factor, and read smoke verified wallet_check_credentials, wallet_get_balance. Codex write paths were verified previously; the wm.transfers.create grant alone never confirms a concrete write operation.
Configure an installed Codex without installing, upgrading or downgrading it. Updates only the WebMoney section and callback settings, then starts sign-in.
if (-not (Get-Command codex -ErrorAction SilentlyContinue)) { throw 'Install Codex explicitly before configuring WebMoney MCP.' }
codex --version
$configDirectory = Join-Path ([Environment]::GetFolderPath('UserProfile')) '.codex'
$configPath = Join-Path $configDirectory 'config.toml'
if (-not (Test-Path -LiteralPath $configDirectory)) { New-Item -ItemType Directory -Path $configDirectory | Out-Null }
$bytes = if (Test-Path -LiteralPath $configPath) { [IO.File]::ReadAllBytes($configPath) } else { [byte[]]@() }
$hasUtf8Bom = $bytes.Length -ge 3 -and $bytes[0] -eq 0xEF -and $bytes[1] -eq 0xBB -and $bytes[2] -eq 0xBF
$offset = if ($hasUtf8Bom) { 3 } else { 0 }
$strictUtf8 = [Text.UTF8Encoding]::new($false, $true)
$current = $strictUtf8.GetString($bytes, $offset, $bytes.Length - $offset)
$newLine = if ($current.Contains("`r`n")) { "`r`n" } else { "`n" }
$serverPattern = '(?ms)(?:^[ \t]*\r?\n)?^[ \t]*\[mcp_servers\.webmoney(?:\.[^\]]+)?\][ \t]*(?:\#[^\r\n]*)?(?:\r?\n|\z).*?(?=^[ \t]*\[(?!mcp_servers\.webmoney(?:\.|\]))|\z)'
$current = [Text.RegularExpressions.Regex]::Replace($current, $serverPattern, '')
$callbackPortLine = 'mcp_oauth_callback_port = 8765'
$callbackUrlLine = 'mcp_oauth_callback_url = "http://127.0.0.1:8765/callback"'
$firstTable = [Text.RegularExpressions.Regex]::Match($current, '(?m)^[ \t]*\[')
$rootLength = if ($firstTable.Success) { $firstTable.Index } else { $current.Length }
$rootSettings = $current.Substring(0, $rootLength)
$tableSettings = $current.Substring($rootLength)
$rootSettings = [Text.RegularExpressions.Regex]::Replace($rootSettings, '(?m)^[ \t]*mcp_oauth_callback_port\s*=.*(?:\r?\n|$)', '')
$rootSettings = [Text.RegularExpressions.Regex]::Replace($rootSettings, '(?m)^[ \t]*mcp_oauth_callback_url\s*=.*(?:\r?\n|$)', '')
$current = $rootSettings + $tableSettings
$serverFragment = @'
[mcp_servers.webmoney]
url = "https://mcp.webmoney.com/mcp"
enabled = true
oauth_resource = "https://mcp.webmoney.com/"
scopes = ["openid", "email", "phone", "profile", "offline_access", "wm.balance.read", "wm.transactions.read", "wm.messages.read", "wm.messages.send", "wm.invoices.manage", "wm.transfers.create", "wm.recipients.resolve"]
[mcp_servers.webmoney.oauth]
client_id = "40p5tXeCgumOLn4XhoXQ"
'@
$updated = $callbackPortLine + $newLine + $callbackUrlLine + $newLine + $current
if ($updated.Length -gt 0 -and -not $updated.EndsWith($newLine, [StringComparison]::Ordinal)) { $updated += $newLine }
$updated += $newLine + $serverFragment.Trim() + $newLine
[IO.File]::WriteAllText($configPath, $updated, (New-Object Text.UTF8Encoding($hasUtf8Bom)))
codex mcp login webmoney --scopes openid,email,phone,profile,offline_access,wm.balance.read,wm.transactions.read,wm.messages.read,wm.messages.send,wm.invoices.manage,wm.transfers.create,wm.recipients.resolve
codex mcp list
The user-level file is in the home profile's .codex directory and is shared by Codex CLI and the IDE. The callback URL shown here is the base; Codex appends the registered server suffix.
mcp_oauth_callback_port = 8765
mcp_oauth_callback_url = "http://127.0.0.1:8765/callback"
[mcp_servers.webmoney]
url = "https://mcp.webmoney.com/mcp"
enabled = true
oauth_resource = "https://mcp.webmoney.com/"
scopes = ["openid", "email", "phone", "profile", "offline_access", "wm.balance.read", "wm.transactions.read", "wm.messages.read", "wm.messages.send", "wm.invoices.manage", "wm.transfers.create", "wm.recipients.resolve"]
[mcp_servers.webmoney.oauth]
client_id = "40p5tXeCgumOLn4XhoXQ"
These are the public settings registered for this catalog client.
WebMoney MCP for Codex Local 40p5tXeCgumOLn4XhoXQ https://mcp.webmoney.com https://mcp.webmoney.com/mcp https://mcp.webmoney.com/ openidemailphoneprofileoffline_accesswm.balance.readwm.transactions.readwm.messages.readwm.messages.sendwm.invoices.managewm.transfers.createwm.recipients.resolveauthorization_coderefresh_tokencode http://127.0.0.1:8765/callback/O9-VlBKeF_nj none — no client secret S256 https://mcp.webmoney.com/docs Reauthorize after changing requested capabilities or wallet access grants.
Check the MCP address, callback URL, application identifier, and MCP support in the selected platform.
Do not enter access tokens, refresh tokens, WebMoney JWTs, or client secret values in any AI message.
This guide may require manual client configuration.