MCP Server Template

A template for creating MCP servers using Python.

ly-mcp

A Model Context Protocol (MCP) server for Taiwan's Legislative Yuan API v2, providing comprehensive access to bills, committees, gazettes, meeting records, and related documents.

Features

This MCP server provides the following tools:

Statistics

  • get_stat: Get Legislative Yuan API statistics and overview information

Bills (議案)

  • list_bills: List bills with optional filters by term, session, category, proposer, and other criteria
  • get_bill: Get comprehensive information about specific bills (returns complete JSON)
  • get_bill_related_bills: Query related bills and their associations
  • get_bill_meets: Access bill deliberation records from various meetings
  • get_bill_doc_html: Retrieve HTML document content for specific bills

Committees (委員會)

  • list_committees: List Legislative Yuan committees with optional filters
  • get_committee: Get detailed information about specific committees
  • get_committee_meets: Access committee meeting records and proceedings

Gazettes (公報)

  • list_gazettes: List Legislative Yuan gazettes with optional filters by volume and gazette ID
  • get_gazette: Get detailed information about specific gazettes
  • get_gazette_agendas: Get agendas/contents from specific gazettes
  • list_gazette_agendas: List all gazette agendas with optional filters by term, meeting date, etc.
  • get_gazette_agenda: Get detailed information about specific gazette agenda items

Interpellations (質詢)

  • list_interpellations: List interpellations with optional filters by member, term, session, and meeting code
  • get_interpellation: Get detailed information about specific interpellations
  • get_legislator_interpellations: Get interpellations where a specific legislator is the questioning member

IVODs (網路電視)

  • list_ivods: List IVOD (Internet Video On Demand) recordings with optional filters by term, session, committee, member, and video type
  • get_ivod: Get detailed information about specific IVOD recordings, including video URLs, transcripts, and gazette content
  • get_meet_ivods: Get IVOD recordings related to specific meetings

Laws (法律)

  • list_laws: List laws with optional filters by law number, category (母法/子法), parent law number, status, and authority
  • get_law: Get comprehensive information about specific laws including basic data, articles, and version information
  • get_law_progress: Get undecided progress list for specific laws
  • get_law_bills: Get bills related to specific laws with optional filters
  • get_law_versions: Get historical version records for specific laws including changes, proposers, and progress
  • list_law_contents: List law articles/contents with optional filters by law number, version ID, article number, current version status, and version tracking
  • get_law_content: Get detailed information about specific law articles/contents using law content ID

Meets (會議)

  • list_meets: List Legislative Yuan meetings with optional filters by term, session, meeting type, attendees, date, committee code, and meeting ID
  • get_meet: Get detailed information about specific meetings using meeting ID/code
  • get_meet_ivods: Get IVOD (Internet Video On Demand) recordings related to specific meetings with optional filters
  • get_meet_bills: Get bills discussed in specific meetings with optional filters by bill criteria
  • get_meet_interpellations: Get interpellations that occurred in specific meetings with optional filters

Legislators (立法委員)

  • list_legislators: List legislators with optional filters by term, party, district name, legislator ID, and name
  • get_legislator: Get detailed information about specific legislators by term and name
  • get_legislator_propose_bills: Get bills proposed by a specific legislator with optional filters by bill criteria
  • get_legislator_cosign_bills: Get bills co-signed by a specific legislator with optional filters by bill criteria
  • get_legislator_meets: Get meetings attended by a specific legislator with optional filters by meeting criteria
  • get_legislator_interpellations: Get interpellations made by a specific legislator with optional filters

API Source

This MCP server uses the Legislative Yuan API v2 as its data source, providing information about Taiwan's Legislative Yuan bills and proceedings.

Installation & Usage

Quick Start

Install and run the server using uvx:

uvx lymcp@latest

MCP Client Configuration

Add the server to your MCP client configuration (e.g., Claude Desktop):

PyPI

{
  "mcpServers": {
    "lymcp": {
      "command": "uvx",
      "args": ["lymcp@latest"]
    }
  }
}

GitHub

{
  "mcpServers": {
    "lymcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/narumiruna/ly-mcp",
        "lymcp"
      ]
    }
  }
}

Local Development

{
  "mcpServers": {
    "lymcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/path/to/ly-mcp",
        "lymcp"
      ]
    }
  }
}

Docker

{
  "mcpServers": {
    "lymcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "narumi/ly-mcp:latest"
      ]
    }
  }
}

Development

Prerequisites

  • Python 3.12+
  • uv package manager

Setup

git clone https://github.com/narumiruna/ly-mcp
cd ly-mcp
uv sync

Running Tests

# Run full test suite with coverage
make test

# Run tests with verbose output
uv run pytest -v -s

Code Quality

# Run linter
make lint

# Run type checker
make type

# Run both linter and type checker
uv run ruff check .
uv run mypy .

To-Do List

  • Stat
  • Bill
  • Committee
  • Gazette
  • Interpellation
  • Ivod
  • Law
  • Legislator
  • Meet

License

MIT

Related Servers