Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Find which archive holds the papers: SNAC's index of archival collections, plus ArchiveGrid links.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
SNAC_API_URL, SNAC_CACHE_DIR, SNAC_TIMEOUT, SNAC_CONTACTDu brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"snac-archives": {
"command": "uvx",
"args": [
"snac-archives-mcp"
],
"env": {
"SNAC_API_URL": "your-value",
"SNAC_CACHE_DIR": "your-value",
"SNAC_TIMEOUT": "your-value",
"SNAC_CONTACT": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add snac-archives --env SNAC_API_URL=your-value --env SNAC_CACHE_DIR=your-value --env SNAC_TIMEOUT=your-value --env SNAC_CONTACT=your-value -- uvx snac-archives-mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"snac-archives": {
"command": "uvx",
"args": [
"snac-archives-mcp"
],
"env": {
"SNAC_API_URL": "your-value",
"SNAC_CACHE_DIR": "your-value",
"SNAC_TIMEOUT": "your-value",
"SNAC_CONTACT": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"snac-archives": {
"type": "stdio",
"command": "uvx",
"args": [
"snac-archives-mcp"
],
"env": {
"SNAC_API_URL": "your-value",
"SNAC_CACHE_DIR": "your-value",
"SNAC_TIMEOUT": "your-value",
"SNAC_CONTACT": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
SNAC_API_URL envSNAC_CACHE_DIR envSNAC_TIMEOUT envSNAC_CONTACT envDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto ianderso bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.1.0) kam vor 32 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, SwarmMemo
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Talk with agent swarms: rooms, private messages and paid tasks for AI agents
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
An MCP server for finding which archive holds the papers: a family's letters, a church's registers, a store's ledgers, a county office's loose papers. Most of that material has never been digitised. It exists online only as a catalogue record or a finding aid in some library, and the hard part of the research is knowing which one.
The server searches the [SNAC Cooperative](https://snaccooperative.org)'s index of people, families and organisations and the archival collections that hold their papers, across thousands of repositories. The data is CC0, and the API needs no key and no account. It also builds [ArchiveGrid](https://researchworks.oclc.org/archivegrid/) searches for you to open, because ArchiveGrid often finds what SNAC cannot, and OCLC does not permit automated access to it.
It works the way a careful genealogist does. Everything it returns is a finding aid: evidence of where to look and roughly what is there, never of what a document says. The tools say so, and they point you at the holding repository's own finding aid, which is the description to cite.
Nothing here writes anywhere, and nothing here keeps a family tree. The server finds collections; what you conclude from the papers belongs in your genealogy software, or in a family-tree MCP server running alongside this one. It sits well beside nara-catalog-mcp (federal records) and familysearch-mcp (indexed records and images).
This is an independent project. It is not affiliated with, endorsed by, or supported by the SNAC Cooperative, the University of Virginia, or OCLC.
The server publishes eight tools, all read-only and annotated so for the client. Two make no network call at all.
Finding collections
| Tool | Purpose |
|---|---|
search_collections | Find collections by words in their title. Each hit names its holding repository with a postal address, its OCLC number and its link, and flags the likely duplicates (the same papers catalogued two or three times). |
get_collection | One collection in full: the whole abstract, extent, repository, links, and the names SNAC connects to it. |
repository_holdings | What SNAC links to one repository, filtered by title and paged. |
Finding people, families and organisations
| Tool | Purpose |
|---|---|
search_names | Find SNAC name records by name, optionally by kind: person, family, or corporate body (churches, businesses, societies, offices). |
get_name | One name record: headings, dates, places, biographical note and identifier links (VIAF, Library of Congress and others). With detail="full", every collection linked to it, with its role, and the related names. |
collections_in_common | Collections linked to both of two names: where to look for letters between intermarried families or an ancestor's associates. |
Where SNAC stops
| Tool | Purpose |
|---|---|
archivegrid_search_link | Build an ArchiveGrid search, in its fielded syntax, for you to open; or a record link, given an OCLC number. Makes no request. |
cache_status | This session's live calls and cache hits. Makes no request. |
You need Python 3.11 or later and uv. There is no key to request.
Without cloning. uvx fetches it from PyPI and runs it in one step:
uvx snac-archives-mcp
From a clone, which is what you want if you will change it:
git clone https://github.com/ianderso/snac-archives-mcp
cd snac-archives-mcp uv sync uv run snac-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": { "snac": { "command": "uvx", "args": ["snac-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 snac -- uvx snac-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 |
|---|---|
SNAC_API_URL | The SNAC REST endpoint. Default https://api.snaccooperative.org/. Must be https; its host is the only one the server will contact. |
SNAC_CACHE_DIR | Response cache directory. Default ~/.cache/snac-archives-mcp. |
SNAC_TIMEOUT | HTTP timeout in seconds. Default 60. Holdings lists get 120. |
SNAC_CONTACT | An email address or URL added to the User-Agent, so the SNAC team can reach you if your use causes trouble. Optional, and courteous. |
An unusable value is reported on the first tool call as a not_configured result naming the variable.
SNAC is a free service run by a small cooperative, and it publishes no rate limit. The server sends one request at a time, at least a second apart; two identical calls in flight share one request; and every answer is cached on disk for 30 days (a collection record for good). A 429 or a 5xx is retried three times with back-off, then reported as rate_limited or upstream_error, which is never the same as "nothing found". Pass refresh=true to ask again, and refresh a cached empty result before concluding anything is absent.
link_kind is finding_aid, the link goes there; otherwise look the collection up in the repository's own catalogue.ark:/99166/...) is the stable id of a name record. Record the repository's collection number too: WorldCat merges records, and a number can come to redirect to another.search_collections needs every word in the collection's *title*. "Davenport family papers" finds ten collections; "Davenport family papers Lincoln County" finds none, because the county is only in the abstract. Use search_names, or an ArchiveGrid link with place.possible_duplicate_of groups them by title words and years; it is a hint, not a merge.creatorOf means these are the name's own papers; referencedIn means the name is an index term on the collection, not that any document concerns the person. maybe_same_count above 0 means SNAC suspects a conflation.location is where the *repository* is; place is a place the papers are *about*. Its name, place and subject indexes cover catalogue records and EAD finding aids only; HTML and PDF finding aids match keywords alone. It leaves out records held by more than one library, so microfilm of county or church records is usually missing: use WorldCat or the FamilySearch Catalog for that.SNAC_API_URL must be https.To report a vulnerability, see SECURITY.md.
uv sync --extra dev
uv run pytest # mocked with respx; never touches SNAC uv run ruff check . uv run ruff format --check . uv run python -m tests.live_check # eight paced calls to the live API
The live check asks SNAC what the recorded fixtures cannot: whether its answers still have the shape the server reads. See CONTRIBUTING.md for how the suite is organised, docs/API-NOTES.md for what was observed of the API and when, and docs/DESIGN.md for why the server is shaped this way.
The data is the SNAC Cooperative's, released under CC0, with collection records contributed by its member institutions and drawn from WorldCat and finding aids. ArchiveGrid is a project of OCLC Research.
MIT.