Model Context Protocol server for Taiwan law history and article scraping from Legislative Yuan database
Project description
Taiwan Law MCP Server
A Model Context Protocol (MCP) server for scraping Taiwan law information from the Legislative Yuan's legal database. This server provides comprehensive access to Taiwan's legal documents, including law articles, amendments history, and legal text processing utilities.
🚀 Features
This MCP server provides 6 different tools for interacting with Taiwan law data:
Available Tools
- 🔍 search_law - Search for laws by name and get basic information
- 📜 get_law_history - Get complete history of a specific law including all amendments
- 📋 get_law_articles - Get current articles of a specific law
- 🔧 parse_law_text - Parse and normalize law text, converting Chinese numbers to Arabic
- 📅 convert_dates - Convert ROC (Republic of China) dates to Western dates
- 🔢 normalize_article_number - Convert Chinese article numbers to Arabic format
📦 Installation
Using pip (Recommended)
pip install taiwan-law-history-mcp
Using UV
uv add taiwan-law-history-mcp
From source
git clone https://github.com/yourusername/taiwan-law-history-mcp.git
cd taiwan-law-history-mcp
pip install -e .
🔧 Usage
As an MCP Server
Add this to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"taiwan-law-history-mcp": {
"command": "taiwan-law-history-mcp"
}
}
}
Command Line Usage
# Run the MCP server
taiwan-law-history-mcp
# Test functionality
python -c "from taiwan_law_mcp.server import normalize_article_no; print(normalize_article_no('第十九條之一'))"
Usage
As an MCP Server
Add this to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"law-history-mcp": {
"command": "uv",
"args": ["run", "law-history-mcp"],
"cwd": "/path/to/law_history_mcp"
}
}
}
Example Tool Calls
Search for a law:
{
"tool": "search_law",
"arguments": {
"law_name": "農業保險法"
}
}
Get law history:
{
"tool": "get_law_history",
"arguments": {
"law_name": "農業保險法"
}
}
Convert ROC date:
{
"tool": "convert_dates",
"arguments": {
"roc_date": "1110520 修正"
}
}
Normalize article number:
{
"tool": "normalize_article_number",
"arguments": {
"article_text": "第十九條之一"
}
}
Data Format
The server returns structured JSON data with normalized fields:
- Article numbers are converted from Chinese (第十九條之一) to Arabic format (19-1)
- ROC dates are converted to Western dates (YYYY-MM-DD)
- Text is cleaned and normalized
- Modification types are extracted (制定, 修正, 全文修正, etc.)
Dependencies
- mcp >= 1.0.0
- requests >= 2.31.0
- beautifulsoup4 >= 4.12.0
- html5lib >= 1.1
- lxml >= 4.9.0
Technical Notes
- Uses custom SSL configuration to handle legacy government websites
- Implements proper session management and retry logic
- Handles timeout.html redirects automatically
- Supports multiple HTML parsers (html5lib, lxml, html.parser)
License
MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file taiwan_law_history_mcp-0.1.3.tar.gz.
File metadata
- Download URL: taiwan_law_history_mcp-0.1.3.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ba57fc31b9a936023d18c47cd90524cc1f7991cb81ea79ed561dbe250e942ee
|
|
| MD5 |
3869dec104191ef7313405635a0f497f
|
|
| BLAKE2b-256 |
c0f6a421613bc655f76555e5dba4ec36ebb82e0afb3b255304c596e3d0f9f348
|
File details
Details for the file taiwan_law_history_mcp-0.1.3-py3-none-any.whl.
File metadata
- Download URL: taiwan_law_history_mcp-0.1.3-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16238d6b1e95be90fff4b9ac28076fd9454225fca1282a86970138b0a1c0f682
|
|
| MD5 |
61b739a966adb68d53c84dbb9ed77af2
|
|
| BLAKE2b-256 |
221c0b5152820aa03eabce484c5c6d152c88d42a3544287ad4376afc389f3180
|