Skip to main content
Glama

nts-tax-mcp

Dies ist ein MCP-Server (Model Context Protocol), der die integrierte Suche des Nationalen Steuergesetzes-Informationssystems (taxlaw.nts.go.kr) und des Kommunalsteuergesetzes-Informationssystems (olta.re.kr) direkt in Claude nutzbar macht.

Nationale Steuern: Vorabauskünfte · Schriftliche Anfragen · Auskunftsersuchen (Nationale Steuerbehörde/Ministerium für Strategie und Finanzen/Ministerium für Gesetzgebung), Schiedssprüche des Steuertribunals, Überprüfungsanträge bei der Nationalen Steuerbehörde, Gerichtsurteile, Gesetze

Kommunalsteuern (hinzugefügt in v3): Entscheidungen des Steuertribunals, Entscheidungen des Rechnungshofs, Entscheidungen des Verfassungsgerichts, Gerichtsurteile, autoritative Auslegungen des Ministeriums für Gesetzgebung/Ministeriums für öffentliche Verwaltung und Sicherheit, Auskunftsersuchen lokaler Gebietskörperschaften im Zusammenhang mit Grunderwerbsteuer · Grundsteuer · Kraftfahrzeugsteuer · Kommunaler Einkommensteuer · Registrierungs- und Lizenzsteuer

Erweiterung der Gesetzesinformationen (v5, hinzugefügt in der erweiterten Version server_ext.py): Suche nach Urteilen des Obersten Gerichtshofs und untergeordneter Gerichte, Gesetzeshistorie und Artikeln zu einem bestimmten Zeitpunkt, Gesetzesauslegungsfällen, Verwaltungsvorschriften (Grundverordnungen usw.), Steuerabkommen und lokalen Rechtsvorschriften (Satzungen) über einen einzigen Connector, basierend auf der Open API des Nationalen Gesetzesinformationszentrums (law.go.kr)

v5 — Serverumzug + 8 Tools des Ministeriums für Gesetzgebung (law.go.kr) hinzugefügt (2026-08)

Aufgrund des aufgebrauchten Railway-Guthabens ist der Server ausgefallen (2026-08-08). Wir sind auf einen dauerhaft laufenden eigenen Servercomputer umgestiegen und haben ihn über Tailscale Funnel exponiert (abgeschlossen am 2026-08-09). Während der Umstellung wurden 8 Open-API-Tools des Ministeriums für Gesetzgebung (law.go.kr) hinzugefügt, sodass über einen einzigen Connector insgesamt 14 Tools genutzt werden können.

  • Erweiterter Einstiegspunkt: server_ext.py — übernimmt die 6 Tools (nationale/kommunale Steuern) des bestehenden server.py unverändert über from server import mcp und registriert über den law_go_kr.py-Client 8 weitere Tools des Ministeriums für Gesetzgebung. server.py selbst wurde nicht geändert, sodass bei Bedarf nur der ursprüngliche server.py mit den 6 Tools ausgeführt werden kann.

  • 8 neue Tools: court_case_search/court_case_detail (Rechtsprechung des Ministeriums für Gesetzgebung), law_interpretation_search (Gesetzesauslegungsfälle), law_history_search (Liste der in Kraft getretenen Fassungen eines Gesetzes), law_article_as_of (Wortlaut eines Artikels zu einem bestimmten Datum — zur Überprüfung des zum Zeitpunkt eines Verweises in einer Verordnung oder einem Urteil gültigen Artikels), admin_rule_search (Verwaltungsvorschriften — Grundverordnungen, Prüfungsverfahrensregeln, Bekanntmachungen), treaty_search (Wortlaut und Inkrafttretensdatum von Steuerabkommen), ordinance_search (lokale Rechtsvorschriften — z. B. Kommunalsteuerbefreiungssatzungen)

  • Voraussetzung: Die law.go.kr Open API funktioniert nur von registrierten IPs aus. Die öffentliche IP des Servers muss vorab unter open.law.go.kr → OpenAPI-Antragsdetails registriert werden. Ohne Registrierung schlagen nur die 8 Tools des Ministeriums für Gesetzgebung mit „Authentifizierungsfehler" fehl, während die 6 bestehenden Tools für nationale/kommunale Steuern normal funktionieren. Die Umgebungsvariable LAW_API_OC (die bei der Registrierung bei law.go.kr ausgestellte Organisationskennung, erforderlich) gibt das Authentifizierungskonto an. Da es sich um persönliche Identifikationsinformationen handelt, wird der tatsächliche Wert nicht in dieses Repository übertragen, sondern aus einer lokalen, in .gitignore aufgeführten Datei auf dem Servercomputer geladen.

  • Aktuelle Betriebsweise: Auf dem Servercomputer wird run_server.bat (Port 8734, Ausführung von server_ext.py) dauerhaft über die Windows Aufgabenplanung (nts-tax-mcp, automatischer Start mit SYSTEM-Rechten beim Booten) ausgeführt. Über tailscale funnel --bg 8734 wird es unter der festen Adresse https://desktop-ika1349.tail81ecba.ts.net/mcp extern exponiert. Die Ersteinrichtung erfolgt durch einmalige Ausführung von setup.ps1 (automatisiertes Herunterladen der Quelle von GitHub → Installation der Abhängigkeiten → Registrierung in der Aufgabenplanung).

Related MCP server: LexGuard MCP

v5.1 — Fehlerbehebung beim Parsen von Artikeln + Angabe von abgeschnittenen Artikeln (2026-08-16)

  • Fehlerbehebung beim Parsen des ersten Artikels eines Abschnitts: Ein Fehler wurde behoben, bei dem law_article_as_of beim Abrufen eines Artikels, der den Beginn eines Abschnitts (節), Unterabschnitts (管) oder Kapitels (章) markiert (z. B. Artikel 104 oder 55 des Einkommensteuergesetzes), anstelle des Artikeltextes nur die Überschrift wie „제6절 …" zurückgab. Die Ursache war eine Struktur, in der der Überschriftenknoten mit derselben <Artikelnummer> vor dem eigentlichen Artikel erscheint. Die Filterung entfernt nun Überschriftenblöcke, deren Artikelnummer nicht im Textkörper vorkommt.

  • Angabe von abgeschnittenen Artikeln + Offenlegung von max_chars: Wenn ein Artikel max_chars (Standard 6000 Zeichen) überschreitet, wurde der hintere Teil (die letzten Absätze) zuvor ohne Hinweis abgeschnitten. Jetzt wird bei einem Abschneiden im Antwortfeld "잘림" die Gesamtlänge und eine Anleitung zur erneuten Abfrage angegeben. Dem Tool law_article_as_of wurde der Parameter max_chars hinzugefügt, um den vollständigen Text abrufen zu können.

  • Betriebshinweis — .bat muss CRLF-Zeilenumbrüche verwenden: Wenn run_server.bat mit LF-Zeilenumbrüchen gespeichert wird, überspringt cmd.exe Zeilen, sodass die Einstellung PORT=8734 ignoriert wird und der Server auf dem Standardport 8000 startet (tatsächlicher Fehlerfall — da Funnel auf 8734 lauscht, wird der Connector unbrauchbar). Je nach Editor kann der Zeilenumbruch beim Speichern in LF geändert werden. Überprüfen Sie daher nach Änderungen an der .bat-Datei, ob CRLF verwendet wird.

v5.2 — Artikelweise Abfrage von Verwaltungsvorschriften (2026-08-17)

Dem Tool admin_rule_search wurden die Parameter article (Artikelnummer), max_chars und start_char hinzugefügt. Bei großen Bekanntmachungen wie der Devisenverkehrsordnung (Bekanntmachung des Ministeriums für Finanzen und Wirtschaft, ca. 300.000 Zeichen) war eine vollständige Rückgabe unmöglich; zuvor wurden nur die ersten 10.000 Zeichen angezeigt. Jetzt kann durch Angabe der Artikelnummer nur der entsprechende Artikel abgerufen werden — z. B. für die Meldung von Auslandsdirektinvestitionen: serial=일련번호_der_Devisenverkehrsordnung, article="9-5" (Artikel 9-5). Ist die Artikelnummer unbekannt, kann mit dem start_char-Offset weitergelesen werden. Bei einem Abschneiden gibt das Feld "잘림" in der Antwort eine Anleitung für die nächste Abfrage.

Geschwindigkeitsverbesserung (2026-08-18): Die Antworten von law.go.kr werden 10 Minuten lang zwischengespeichert. Bei aufeinanderfolgenden Abfragen von Artikeln desselben Gesetzes wird das gesamte Gesetzes-XML (z. B. 610.000 Zeichen für das Einkommensteuergesetz) nicht erneut heruntergeladen (der zweite und alle folgenden Artikel werden sofort zurückgegeben). Ein Fehler im Parameter für die Seitengröße bei der Historienabfrage (numOfRowsdisplay) wurde ebenfalls behoben, wodurch die HTTP-Rundreisen von 5 auf 1 reduziert wurden (gemessene Kaltstartzeit für einen Artikel von 1,1 s auf 0,6 s).

v3 — Hinzufügen des Kommunalsteuergesetzes-Informationssystems (olta.re.kr)

Nationale und kommunale Steuern haben unterschiedliche Fallnummernsysteme beim Steuertribunal.

  • Nationale Steuern: 조심-YYYY-Regionalcode-NNNN (z. B. 조심-2023-서-9465)

  • Kommunale Steuern: 조심YYYY지NNNN (z. B. 조심2026지0284)

Tatsächliche Tests mit denselben Schlüsselwörtern in beiden Systemen haben gezeigt, dass sich die Entscheidungen des Steuertribunals kaum überschneiden (das System der Nationalen Steuerbehörde indexiert keine kommunalen Steuerfälle). Dennoch normalisiert das Tool nts_and_olta_precedent_search sicherheitshalber die Dokumentnummern, entfernt Duplikate und gibt die Anzahl der entfernten Duplikate (duplicates_removed) an.

Dateistruktur

nts-tax-mcp/
├── server.py                    # MCP 서버 본체 (FastMCP) — 기본 도구 6개 (국세+지방세)
├── server_ext.py                # 확장 진입점 — server.py 6개 + 법제처 8개 = 14개 도구
├── nts_tax_ruling_search.py     # 국세: taxlaw.nts.go.kr 검색 클라이언트
├── olta_tax_ruling_search.py    # 지방세: olta.re.kr 검색 클라이언트
├── law_go_kr.py                 # 법령정보: law.go.kr Open API 클라이언트 (판례/법령/해석례/행정규칙/조약/자치법규)
├── test_mcp_client.py           # 서버 상태 독립 점검 스크립트
├── client/                      # MCP 커넥터 우회 독립 클라이언트 (CLI 포함)
│   ├── nts_client.py
│   ├── nts_search.py
│   └── README.md
├── requirements.txt
├── Procfile                     # Railway 배포용 (레거시 — 현재 운영은 서버컴퓨터+Tailscale Funnel)
├── setup.ps1                    # 서버컴퓨터 최초 설치 스크립트 (소스 다운로드→의존성→작업 스케줄러 등록)
├── run_server.bat               # 확장판(server_ext.py) 상시 구동용 — 작업 스케줄러가 부팅 시 실행
└── local_env.bat                # (커밋 안 됨) LAW_API_OC 등 개인 식별정보 — .gitignore 처리, 서버컴퓨터에서 직접 생성

Bereitgestellte Tools

server.py stellt die grundlegenden 6 Tools bereit, server_ext.py stellt die grundlegenden 6 Tools + 8 Tools des Ministeriums für Gesetzgebung = insgesamt 14 Tools bereit. Der eigentliche Produktionsserver (Servercomputer) wird mit server_ext.py betrieben und hat alle 14 Tools geöffnet.

Grundlegende 6 Tools (Nationale/Kommunale Steuern, server.py)

Tool

Zweck

nts_ruling_search

Integrierte Suche nach nationalen Steuern (bei genauer Steuerart wird serverseitig automatisch ein Steuerartenfilter angewendet)

nts_ruling_get_by_doc_no

Direkte Abfrage eines nationalen Steuerdokuments anhand der Fallnummer

olta_ruling_search

Integrierte Suche nach kommunalen Steuern (Vorschau aller Kategorien, 3 Ergebnisse pro Kategorie)

olta_collection_search

Tiefensuche in einer bestimmten Kategorie für kommunale Steuern — Paginierung, Zeitraum, Sortierung nach Neuestem (serverseitig)

olta_get_detail

Volltextabruf eines kommunalen Steuerdokuments (unterstützt Steuertribunal und Verfassungsgericht)

nts_and_olta_precedent_search

Gleichzeitige Suche in den Beständen des Steuertribunals für nationale und kommunale Steuern, mit Entfernung von Duplikaten

Erweiterte 8 Tools (Ministerium für Gesetzgebung law.go.kr, nur in server_ext.py hinzugefügt)

Tool

Zweck

court_case_search

Suche nach Rechtsprechung des Ministeriums für Gesetzgebung (Oberster Gerichtshof und untergeordnete Gerichte, separate Datenbank von der des Nationalen Steuerbehördensystems)

court_case_detail

Volltextabruf eines Urteils (Streitgegenstand, Urteilsbegründung, Bezugsartikel, Urteilsinhalt)

law_interpretation_search

Suche nach Gesetzesauslegungsfällen / Volltextabruf

law_history_search

Abruf der Gesetzeshistorie (Liste aller in Kraft getretenen Fassungen: Datum des Inkrafttretens, Verkündungsnummer, MST)

law_article_as_of

Wortlaut eines Gesetzesartikels zu einem bestimmten Datum (zur Überprüfung des zum Zeitpunkt eines Verweises in einer Verordnung oder einem Urteil gültigen Artikels)

admin_rule_search

Suche nach Verwaltungsvorschriften (Erlasse, Verordnungen, Bekanntmachungen — Grundverordnungen, Prüfungsverfahrensregeln usw.) / Volltextabruf

treaty_search

Suche nach Verträgen (Steuerabkommen) / Volltextabruf — Überprüfung des Wortlauts und des Inkrafttretensdatums

ordinance_search

Suche nach lokalen Rechtsvorschriften (Satzungen, Verordnungen — z. B. kommunale Steuerflexibilisierungssätze, Befreiungssatzungen) / Volltextabruf, Filter nach lokaler Gebietskörperschaft

v4 — Tiefensuchfunktion (Verbesserungsvorschläge vollständig umgesetzt)

  • OLTA-Paginierung, -Zeitraum, -Sortierung: Mit olta_collection_search kann eine bestimmte Kategorie in 10er-Schritten tief durchsucht werden. Die Filterung nach Zeitraum (YYYYMMDD) und Sortierung nach Neuestem erfolgt serverseitig und ist daher genau.

  • OLTA-Volltextabruf: Mit olta_get_detail wird der vollständige Text von Entscheidungen des Steuertribunals und des Verfassungsgerichts (Entscheidungsgründe, Sachverhaltsdarstellung, Beurteilung) abgerufen.

  • Serverseitiger Steuerartenfilter für NTS: Wenn tax_type_filter mit einer genauen Steuerart (Einkommensteuer aus Veräußerungsgewinnen, Körperschaftsteuer, Umsatzsteuer, Erbschaft- und Schenkungsteuer, Grundsteuer usw., insgesamt 14 Arten) versehen wird, wird automatisch ein serverseitiger Codefilter angewendet, der die Daten auf Basis des gesamten Datensatzes genau filtert.

Details zu den Datenspezifikationen und Codetabellen finden Sie in DATA_SOURCES.md.

Fehlerbehebung v2.1 (Wichtig)

Während der Arbeit am Ordner client/ entdeckte Probleme wurden behoben.

  • Problem, bei dem der Datumsfilter (date_from/date_to) die Suche selbst zerstörte — Die integrierte Suchseite von taxlaw.nts.go.kr hat von Haus aus keine Datumsfilter-UI. Die in einer früheren Version spekulativ hinzugefügten Serverparameter bltnStrtDtm/bltnEndDtm wurden als ungültige Werte behandelt, was dazu führte, dass die Suchergebnisse insgesamt 0 Treffer anzeigten. Dieser Parameter wurde entfernt und durch einen clientseitigen Filter ersetzt, der nach dem Abruf der Ergebnisse das Feld date verwendet.

  • Ein Problem, bei dem die Suchbegriff-Highlight-Markierungen (<!HS>, <!HE>) im Feld für die Dokumentnummer (doc_no) nicht entfernt wurden, was zu Fehlern bei der exakten Übereinstimmung von nts_ruling_get_by_doc_no führte, wurde ebenfalls behoben.

Unabhängiger Client zur Umgehung des MCP-Connectors (client/)

Für den Fall, dass die Verbindung zum Claude-Connector instabil ist, wurde im Ordner client/ ein unabhängiger Client hinzugefügt, der direkt auf den Server zugreifen kann, ohne MCP zu durchlaufen. Die Verwendung ist in client/README.md beschrieben.

cd client
python nts_search.py --ping
python nts_search.py "조정대상지역" -c precedent -n 10

Verbesserungen in v2

Seit der ersten Version wurden die folgenden Punkte verbessert.

#

Verbesserung

Unterstützung der Paginierung (page) — Reaktion auf Folgefragen wie „Zeig mir mehr"

Direkte Abfrage anhand der Fallnummer (nts_ruling_get_by_doc_no) — sofortige Anzeige eines bereits bekannten Dokuments ohne erneute Suche

Automatisches Anhängen einer Hinweismeldung (_guidance) bei 0 Suchergebnissen

Steuerartenfilter (tax_type_filter) — clientseitige Nachbearbeitung (serverseitige Steuerarten-Codetabelle noch nicht bestätigt)

Sortieroption (sort) — nach Relevanz/Neuestem/Ältestem

Verwaltung der Antwortgröße (include_full_text=False) — Abruf nur der Zusammenfassung, ohne Volltext

Automatische Erkennung und Wiederherstellung abgelaufener Sitzungen

Caching (Standard 5 Minuten) + Minimales Anfrageintervall (Standard 0,5 Sekunden) — höfliches Crawling

Protokollierung unerwarteter Antwortstrukturen

1. Lokale Ausführung testen

pip install -r requirements.txt
python server.py

Standardmäßig wird der Dienst unter http://0.0.0.0:8000/mcp im streamable-http-Modus bereitgestellt. Der Port kann über die Umgebungsvariable PORT geändert werden.

PORT=8765 python server.py

Umgebungsvariablen-Optionen

Variable

Standardwert

Beschreibung

PORT

8000

Server-Port

NTS_VERIFY_SSL

true

SSL-Zertifikatsprüfung. Nur bei Zertifikatsfehlern im internen Netzwerk/Proxy vorübergehend auf false setzen

NTS_CACHE_TTL

300

Cache-Dauer für identische Suchergebnisse (Sekunden)

NTS_MIN_REQUEST_INTERVAL

0.5

Mindestabstand zwischen Anfragen an den Server der Nationalen Steuerbehörde (Sekunden)

LOG_LEVEL

INFO

Protokollierungsstufe (bei DEBUG werden Details wie Sitzungswiederherstellung/Cache-Treffer ausgegeben)

LAW_API_OC

Keine (erforderlich)

Nur für server_ext.py. Die bei der Registrierung bei law.go.kr ausgestellte Organisationskennung — bei Fehlen geben die 8 Tools des Ministeriums für Gesetzgebung einen expliziten Fehler zurück. Funktioniert nur von IPs, die mit diesem Code registriert sind (Vorabregistrierung der öffentlichen Server-IP unter open.law.go.kr → OpenAPI-Antragsdetails erforderlich). Da es sich um persönliche Identifikationsinformationen handelt, nicht direkt in den Quellcode schreiben, sondern in der Bereitstellungsumgebung injizieren

2. Bereitstellung

2-A. Aktuelle Betriebsweise — Dauerhafter Betrieb auf Servercomputer + Tailscale Funnel (2026-08~)

Nachdem der Server aufgrund des aufgebrauchten Railway-Guthabens ausgefallen war (2026-08-08), wurde auf einen dauerhaften Betrieb auf einem eigenen Servercomputer umgestellt. Die 14 Tools (server_ext.py) werden auf diese Weise betrieben.

  1. Einmalige Ausführung von setup.ps1 in der PowerShell des Servercomputer-Administrators — lädt die Quelle von GitHub herunter, installiert die Abhängigkeiten, registriert nts-tax-mcp (automatischer Start mit SYSTEM-Rechten beim Booten) in der Windows Aufgabenplanung und startet sofort.

    Set-ExecutionPolicy -Scope Process Bypass -Force
    .\setup.ps1
  2. run_server.bat setzt PORT=8734 und führt server_ext.py aus (Protokoll: server.log). LAW_API_OC wird nicht direkt in diese Datei geschrieben, sondern aus einer lokalen, in .gitignore aufgeführten Datei (local_env.bat — eine Zeile set LAW_API_OC=Ihre_Organisationskennung) geladen. Fehlt diese Datei, funktionieren nur die 8 Tools des Ministeriums für Gesetzgebung nicht, die grundlegenden 6 Tools sind normal.

  3. Tailscale installieren, anmelden und über Funnel unter einer festen Adresse extern exponieren.

    tailscale funnel --bg 8734
  4. Tatsächliche MCP-Server-URL (fest): https://desktop-ika1349.tail81ecba.ts.net/mcp

Bei einer Portänderung müssen sowohl der PORT in run_server.bat als auch der Zielport von tailscale funnel geändert werden. Leiten Sie diesen Port nicht direkt im Router weiter, sondern verwenden Sie ausschließlich Tailscale Funnel.

2-B. Railway-Bereitstellung (Legacy)

Die Procfile führt weiterhin python server.py aus. Bei einer Bereitstellung auf Railway werden daher nur die grundlegenden 6 Tools angezeigt, die 8 Tools des Ministeriums für Gesetzgebung (server_ext.py) sind nicht enthalten. Wenn das Guthaben aufgebraucht ist, fällt der Server aus. Daher wird dies derzeit nicht empfohlen, funktioniert aber noch.

  1. Laden Sie diesen Ordner in ein GitHub-Repository hoch.

  2. Wählen Sie in Railway „New Project" → „Deploy from GitHub repo".

  3. Railway erkennt die Procfile und führt sie automatisch mit python server.py aus. (Die Umgebungsvariable PORT wird von Railway automatisch injiziert.)

  4. Nach Abschluss der Bereitstellung ist die Adresse, die sich aus der von Railway vergebenen Domain und dem angehängten /mcp zusammensetzt, die tatsächliche MCP-Server-URL.

3. Als Connector in Claude registrieren

  1. Rufen Sie claude.ai auf → Profil → Einstellungen (Settings) → Connectors

  2. Klicken Sie auf „Benutzerdefinierten Connector hinzufügen (Add custom connector)"

  3. Name: Ein beliebiger Name (aktueller Betriebs-Connectorname: Korea nts)

  4. URL: Die unter Punkt 2 ermittelte .../mcp-Adresse eingeben und speichern (Aktuelle Betriebsadresse: https://desktop-ika1349.tail81ecba.ts.net/mcp)

  5. Setzen Sie die Tool-Berechtigung auf „Immer erlauben" (Standard „Genehmigung erforderlich" fragt jedes Mal nach)

  6. Öffnen Sie einen vollständig neuen Chat und prüfen Sie, ob die Tools in der Tool-Liste erscheinen (Nach dem erstmaligen Aktivieren des Connectors wird dies möglicherweise nicht in bereits geöffneten Chat-Fenstern angezeigt)

4. Anwendungsbeispiele (im Claude-Chat)

  • „Suche im Nationalen Steuergesetzes-Informationszentrum nach Auskunftsersuchen und Schiedsfällen zum Thema angepasste Gebiete"

  • „Prüfe, ob es aktuelle Entscheidungen des Steuertribunals zur Missbrauchsbekämpfung gibt. Nur ab 2024."

  • „Zeig mir den Volltext des Urteils 조심-2023-서-9465" (Direktabfrage der Fallnummer)

  • „Filtere nur nach Einkommensteuer aus Veräußerungsgewinnen und zeig es mir nochmal" (Steuerartenfilter)

  • „Suche nach Schiedsfällen zu kommunalen Steuern im Zusammenhang mit der Grunderwerbsteuerbefreiung" (Kommunale Steuern → olta_ruling_search)

  • „Prüfe, ob es Entscheidungen des Rechnungshofs zum Stichtag der Grundsteuer gibt" (Kommunale Steuern → olta_ruling_search)

  • „Suche alle Schiedsfälle zu nationalen und kommunalen Steuern im Zusammenhang mit angepassten Gebieten, ohne Duplikate" (→ nts_and_olta_precedent_search)

  • „Suche in den Gesetzesauslegungsfällen nach Abfindung" (→ law_interpretation_search)

  • „Zeig mir die Historie der Durchführungsverordnung zum Einkommensteuergesetz" (→ law_history_search)

  • „Zeig mir den Wortlaut von Artikel 17 des Umsatzsteuergesetzes zum 15. Juli 2008" (→ law_article_as_of)

  • „Suche nach der Grundverordnung zum Körperschaftsteuergesetz" (→ admin_rule_search)

  • „Überprüfe das Inkrafttretensdatum des Steuerabkommens zwischen Korea und Hongkong" (→ treaty_search)

  • „Suche nach der Satzung der Stadt Seoul zur Grunderwerbsteuerbefreiung" (→ ordinance_search)

5. Unabhängige Server-Statusprüfung (Überprüfung ohne Claude)

Dieses Skript dient zur schnellen Unterscheidung, ob ein Problem, bei dem Tools im Claude-Chat nicht erkannt werden, am Server selbst oder an Claude liegt. Es sendet MCP-Protokoll-Anfragen direkt an den Server, ohne Claude zu durchlaufen, und überprüft den gesamten Ablauf von initialize → tools/list → tools/call.

python test_mcp_client.py

Der Standardwert des Skripts ist noch die alte Railway-Serveradresse (https://web-production-10fe2.up.railway.app/mcp). Railway wird aufgrund des aufgebrauchten Guthabens nicht mehr betrieben (siehe 2-A). Um den aktuell laufenden Server zu überprüfen, müssen Sie unbedingt die tatsächliche Adresse mit --url angeben.

python test_mcp_client.py --url https://desktop-ika1349.tail81ecba.ts.net/mcp
python test_mcp_client.py --url http://127.0.0.1:8734/mcp

Wenn dieses Skript vollständig erfolgreich ist, aber die Tools im Claude-Chat nicht angezeigt werden, liegt die Ursache nicht am Server, sondern an einem Erkennungs-/Caching-Problem auf der Claude-Seite. Versuchen Sie in diesem Fall Folgendes:

  • Überprüfen Sie es in einem völlig neuen Chat-Fenster (nach dem erneuten Aktivieren des Connectors wird es möglicherweise nicht im vorhandenen Chat-Fenster angezeigt)

  • Löschen Sie den entsprechenden Connector unter Einstellungen → Connectors und registrieren Sie ihn erneut

  • Wenn das nicht funktioniert, wenden Sie sich an support.claude.com (möglicherweise eine Verzögerung/Fehler auf der Claude-Plattform-Seite)

Referenz der Tool-Parameter

Parameter

Beschreibung

keyword

Suchbegriff (erforderlich)

collections

Einschränkung des Suchbereichs. Bei Auslassung alle.form(Anhang-Formular), statute(Gesetz), ruling(Vorabantworten, schriftliche Anfragen, Auskunftsbescheide), precedent(Schiedsspruch, Prüfung, Präzedenzfall), old_ruling(Alte Gesetzesauslegungsmaterialien), intl(Internationale Steuererläuterung), hometax(Hometax-Beratungsfälle)

page

Seitenzahl (beginnend mit 1)

view_count

Anzahl der pro Sammlung abzurufenden Ergebnisse (Standard 20)

date_from / date_to

Suchzeitraum (YYYYMMDD)

sort

relevance(Genauigkeit, Standard) / date_desc(Neueste zuerst) / date_asc(Älteste zuerst)

tax_type_filter

Behält nur Einträge, bei denen der Steuerartname diese Zeichenfolge enthält (z.B. "양도소득세")

include_full_text

Bei false wird der Volltext weggelassen, nur die Zusammenfassung (summary) zurückgegeben

nts_ruling_get_by_doc_no

Parameter

Beschreibung

doc_no

Fallnummer/Dokumentnummer. Z.B.: 조심-2023-서-9465, 서면-2019-법규재산-4276, 기획재정부 재산세제과-73

Parameter

Beschreibung

keyword

Suchbegriff (erforderlich)

categories

Einschränkung des Suchbereichs. Bei Auslassung alle.court(Gerichtspräzedenzfälle), moi_ruling(verbindliche Auslegung des Innenministeriums), mole_ruling(Auslegung des Gesetzgebungsministeriums), tax_tribunal(Entscheidungen des Steuergerichtshofs), audit(Entscheidungen des Rechnungshofs), constitutional(Entscheidungen des Verfassungsgerichts), local_gov_ruling(Anfragebeantwortungen lokaler Regierungen)

view_count

Maximale Anzahl von Ergebnissen pro Kategorie (Standard 20). Aufgrund der Seitenstruktur können nur wenige Vorschauen pro Kategorie abgerufen werden.

tax_type_filter

Behält nur Einträge, bei denen der Steuerartname diese Zeichenfolge enthält (z.B. "취득세", "재산세")

Parameter

Beschreibung

keyword

Suchbegriff (erforderlich)

view_count

Anzahl der pro Quelle abzurufenden Ergebnisse (Standard 20)

tax_type_filter

Steuerartfilter

Der Rückgabewert enthält nts_precedent, olta_precedent, duplicates_removed(tatsächlich entfernte Dublettenanzahl).

Parameter

Beschreibung

keyword

Suchbegriff (erforderlich)

category

Eine Kategorie angeben (erforderlich): tax_tribunal, audit, constitutional, court, mole_ruling, moi_ruling

page

Seitenzahl (ab 1, serverseitig fest 10 pro Seite)

view_count

Anzahl der zurückzugebenden Ergebnisse (maximal 10)

date_from / date_to

Suchzeitraum YYYYMMDD (serverseitiger Filter)

sort

relevance(Genauigkeit) / date_desc(Neueste zuerst) — serverseitige Sortierung

olta_get_detail (Volltextabruf Lokalsteuer)

Parameter

Beschreibung

category

tax_tribunal(Steuergerichtshof) oder constitutional(Verfassungsgericht)

doc_id

Der doc_id-Wert des Suchergebniseintrags

Gibt den vollständigen Text der Entscheidungsgründe, Bezugsnormen, Verfügungsskizze, Beurteilung usw. zurück.

Parameter

Beschreibung

keyword

Suchbegriff (erforderlich)

court

"대법원" oder "하위법원" (leer = alle)

date_from / date_to

Datumsbereich des Urteils YYYYMMDD

display

Anzahl der Ergebnisse (Standard 10)

page

Seitenzahl

court_case_detail (server_ext.py)

Parameter

Beschreibung

case_serial

Die 판례일련번호 (Präzedenzfall-Seriennummer) aus dem Ergebnis von court_case_search

max_chars

Maximale Länge des Präzedenzfallinhalts (Standard 8000)

Parameter

Beschreibung

keyword

Suchbegriff (wird verwendet, wenn ohne serial aufgerufen)

display

Anzahl der Ergebnisse (Standard 10)

serial

Seriennummer des Auslegungsbeispiels — wenn angegeben, wird der vollständige Text von Anfrage, Antwort und Begründung zurückgegeben

Parameter

Beschreibung

law_name

Gesetzesname (z.B. "부가가치세법")

law_id

Filtert nur das Hauptgesetz nach Gesetzes-ID (verhindert Vermischung mit gleichnamigen Durchführungsverordnungen und -regeln, z.B. 부가가치세법=001571)

current_only

Bei true nur aktuelle Gesetze suchen (zur Überprüfung von Gesetzes-ID/MST)

law_article_as_of (Artikel zu einem bestimmten Zeitpunkt, server_ext.py)

Parameter

Beschreibung

law_name

Gesetzesname (z.B. "소득세법 시행령")

as_of_date

Stichtag YYYYMMDD (z.B. Datum der Regelungsantwort)

article_no

Artikelnummer — Format "162" oder Unterartikel "104의3" (ohne Auffüllung)

law_id

Gesetzes-ID-Filter (empfohlen — verhindert Vermischung von Hauptgesetz/Durchführungsverordnung)

max_chars

Maximale Länge des Originaltexts (Standard 6000). Wenn der Artikel länger ist, wird in der Antwort unter "잘림" die Gesamtlänge angegeben; bei erneutem Aufruf mit einer größeren Länge wird der vollständige Text zurückgegeben

Parameter

Beschreibung

keyword

Suchbegriff (z.B. "법인세법 기본통칙", "조사사무처리규정", "외국환거래규정")

serial

Seriennummer — wenn angegeben, wird der Volltext zurückgegeben

display

Anzahl der Ergebnisse (Standard 10)

article

Artikelnummer — Format "9-5"(Artikel 9-5), "23", "23의2". Gibt nur diesen Artikel zurück. Bei großen Bekanntmachungen (z.B. 외국환거래규정) praktisch erforderlich

max_chars

Maximale Länge des Textes (Standard 10000). Bei Abschneiden enthält die Antwort einen "잘림"-Hinweis

start_char

Startoffset des Textes — zum Fortsetzen des Lesens, wenn die Artikelnummer unbekannt ist

Parameter

Beschreibung

keyword

Suchbegriff (z.B. "대한민국과 미합중국 간의 조세")

serial

Vertragsseriennummer — wenn angegeben, wird der Volltext zurückgegeben

display

Anzahl der Ergebnisse (Standard 10)

Parameter

Beschreibung

keyword

Suchbegriff (z.B. "취득세 감면")

region

Filter nach lokaler Gebietskörperschaft (z.B. "서울", "용산구")

serial

Seriennummer — wenn angegeben, wird der Volltext zurückgegeben

display

Anzahl der Ergebnisse (Standard 20)

Bekannte Einschränkungen (Stand v5)

  • Die 8 Tools des Gesetzgebungsministeriums (law.go.kr) sind nur bei Ausführung mit server_ext.py verfügbar. Bei alleinigem Ausführen von server.py werden nur die standardmäßigen 6 angezeigt.

  • law.go.kr IP-Whitelist: Bei Aufrufen von nicht registrierten IPs geben alle 8 Tools einen "Authentifizierungsfehler" zurück. Die öffentliche IP des Servers muss zuerst unter open.law.go.kr → OpenAPI-Antragsverlauf registriert werden.

  • law.go.kr XML-Parsing: Die Antwort wird mit einem leichtgewichtigen, auf regulären Ausdrücken basierenden Parser verarbeitet. Wenn sich die API-Antwortstruktur ändert (z.B. Änderung von Tag-Namen), kann das Parsing fehlschlagen.

  • law_article_as_of: Da automatisch die Version mit dem größten Inkrafttretensdatum unter dem Stichtag aus den historischen Versionen ausgewählt wird, kann bei mehreren Gesetzen mit demselben Namen (Hauptgesetz/Durchführungsverordnung/Durchführungsregel) ohne Angabe von law_id eine unbeabsichtigte Version ausgewählt werden.

  • NTS-Steuerartfilter: Bei Angabe des genauen Steuerartnamens (z.B. 양도소득세, 14 Arten, siehe Code-Tabelle in DATA_SOURCES.md) wird der serverseitige Filter angewendet; andere Zeichenfolgen werden clientseitig nachbearbeitet.

  • NTS-Zeitraumfilter: Es wurde bestätigt (durch Messung), dass die integrierte Such-API keinen Zeitraumparameter hat, daher werden date_from/date_to clientseitig gefiltert. In Kombination mit der Sortierung nach Neuestem (sort=date_desc) ist dies stabiler.

  • Prüfungsanträge des Rechnungshofs (nationale Steuern): Fallen nicht in den Bereich dieses Servers. (Entscheidungen des Rechnungshofs zu lokalen Steuern werden durch olta_ruling_search / olta_collection_search abgedeckt.)

  • nts_ruling_get_by_doc_no: Da keine dedizierte Detailabruf-API gefunden wurde, ist es so implementiert, dass die Dokumentnummer als Suchbegriff verwendet wird.

  • OLTA HTML-Parsing: olta.re.kr antwortet mit HTML, daher wird mit BeautifulSoup geparst. Wenn sich die Bildschirmstruktur der Website ändert (Klassennamen wie p.se_title, ul.search_out usw.), kann das Parsing fehlschlagen.

  • olta_ruling_search (integrierte Suche) gibt nur 3 Vorschauen pro Kategorie zurück. Wenn mehr Ergebnisse benötigt werden, verwenden Sie olta_collection_search (10 pro Seite, unterstützt Paginierung, Zeitraum, Sortierung).

  • olta_get_detail Volltextabruf unterstützt nur den Steuergerichtshof und das Verfassungsgericht. Gerichtspräzedenzfälle werden nicht unterstützt, da die Detail-URL zwei Parameter erfordert; verbindliche Auslegungen werden durch die Zusammenfassung (summary) ersetzt.

  • Anfragebeantwortungen lokaler Gebietskörperschaften: In der internen Codetabelle von olta.re.kr vorhanden, aber auf dem integrierten Suchergebnisbildschirm nicht sichtbar, daher derzeit nicht durchsuchbar.

  • Dublettenentfernung: Es wurde durch Messung bestätigt, dass aufgrund der unterschiedlichen Fallnummernsysteme des nationalen und lokalen Steuergerichtshofs tatsächlich keine Dubletten auftreten; die normalisierungsbasierte Dublettenentfernung in nts_and_olta_precedent_search dient als Sicherheitsmaßnahme.

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    -
    quality
    D
    maintenance
    Enables real-time search and analysis of Korean laws, legal precedents, and administrative rules through the National Law Information Center Open API, allowing AI agents to access official legal information for contract review, compliance, and legal research.
    71
  • F
    license
    -
    quality
    B
    maintenance
    Enables AI to search and retrieve South Korean legal information from the National Law Information Center. It allows users to look up specific laws, articles, and detailed legal provisions using natural language queries.
    127
  • A
    license
    A
    quality
    D
    maintenance
    Enables users to search and retrieve South Korean statutes, precedents, and administrative rules via the National Law Information Center API. It supports deep legal chain analysis, legislative history tracking, and legal terminology lookups through natural language.
    10
    4
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables searching and retrieving tax law data from the Korean National Tax Service database, including interpretations, rulings, forms, publications, and site menus via MCP tools.
    14
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Korean public procurement law: rule-engine rulings, statutes search, live court precedents

  • Korean public procurement law: rule-engine rulings, statutes search, live court precedents

  • Search company disclosures and financial statements from the Korean market. Retrieve stock profile…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/taxwoong/nts-tax-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server