Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Find parishes and registers on Matricula, the church-book portal; open any page in its viewer.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
MATRICULA_CACHE_DIR, MATRICULA_TIMEOUT, MATRICULA_MIN_INTERVAL, MATRICULA_SEARCH_INTERVAL, MATRICULA_CONTACT, MATRICULA_DOWNLOAD_DIR, MATRICULA_IMAGE_ACCESS필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"matricula": {
"command": "uvx",
"args": [
"matricula-mcp"
],
"env": {
"MATRICULA_CACHE_DIR": "your-value",
"MATRICULA_TIMEOUT": "your-value",
"MATRICULA_MIN_INTERVAL": "your-value",
"MATRICULA_SEARCH_INTERVAL": "your-value",
"MATRICULA_CONTACT": "your-value",
"MATRICULA_DOWNLOAD_DIR": "your-value",
"MATRICULA_IMAGE_ACCESS": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add matricula --env MATRICULA_CACHE_DIR=your-value --env MATRICULA_TIMEOUT=your-value --env MATRICULA_MIN_INTERVAL=your-value --env MATRICULA_SEARCH_INTERVAL=your-value --env MATRICULA_CONTACT=your-value --env MATRICULA_DOWNLOAD_DIR=your-value --env MATRICULA_IMAGE_ACCESS=your-value -- uvx matricula-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"matricula": {
"command": "uvx",
"args": [
"matricula-mcp"
],
"env": {
"MATRICULA_CACHE_DIR": "your-value",
"MATRICULA_TIMEOUT": "your-value",
"MATRICULA_MIN_INTERVAL": "your-value",
"MATRICULA_SEARCH_INTERVAL": "your-value",
"MATRICULA_CONTACT": "your-value",
"MATRICULA_DOWNLOAD_DIR": "your-value",
"MATRICULA_IMAGE_ACCESS": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"matricula": {
"type": "stdio",
"command": "uvx",
"args": [
"matricula-mcp"
],
"env": {
"MATRICULA_CACHE_DIR": "your-value",
"MATRICULA_TIMEOUT": "your-value",
"MATRICULA_MIN_INTERVAL": "your-value",
"MATRICULA_SEARCH_INTERVAL": "your-value",
"MATRICULA_CONTACT": "your-value",
"MATRICULA_DOWNLOAD_DIR": "your-value",
"MATRICULA_IMAGE_ACCESS": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
MATRICULA_CACHE_DIR envMATRICULA_TIMEOUT envMATRICULA_MIN_INTERVAL envMATRICULA_SEARCH_INTERVAL envMATRICULA_CONTACT envMATRICULA_DOWNLOAD_DIR envMATRICULA_IMAGE_ACCESS env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 ianderso 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.0)은 26일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Systemdox
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
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.
Your architecture in your agents' context: checks, specs, ADRs and docs over MCP, at write time.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
An MCP server for Matricula Online (data.matricula-online.eu), the church-book portal that ICARUS, the International Centre for Archival Research, runs for dioceses and archives in Germany, Austria, Poland, Slovenia, Serbia, Italy, Switzerland, Luxembourg and Bosnia and Herzegovina. Matricula publishes their parish registers (baptisms, marriages and burials, and the indexes, family books and parish censuses that go with them), scanned page by page: about 13,400 parishes by its own count in October 2026.
The server walks Matricula's own hierarchy. It lists the countries and their *sections* (each a diocese, an archive or a private collection), a section's parishes with their coordinates, a parish's registers with their signatures, types and dates, and a register's pages, each with its label and the link that opens it in Matricula's own viewer. It also runs Matricula's place search, which finds the parish a village belonged to.
It works the way a careful genealogist does. The register page is the evidence. A register's type and dates, a page label and a search snippet are finding aids that say which page to open. Every result carries a citation in the order Matricula itself gives for finding a page again: diocese or archive, parish, register signature, page.
Page images are read in Matricula's viewer, not fetched by this server. Matricula's image host refuses scripted requests, and this server does not pretend to be a browser to get past it. The code that would save one page image is here, documented and tested, but switched off: it is for the day ICARUS grants access to an identified client. See Page images.
Nothing here writes to Matricula, and nothing here keeps a family tree.
This is an independent project. It is not affiliated with, endorsed by, or supported by ICARUS or any of the archives and dioceses whose registers Matricula publishes.
The server publishes seven tools. All but matricula_page_image are read-only; that one creates a new file only when image access is on, and never overwrites one.
Finding
| Tool | Purpose |
|---|---|
matricula_sections | The countries and, in each, its sections (dioceses and archives), with Matricula's parish counts. |
matricula_parishes | The parishes of one section, filtered by name, with coordinates, and the section's own note (often the archive's address). |
matricula_search | Matricula's place search: parishes whose names or descriptions name a place, with the snippet that shows where. Optionally limited to a section or to registers in a span of years. |
Reading
| Tool | Purpose |
|---|---|
matricula_registers | A parish's registers: signature, the archive's own type (Taufen, Trauungen, Sterben, Index - ...), a kind (baptisms, marriages, burials, ...), dates, contents notes, where the original is held, and each register's key. |
matricula_register | One register: its description and citation, and every page's position, label and viewer link, with paging and a label filter. |
matricula_page_image | Off unless the operator has turned image access on. While off, it answers images_not_enabled with the page's viewer link, label and citation. When on, it saves one page as a new .jpg with its citation. |
cache_status | This session's requests, the pacing, cache use, and whether image access is on. Makes no request. |
Everything is addressed by its path on Matricula below the language prefix, which the tools call a key: deutschland/passau is a section, oesterreich/salzburg/krimml a parish, oesterreich/salzburg/krimml/TFBI a register. Every tool also takes a Matricula address in any of its interface languages, and a register's tools take a page's viewer address (?pg=N).
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 matricula-mcp
From a clone, which is what you want if you will change it:
git clone https://github.com/ianderso/matricula-mcp
cd matricula-mcp uv sync uv run matricula-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": { "matricula": { "command": "uvx", "args": ["matricula-mcp"], "env": { "MATRICULA_CONTACT": "you@example.org" } } } }
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 matricula -e MATRICULA_CONTACT=you@example.org -- uvx matricula-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 |
|---|---|
MATRICULA_CACHE_DIR | Response cache directory. Default ~/.cache/matricula-mcp. |
MATRICULA_TIMEOUT | HTTP timeout in seconds for one request. Default 30. Image downloads get 120 to read. |
MATRICULA_MIN_INTERVAL | Least seconds between two requests to Matricula. Default 2, and never below 2. |
MATRICULA_SEARCH_INTERVAL | Least seconds between two place searches. Default 10, and never below 10. |
MATRICULA_CONTACT | An email address or URL added to the User-Agent, so ICARUS can reach you if your use causes trouble. Optional for reading the catalogue, courteous, and required for image access. |
MATRICULA_DOWNLOAD_DIR | An existing folder. When set, matricula_page_image saves only inside it. Set it to save into an iCloud Drive folder, which lives under ~/Library. |
MATRICULA_IMAGE_ACCESS | Leave unset. Set it to granted only once ICARUS has granted your client access to its image host; it needs MATRICULA_CONTACT. Any other value is refused. See Page images. |
An unusable value is reported on the first tool call as a not_configured result naming the variable.
Matricula's viewer loads each page from img.data.matricula-online.eu. That host answered 403 to a plain scripted request when this project surveyed it (with Vary: Origin), and the viewer attaches a per-session token, computed in the browser, to every image request. That is Matricula's access control, and this server treats it as one. It does not imitate a browser, send an Origin or Referer header, carry a session cookie, or reproduce the viewer's token, and it never probes the host to find out what would get through. A test fails if anything resembling a browser disguise appears in the source.
So, by default, matricula_page_image fetches nothing. It answers images_not_enabled with the page's viewer link, its label and its citation, and the person reads the page in Matricula's viewer.
The code that would save a page is written and tested against a mocked host, for the day ICARUS grants access to an identified client. If you obtain that permission (by agreement with ICARUS, for your own client), set MATRICULA_CONTACT to the address ICARUS knows you by and MATRICULA_IMAGE_ACCESS=granted. The tool then fetches one page at a time from the image host, paced like every other request, with this server's own User-Agent (matricula-mcp/ (+https://github.com/ianderso/matricula-mcp; )) and nothing else. If the host still refuses, the tool says so (image_refused) and writes nothing. Should ICARUS specify a different route (an API, a key, another host), the client is to change in a release to use exactly that route; no setting here invents one.
A saved page is a new .jpg, never a hidden file or one under ~/Library (unless MATRICULA_DOWNLOAD_DIR is set there), and comes with its citation and its licence, CC BY-NC-ND 2.0.
Matricula is one service, run by an association of archives. The client sends one request at a time, at least two seconds apart, and a place search at least ten seconds after the last, because a search reads every parish description in the portal. Country and section lists and parish lists are cached for 28 days, parish and register pages for 7, searches for a day. Two identical calls in flight share one request. A 429, a 5xx or a dropped connection gets one retry, honouring Retry-After; a refusal is not retried. The User-Agent names the package, its version, this repository and, when set, your contact. No cookies are kept.
The terms of use (German; checked 2026-10-11) cover the images and descriptive metadata on data.matricula-online.eu:
matricula_parishes passes on each section's own note, which often names the archive and how to reach it: the place to send that notice.
Matricula's robots.txt (served from cdn-static.matricula-online.eu, read 2026-10-11) names several crawlers, ClaudeBot, GPTBot and CCBot among them, with Disallow: /, and asks every other agent to keep away from four kinds of address: the viewer's page parameter (/*?pg=), the search (/*/suchen), the map features (/*/landkarte-features) and accounts. This server is not a crawler: it reads the pages a researcher asks for, one at a time, and caches them. It reads the search (matricula_search) and one map features file per section (for matricula_parishes' coordinates); it builds ?pg= links for a person to open and never requests them; it never touches accounts. Whether that suits your use is yours to judge.
citation gives them in that order, with cite_as as one sentence.?pg= takes. The label (02-Taufe_0001, 001-03_0004-r) is the archive's name for the scan: a section and number, or a folio and side. Cite both.Index - Taufen and Passau's Register Taufen are indexes (index: true); Baden-Württemberg's Taufregister is the register itself.앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요