MCP.Market

Patina MCP server

online · 100% uptime
by ramakrishnanhulk20·io.github.ramakrishnanhulk20/patina·v1.0.0·1 stars

Check how many years of verifiable history a person has behind accounts they already own.

A87/100grade A
What users say
No reviews yet
Be the first
Safety scan
A87/100

full report

Adoption
New

1 stars

Reviews

Write one

Nobody has reviewed Patina yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Patina tools (4)

write = sends, deletes, buys or posts
  • check_thresholdFree

    Decide whether somebody clears a trust bar, as a plain true or false. Give a Patina username plus min_score, min_years, or both. At least one is required. Returns `pass`, plus a one-sentence `reason` written to be quoted straight back to a user. This is the right tool for gating decisions: 'has this person been verifiably around for at least five years', 'is this account above 70'. Patina scores 0-100 for how much provable history an account holder has, not for how popular or how real-time-verified they are. 80+ (Deeply worn in) means a long, multi-year record corroborated across independent platforms. 60-79 (Well established) is a solid multi-year record. 40-59 (Some real history) is genuine but shorter or thinner. 20-39 (Thin, but genuine so far) is an early account with a little history. Under 20 (Not much to go on yet) looks freshly created, or has almost nothing connected. The inputs, heaviest first: Age (30, full marks at 12 years), Continuity (25, how many separate months the person was actually present for), Corroboration (15, independent sources agreeing on the date), Vouches (12, WHEN other people connected to them rather than how many), Depth (10, things made) and Breadth (8, independent accounts). Follower counts are deliberately worth almost nothing, because they are purchasable. Patina proves TENURE: that whoever holds these accounts has a long, corroborated, verifiable history. It does NOT prove uniqueness or liveness, and it is not a proof-of-personhood check. If you need 'exactly one human, present right now', Patina is the wrong signal and you should say so. When no profile exists, `pass` is false and `found` is false: treat that as UNKNOWN rather than as a failed check, because most people have never heard of Patina and absence proves nothing about them.

  • get_patina_scoreFree

    Look up a person's full Patina score by their Patina username. Patina reads the age and activity of accounts somebody already owns (YouTube, GitHub, LinkedIn, Spotify and others) through the Vana data portability protocol, and turns that into a 0-100 score plus a signed attestation. Patina scores 0-100 for how much provable history an account holder has, not for how popular or how real-time-verified they are. 80+ (Deeply worn in) means a long, multi-year record corroborated across independent platforms. 60-79 (Well established) is a solid multi-year record. 40-59 (Some real history) is genuine but shorter or thinner. 20-39 (Thin, but genuine so far) is an early account with a little history. Under 20 (Not much to go on yet) looks freshly created, or has almost nothing connected. The inputs, heaviest first: Age (30, full marks at 12 years), Continuity (25, how many separate months the person was actually present for), Corroboration (15, independent sources agreeing on the date), Vouches (12, WHEN other people connected to them rather than how many), Depth (10, things made) and Breadth (8, independent accounts). Follower counts are deliberately worth almost nothing, because they are purchasable. Patina proves TENURE: that whoever holds these accounts has a long, corroborated, verifiable history. It does NOT prove uniqueness or liveness, and it is not a proof-of-personhood check. If you need 'exactly one human, present right now', Patina is the wrong signal and you should say so. Call this when you want the whole picture: the score, the per-component breakdown, how many years of history are provable, which platforms corroborate each other, and an attestation you can verify offline. If you only need a yes or no about whether somebody clears a bar, call check_threshold instead. An unknown username comes back with found: false, which is a normal answer meaning no public Patina profile exists under that name. It is not an error, and it is not evidence against the person.

  • resolve_identityFree

    Find out whether the person behind a platform handle has a Patina score, WITHOUT learning who they are. Supported sources: github, linkedin. Accepts a bare handle, an @handle, or a full profile URL. Returns only three things: whether a public Patina profile is linked to that account, its score, and its years of history. It deliberately never returns the Patina username, and never returns which other platforms that person has connected, because doing so would turn this into a cross-platform de-anonymisation tool. Do not ask it for those; it cannot provide them. Other platforms (youtube, spotify, amazon, uber) are NOT supported here, because for those Patina stores an internal platform id rather than a handle a person could type. Those platforms still count fully toward the score itself; only this lookup is limited. Instagram lookups are paused, because Patina cannot yet prove an Instagram account belongs to the person who connected it. Email addresses are refused outright. Patina scores 0-100 for how much provable history an account holder has, not for how popular or how real-time-verified they are. 80+ (Deeply worn in) means a long, multi-year record corroborated across independent platforms. 60-79 (Well established) is a solid multi-year record. 40-59 (Some real history) is genuine but shorter or thinner. 20-39 (Thin, but genuine so far) is an early account with a little history. Under 20 (Not much to go on yet) looks freshly created, or has almost nothing connected. The inputs, heaviest first: Age (30, full marks at 12 years), Continuity (25, how many separate months the person was actually present for), Corroboration (15, independent sources agreeing on the date), Vouches (12, WHEN other people connected to them rather than how many), Depth (10, things made) and Breadth (8, independent accounts). Follower counts are deliberately worth almost nothing, because they are purchasable.

  • verify_attestationFree

    Check whether a Patina attestation really was signed by Patina. Every Patina score ships with an EIP-191 signed message; hand this tool that `message` and `signature` and it returns the address it recovered, the address Patina publishes, and whether the two match. IMPORTANT, AND THE WHOLE POINT: you do not need this tool, and where you can, you should not use it. A signature is worth something precisely because ANYONE can check it offline, with no call to Patina, using viem's recoverMessageAddress or ethers' verifyMessage. If you ask Patina's own server whether Patina's own signature is good, you are trusting Patina again and the signature has bought you nothing. That is why this returns the recovered address rather than a bare yes: compare it yourself. Attestations also EXPIRE: the message carries an `expiresAt` line inside the signed bytes, and a genuine signature past that date means the score was true when issued and should be fetched again, not that anybody forged anything.

Public scan report

scanner v0.1.10 · 2026-11-03 · same rubric, same numbers if you re-run it

no findings
  • –Code scanremote-only server, no package to scann/a
  • Live reliabilityremote reachable in 968ms20/20
  • Tool poisoning4 tool descriptions checked15/15
  • Auth qualityopen endpoint, read-only tools10/15
  • Maintenancelast push 39 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 87/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Patina compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
87/100
higher than 73% of 48,255 servers
Tools
4
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
Uptime
100%
of our recent checks; the typical remote server answers 100%
Response time
202 ms
faster than 63% of 30,031 servers
GitHub stars
1
more than 65% of 28,688 servers

What its tools let an agent do: 4 read

Install Patina in Claude Code, Cursor or VS Code

claude mcp add --transport http patina https://patinadata.xyz/api/mcp
Add to Cursor

What the publisher says

From the Patina repository's README, as published. We do not edit it. Read it on GitHub

Patina

Proof of tenure for accounts a person already owns Anyone can make a new account. Nobody can make an old one.

Live App • Documentation • MCP Server • Verify a score

Overview • The Score • Privacy • Architecture • Quick Start • Integration • Test Results

Live Deployments

Overview

Patina reads the history in accounts somebody already owns and turns it into portable, verifiable evidence that a real human has been there for years. It is built on Vana, the data portability protocol: the data lives in the user's own Personal Server, is read once under a grant they can revoke, and never passes through an OAuth handoff that keeps it.

Sybil resistance is unsolved and expensive. An airdrop, a quadratic funding round, a DAO vote or a free trial all need to know whether they are talking to a thousand people or to one person with a thousand wallets. The usual answers are poor: biometrics are invasive, KYC destroys privacy, and most behavioural signals can simply be bought.

Somebody running an account farm can buy followers, bulk-upload posts and fill in a convincing profile. What they cannot buy is a decade.

Why Patina?

Patina answers tenure, not uniqueness. A freshly verified unique human can be produced today; sixteen years of corroborated activity cannot. The two are complementary, and the tool descriptions say so rather than implying otherwise.

Features

Ownership proved, not assumed

Collection is meant to run through Vana Desktop, which opens a browser on the user's own machine and asks them to sign in. Credentials never leave the device and Patina never sees a password.

But Vana has two collection paths and does not report which one it used. The other reads a public page from a profile URL, which proves an account exists and nothing about who holds it. So "desktop only" cannot be asked for; it has to be forced.

Every source therefore requires one scope a public page cannot serve, and the read is refused if it does not come back. LinkedIn must produce connection dates, Spotify saved tracks, YouTube its Watch Later list. A request containing something private cannot be answered from a public profile, so the person ends up on Desktop and has to log in. sources.test.ts fails if a source is ever added without one.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Patina: common questions

Is Patina MCP server safe?
Yes, by our scan: it is graded A (87/100). Read the Patina safety report
How do I install Patina?
It runs remotely at patinadata.xyz. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
Does Patina need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Patina maintained?
The last commit was 40 days ago (2026-09-25). The latest release is v1.0.0.
Is Patina up?
100% of our last 28 checks got an answer. We check remote servers about four times a day.
How does Patina compare with other MCP servers?
safety score 87/100 (higher than 73% of 48,255 servers); tools 4 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.