vdappdev2 avatar

Identity

vdappdev2/verusidx-mcp

Gives AI agents the full lifecycle management of VerusID blockchain identities through 11 local RPC tools. You can register new IDs, update their on-chain data, revoke and recover them, query the identity chain, and set time locks for delayed operations. Part of a seven-server suite that talks directly to your local Verus daemon over JSON-RPC with no cloud dependencies. Enforces read-only modes per server, logs all write operations to append-only audit files, and requires the chain-mcp foundation server to discover running daemons. If you're building agents that need to interact with Verus's protocol-level identity system, this handles everything from creation to recovery without touching external APIs.

GitHub stars
2
tools
35
transport
STDIO
last updated
May 10, 2026

Tools

35 tools

Public tool metadata for what this MCP can expose to an agent.

identity_whoamiGet your agent identity info — name, email, DID, and scopes

Get your agent identity info — name, email, DID, and scopes

No parameter schema in public metadata yet.

identity_signSign arbitrary data with this identity's Ed25519 private key. Returns the signature and the identity's DID.1 params

Sign arbitrary data with this identity's Ed25519 private key. Returns the signature and the identity's DID.

Parameters* required
datastring
Base64-encoded data to sign
identity_verifyVerify a signature against any did:web identity. Resolves the DID Document and checks the Ed25519 signature.3 params

Verify a signature against any did:web identity. Resolves the DID Document and checks the Ed25519 signature.

Parameters* required
datastring
Base64-encoded original data
didstring
DID of the signer (e.g., did:web:api.loomal.ai:identities:id-abc123)
signaturestring
Base64-encoded signature to verify
mail_sendSend an email from your agent's inbox. Supports up to 10 attachments (10 MB each, 25 MB total).7 params

Send an email from your agent's inbox. Supports up to 10 attachments (10 MB each, 25 MB total).

Parameters* required
attachmentsarray
File attachments (max 10 per email, 10 MB each)
bccarray
Blind carbon copy recipient email addresses
ccarray
Carbon copy recipient email addresses
htmlstring
Optional HTML body for rich formatting
subjectstring
Email subject line
textstring
Plain text body of the email
toarray
Recipient email addresses
mail_replyReply to an existing email in a thread. Supports up to 10 attachments (10 MB each, 25 MB total).4 params

Reply to an existing email in a thread. Supports up to 10 attachments (10 MB each, 25 MB total).

Parameters* required
attachmentsarray
File attachments (max 10 per email, 10 MB each)
htmlstring
HTML reply body (optional)
messageIdstring
The messageId of the email to reply to
textstring
Plain text reply body
mail_list_messagesList emails in your agent's inbox. Returns newest first.3 params

List emails in your agent's inbox. Returns newest first.

Parameters* required
labelsstring
Filter by labels, comma-separated
limitnumber
Max messages to return (default 20, max 100)
pageTokenstring
Pagination token
mail_get_messageGet a specific email by its messageId1 params

Get a specific email by its messageId

Parameters* required
messageIdstring
The messageId to retrieve
mail_get_attachmentDownload the contents of an email attachment as base64-encoded data. Use mail.get_message or mail.get_thread first to find attachment IDs and metadata.2 params

Download the contents of an email attachment as base64-encoded data. Use mail.get_message or mail.get_thread first to find attachment IDs and metadata.

Parameters* required
attachmentIdstring
The attachmentId from a previous mail.get_message call
messageIdstring
The messageId that owns the attachment
mail_list_threadsList email threads in your agent's inbox. Returns newest first.2 params

List email threads in your agent's inbox. Returns newest first.

Parameters* required
limitnumber
Max threads to return (default 20, max 100)
pageTokenstring
Pagination token
mail_get_threadGet a full email thread with messages (newest 200 by default)2 params

Get a full email thread with messages (newest 200 by default)

Parameters* required
limitnumber
Max messages to return (default 200, max 500)
threadIdstring
The threadId to retrieve
mail_update_labelsAdd or remove labels on a message3 params

Add or remove labels on a message

Parameters* required
addLabelsarray
Labels to add to the message (e.g. 'important', 'follow-up')
messageIdstring
The messageId to update
removeLabelsarray
Labels to remove from the message
mail_update_thread_labelsAdd or remove labels on a thread (e.g. 'starred', 'important', 'archived', or custom labels). Thread labels are separate from message labels. Labels must be 1-100 chars from [a-zA-Z0-9_-:.]. Max 20 labels per call. Removing a label deletes user data — use with care.3 params

Add or remove labels on a thread (e.g. 'starred', 'important', 'archived', or custom labels). Thread labels are separate from message labels. Labels must be 1-100 chars from [a-zA-Z0-9_-:.]. Max 20 labels per call. Removing a label deletes user data — use with care.

Parameters* required
addLabelsarray
Labels to add to the thread
removeLabelsarray
Labels to remove from the thread
threadIdstring
The threadId to update
mail_delete_messageDelete a single message from the inbox1 params

Delete a single message from the inbox

Parameters* required
messageIdstring
The messageId to delete
mail_delete_threadDelete an entire thread and all its messages1 params

Delete an entire thread and all its messages

Parameters* required
threadIdstring
The threadId to delete
mail_list_rulesList all allow/block rules for this identity

List all allow/block rules for this identity

No parameter schema in public metadata yet.

mail_add_ruleAdd an allow or block rule. Use type ALLOW or BLOCK, scope RECEIVE/SEND/REPLY, and value as email or *@domain.com.3 params

Add an allow or block rule. Use type ALLOW or BLOCK, scope RECEIVE/SEND/REPLY, and value as email or *@domain.com.

Parameters* required
scopestring
Rule scopeone of RECEIVE · SEND · REPLY
typestring
Rule typeone of ALLOW · BLOCK
valuestring
Email address or *@domain.com pattern
mail_delete_ruleDelete an email allow/block rule by its ID1 params

Delete an email allow/block rule by its ID

Parameters* required
ruleIdstring
The rule ID to delete
vault_listList all credentials in the vault (metadata only, no secrets)

List all credentials in the vault (metadata only, no secrets)

No parameter schema in public metadata yet.

vault_getRetrieve a decrypted credential from the vault. For TOTP credentials, use vault.totp instead to get the code.1 params

Retrieve a decrypted credential from the vault. For TOTP credentials, use vault.totp instead to get the code.

Parameters* required
namestring
Credential name (e.g. 'salesforce', 'hubspot-api')
vault_totpGenerate the current 6-digit TOTP code. Works on any credential that has a TOTP secret (standalone TOTP type or any credential with a 'totp' field). Response also includes backupCodesRemaining — call vault.get to read the actual backup codes if a fallback is needed.1 params

Generate the current 6-digit TOTP code. Works on any credential that has a TOTP secret (standalone TOTP type or any credential with a 'totp' field). Response also includes backupCodesRemaining — call vault.get to read the actual backup codes if a fallback is needed.

Parameters* required
namestring
Credential name
vault_totp_use_backupAtomically consume one single-use TOTP backup code. Moves the popped code from data.backupCodes into data.usedBackupCodes (kept as an audit trail) and returns it. Use when the live TOTP code is unavailable (clock skew, device lost). Each code can only be used once.1 params

Atomically consume one single-use TOTP backup code. Moves the popped code from data.backupCodes into data.usedBackupCodes (kept as an audit trail) and returns it. Use when the live TOTP code is unavailable (clock skew, device lost). Each code can only be used once.

Parameters* required
namestring
Credential name with backup codes
vault_storeStore or update an encrypted credential in the vault5 params

Store or update an encrypted credential in the vault

Parameters* required
dataobject
Secret fields to encrypt (e.g. { key: 'sk_...' }). For TOTP credentials, use { secret: 'BASE32', backupCodes: ['code1', 'code2'] }; for any credential with TOTP attached, use { ...other fields, tot...
expiresAtstring
Expiry date (ISO 8601)
metadataobject
Non-secret metadata for display (e.g. { service: 'stripe' })
namestring
Credential name (e.g. 'salesforce', 'prod-db')
typestring
Credential typeone of LOGIN · API_KEY · OAUTH · TOTP · SSH_KEY · DATABASE
vault_deleteRemove a credential from the vault1 params

Remove a credential from the vault

Parameters* required
namestring
Credential name to delete
calendar_createCreate a new event on this identity's calendar6 params

Create a new event on this identity's calendar

Parameters* required
descriptionstring
Event description
endAtstring
End date/time (ISO 8601)
isAllDayboolean
All-day eventdefault: false
locationstring
Event location
startAtstring
Start date/time (ISO 8601)
titlestring
Event title
calendar_updateUpdate an existing calendar event7 params

Update an existing calendar event

Parameters* required
descriptionstring
New description
endAtstring
New end date/time (ISO 8601)
eventIdstring
Event ID to update
isAllDayboolean
All-day event
locationstring
New location
startAtstring
New start date/time (ISO 8601)
titlestring
New title
calendar_listList events on this identity's calendar3 params

List events on this identity's calendar

Parameters* required
fromstring
Filter: events starting from (ISO 8601)
limitinteger
Max resultsdefault: 50
tostring
Filter: events starting before (ISO 8601)
calendar_getGet details of a specific calendar event1 params

Get details of a specific calendar event

Parameters* required
eventIdstring
Event ID
calendar_deleteDelete a calendar event1 params

Delete a calendar event

Parameters* required
eventIdstring
Event ID to delete
calendar_set_publicMake this identity's calendar public or private. Public calendars are viewable at /identities/:id/calendar.json1 params

Make this identity's calendar public or private. Public calendars are viewable at /identities/:id/calendar.json

Parameters* required
enabledboolean
true = public, false = private
payments_payPay for an x402-priced URL in USDC under this identity's active mandate. Returns the resource content plus cost, balance, and mandate progress. Use dryRun:true to preview without spending.2 params

Pay for an x402-priced URL in USDC under this identity's active mandate. Returns the resource content plus cost, balance, and mandate progress. Use dryRun:true to preview without spending.

Parameters* required
dryRunboolean
If true, validate the mandate + balance + caps but do not sign or settle.
urlstring
URL of the paid resource. Server should respond with HTTP 402 if payment is required.
payments_mandates_createCreate the spend policy for this identity's wallet. Installs an on-chain session key — first call takes 10–30 seconds. If the returned `installError` is set, the mandate is unusable and creation should be retried.3 params

Create the spend policy for this identity's wallet. Installs an on-chain session key — first call takes 10–30 seconds. If the returned `installError` is set, the mandate is unusable and creation should be retried.

Parameters* required
dailyCapUsdcstring
Max cumulative USDC per UTC day, decimal e.g. '1.00'. Must be ≥ maxPerCallUsdc.
maxPerCallUsdcstring
Max USDC any single pay() call can spend, decimal e.g. '0.10'.
validUntilstring
ISO 8601 expiry. Defaults to 7 days from now.
payments_mandates_listList spend mandates attached to this identity's wallet — active, expired, revoked, and errored, latest first.

List spend mandates attached to this identity's wallet — active, expired, revoked, and errored, latest first.

No parameter schema in public metadata yet.

payments_mandates_getFetch one mandate by id, with live spend counters.1 params

Fetch one mandate by id, with live spend counters.

Parameters* required
mandateIdstring
Mandate id (e.g. 'm_abc123').
payments_mandates_revokeRevoke a mandate. The on-chain session key is not uninstalled (manual via Console if needed); settled payments are unaffected.1 params

Revoke a mandate. The on-chain session key is not uninstalled (manual via Console if needed); settled payments are unaffected.

Parameters* required
mandateIdstring
Mandate id to revoke.
payments_activityBank-statement-style merged feed of payments sent (direction: 'out') and received (direction: 'in') for this identity, latest first.1 params

Bank-statement-style merged feed of payments sent (direction: 'out') and received (direction: 'in') for this identity, latest first.

Parameters* required
limitinteger
Max rows to return (default 50, max 200).

Sponsors

Readme

VerusIDX MCP Servers

npm npm npm npm npm npm npm License: MIT


View the full README on GitHub

Details

Repository
github.com/vdappdev2/verusidx-mcp
Package
@verusidx/identity-mcp
Transport
STDIO
Registry
MCP registry, active

More from vdappdev2