
Identity
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 toolsPublic 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.
datastringidentity_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.
datastringdidstringsignaturestringmail_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).
attachmentsarraybccarrayccarrayhtmlstringsubjectstringtextstringtoarraymail_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).
attachmentsarrayhtmlstringmessageIdstringtextstringmail_list_messagesList emails in your agent's inbox. Returns newest first.3 params
List emails in your agent's inbox. Returns newest first.
labelsstringlimitnumberpageTokenstringmail_get_messageGet a specific email by its messageId1 params
Get a specific email by its messageId
messageIdstringmail_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.
attachmentIdstringmessageIdstringmail_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.
limitnumberpageTokenstringmail_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)
limitnumberthreadIdstringmail_update_labelsAdd or remove labels on a message3 params
Add or remove labels on a message
addLabelsarraymessageIdstringremoveLabelsarraymail_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.
addLabelsarrayremoveLabelsarraythreadIdstringmail_delete_messageDelete a single message from the inbox1 params
Delete a single message from the inbox
messageIdstringmail_delete_threadDelete an entire thread and all its messages1 params
Delete an entire thread and all its messages
threadIdstringmail_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.
scopestringRECEIVE · SEND · REPLYtypestringALLOW · BLOCKvaluestringmail_delete_ruleDelete an email allow/block rule by its ID1 params
Delete an email allow/block rule by its ID
ruleIdstringvault_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.
namestringvault_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.
namestringvault_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.
namestringvault_storeStore or update an encrypted credential in the vault5 params
Store or update an encrypted credential in the vault
dataobjectexpiresAtstringmetadataobjectnamestringtypestringLOGIN · API_KEY · OAUTH · TOTP · SSH_KEY · DATABASEvault_deleteRemove a credential from the vault1 params
Remove a credential from the vault
namestringcalendar_createCreate a new event on this identity's calendar6 params
Create a new event on this identity's calendar
descriptionstringendAtstringisAllDaybooleanlocationstringstartAtstringtitlestringcalendar_updateUpdate an existing calendar event7 params
Update an existing calendar event
descriptionstringendAtstringeventIdstringisAllDaybooleanlocationstringstartAtstringtitlestringcalendar_listList events on this identity's calendar3 params
List events on this identity's calendar
fromstringlimitintegertostringcalendar_getGet details of a specific calendar event1 params
Get details of a specific calendar event
eventIdstringcalendar_deleteDelete a calendar event1 params
Delete a calendar event
eventIdstringcalendar_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
enabledbooleanpayments_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.
dryRunbooleanurlstringpayments_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.
dailyCapUsdcstringmaxPerCallUsdcstringvalidUntilstringpayments_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.
mandateIdstringpayments_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.
mandateIdstringpayments_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.
limitintegerSponsors
Readme
Details
- Repository
- github.com/vdappdev2/verusidx-mcp
- Package
@verusidx/identity-mcp- Transport
- STDIO
- Registry
- MCP registry, active