nts-tax-mcp
nts-tax-mcp
Servidor MCP (Model Context Protocol) que permite buscar directamente desde Claude en el Sistema de Información de la Legislación Tributaria Nacional (taxlaw.nts.go.kr) y el Sistema de Información de la Legislación Tributaria Local (olta.re.kr).
Impuestos nacionales: Respuestas previas · Consultas escritas · Respuestas a consultas (Servicio de Impuestos Nacionales / Ministerio de Economía y Finanzas / Ministerio de Legislación), Apelaciones al Tribunal de Arbitraje Tributario, Apelaciones al Servicio de Impuestos Nacionales, Jurisprudencia judicial, Legislación
Impuestos locales (añadido en v3): Decisiones del Tribunal de Arbitraje Tributario relacionadas con impuesto de adquisición · impuesto predial · impuesto automotriz · impuesto sobre la renta local · impuesto de registro y licencia, Decisiones de la Junta de Auditoría, Decisiones del Tribunal Constitucional, Jurisprudencia judicial, Interpretaciones autorizadas del Ministerio de Legislación / Ministerio de Seguridad y Administración Pública, Respuestas a consultas de gobiernos locales
Ampliación de información legislativa (v5, añadido en la versión extendida server_ext.py): Basado en la API abierta del Centro Nacional de Información Legislativa (law.go.kr), permite buscar jurisprudencia del Tribunal Supremo y tribunales inferiores, historial legislativo y artículos en una fecha específica, interpretaciones legislativas, reglamentos administrativos (reglas básicas, etc.), tratados fiscales y normativa autónoma (ordenanzas) con un solo conector.
v5 — Migración a servidor propio + 8 herramientas de law.go.kr añadidas (2026-08)
Debido al agotamiento de créditos de Railway, el servidor cayó (2026-08-08) y se migró a un servidor propio en funcionamiento continuo + exposición mediante Tailscale Funnel (completado el 2026-08-09). Durante la migración, se añadieron 8 herramientas de la API abierta de law.go.kr, ampliando el conector a un total de 14 herramientas.
Punto de entrada extendido:
server_ext.py— hereda las 6 herramientas existentes deserver.py(impuestos nacionales/locales) mediantefrom server import mcpy registra 8 herramientas adicionales de law.go.kr a través del clientelaw_go_kr.py.server.pyno se modifica, por lo que si solo se necesitan las 6 herramientas originales, se puede ejecutarserver.pydirectamente.8 nuevas herramientas:
court_case_search/court_case_detail(jurisprudencia de law.go.kr),law_interpretation_search(interpretaciones legislativas),law_history_search(lista de versiones históricas de leyes),law_article_as_of(texto de un artículo en una fecha específica — para verificar el artículo citado en reglamentos o jurisprudencia),admin_rule_search(reglamentos administrativos — reglas básicas, reglamentos de procedimiento de investigación, avisos),treaty_search(texto de tratados fiscales y fecha de entrada en vigor),ordinance_search(normativa autónoma — ordenanzas de reducción de impuestos locales, etc.)Requisito previo: La API abierta de law.go.kr solo funciona desde IP registradas. Se debe registrar la IP pública del servidor en open.law.go.kr → Solicitudes de API abierta. Si no está registrada, las 8 herramientas de law.go.kr mostrarán "error de autenticación", mientras que las 6 herramientas originales de impuestos nacionales/locales funcionarán normalmente. La variable de entorno
LAW_API_OC(código de institución emitido al registrarse en law.go.kr, obligatorio) especifica la cuenta de autenticación. Como es información de identificación personal, no se incluye el valor real en este repositorio, sino que se carga desde un archivo local.gitignoreque solo está en el servidor.Modo de operación actual: En el servidor,
run_server.bat(puerto8734, ejecutaserver_ext.py) se ejecuta continuamente mediante el Programador de tareas de Windows (nts-tax-mcp, ejecución automática con permisos SYSTEM al inicio), y se expone externamente contailscale funnel --bg 8734en la dirección fijahttps://desktop-ika1349.tail81ecba.ts.net/mcp. La instalación inicial se completa con una sola ejecución desetup.ps1(descarga de fuente desde GitHub → instalación de dependencias → registro en el Programador de tareas, todo automatizado).
Related MCP server: LexGuard MCP
v5.1 — Corrección de error de análisis de artículos + indicación de truncamiento (2026-08-16)
Corrección de error de análisis del primer artículo de una sección: Se corrigió un error por el cual
law_article_as_ofdevolvía solo el título de la sección (ej. "제6절 …") en lugar del texto del artículo cuando se consultaban artículos que iniciaban una sección, subsección o capítulo (ej. artículos 104 y 55 de la Ley del Impuesto sobre la Renta). La causa era que el nodo del título aparecía primero con el mismo<조문번호>que el artículo real; ahora se filtran los bloques de título que no contienen el texto del artículo.Indicación de truncamiento + exposición de
max_chars: Cuando un artículo superamax_chars(por defecto 6000 caracteres), anteriormente se truncaba la parte final (últimos párrafos) sin indicación. Ahora, si se trunca, la respuesta incluye un elemento"잘림"con la longitud total y cómo volver a consultar, y se ha añadido el parámetromax_charsa la herramientalaw_article_as_ofpara obtener el texto completo.Precaución operativa —
.batdebe tener saltos de línea CRLF: Sirun_server.batse guarda con saltos de línea LF, cmd.exe saltará líneas, ignorando la configuraciónPORT=8734y el servidor se iniciará en el puerto predeterminado 8000 (caso real de fallo — Funnel apunta al 8734, por lo que el conector queda inoperativo). Dependiendo del editor, los saltos de línea pueden cambiarse a LF al guardar; después de modificar.bat, verifique que sea CRLF.
v5.2 — Consulta de artículos individuales de reglamentos administrativos (2026-08-17)
Se añadieron los parámetros article (número de artículo), max_chars y start_char a admin_rule_search. Para avisos grandes como el Reglamento de Transacciones de Divisas (aviso del Ministerio de Economía y Finanzas, aproximadamente 300,000 caracteres), antes solo se podían ver los primeros 10,000 caracteres. Ahora, especificando el número de artículo, se obtiene solo ese artículo — ej.: para la declaración de inversión directa en el extranjero, serial=número de serie del Reglamento de Transacciones de Divisas, article="9-5" (Artículo 9-5). Si no se conoce el número de artículo, se puede leer secuencialmente con el desplazamiento start_char, y si se trunca, el elemento "잘림" en la respuesta indica cómo consultar a continuación.
Mejora de velocidad (2026-08-18): Se almacena en caché la respuesta de law.go.kr durante 10 minutos, por lo que al consultar artículos consecutivos de la misma ley no se vuelve a descargar el XML completo de la ley (ej. Ley del Impuesto sobre la Renta, 610,000 caracteres) (el segundo artículo se devuelve inmediatamente). También se corrigió un error en el parámetro de tamaño de página de la consulta de historial (numOfRows→display), reduciendo los viajes HTTP de 5 a 1 (medido: consulta en frío de 1 artículo de 1.1 s a 0.6 s).
v3 — Adición del Sistema de Información de la Legislación Tributaria Local (olta.re.kr)
Los impuestos nacionales y locales tienen sistemas de numeración de casos diferentes en el Tribunal de Arbitraje Tributario.
Nacionales:
조심-YYYY-código de oficina regional-NNNN(ej. 조심-2023-서-9465)Locales:
조심YYYY지NNNN(ej. 조심2026지0284)
En la práctica, al buscar con la misma palabra clave en ambos sistemas, las decisiones del Tribunal de Arbitraje Tributario casi no se superponen (el sistema del Servicio de Impuestos Nacionales no indexa casos locales). No obstante, por seguridad, la herramienta nts_and_olta_precedent_search normaliza los números de documento, elimina duplicados e informa del número de duplicados eliminados (duplicates_removed).
Estructura de archivos
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 처리, 서버컴퓨터에서 직접 생성Herramientas proporcionadas
server.py expone 6 herramientas básicas; server_ext.py expone 6 básicas + 8 de law.go.kr = 14 herramientas en total. El servidor de producción real (servidor propio) ejecuta server_ext.py, por lo que las 14 herramientas están disponibles.
6 básicas (impuestos nacionales/locales, server.py)
Herramienta | Propósito |
| Búsqueda integrada de impuestos nacionales (si el nombre del impuesto es exacto, se aplica automáticamente el filtro de impuesto del lado del servidor) |
| Consulta directa de documentos de impuestos nacionales por número de caso |
| Búsqueda integrada de impuestos locales (vista previa de todas las categorías, 3 resultados por categoría) |
| Exploración profunda de una categoría específica de impuestos locales — paginación, período, ordenación por fecha (lado del servidor) |
| Consulta del texto completo de un documento de impuestos locales (compatible con Tribunal de Arbitraje Tributario y Tribunal Constitucional) |
| Búsqueda simultánea de precedentes del Tribunal de Arbitraje Tributario (nacionales + locales) con eliminación de duplicados |
8 extendidas (law.go.kr, solo añadidas en server_ext.py)
Herramienta | Propósito |
| Búsqueda de jurisprudencia en law.go.kr (Tribunal Supremo e inferiores, base de datos separada de la del Servicio de Impuestos Nacionales) |
| Consulta del texto completo de un caso (hechos del caso, resumen de la sentencia, artículos de referencia, contenido del caso) |
| Búsqueda/consulta de interpretaciones legislativas |
| Consulta del historial de una ley (lista de todas las versiones: fecha de vigencia, número de promulgación, MST) |
| Texto de un artículo de ley vigente en una fecha específica (para verificar el artículo citado en reglamentos o jurisprudencia) |
| Búsqueda/consulta de reglamentos administrativos (instrucciones, reglas, avisos — reglas básicas, reglamentos de procedimiento de investigación, etc.) |
| Búsqueda/consulta de tratados (tratados fiscales) — texto original y fecha de entrada en vigor |
| Búsqueda/consulta de normativa autónoma (ordenanzas, reglas — tasas flexibles de impuestos locales, ordenanzas de reducción, etc.), filtro por gobierno local |
v4 — Funcionalidad de búsqueda avanzada (reflejo completo de candidatos a mejora)
Paginación, período y ordenación en OLTA:
olta_collection_searchpermite explorar en profundidad una categoría específica en lotes de 10. El período (YYYYMMDD) y la ordenación por fecha más reciente se procesan del lado del servidor, por lo que son precisos.Consulta de texto completo en OLTA:
olta_get_detailobtiene el texto completo de las decisiones del Tribunal de Arbitraje Tributario y del Tribunal Constitucional (resumen de la decisión, descripción de la sanción, juicio).Filtro de impuesto del lado del servidor en NTS: Si se proporciona un nombre de impuesto exacto en
tax_type_filter(14 tipos: impuesto sobre ganancias de capital, impuesto de sociedades, IVA, impuesto sobre sucesiones y donaciones, impuesto sobre bienes inmuebles globales, etc.), se aplica automáticamente un filtro de código del lado del servidor, filtrando con precisión sobre el conjunto completo de datos.
Para especificaciones detalladas de datos y tabla de códigos, consulte DATA_SOURCES.md.
v2.1 Corrección de errores (importante)
Se corrigieron problemas encontrados durante el trabajo en la carpeta client/.
Problema donde el filtro de fecha (
date_from/date_to) rompía la búsqueda — La pantalla de búsqueda integrada de taxlaw.nts.go.kr no tiene una interfaz de filtro de período, por lo que los parámetrosbltnStrtDtm/bltnEndDtmañadidos por conjetura en versiones anteriores se trataban como valores incorrectos, dando como resultado 0 resultados de búsqueda. Se eliminaron esos parámetros y se reemplazaron por un filtro del lado del cliente que filtra por el campodatedespués de recibir los resultados.También se corrigió un problema donde los marcadores de resaltado de búsqueda (
<!HS>,<!HE>) no se eliminaban del campodoc_no, lo que impedía la coincidencia exacta ennts_ruling_get_by_doc_no.
Cliente independiente para evitar el conector MCP (client/)
Cuando la conexión del conector de Claude es inestable, se puede acceder directamente al servidor sin pasar por MCP mediante un cliente independiente añadido en la carpeta client/. Consulte client/README.md para su uso.
cd client
python nts_search.py --ping
python nts_search.py "조정대상지역" -c precedent -n 10v2 Mejoras
Desde la versión inicial, se han mejorado los siguientes aspectos.
# | Mejora |
① | Soporte de paginación ( |
② | Consulta directa por número de caso ( |
③ | Mensaje de guía automático ( |
④ | Filtro de impuesto ( |
⑤ | Opción de ordenación ( |
⑥ | Gestión del tamaño de respuesta ( |
⑦ | Detección automática de caducidad de sesión y reconexión |
⑧ | Caché (5 minutos por defecto) + intervalo mínimo entre solicitudes (0.5 segundos por defecto) — rastreo respetuoso |
⑨ | Registro de estructuras de respuesta inesperadas |
1. Verificación de ejecución local
pip install -r requirements.txt
python server.pyPor defecto, el servicio se ofrece en http://0.0.0.0:8000/mcp mediante streamable-http. El puerto se puede cambiar con la variable de entorno PORT.
PORT=8765 python server.pyOpciones de variables de entorno
Variable | Valor por defecto | Descripción |
| 8000 | Puerto del servidor |
| true | Verificación del certificado SSL. Solo establecer en |
| 300 | Tiempo de caché para resultados de búsqueda idénticos (segundos) |
| 0.5 | Intervalo mínimo entre solicitudes al servidor del Servicio de Impuestos Nacionales (segundos) |
| INFO | Nivel de registro (si se pone DEBUG, se registrarán detalles como reconexiones de sesión, aciertos de caché, etc.) |
| Ninguno (obligatorio) | Exclusivo de |
2. Despliegue
2-A. Modo de operación actual — Servidor propio en funcionamiento continuo + Tailscale Funnel (2026-08~)
Después de que el servidor cayera por agotamiento de créditos de Railway (2026-08-08), se migró a un servidor propio en funcionamiento continuo. Las 14 herramientas (server_ext.py) se operan de esta manera.
Ejecutar
setup.ps1una vez en PowerShell como administrador en el servidor — descarga la fuente desde GitHub, instala las dependencias, registrants-tax-mcpen el Programador de tareas de Windows (ejecución automática con permisos SYSTEM al inicio) y lo inicia inmediatamente.Set-ExecutionPolicy -Scope Process Bypass -Force .\setup.ps1run_server.batestablecePORT=8734y ejecutaserver_ext.py(registro:server.log).LAW_API_OCno se escribe directamente en este archivo, sino que se carga desde un archivo local.gitignore(local_env.bat— una líneaset LAW_API_OC=su_código_de_institución). Si este archivo no existe, solo las 8 herramientas de law.go.kr no funcionarán; las 6 básicas funcionarán normalmente.Instale Tailscale, inicie sesión y exponga el servidor externamente con una dirección fija mediante Funnel.
tailscale funnel --bg 8734URL real del servidor MCP (fija):
https://desktop-ika1349.tail81ecba.ts.net/mcp
Si cambia el puerto, debe cambiar tanto PORT en run_server.bat como el puerto de destino en tailscale funnel. No reenvíe este puerto directamente en el enrutador; use solo Tailscale Funnel.
2-B. Despliegue en Railway (heredado)
Procfile sigue ejecutando python server.py, por lo que al desplegar en Railway solo estarán disponibles las 6 herramientas básicas, sin las 8 de law.go.kr (server_ext.py). Si se agotan los créditos, el servidor se detendrá, por lo que actualmente no se recomienda, pero sigue funcionando.
Suba esta carpeta a un repositorio de GitHub.
En Railway, seleccione "New Project" → "Deploy from GitHub repo".
Railway reconocerá
Procfiley ejecutará automáticamentepython server.py. (Railway inyecta automáticamente la variable de entornoPORT).Una vez finalizado el despliegue, la URL real del servidor MCP será la dirección emitida por Railway seguida de
/mcp.
3. Registro como conector en Claude
Acceda a claude.ai → Perfil → Configuración (Settings) → Conectores (Connectors)
Haga clic en "Añadir conector personalizado" (Add custom connector)
Nombre: el que desee (nombre actual del conector en producción:
Korea nts)URL: introduzca la dirección
.../mcpobtenida en el paso 2 y guarde (dirección actual en producción:https://desktop-ika1349.tail81ecba.ts.net/mcp)Establezca los permisos de la herramienta en "Permitir siempre" (el valor predeterminado "Requiere aprobación" pedirá aprobación cada vez)
Abra una ventana de chat completamente nueva y verifique que las herramientas aparezcan en la lista (inmediatamente después de activar el conector, es posible que no se refleje en las ventanas de chat ya abiertas)
4. Ejemplos de uso (en el chat de Claude)
"Busca en el Centro de Información de la Legislación Tributaria Nacional respuestas a consultas y casos de apelación relacionados con áreas sujetas a ajuste"
"Verifica si hay decisiones recientes del Tribunal de Arbitraje Tributario sobre la negación de cálculos de transacciones indebidas. Solo a partir de 2024."
"Muéstrame el texto original del caso 조심-2023-서-9465" (consulta directa por número de caso)
"Filtra solo el impuesto sobre ganancias de capital y muéstralo de nuevo" (filtro de impuesto)
"Busca casos de apelación de impuestos locales relacionados con la sobretasa del impuesto de adquisición" (impuestos locales →
olta_ruling_search)"Verifica si hay decisiones de la Junta de Auditoría relacionadas con la fecha base del impuesto predial" (impuestos locales →
olta_ruling_search)"Busca todos los casos de apelación de impuestos nacionales y locales relacionados con áreas sujetas a ajuste, sin duplicados" (→
nts_and_olta_precedent_search)"Busca en las interpretaciones legislativas la palabra 'precio de liquidación'" (→
law_interpretation_search)"Muéstrame el historial del Decreto de la Ley del Impuesto sobre la Renta" (→
law_history_search)"Muéstrame el artículo 17 de la Ley del IVA, vigente el 15 de julio de 2008" (→
law_article_as_of)"Busca las reglas básicas de la Ley del Impuesto de Sociedades" (→
admin_rule_search)"Verifica la fecha de entrada en vigor del tratado fiscal Corea-Hong Kong" (→
treaty_search)"Busca la ordenanza de reducción del impuesto de adquisición de Seúl" (→
ordinance_search)
5. Verificación independiente del estado del servidor (sin Claude)
Cuando surja un problema con las herramientas en el chat de Claude, este script permite distinguir rápidamente si el problema es del servidor o de Claude. Envía solicitudes directamente al servidor mediante el protocolo MCP, sin pasar por Claude, verificando todo el flujo: initialize → tools/list → tools/call.
python test_mcp_client.pyEl valor predeterminado del script es la dirección del antiguo servidor de Railway (https://web-production-10fe2.up.railway.app/mcp), pero Railway ya no está operativo debido al agotamiento de créditos (consulte 2-A). Para verificar el servidor actual en producción, asegúrese de especificar la dirección real con --url.
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/mcpSi este script se ejecuta correctamente pero las herramientas no aparecen en el chat de Claude, la causa no es el servidor, sino un problema de reconocimiento/caché del conector de Claude. En ese caso, pruebe lo siguiente:
Verifique de nuevo en una ventana de chat completamente nueva (es posible que no se refleje en las ventanas de chat existentes inmediatamente después de activar el conector)
En Configuración → Conectores, elimine ese conector y vuelva a registrarlo
Si aún no funciona, contacte a
support.claude.com(podría ser un retraso en la actualización o un error en la plataforma de Claude)
Referencia de parámetros de herramientas
nts_ruling_search
Parámetro | Descripción |
| Término de búsqueda (obligatorio) |
| Limita el ámbito de búsqueda. Si se omite, se busca en todos. |
| Número de página (comienza en 1) |
| Número de resultados a obtener por colección (por defecto 20) |
| Período de búsqueda (YYYYMMDD) |
|
|
| Solo conserva aquellos cuyo nombre de impuesto contenga esta cadena (ej.: "양도소득세") |
| Si es |
nts_ruling_get_by_doc_no
Parámetro | Descripción |
| Número de caso/número de documento. Ej.: |
olta_ruling_search (Impuestos locales)
Parámetro | Descripción |
| Término de búsqueda (obligatorio) |
| Limita el ámbito de búsqueda. Si se omite, se busca en todos. |
| Número máximo de resultados por categoría (por defecto 20). Debido a la estructura del sitio, solo se pueden obtener unas pocas vistas previas por categoría. |
| Solo conserva aquellos cuyo nombre de impuesto contenga esta cadena (ej.: "취득세", "재산세") |
nts_and_olta_precedent_search (Integrado nacional+local, eliminación de duplicados)
Parámetro | Descripción |
| Término de búsqueda (obligatorio) |
| Número de resultados a obtener de cada fuente (por defecto 20) |
| Filtro de tipo de impuesto |
El valor de retorno incluye nts_precedent, olta_precedent, duplicates_removed (número real de duplicados eliminados).
olta_collection_search (Exploración profunda de impuestos locales)
Parámetro | Descripción |
| Término de búsqueda (obligatorio) |
| Especificar una categoría (obligatorio): |
| Número de página (comienza en 1, el servidor fija 10 resultados por página) |
| Número de resultados a devolver (máximo 10) |
| Período de búsqueda YYYYMMDD (filtro del lado del servidor) |
|
|
olta_get_detail (Consulta de texto completo de impuestos locales)
Parámetro | Descripción |
|
|
| Valor de |
Devuelve el texto completo del cuerpo, incluyendo resumen de la decisión, artículos de referencia, resumen de la disposición, juicio, etc.
court_case_search (Precedentes del Ministerio de Legislación, server_ext.py)
Parámetro | Descripción |
| Término de búsqueda (obligatorio) |
|
|
| Rango de fechas de sentencia YYYYMMDD |
| Número de resultados (por defecto 10) |
| Número de página |
court_case_detail (server_ext.py)
Parámetro | Descripción |
|
|
| Longitud máxima del contenido del precedente (por defecto 8000) |
law_interpretation_search (Casos de interpretación legal, server_ext.py)
Parámetro | Descripción |
| Término de búsqueda (se usa cuando se llama sin |
| Número de resultados (por defecto 10) |
| Número de serie del caso de interpretación — si se especifica, devuelve el texto completo de la consulta, respuesta y fundamentos |
law_history_search (Historial de leyes, server_ext.py)
Parámetro | Descripción |
| Nombre de la ley (ej.: "부가가치세법") |
| Filtra solo la ley principal por ID de ley (evita mezclar decretos de ejecución y reglamentos con el mismo nombre, ej.: 부가가치세법=001571) |
| Si es |
law_article_as_of (Artículo en un momento específico, server_ext.py)
Parámetro | Descripción |
| Nombre de la ley (ej.: "소득세법 시행령") |
| Fecha de referencia YYYYMMDD (ej.: fecha de respuesta de la norma) |
| Número de artículo — formato |
| Filtro de ID de ley (recomendado — evita mezclar ley principal y decretos de ejecución) |
| Longitud máxima del texto original (por defecto 6000). Si el artículo es más largo, la respuesta indicará la longitud total en el campo |
admin_rule_search (Reglas administrativas, server_ext.py)
Parámetro | Descripción |
| Término de búsqueda (ej.: "법인세법 기본통칙", "조사사무처리규정", "외국환거래규정") |
| Número de serie — si se especifica, devuelve el texto completo |
| Número de resultados (por defecto 10) |
| Número de artículo — formato |
| Longitud máxima del texto (por defecto 10000). Si se trunca, la respuesta incluye una indicación |
| Desplazamiento de inicio del texto — para lectura continua cuando no se conoce el número de artículo |
treaty_search (Tratados fiscales, server_ext.py)
Parámetro | Descripción |
| Término de búsqueda (ej.: "대한민국과 미합중국 간의 조세") |
| Número de serie del tratado — si se especifica, devuelve el texto completo |
| Número de resultados (por defecto 10) |
ordinance_search (Ordenanzas locales, server_ext.py)
Parámetro | Descripción |
| Término de búsqueda (ej.: "취득세 감면") |
| Filtro por nombre de gobierno local (ej.: "서울", "용산구") |
| Número de serie — si se especifica, devuelve el texto completo |
| Número de resultados (por defecto 20) |
Limitaciones conocidas (v5)
Las 8 herramientas de 법제처 (law.go.kr) solo están disponibles cuando se ejecutan con
server_ext.py. Si se ejecuta soloserver.py, solo se muestran las 6 básicas.Lista blanca de IP de law.go.kr: si se llama desde una IP no registrada, las 8 herramientas devuelven un error de "autenticación fallida". Debe registrar primero la IP pública del servidor en
open.law.go.kr→ Historial de solicitudes de OpenAPI.Análisis XML de law.go.kr: la respuesta se procesa con un analizador ligero basado en expresiones regulares. Si la estructura de la respuesta de la API cambia (cambio de nombres de etiquetas, etc.), el análisis puede fallar.
law_article_as_of: selecciona automáticamente la versión con la fecha de vigencia máxima dentro de la fecha de referencia entre las versiones históricas. Si hay varias leyes con el mismo nombre (ley principal, decreto de ejecución, reglamento), puede seleccionar una versión no deseada a menos que se especifiquelaw_id.Filtro de tipo de impuesto de NTS: si se proporciona el nombre exacto del impuesto (14 tipos como 양도소득세, consulte la tabla de códigos en
DATA_SOURCES.md), se aplica un filtro del lado del servidor; de lo contrario, se realiza un posprocesamiento del lado del cliente.Filtro de período de NTS: se ha confirmado (mediante medición) que la API de búsqueda integrada no tiene parámetros de período, por lo que
date_from/date_tose manejan como filtros del lado del cliente. Es más estable usarlos junto con la ordenación por fecha descendente (sort=date_desc).Solicitud de revisión de la Auditoría (impuestos nacionales): no está incluida en el alcance de este servidor. (Las decisiones de la Auditoría sobre impuestos locales están cubiertas por
olta_ruling_search/olta_collection_search).nts_ruling_get_by_doc_no: no se ha identificado una API de consulta detallada dedicada, por lo que está implementada utilizando el número de documento como término de búsqueda.Análisis HTML de OLTA: olta.re.kr responde en HTML, por lo que se analiza con BeautifulSoup. Si la estructura de la página cambia (nombres de clases como
p.se_title,ul.search_out, etc.), el análisis puede fallar.olta_ruling_search(búsqueda integrada) solo devuelve 3 vistas previas por categoría. Si necesita más resultados, useolta_collection_search(10 resultados por página, compatible con paginación, período y ordenación).La consulta de texto completo de
olta_get_detailsolo admite el Tribunal Tributario y el Tribunal Constitucional. La jurisprudencia judicial no es compatible porque la URL detallada requiere dos parámetros; las interpretaciones autorizadas se reemplazan con un resumen.Respuestas a consultas de gobiernos locales: existen en la tabla de códigos interna de olta.re.kr, pero no se muestran en la pantalla de resultados de búsqueda integrada, por lo que actualmente no se pueden buscar.
Eliminación de duplicados: se ha confirmado mediante medición que no se producen duplicados reales debido a que los sistemas de números de caso del Tribunal Tributario nacional y local son diferentes; la eliminación de duplicados basada en normalización en
nts_and_olta_precedent_searches una medida de seguridad.
This server cannot be installed
Maintenance
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
- Flicense-qualityDmaintenanceEnables 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
- Flicense-qualityBmaintenanceEnables 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
- AlicenseAqualityDmaintenanceEnables 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.104MIT
- AlicenseAqualityBmaintenanceEnables searching and retrieving tax law data from the Korean National Tax Service database, including interpretations, rulings, forms, publications, and site menus via MCP tools.141MIT
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…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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