Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Search Geneteka, the Poznań Project and BaSIA for Polish vital records; fetch archive scans.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
POLISH_ARCHIVES_CACHE_DIR, POLISH_ARCHIVES_TIMEOUT, POLISH_ARCHIVES_MIN_INTERVAL, POLISH_ARCHIVES_CONTACT, POLISH_ARCHIVES_DOWNLOAD_DIRYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"polish-archives": {
"command": "uvx",
"args": [
"polish-archives-mcp"
],
"env": {
"POLISH_ARCHIVES_CACHE_DIR": "your-value",
"POLISH_ARCHIVES_TIMEOUT": "your-value",
"POLISH_ARCHIVES_MIN_INTERVAL": "your-value",
"POLISH_ARCHIVES_CONTACT": "your-value",
"POLISH_ARCHIVES_DOWNLOAD_DIR": "your-value"
}
}
}
}Run this in your terminal
claude mcp add polish-archives --env POLISH_ARCHIVES_CACHE_DIR=your-value --env POLISH_ARCHIVES_TIMEOUT=your-value --env POLISH_ARCHIVES_MIN_INTERVAL=your-value --env POLISH_ARCHIVES_CONTACT=your-value --env POLISH_ARCHIVES_DOWNLOAD_DIR=your-value -- uvx polish-archives-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"polish-archives": {
"command": "uvx",
"args": [
"polish-archives-mcp"
],
"env": {
"POLISH_ARCHIVES_CACHE_DIR": "your-value",
"POLISH_ARCHIVES_TIMEOUT": "your-value",
"POLISH_ARCHIVES_MIN_INTERVAL": "your-value",
"POLISH_ARCHIVES_CONTACT": "your-value",
"POLISH_ARCHIVES_DOWNLOAD_DIR": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"polish-archives": {
"type": "stdio",
"command": "uvx",
"args": [
"polish-archives-mcp"
],
"env": {
"POLISH_ARCHIVES_CACHE_DIR": "your-value",
"POLISH_ARCHIVES_TIMEOUT": "your-value",
"POLISH_ARCHIVES_MIN_INTERVAL": "your-value",
"POLISH_ARCHIVES_CONTACT": "your-value",
"POLISH_ARCHIVES_DOWNLOAD_DIR": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
POLISH_ARCHIVES_CACHE_DIR envPOLISH_ARCHIVES_TIMEOUT envPOLISH_ARCHIVES_MIN_INTERVAL envPOLISH_ARCHIVES_CONTACT envPOLISH_ARCHIVES_DOWNLOAD_DIR envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account ianderso, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.1) reached the registry 28 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
An MCP server for the Polish volunteer indexes of vital records, and for the archive scans they point to:
It works the way a careful genealogist does. An index row is a finding aid, typed by a volunteer from the register: it says which register and entry to read, and the scan is the evidence. A zero covers only what was indexed, so Geneteka's coverage list comes first. And a scan is cited by the archive's own call number, the *Sygnatura* on the Szukaj w Archiwach unit page, never by an index's rendering of it.
Nothing here writes anywhere, and nothing here keeps a family tree. It grew from a script used in one family-history project, and sits well beside familysearch-mcp, whose catalogue holds the filmed copies of many of the same registers.
This is an independent project. It is not affiliated with, endorsed by, or supported by the Polskie Towarzystwo Genealogiczne, the Poznań Project, the Wielkopolskie Towarzystwo Genealogiczne "Gniazdo", the Naczelna Dyrekcja Archiwów Państwowych, or any archive.
The server publishes seven tools. All but swa_scan are read-only; swa_scan writes one new file and never overwrites one.
Before searching
| Tool | Purpose |
|---|---|
regions | Geneteka's region codes and names (15wp is Wielkopolska). Makes no request. |
geneteka_coverage | The registers Geneteka has indexed for a parish: births, marriages or deaths, the years exactly as Geneteka lists them (gaps included), and each register's rid. With year, whether each register covers it. The list is cached for a week. |
Searching the indexes
| Tool | Purpose |
|---|---|
geneteka_search | Births, marriages or deaths in one region, or in one register by rid. Rows carry the custodian holding the book, the indexer's notes (often a date or a village) and any scan link. Fifty rows a page. |
poznan_search | Marriages 1800-1899 by groom's and bride's surnames, or either spouse's. Given names are matched to the project's name groups; a name in no group returns the groups. Each row says who holds the original register. |
basia_search | BaSIA entries by surname, with more people in the same entry, a place and radius, years, office and record type. Every row carries BaSIA's call number and scan, the unit's address on szukajwarchiwach.gov.pl, and a warning about BaSIA's series numbers. |
Reading the scan
| Tool | Purpose |
|---|---|
swa_scan | Download one full-size scan (about 3500 px) from Szukaj w Archiwach's photo host, given its 64-character name. Saves a new .jpg, never a hidden file or one under ~/Library. |
cache_status | This session's requests, by site, the cache, and the pacing. Makes no request. |
geneteka_coverage for the parish: which registers and years exist in the index. A year not listed was never searched.geneteka_search, poznan_search and basia_search. Records are in Latin, Polish or German: search Wojciech as Adalbertus and Adalbert too, Jan as Joannes and Johann, Marianna as Maria; -ski and -ska, and genitive forms ("z Kowalskich"), are one surname.unit_url, or a Geneteka row's scan link) in a browser. Szukaj w Archiwach's pages sit behind a bot check and this server never fetches them. Read the *Sygnatura* there, and each scan's name from its image address (photos.szukajwarchiwach.gov.pl/ ).swa_scan with that name. Read the scan before saying anything about it.You need Python 3.11 or later and uv. There is no key to request and no account to make.
Without cloning. uvx fetches it from PyPI and runs it in one step:
uvx polish-archives-mcp
From a clone, which is what you want if you will change it:
git clone https://github.com/ianderso/polish-archives-mcp
cd polish-archives-mcp uv sync uv run polish-archives-mcp # stdio server, usually launched by the client
Either way the server speaks MCP over stdio, so you will normally let an MCP client start it rather than run it by hand.
{
"mcpServers": { "polish-archives": { "command": "uvx", "args": ["polish-archives-mcp"] } } }
A desktop app does not always inherit your shell's PATH. If the server fails to start because uvx cannot be found, give the full path that which uvx prints as the command.
claude mcp add polish-archives -- uvx polish-archives-mcp
Nothing is required. A .env file in the directory the server starts in supplies anything the environment does not; only that directory is read.
| Variable | Meaning |
|---|---|
POLISH_ARCHIVES_CACHE_DIR | Response cache directory. Default ~/.cache/polish-archives-mcp. |
POLISH_ARCHIVES_TIMEOUT | HTTP timeout in seconds for one request. Default 60. Scan downloads get 180 to read. |
POLISH_ARCHIVES_MIN_INTERVAL | Least seconds between two requests to one site. Default 4, and never below 4. BaSIA always gets at least 10. |
POLISH_ARCHIVES_CONTACT | An email address or URL added to the User-Agent, so a site can reach you if your use causes trouble. Optional, and courteous. |
POLISH_ARCHIVES_DOWNLOAD_DIR | An existing folder. When set, swa_scan saves only inside it. Set it to save into an iCloud Drive folder, which lives under ~/Library. |
An unusable value is reported on the first tool call as a not_configured result naming the variable.
Each site is a volunteer society's server or an archive's. The client sends one request at a time to each site, at least four seconds apart, and ten to BaSIA and Geneteka; different sites do not wait for one another. A Geneteka search fetches one page of fifty rows per call, never the whole result in a burst. Two identical calls in flight share one request. The coverage list is cached for a week, searches for a day, the Poznań Project's name groups for a month; a failure is never cached. A 429, a 5xx or a dropped connection gets one retry, honouring Retry-After. The User-Agent names the package, its version and this repository.
What each source says about automated use, as checked on 2026-10-11:
robots.txt disallows nothing and sets Crawl-delay: 120. This server makes one request per tool call there, at least ten seconds apart.robots.txt.robots.txt sets Crawl-delay: 10, disallows /search.php and other scripts, and says in a comment that robots may index information pages, "ale nie wyszukiwarkę ani skrypty pobierające dane" (but not the search engine or data-fetching scripts), because each search is a costly database query. This server posts the site's own search form at /en/, one search per tool call, at least ten seconds apart, and caches each answer for a day.robots.txt (it answers 400). The portal's own terms could not be read without a browser; the archives set the terms for reusing their scans, so check them before publishing one.If a site asks you to stop, stop: tell the server's operator, and open an issue so the project can change.
geneteka_search with a rid and a span of years names the years Geneteka has not indexed (years_not_indexed). The Poznań Project and BaSIA publish no comparable list: their zeros say less.poznan_search returns too_many_results with the counts, so narrow it. BaSIA lists only the first 250 entries of a search and says so (truncated).szukajwarchiwach.pl domain, which no longer opens; those rows have no unit_url, only the reference written in the old link, and a note on finding the unit.swa_scan uses.blocked and left alone.Tool arguments are written by a model, and the model reads text this server does not control: index notes, comments, web pages. The server assumes that text can steer the model, and limits what a steered model can make it do.
geneteka.genealodzy.pl, `poznan-proOnly the beginning is shown; read the rest in the repo