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

FamilyLore

REMOTE · FAMILYLORE.AI

Reads handwritten family letters in old scripts and translates them, with notes on what they meant.

Available components

+3 this week 77 Trust /100

Last scanned (15 hours ago)

Scores higher than 68% of remote servers

Reachable. Last reached 6 Nov 2026.

Category Documents and Files

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security74
  • The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
  • No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation. See how to fix → View diagnostics → Partial
  • HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
  • HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
  • DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
Schema Quality & AI Usability85
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 1618 tokens (~101/item across 16 items; 9 tools + 7 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
  • Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 10 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
  • Supports UI / widget rendering.Pass
What we tested

Checks we ran (14)

  • TLS certificate
  • Authorization
  • HTTPS
  • HSTS header
  • DNSSEC
  • Transport
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol
  • Capabilities

Does not apply to this hosted endpoint (2)

  • Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
  • Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.

The score does not measure everything. What the score does not measure →

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.

  • 6 Nov 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 5 Nov 26 +1
    • “read_letter” reworded the description of “target_language” cosmetic
    • “upload_slot” reworded the description of “target_language” cosmetic

    2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 3 Nov 26 +1
    • Tool “read_letter” rewrote its description, which is the text the model reads security
    • “read_letter” reworded the description of “language” cosmetic
  • 1 Nov 26 +1

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

  • 30 Oct 26 +1

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

  • 29 Oct 26 0
    • Stability: unverified → 0.03 ▲ functional
  • 28 Oct 26 73

    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 6 Nov 2026 · Probed https://familylore.ai/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=familylore.ai CN=YE2,O=Let's Encrypt,C=US 3 Nov 2026 1 Feb 2027 ECDSA 256 ECDSA-SHA384 515331049f7effff77ab0ab9dd890604024
SANs: *.familylore.ai, familylore.ai
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of familylore.ai. — Not signed

Zone DS Keys Algorithms Outcome
. Trust anchor 20326, 38696 8, 8 Verified
ai. DS published 1814, 3799 8, 8 Verified
familylore.ai. No DS Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://familylore.ai/mcp Verified 200
http (plaintext) http://familylore.ai/mcp HTTPS enforced 301 https://familylore.ai/mcp
MCP tools · 9 exposed · ~1,424 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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
ask_letter ~141

Ask FamilyLore a question about one page in the person's account: what a phrase meant then, who someone was, what the letter says about something. The answer comes with the letter's lines it rests on, or says that the letter doesn't say. Use it with a page id from read_letter, my_letters or get_reading, once the page has been read. Questions the reading already answers (who is named, what the translation says) need no call.

NameTypeReqDescription
page_idstringyesThe page's id, from read_letter, my_letters or get_reading
questionstringyesThe question about the letter, in the person's words
NameTypeReqDescription
allowance––Pages left, as the Account page counts them
answerstringyesFamilyLore's answer, in the language the page is translated into
asked_on––The day FamilyLore answered, Pacific time (yyyy-mm-dd)
context––What it meant then, when FamilyLore adds it
letter_saysbooleanyesFalse when the letter doesn't say
linesarray–The letter's lines the answer rests on
page_idstringyes–
page_urlstringyesThe page on familylore.ai
questionstringyes–

No examples provided.

get_reading ~105

The reading of a page in the person's FamilyLore account: the transcription in its own script with the words FamilyLore was unsure of marked, the translation, notes on what it meant, how sure the reading is, and the page's link. Use it with the page id read_letter answered, to show the reading once it is done or to see whether it is still being read.

NameTypeReqDescription
page_idstringyesThe page's id, from read_letter or FamilyLore
NameTypeReqDescription
confidence––How sure the reading is, 0 to 1
elapsed_s––While transcribing: seconds since the reading started
expected_s––While transcribing: how long readings in this language usually take, in seconds
language––The letter's language
language_code––Its code, for a card to name it in the host's language
notesarray–What it meant: FamilyLore's notes, every one
page_idstringyesThe page's id on FamilyLore
page_urlstringyesThe page on familylore.ai
read_on––The date FamilyLore read it
right_to_leftboolean––
statusstringyesnot_started, reading (about a minute and a half), read, failed or cancelled
step––While reading: transcribing the handwriting, translating it, or checking the notes once it is translated
sure–––
sure_steps––How sure, in steps of 5
title–––
transcription––As written, in the letter's own script
translation–––
translation_language–––
translation_language_code–––
unsure_word_indexesarray–The words the reading was unsure of, as positions in the transcription's words split on white space
unsure_wordsinteger–How many words the reading was unsure of

No examples provided.

my_allowance ~52

How many pages the person's FamilyLore account has left to read: today for a free account, this month otherwise, and when more come. Reading a page in the chat uses the same allowance as on the site.

Input schema present but exposes no named parameters.

NameTypeReqDescription
allowance––None when the account's pages aren't counted

No examples provided.

my_letters ~88

The pages in the person's FamilyLore account, newest first: each letter's title, language, the date it was added, whether it has been read, and its page id. Use it when the person asks about letters they have read on FamilyLore; pass a page id to get_reading for that letter's reading.

NameTypeReqDescription
limitinteger–How many pages to list, newest first
NameTypeReqDescription
lettersarray–Newest first
library_urlstring–Every page in the account, on familylore.ai
moreboolean–Whether the account may have more pages than are listed here

No examples provided.

read_letter ~345

Read a photo of an old handwritten letter, postcard or document with FamilyLore: the transcription in its own script, a translation and notes on what it meant then. Use it when the person attaches a photo of a handwritten page and asks what it says. It reads pre-1918 Russian and Ukrainian cursive, German Kurrent and Sütterlin, Yiddish, and old English cursive. It needs the person's FamilyLore account and uses one page of the account's allowance. It starts the reading and answers at once with the page id; a reading takes about a minute and a half. If the photo can't be attached here, call it without one: it answers with a one-time link where the person sends the photo to FamilyLore, and the page id to pass to get_reading once they have.

NameTypeReqDescription
language––The letter's language, if the person says it or it is plain: ru_uk = Russian or Ukrainian, de_kurrent = German (Kurrent or Sütterlin), yi = Yiddish, en = English (old cursive). Leave it out and Famil…
page_id––A page already on FamilyLore that hasn't been read, from FamilyLore's own photo upload
photo––The photo of the page the person attached
target_language––The language to translate it into: en (English), de (German), ru (Russian), pl (Polish), it (Italian), fr (French), uk (Ukrainian). English if left out.
year––The year it was written, if the person knows it roughly (1912 for 'about 1912')
NameTypeReqDescription
allowance––Pages left, as the Account page counts them
converted_from_heicboolean–The photo was an iPhone HEIC, read as a JPEG
link_expires_at––When upload_link stops working (UTC)
page_idstringyesThe page's id on FamilyLore
page_urlstringyesThe page on familylore.ai, with the person's other pages
statusstringyesreading: started (about a minute and a half); read: the page already has its reading; waiting_for_photo: the person sends the photo at upload_link, then FamilyLore reads it
upload_link––waiting_for_photo: where the person sends the photo, once

No examples provided.

reading_status ~38

Where a page's reading is, for FamilyLore's card while the page is read.

NameTypeReqDescription
page_idstringyesThe page's id
NameTypeReqDescription
confidence––How sure the reading is, 0 to 1
elapsed_s––While transcribing: seconds since the reading started
expected_s––While transcribing: how long readings in this language usually take, in seconds
language––The letter's language
language_code––Its code, for a card to name it in the host's language
model_context––Once read: the reading as text, for the card to give the assistant (ui/update-model-context)
notesarray–What it meant: FamilyLore's notes, every one
page_idstringyesThe page's id on FamilyLore
page_urlstringyesThe page on familylore.ai
read_on––The date FamilyLore read it
right_to_leftboolean––
statusstringyesnot_started, reading (about a minute and a half), read, failed or cancelled
step––While reading: transcribing the handwriting, translating it, or checking the notes once it is translated
sure–––
sure_steps––How sure, in steps of 5
title–––
transcription––As written, in the letter's own script
translation–––
translation_language–––
translation_language_code–––
unsure_word_indexesarray–The words the reading was unsure of, as positions in the transcription's words split on white space
unsure_wordsinteger–How many words the reading was unsure of

No examples provided.

real_letters ~312

FamilyLore's shelf of 16 real handwritten letters from 1758 to 1943, each with FamilyLore's reading: the transcription in the original script, an English translation, and notes on what the letter meant at the time. Use this when someone wants to see a real historical letter: one written in a given script (such as Kurrent, Sütterlin or old Russian cursive), in a given language, from a period or near a year, or the full reading of one of these letters. Without a letter id it lists the matching letters; with one it returns that letter's reading. Do not use it to read a letter or photo the person has: these are fixed example letters only.

NameTypeReqDescription
language––The letter's language: German, English, Latin, Russian, Polish, Ukrainian, Swedish, French, Hebrew
letter––A letter's id from this tool's list, such as de-1858-kilian, for that letter's whole reading
period––I · The age of the quill (1750–1800); II · Emancipations and emigrations (1830–1866); III · The long 19th century ends (1875–1914); IV · Field post (1914–1945)
script––The handwriting: German Kurrent, Sütterlin, Russian, Ukrainian, Polish, English, Latin, Swedish, French, Hebrew
year––Letters nearest this year first
NameTypeReqDescription
first_yearintegeryesThe year of the shelf's earliest letter
languagesarrayyesThe shelf's languages, for the next question
last_yearintegeryesThe year of the shelf's latest letter
lettersarrayyesThe matching letters; with a letter id, that one letter
periodsarrayyesThe shelf's periods, for the next question
reading––With a letter id: its whole reading
scriptsarrayyesThe shelf's scripts, for the next question
shelf_sizeintegeryes–
shelf_urlstringyes–

No examples provided.

script_guide ~239

FamilyLore's guide to the 137 letters of five old handwriting styles: Russian cursive, German Kurrent, Sütterlin, Hebrew cursive, American cursive. For one letter: how it was written (its forms, with images), what to look for, the letters it is mistaken for and how to tell them apart, and printed copybook plates where FamilyLore has them. Use this when someone asks how a letter was written in one of these hands, what an old letter shape is, or why two letters look alike; give the letter as written ("ѣ", "G"), by its name ("yat") or as transliterated, and the hand if known. With only a hand it returns that hand's alphabet. Do not use it to read a letter or photo the person has: it explains the alphabets only.

NameTypeReqDescription
hand––The handwriting: Russian cursive, German Kurrent, Sütterlin, Hebrew cursive, American cursive
letter––The letter: as written (ѣ, G, ך), by name (yat, alef), or as transliterated
NameTypeReqDescription
alphabetarrayyesWith a hand and no letter: its letters, in order
candidatesarrayyesWhen the question fits more than one letter: each of them
guide_urlstringyes–
hand––The hand that letter, or the alphabet, is in
handsarrayyesThe five hands, for the next question
letter––The letter asked for, when the question fits one
unknown_letter––The letter asked for, when nothing in the guide fits it (in the hand asked, or in any)

No examples provided.

upload_slot ~104

A one-time link where the person sends FamilyLore the photo of a page, for FamilyLore's card.

NameTypeReqDescription
language––The letter's language, if known
target_language––The language to translate it into: en (English), de (German), ru (Russian), pl (Polish), it (Italian), fr (French), uk (Ukrainian). English if left out.
year––The year it was written, if known
NameTypeReqDescription
expires_atstringyesWhen the link stops working (UTC)
linkstringyesWhere the person sends the photo: once, before expires_at
page_idstringyesThe page the photo becomes; get_reading shows its reading

No examples provided.

Install

How do I install the FamilyLore MCP server?

FamilyLore is a hosted endpoint at https://familylore.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · familylore.ai

# add to Claude Code
claude mcp add --transport http ai-familylore-familylore 'https://familylore.ai/mcp'
Common questions

What is the FamilyLore MCP server?

FamilyLore is an MCP server listed in the public MCP registry as ai.familylore/familylore. Reads handwritten family letters in old scripts and translates them, with notes on what they meant. This page covers its hosted endpoint (https://familylore.ai/mcp).

Is the FamilyLore MCP server safe to use?

FamilyLore scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the FamilyLore MCP server expose?

FamilyLore exposes 9 tools: real_letters, script_guide, read_letter, get_reading, reading_status, and 4 more. Their descriptions and schemas cost roughly 1,424 tokens of context every time the server is loaded.

Does the FamilyLore MCP server require authentication?

No. We connected to FamilyLore without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the FamilyLore MCP server still maintained?

FamilyLore is still listed as active in the MCP registry. We last reached this channel on 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What did VerifyMCP test on the FamilyLore MCP server?

VerifyMCP ran 14 checks on FamilyLore, covering TLS certificate, Authorization, HTTPS, HSTS header and 10 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.