🧠 MCP PID Wallet Verifier

by TalaoDAO

198 downloads
Not rated
GitHub

About

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.

Details

Author
TalaoDAO
Downloads
198
Categories
AI

- OIDC4VP Draft‑13 support with direct_post response mode
- Generates QR codes and openid-vc:// deep links
- Receives SD‑JWT credentials from EUDI‑compatible wallets
- Stateless session storage via Redis
- Fully MCP‑compliant tool discovery
- Python + Flask, jwcrypto, and qrcode tech stack

Invoke the two MCP REST tools: initiate_pid_request to start a presentation flow (returns a QR code and session ID), then check_pid_result to poll the credential verification status. Tools are discovered via GET /.well-known/mcp/tools.

🧠 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: thierry.thevenet@talao.io
License: Apache V2.0

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.