verifier

verifier

0

MCP PID Wallet Verifier is a secure MCP server enabling AI agents to manage personal identity data verification through OIDC4VP. It supports QR-based interactions and is designed for high compliance and auditability, utilizing technologies like Python, Flask, and Redis.

🧠 MCP PID Wallet Verifier

A lightweight and AI-friendly MCP server that allows any AI agent or MCP-compatible assistant to initiate and verify a PID (Personal Identity Data) credential presentation via OIDC4VP.

This server is designed to support secure, QR-based wallet interactions and can be used with agents like Cline, OpenAI’s GPTs (via custom tools), or any custom client following the MCP protocol.


πŸš€ Features

  • βœ… Supports OIDC4VP Draft-13 with direct_post response mode
  • βœ… Two-step MCP REST tools for credential presentation
  • βœ… Generates QR codes and openid-vc:// deep links
  • βœ… Receives SD-JWT-based credentials from EUDI-compatible wallets
  • βœ… Stateless via Redis session storage
  • βœ… Fully MCP-compliant via .well-known/mcp/tools

πŸ”§ Tools Exposed (MCP REST)

1. initiate_pid_request

Start an OIDC4VP presentation flow. Returns a QR code and session ID.

POST https://verifier.wallet-provider.com/tools/initiate_pid_request

Response
{
  "status": "pending",
  "instructions": "Scan this QR code with your wallet to present a credential.",
  "session_id": "f1203ea7-d5...",
  "presentation_url": "openid-vc://?client_id=...",
  "qr_code_base64": "data:image/png;base64,..."
}

2. check_pid_result

Poll the status of the credential presentation.

POST https://verifier.wallet-provider.com/tools/check_pid_result

Request
{
  "session_id": "f1203ea7-d5..."
}
Possible Responses
  • Pending:
{ "status": "pending" }
  • Verified:
{
  "status": "verified",
  "verified_credential": {
    "given_name": "Jean",
    "family_name": "Dupont",
    "birth_date": "1975-06-23"
  }
}
  • Error:
{ 
  "status": "error",
  "error_description": "signature failed"
}

🧠 Use Case

This server enables an AI agent to:

  1. Ask a user to present their digital ID (PID)
  2. Show them a scannable QR code
  3. Wait for wallet response via OIDC4VP
  4. Extract and use verified attributes (e.g., name, birth date)

Perfect for use in:

  • Identity verification flows
  • Onboarding
  • Compliance & KYC automation
  • Government-grade AI applications

πŸ› οΈ Tech Stack

  • Python + Flask
  • Redis for session handling
  • jwcrypto for JWT signing/verification
  • qrcode for base64-encoded QR image generation
  • Compatible with EUDI-compliant wallets and SD-JWT

πŸ“„ MCP Tool Discovery

GET https://verifier.wallet-provider.com/.well-known/mcp/tools

Returns a JSON manifest describing available tools, input schema, and descriptions.


πŸ§ͺ Demo Agent Available

You can test this server using a local or scripted agent that calls:

  • https://verifier.wallet-provider/tools/initiate_pid_request
  • https://verifier.wallet-provider.com/tools/check_pid_result

Or use a Custom GPT / Claude with support for MCP tools.


πŸ›‘οΈ Security Notes

  • Temporary data is stored with expiration (setex)
  • Signature verification via verif_token()
  • Expiration (exp) and nonce handling included
  • Designed for secure, audit-friendly digital identity operations

πŸ“¬ Contact

Created by Talao
Maintainer:
License: Apache V2.0