{"_id":"@codespar/mcp-persona","_rev":"5-dd3cd57ed4b39ac7fced24e61867e581","name":"@codespar/mcp-persona","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@codespar/mcp-persona","version":"0.1.0","keywords":["mcp","persona","withpersona","identity","kyc","verification","inquiry","document-verification","selfie","developer-first"],"license":"MIT","_id":"@codespar/mcp-persona@0.1.0","maintainers":[{"name":"codespar-npm","email":"contact@codespar.dev"}],"bin":{"mcp-persona":"dist/index.js"},"dist":{"shasum":"880aee7265e6c1d99834a2ddd1ff3b57f20da5d8","tarball":"https://registry.npmjs.org/@codespar/mcp-persona/-/mcp-persona-0.1.0.tgz","fileCount":6,"integrity":"sha512-MJpCDe7xE3VP7X+KorV8IFVPhRBA+1yDCJsvny7BmA/NFQSE6lhRFhUMvSekZ1QyEutoQN63fyxB55Axbon+Jw==","signatures":[{"sig":"MEYCIQDG7X+k0zKuplOTo9fPHHjHZrsxHg4LLxXQKvbZdpUqfwIhAKpZTLBY2E58QcpU88LVf1W0Co2j5Viu5PtQwcK3ke0F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43797},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"8f8994b2acdc8be3a6c666b30ef44974f33752ed","mcpName":"io.github.codespar/mcp-persona","scripts":{"build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"codespar-npm","email":"contact@codespar.dev"},"_npmVersion":"11.8.0","description":"MCP server for Persona — modern developer-first identity verification and KYC (inquiries, accounts, reports, cases)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-persona_0.1.0_1776997188394_0.07391575182418775","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@codespar/mcp-persona","version":"0.2.0","keywords":["mcp","persona","withpersona","identity","kyc","verification","inquiry","document-verification","selfie","developer-first"],"license":"MIT","_id":"@codespar/mcp-persona@0.2.0","maintainers":[{"name":"codespar-npm","email":"contact@codespar.dev"}],"bin":{"mcp-persona":"dist/index.js"},"dist":{"shasum":"74ff463a32afdb1f6fe7f35b21688b3df718bb5b","tarball":"https://registry.npmjs.org/@codespar/mcp-persona/-/mcp-persona-0.2.0.tgz","fileCount":6,"integrity":"sha512-dSQJml8RC/HN4Ym5cyT2VwnmDUaW/NYtZA4GVAUjaeJffbyrpuyP7Ur+fCJiiTgMWKI+Ixi/z+ti2gv5Q35bAQ==","signatures":[{"sig":"MEYCIQC7i5PHW0+HNKb00fqqwDQX4EI76KEbHEze9tIz+FSmpAIhAPz/NBhRhqJZ7AMZRmRE6j4woByARGc4/TTQkbyl4SHS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64447},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"ea10b1dfe82e3d4b5e84fffdfe18d44018529bfa","mcpName":"io.github.codespar/mcp-persona","scripts":{"build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"codespar-npm","email":"contact@codespar.dev"},"_npmVersion":"11.8.0","description":"MCP server for Persona — modern developer-first identity verification and KYC (inquiries, accounts, reports, cases)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-persona_0.2.0_1777064149824_0.4797462269641535","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@codespar/mcp-persona","version":"0.2.1","keywords":["mcp","persona","withpersona","identity","kyc","verification","inquiry","document-verification","selfie","developer-first"],"license":"MIT","_id":"@codespar/mcp-persona@0.2.1","maintainers":[{"name":"codespar-npm","email":"contact@codespar.dev"}],"bin":{"mcp-persona":"dist/index.js"},"dist":{"shasum":"1860ea39757519809f798ffca368d3ab2f234a44","tarball":"https://registry.npmjs.org/@codespar/mcp-persona/-/mcp-persona-0.2.1.tgz","fileCount":6,"integrity":"sha512-VRmVkJ5YwUjTZlBN9TcFiIoftWQMCRmLerwn+C58p4bLUhC8AZ1QoOI3fo0PQjPu0oKtcIrfmPCKRfnW1aAQSA==","signatures":[{"sig":"MEYCIQCMyXK7/IMTadgjOEPEupXO4ako6dD2e1fbsUeoQP931wIhAI3DpROWFiO8U2kxZDikx79IWk55zWzesZLEEIZedm4s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65752},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"0ab801a863239f0cb986bbda65abbaee3c621b44","mcpName":"io.github.codespar/mcp-persona","scripts":{"build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"codespar-npm","email":"contact@codespar.dev"},"_npmVersion":"11.8.0","description":"MCP server for Persona — modern developer-first identity verification and KYC (inquiries, accounts, reports, cases)","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-persona_0.2.1_1777123120764_0.5382017583566876","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@codespar/mcp-persona","version":"0.2.2","description":"MCP server for Persona — modern developer-first identity verification and KYC (inquiries, accounts, reports, cases)","type":"module","main":"./dist/index.js","bin":{"mcp-persona":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"devDependencies":{"@types/node":"^25.5.0","typescript":"^5.8.0"},"license":"MIT","keywords":["mcp","persona","withpersona","identity","kyc","verification","inquiry","document-verification","selfie","developer-first"],"mcpName":"io.github.codespar/mcp-persona","_id":"@codespar/mcp-persona@0.2.2","gitHead":"e8f2ad023876683538fe7b66a2fc88ab8d8ef92f","types":"./dist/index.d.ts","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-ub6/laUQQsqEHfk88Ikb8i9zfUKS4kOV2+vXj5fHS9WprYxI9485gqcFBaXKoXPEQC6R1MwAlzbgcL7Gi9kiXg==","shasum":"18cdaabd89024386ee603f0a22b51cb5979e7e2c","tarball":"https://registry.npmjs.org/@codespar/mcp-persona/-/mcp-persona-0.2.2.tgz","fileCount":6,"unpackedSize":67248,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDkHMHt27tCfnELHQs+wmjGEn6QoY3W9mVO2TkchBkfBwIgIR1RKpZl6sFxWFea5uqjKJr3GypNTmKjXkrBX12NyZ4="}]},"_npmUser":{"name":"codespar-npm","email":"fabiano@codespar.dev"},"directories":{},"maintainers":[{"name":"codespar-npm","email":"fabiano@codespar.dev"},{"name":"dangazineu","email":"daniel.gazineu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-persona_0.2.2_1782153706430_0.4370391648701084"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-24T02:19:48.292Z","modified":"2026-06-22T18:41:46.716Z","0.1.0":"2026-04-24T02:19:48.546Z","0.2.0":"2026-04-24T20:55:49.972Z","0.2.1":"2026-04-25T13:18:40.903Z","0.2.2":"2026-06-22T18:41:46.582Z"},"license":"MIT","keywords":["mcp","persona","withpersona","identity","kyc","verification","inquiry","document-verification","selfie","developer-first"],"description":"MCP server for Persona — modern developer-first identity verification and KYC (inquiries, accounts, reports, cases)","maintainers":[{"name":"codespar-npm","email":"fabiano@codespar.dev"},{"name":"dangazineu","email":"daniel.gazineu@gmail.com"}],"readme":"# @codespar/mcp-persona\n\nMCP server for [Persona](https://withpersona.com) — modern developer-first identity verification and KYC.\n\nPersona is the programmable identity layer favoured by modern startups and fintechs that prioritise DX and template-driven workflows. Instead of a fixed KYC pipeline, you compose **inquiry templates** in the Persona dashboard that reuse building blocks — document, selfie, database, phone, bank — and Persona orchestrates the hosted flow.\n\nFourth entry in CodeSpar's `identity` category. Where it fits alongside the others:\n\n| Provider | Positioning |\n|----------|-------------|\n| [Unico](../unico) | BR leader — local PEP, court records, Receita Federal biometric pool |\n| [Onfido](../onfido) | Global challenger — document + facial similarity across 195+ countries |\n| [Jumio](../jumio) | Global enterprise — deeper fraud intelligence, longer operator track record |\n| **Persona** | **Modern developer-first — great DX, template-driven programmable workflows** |\n\nPick Persona when you want to ship fast, iterate on the flow without a vendor ticket, and wire verification into your own product surfaces.\n\n## Tools (20)\n\n| Tool | Purpose |\n|---|---|\n| `create_inquiry` | Create a Persona inquiry — a verification session bound to an inquiry template you configured in the Person... |\n| `retrieve_inquiry` | Retrieve an inquiry by id. |\n| `list_inquiries` | List inquiries, filterable by reference-id (your internal user id) or status. |\n| `approve_inquiry` | Mark an inquiry as approved. |\n| `decline_inquiry` | Mark an inquiry as declined. |\n| `redact_inquiry` | Redact an inquiry (GDPR right-to-erasure). |\n| `create_account` | Create a persistent Persona account — a long-lived end-user record that multiple inquiries can attach to. |\n| `retrieve_account` | Retrieve a Persona account by id, including summary PII and linked inquiries / verifications. |\n| `list_reports` | List reports — individual verification artifacts (e.g. |\n| `retrieve_report` | Retrieve a single report by id — returns the full verification detail (matches, scores, raw source data). |\n| `create_case` | Open a case — a workspace for an ongoing investigation tied to one or more inquiries / accounts. |\n| `resume_inquiry` | Resume a paused inquiry — returns a fresh one-time session token / link so the end user can continue a flow... |\n| `update_account` | Patch attributes on an existing Persona account (e.g. |\n| `list_accounts` | List Persona accounts, filterable by reference-id (your internal user id) or email. |\n| `run_report` | Create and run a standalone Persona report — not tied to an inquiry flow. |\n| `retrieve_case` | Retrieve a case by id — full detail including status, assignee, linked objects, attached fields, and tags. |\n| `list_cases` | List investigation cases, filterable by status, assignee, or priority. |\n| `add_case_tag` | Add a tag to a case. |\n| `list_templates` | List inquiry templates configured in your Persona dashboard — returns each template's id (itmpl_...), name,... |\n| `list_webhooks` | List configured webhook subscriptions (Persona calls them 'Webhook subscriptions'). |\n\n## Flow\n\n```\ncreate_inquiry (inquiry-template-id=itmpl_...)\n    -> user completes Persona-hosted flow (doc + selfie + whatever the template runs)\n    -> retrieve_inquiry   (poll until status = 'completed' | 'approved' | 'declined' | 'needs_review')\n    -> approve_inquiry / decline_inquiry   (record your final decision)\n    -> list_reports / retrieve_report       (for standalone reports like watchlist / adverse-media)\n```\n\nAccounts (`create_account` / `retrieve_account`) persist end-user records across inquiries — attach future sessions via `account-id` on `create_inquiry`.\n\nCases (`create_case`) open a workspace for ongoing investigations (periodic re-verification, flagged users, manual review).\n\n## Install\n\n```bash\nnpm install @codespar/mcp-persona\n```\n\n## Environment\n\n```bash\nPERSONA_API_KEY=\"...\"              # API key (required, secret)\nPERSONA_API_VERSION=\"2023-01-05\"   # Optional. Sent as Persona-Version header.\n```\n\n## Authentication\n\n```\nAuthorization: Bearer <PERSONA_API_KEY>\nPersona-Version: 2023-01-05\n```\n\nThe server handles both headers automatically.\n\n## JSON:API envelope\n\nPersona uses a JSON:API-style request envelope: every POST body is wrapped as `{ data: { attributes: {...} } }`. This server **handles the wrapping for you** — tool inputs mirror the inner `attributes` shape directly, with kebab-case keys per Persona's convention:\n\n```json\n{\n  \"inquiry-template-id\": \"itmpl_ABC123\",\n  \"reference-id\": \"user_42\",\n  \"fields\": {\n    \"name-first\": \"Ada\",\n    \"name-last\": \"Lovelace\",\n    \"birthdate\": \"1815-12-10\",\n    \"address-country-code\": \"US\"\n  }\n}\n```\n\nThe server sends it on the wire as:\n\n```json\n{ \"data\": { \"attributes\": { \"inquiry-template-id\": \"itmpl_ABC123\", ... } } }\n```\n\n## Run\n\n```bash\n# stdio (default — for Claude Desktop, Cursor, etc)\nnpx @codespar/mcp-persona\n\n# HTTP (for server-to-server testing)\nMCP_HTTP=true MCP_PORT=3000 npx @codespar/mcp-persona\n```\n\n## When to pick Persona vs other identity providers\n\n| Signal | Pick |\n|--------|------|\n| Fast-moving startup / fintech, DX matters, want to iterate on flow | **Persona** |\n| Need custom workflow reusing doc + selfie + bank + phone verifications | **Persona** |\n| User is Brazilian, need CPF + Receita Federal biometric match | Unico |\n| Global coverage across 195+ countries, regulated fintech AML/PEP | Onfido |\n| Bank / large regulated marketplace needing deep fraud intelligence | Jumio |\n\n## Enterprise\n\nNeed governance, budget limits, and audit trails for agent payments? [CodeSpar Enterprise](https://codespar.dev/enterprise) adds policy engine, payment routing, and compliance templates on top of these MCP servers.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}