Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Polish Archives Indexes

by iandersoversion 0.1.1i★ –iRuns on your computer
Registry nameio.github.ianderso/polish-archives-mcp

Install

Overview

Description from the maker (original English)

Search Geneteka, the Poznań Project and BaSIA for Polish vital records; fetch archive scans.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Search & AI memory

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: POLISH_ARCHIVES_CACHE_DIR, POLISH_ARCHIVES_TIMEOUT, POLISH_ARCHIVES_MIN_INTERVAL, POLISH_ARCHIVES_CONTACT, POLISH_ARCHIVES_DOWNLOAD_DIR

You need

  • PyPIPython’s uv installed (for the uvx command)

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-mcp

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

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.

Open in VS Code

Or copy the settings yourself

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.

Values you fill in

  • POLISH_ARCHIVES_CACHE_DIR env
    Directory for the on-disk response cache.
  • POLISH_ARCHIVES_TIMEOUT env
    HTTP timeout in seconds for one request. Scan downloads get 180 s to read.
  • POLISH_ARCHIVES_MIN_INTERVAL env
    Least seconds between two requests to one site. Never below 4; BaSIA always gets at least 10.
  • POLISH_ARCHIVES_CONTACT env
    An email address or URL appended to the User-Agent, so a site can reach whoever runs the server.
  • POLISH_ARCHIVES_DOWNLOAD_DIR env
    An existing folder. When set, swa_scan saves only inside it; needed to save under ~/Library, such as an iCloud Drive folder.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

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

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account ianderso, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Search & AI memoryi

  • More stars than 0% of the other 5678 servers in this category
  • Published to the registry more recently than 58% of the other 5678 servers in this category
  • Basic checks equal to or better than 100% of the other 5678 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Polish Archives Indexes safe?

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.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

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).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.1) reached the registry 28 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.

What can I use instead?

In the same category: Context7, Codebase Memory, Exa

Alternatives

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

Context7

by upstash

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

Computer or cloud★ 64,224MITUpdated yesterday
Install

Codebase Memory

by DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

Runs on your computer★ 48,148MITUpdated 21 days ago
Install

Exa

by exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Runs in the cloud★ 5,213MITUpdated 2 months ago
Install

README from the maker

Open the README

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.

polish-archives-mcp

An MCP server for the Polish volunteer indexes of vital records, and for the archive scans they point to:

  • [Geneteka](https://geneteka.genealodzy.pl/), the Polskie Towarzystwo Genealogiczne's index of parish and civil registers: tens of millions of baptisms, marriages and burials from thousands of parishes across Poland, and some beyond. Its coverage list says, parish by parish, which registers and years have been indexed.
  • [The Poznań Project](https://poznan-project.psnc.pl/): marriages of 1800-1899 in Wielkopolska and Kujawy, the former Prussian Provinz Posen and its neighbours, with ages and parents.
  • [BaSIA](https://www.basia.famula.pl/), the Wielkopolskie Towarzystwo Genealogiczne "Gniazdo"'s archival index, whose entries name the archive, the call number and the scan.
  • [Szukaj w Archiwach](https://www.szukajwarchiwach.gov.pl/), the Polish state archives' portal: this server downloads a full-size scan from its open photo host, given the scan's name.

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.

Tools

The server publishes seven tools. All but swa_scan are read-only; swa_scan writes one new file and never overwrites one.

Before searching

ToolPurpose
regionsGeneteka's region codes and names (15wp is Wielkopolska). Makes no request.
geneteka_coverageThe 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

ToolPurpose
geneteka_searchBirths, 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_searchMarriages 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_searchBaSIA 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

ToolPurpose
swa_scanDownload 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_statusThis session's requests, by site, the cache, and the pacing. Makes no request.
The workflow they serve
  1. geneteka_coverage for the parish: which registers and years exist in the index. A year not listed was never searched.
  2. 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.
  3. Open the unit page (a BaSIA row's 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/ ).
  4. swa_scan with that name. Read the scan before saying anything about it.
  5. Cite the archive, the Sygnatura and the scan number, with the unit page's address. Keep the index's id (Geneteka, Poznań Project or BaSIA) as the finder.

Setup

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.

Claude Desktop
{

"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 Code
claude mcp add polish-archives -- uvx polish-archives-mcp

Configuration

Nothing is required. A .env file in the directory the server starts in supplies anything the environment does not; only that directory is read.

VariableMeaning
POLISH_ARCHIVES_CACHE_DIRResponse cache directory. Default ~/.cache/polish-archives-mcp.
POLISH_ARCHIVES_TIMEOUTHTTP timeout in seconds for one request. Default 60. Scan downloads get 180 to read.
POLISH_ARCHIVES_MIN_INTERVALLeast seconds between two requests to one site. Default 4, and never below 4. BaSIA always gets at least 10.
POLISH_ARCHIVES_CONTACTAn 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_DIRAn 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.

Being a good guest

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:

  • Geneteka. No terms of use are linked from geneteka.genealodzy.pl. Its robots.txt disallows nothing and sets Crawl-delay: 120. This server makes one request per tool call there, at least ten seconds apart.
  • The Poznań Project. Its about page says the database is "dostępna dla wszystkich użytkowników sieci poprzez bezpłatną wyszukiwarkę" (open to every internet user through a free search engine). It serves no robots.txt.
  • BaSIA. No terms of use were found on www.basia.famula.pl. Its 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.
  • Szukaj w Archiwach. The portal's unit and fonds pages sit behind Imperva's bot check, so this server never requests them; a person opens them in a browser. The photo host serves no 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.

How to read what comes back

  • An index row is a finding aid. Every search answer says so. The row tells you which register, year and entry to read; the scan is the record.
  • Check coverage before trusting a zero. 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.
  • "Too many" is not a zero. The Poznań Project shows no entries when a search matches too many; 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).
  • Cite the archive's call number, not BaSIA's. BaSIA writes call numbers its own way, and its middle (series) number can differ from the archive's. Every BaSIA row carries that warning. Take the Sygnatura from the unit page. Some BaSIA rows still link the retired 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.
  • Who holds the book. Geneteka rows carry the custodian Geneteka names (an archdiocesan archive, a state archive, a parish). Poznań Project rows say who holds the original register, from the project's own archive pages.
  • Names come in three languages. A Polish family can appear as Wojciech, Adalbertus and Adalbert in three records. The Poznań Project's name groups bridge this for given names; for the others, search each form.
  • Comments are other researchers' words. Poznań Project comments are returned without their authors' names or addresses.

Deliberately not here

  • Szukaj w Archiwach's own pages. They need a browser session past a bot check; a server driving a browser to get past it would be impersonating a person. The unit page stays with the person; the scan host, which is open, is what swa_scan uses.
  • Other indexes (metryki.genealodzy.pl's scans, Kartenmeister, the Pomeranian Greif index). Proposals are welcome as issues.
  • Writing to any site, including corrections and comments.
  • Working around bot checks. A site that answers with a challenge is reported as blocked and left alone.

Security

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.

  • Which hosts. Four, fixed in the code: geneteka.genealodzy.pl, `poznan-pro

Only the beginning is shown; read the rest in the repo

Ask PopNx