Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.codespar/mcp-persona

NPM · @CODESPAR/MCP-PERSONA · SCANNED AUG 3

MCP server for Persona — developer-first identity verification + KYC (inquiries, accounts, reports)

+25 this week 68 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security86
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability78
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2361 tokens (~118/item across 20 items; 20 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage84
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 53% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @codespar/mcp-persona

# add to Claude Code
claude mcp add codespar-mcp-persona -- npx -y @codespar/mcp-persona
# add to Codex CLI
codex mcp add codespar-mcp-persona -- npx -y @codespar/mcp-persona
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "codespar-mcp-persona": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@codespar/mcp-persona"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add codespar-mcp-persona --command npx --arg -y --arg @codespar/mcp-persona
# ~/.hermes/config.yaml
mcp_servers:
  codespar-mcp-persona:
    command: "npx"
    args: ["-y", "@codespar/mcp-persona"]
// mcp.json
{
  "mcpServers": {
    "codespar-mcp-persona": {
      "command": "npx",
      "args": [
        "-y",
        "@codespar/mcp-persona"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Aug 26 +10
    • Install scripts: pass → unverified security
    • Provenance: fail → unverified security
    • Known CVEs: unverified → partial security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • License: pass → unverified functional
    • Capabilities: pass → unverified functional
    • Maintenance: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Stability: unverified → 0.23 functional
    • Dependency health: unverified → partial functional
    • Licence: MIT functional
  • 1 Aug 26 +15
    • Malware scan: unverified → pass security
  • 31 Jul 26 +23
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −59
    • Known CVEs: partial → unverified security
    • Malware scan: pass → unverified security
    • Tool coverage: 100 → unverified functional
  • 29 Jul 26 +53
    • Provenance: unverified → fail security
    • Known CVEs: unverified → partial security
    • Install scripts: unverified → pass security
    • Maintenance: unverified → pass functional
    • License: unverified → pass functional
    • Tool coverage: unverified → 100 functional
    • Schema quality: unverified → excellent functional
    • Licence: MIT functional
  • 28 Jul 26 −18
    • Tool coverage: 100 → unverified functional
    • Dependency health: unverified → partial functional
    • First check of Schema quality: unverified functional
  • 27 Jul 26 43

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/@codespar/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 94 packages

94 packages in the resolved dependency tree · 94 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 20 exposed · ~2,294 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
add_case_tag ~85

Add a tag to a case. Tags are operator-facing labels useful for grouping / filtering investigations (e.g. 'high-risk', 'manual-review', 'compliance-2026-q2').

NameTypeReqDescription
case_idstringyesPersona case id (case_...).
tag-namestringyesTag name to add. Created on-the-fly if it doesn't exist.

No output schema declared.

No examples provided.

approve_inquiry ~81

Mark an inquiry as approved. This records your final decision on the Persona inquiry — useful for dashboard reporting and Persona's feedback loop. Does NOT itself gate the user; you must still enforce the decision in your app.

NameTypeReqDescription
commentstringOptional free-text note for the approval.
inquiry_idstringyesPersona inquiry id (inq_...).

No output schema declared.

No examples provided.

create_account ~204

Create a persistent Persona account — a long-lived end-user record that multiple inquiries can attach to. Enables re-use of previously verified fields and longitudinal fraud signals across sessions.

NameTypeReqDescription
address-citystring
address-country-codestringISO-3166 alpha-2, e.g. US, BR, MX.
address-postal-codestring
address-street-1string
address-street-2string
address-subdivisionstringState / province code.
birthdatestringYYYY-MM-DD
email-addressstring
name-firststring
name-laststring
name-middlestring
phone-numberstring
reference-idstringYour internal user id.
social-security-numberstringSensitive. Persona stores tokenised.
tagsarray

No output schema declared.

No examples provided.

create_case ~147

Open a case — a workspace for an ongoing investigation tied to one or more inquiries / accounts. Useful for manual review, periodic re-verification, or flagged users that need operator follow-up.

NameTypeReqDescription
assignee-idstringPersona user id of the assignee.
case-template-idstringyesCase template id (ctmpl_...) from your Persona dashboard.
fieldsobjectAdditional case fields (keys follow the template schema).
namestringShort human-readable case name.
prioritystringPriority label (e.g. 'low', 'medium', 'high').
statusstringInitial status (e.g. 'Open').

No output schema declared.

No examples provided.

create_inquiry ~260

Create a Persona inquiry — a verification session bound to an inquiry template you configured in the Persona dashboard. The template defines which verifications run (document, selfie, database, phone, etc). Returns an inquiry id and (for hosted flows) a one-time link for the end user.

NameTypeReqDescription
account-idstringOptional existing Persona account id (act_...) to attach the inquiry to.
fieldsobjectPrefilled fields for the inquiry (e.g. { name-first, name-last, birthdate, address-street-1, address-city, address-subdivision, address-postal-code, address-country-code, email-address, phone-number…
inquiry-template-idstringyesInquiry template id (itmpl_...) from your Persona dashboard. Defines what runs in the flow.
inquiry-template-version-idstringOptional pin to a specific template version (itmplv_...).
notestringInternal note shown in the Persona dashboard.
redirect-uristringURL to redirect the user to after completing the flow.
reference-idstringYour internal user id. Echoed back on webhooks and filterable via list_inquiries.

No output schema declared.

No examples provided.

decline_inquiry ~58

Mark an inquiry as declined. Records your final reject decision on the Persona inquiry for reporting and feedback.

NameTypeReqDescription
commentstringOptional free-text reason for the decline.
inquiry_idstringyesPersona inquiry id (inq_...).

No output schema declared.

No examples provided.

list_accounts ~117

List Persona accounts, filterable by reference-id (your internal user id) or email. Useful for looking up a persistent end-user record before creating duplicates.

NameTypeReqDescription
filter[email-address]stringFilter by email.
filter[phone-number]stringFilter by phone number (E.164).
filter[reference-id]stringFilter by your internal user id.
page[after]string
page[before]string
page[size]string

No output schema declared.

No examples provided.

list_cases ~125

List investigation cases, filterable by status, assignee, or priority. Useful for operator dashboards or batch automation over the review queue.

NameTypeReqDescription
filter[assignee-id]stringFilter by assignee Persona user id.
filter[priority]stringFilter by priority label.
filter[status]stringFilter by case status (e.g. 'Open', 'Waiting on Customer', 'Closed').
page[after]string
page[before]string
page[size]string

No output schema declared.

No examples provided.

list_inquiries ~149

List inquiries, filterable by reference-id (your internal user id) or status. Useful for reconciling state or finding a user's inquiry history.

NameTypeReqDescription
filter[account-id]stringFilter by Persona account id.
filter[reference-id]stringFilter by your internal user id passed at inquiry creation.
filter[status]stringFilter by inquiry status (e.g. 'completed', 'approved', 'declined', 'needs_review').
page[after]stringCursor for pagination.
page[before]stringCursor for pagination.
page[size]stringPage size (max per Persona docs).

No output schema declared.

No examples provided.

list_reports ~115

List reports — individual verification artifacts (e.g. watchlist, adverse media, business lookup). Filterable by account and type. Each report is a standalone verification separate from inquiry-flow verifications.

NameTypeReqDescription
filter[account-id]stringFilter by Persona account id.
filter[report-type]stringFilter by report type (e.g. 'report/watchlist', 'report/adverse-media', 'report/business').
page[after]string
page[size]string

No output schema declared.

No examples provided.

list_templates ~74

List inquiry templates configured in your Persona dashboard — returns each template's id (itmpl_...), name, and active version. Use this to discover available templates before calling create_inquiry.

NameTypeReqDescription
page[after]string
page[before]string
page[size]string

No output schema declared.

No examples provided.

list_webhooks ~78

List configured webhook subscriptions (Persona calls them 'Webhook subscriptions'). Each entry shows the URL, subscribed event types, and enabled state. Use this to audit delivery endpoints for inquiry / verification / case events.

NameTypeReqDescription
page[after]string
page[before]string
page[size]string

No output schema declared.

No examples provided.

redact_inquiry ~61

Redact an inquiry (GDPR right-to-erasure). Scrubs PII, captured images, and verification detail for this inquiry on Persona's side. Irreversible.

NameTypeReqDescription
inquiry_idstringyesPersona inquiry id (inq_...) to redact.

No output schema declared.

No examples provided.

resume_inquiry ~66

Resume a paused inquiry — returns a fresh one-time session token / link so the end user can continue a flow that was abandoned or needs additional steps (e.g. after a 'pending' webhook).

NameTypeReqDescription
inquiry_idstringyesPersona inquiry id (inq_...) to resume.

No output schema declared.

No examples provided.

retrieve_account ~41

Retrieve a Persona account by id, including summary PII and linked inquiries / verifications.

NameTypeReqDescription
account_idstringyesPersona account id (act_...).

No output schema declared.

No examples provided.

retrieve_case ~46

Retrieve a case by id — full detail including status, assignee, linked objects, attached fields, and tags.

NameTypeReqDescription
case_idstringyesPersona case id (case_...).

No output schema declared.

No examples provided.

retrieve_inquiry ~80

Retrieve an inquiry by id. Response includes overall status ('created' | 'pending' | 'completed' | 'expired' | 'failed' | 'needs_review' | 'approved' | 'declined') and embedded verifications / reports. Poll this to track progress.

NameTypeReqDescription
inquiry_idstringyesPersona inquiry id (inq_...).

No output schema declared.

No examples provided.

retrieve_report ~44

Retrieve a single report by id — returns the full verification detail (matches, scores, raw source data).

NameTypeReqDescription
report_idstringyesPersona report id (rep_...).

No output schema declared.

No examples provided.

run_report ~289

Create and run a standalone Persona report — not tied to an inquiry flow. Use for ad-hoc watchlist screening, adverse media, business (KYB) lookups, address verification, or profile checks against a known identity. Pass the appropriate `report-type` plus the query fields the report needs.

NameTypeReqDescription
account-idstringOptional Persona account id (act_...) to attach the report to.
address-citystring
address-postal-codestring
address-street-1string
address-street-2string
address-subdivisionstring
birthdatestringYYYY-MM-DD (for profile / watchlist).
business-namestringLegal business name (for KYB / report/business).
country-codestringISO-3166 alpha-2 country code.
email-addressstring
name-firststring
name-laststring
name-middlestring
phone-numberstring
report-typestringyesReport type identifier, e.g. 'report/watchlist', 'report/adverse-media', 'report/business', 'report/address', 'report/profile'.
tax-identification-numberstringSSN / EIN / tax id, depending on jurisdiction.

No output schema declared.

No examples provided.

update_account ~174

Patch attributes on an existing Persona account (e.g. update address, phone, tags). Use this to keep a persistent end-user record in sync with your system of record.

NameTypeReqDescription
account_idstringyesPersona account id (act_...).
address-citystring
address-country-codestring
address-postal-codestring
address-street-1string
address-street-2string
address-subdivisionstring
birthdatestringYYYY-MM-DD
email-addressstring
name-firststring
name-laststring
name-middlestring
phone-numberstring
tagsarray

No output schema declared.

No examples provided.