{
  "$schema": "https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json",
  "version": "1.0",
  "protocolVersion": "2025-11-25",
  "serverInfo": {
    "name": "lstuvi",
    "title": "LsTuvi - Tử Vi & Lịch âm",
    "version": "1.0.0",
    "websiteUrl": "https://lstuvi.com",
    "icons": [
      {
        "src": "https://lstuvi.com/brand/app-icon-512.png",
        "mimeType": "image/png",
        "sizes": [
          "512x512"
        ]
      },
      {
        "src": "https://lstuvi.com/icon.png",
        "mimeType": "image/png",
        "sizes": [
          "192x192"
        ]
      }
    ]
  },
  "description": "Vietnamese Tử Vi charts, lunar calendar, good-day finder and age compatibility from lstuvi.com. Free, no sign-in.",
  "documentationUrl": "https://lstuvi.com/tai-lieu-api#mcp",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://lstuvi.com/mcp"
  },
  "authentication": {
    "required": false,
    "schemes": []
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "tools": [
    {
      "name": "create_tuvi_chart",
      "title": "Create Tử Vi chart",
      "description": "Builds a Vietnamese Tử Vi Đẩu Số (Purple Star) birth chart from Gregorian birth date, birth time and gender: lunar date, can chi, nạp âm, cục, the 12 palaces with their stars, and a short rule-based reading of each palace. Use when the user wants their Tử Vi chart or asks what their chart says.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "birth_date": {
            "description": "Gregorian birth date, YYYY-MM-DD",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "birth_time": {
            "type": "string",
            "pattern": "^([01]?\\d|2[0-3]):[0-5]\\d$",
            "description": "Local clock time of birth in Vietnam time, HH:MM 24-hour. Use 12:00 if unknown and say so."
          },
          "gender": {
            "type": "string",
            "enum": [
              "nam",
              "nu"
            ],
            "description": "\"nam\" = male, \"nu\" = female"
          },
          "view_year": {
            "description": "Gregorian year to read the yearly luck for; default is the current year",
            "type": "integer",
            "minimum": 1900,
            "maximum": 2200
          },
          "name": {
            "type": "string",
            "maxLength": 60
          }
        },
        "required": [
          "birth_date",
          "birth_time",
          "gender"
        ]
      },
      "annotations": {
        "title": "Create Tử Vi chart",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "convert_lunar_solar",
      "title": "Convert lunar and solar dates",
      "description": "Converts a date between the Gregorian calendar and the Vietnamese lunar calendar (with leap months, 1900–2100), and gives the can chi of the day, month and year plus the solar term.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "direction": {
            "type": "string",
            "enum": [
              "solar_to_lunar",
              "lunar_to_solar"
            ]
          },
          "date": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "YYYY-MM-DD; for lunar_to_solar this is the lunar year, month and day"
          },
          "leap_month": {
            "description": "lunar_to_solar only: true if the lunar month is a leap month",
            "type": "boolean"
          }
        },
        "required": [
          "direction",
          "date"
        ]
      },
      "annotations": {
        "title": "Convert lunar and solar dates",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_lunar_day",
      "title": "Get lunar calendar day",
      "description": "Returns the Vietnamese lunar calendar entry for one Gregorian date (default today): lunar date, can chi, hoàng đạo or hắc đạo day, trực, lunar mansion, ages that clash with the day, taboo days and the auspicious hours.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "date": {
            "description": "Gregorian date YYYY-MM-DD; default is today in Vietnam",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          }
        }
      },
      "annotations": {
        "title": "Get lunar calendar day",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "find_good_days",
      "title": "Find good days in a month",
      "description": "Ranks the days of one Gregorian month for an activity (wedding, opening a shop, moving house, signing a contract, travel…) by Vietnamese day-selection rules, optionally checked against the birth years of the people involved. Returns the best days with reasons and good hours, and the days to avoid.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "activity": {
            "type": "string",
            "enum": [
              "viec-chung",
              "cuoi-hoi",
              "an-hoi",
              "khai-truong",
              "nhap-trach",
              "dong-tho",
              "lam-nha",
              "mua-xe",
              "ky-hop-dong",
              "xuat-hanh"
            ],
            "description": "Activity: viec-chung = Việc chung; cuoi-hoi = Cưới hỏi; an-hoi = Ăn hỏi; khai-truong = Khai trương; nhap-trach = Nhập trạch, chuyển nhà; dong-tho = Động thổ; lam-nha = Làm nhà, sửa nhà; mua-xe = Mua xe; ky-hop-dong = Ký hợp đồng; xuat-hanh = Xuất hành"
          },
          "month": {
            "type": "integer",
            "minimum": 1,
            "maximum": 12,
            "description": "Gregorian month"
          },
          "year": {
            "type": "integer",
            "minimum": 1900,
            "maximum": 2100,
            "description": "Gregorian year"
          },
          "birth_year": {
            "description": "Birth year of the person doing it (for weddings: the bride)",
            "type": "integer",
            "minimum": 1920,
            "maximum": 2100
          },
          "partner_birth_year": {
            "description": "Weddings and engagements only: birth year of the groom",
            "type": "integer",
            "minimum": 1920,
            "maximum": 2100
          }
        },
        "required": [
          "activity",
          "month",
          "year"
        ]
      },
      "annotations": {
        "title": "Find good days in a month",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "check_age_compatibility",
      "title": "Check age compatibility",
      "description": "Compares two people by birth year and gender using Vietnamese age-matching (nạp âm element, heavenly stem, earthly branch, Bát Trạch cung phi, zodiac animal) and returns a score out of 100 with each factor explained.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "person1": {
            "type": "object",
            "properties": {
              "birth_year": {
                "type": "integer",
                "minimum": 1920,
                "maximum": 2100
              },
              "gender": {
                "type": "string",
                "enum": [
                  "nam",
                  "nu"
                ],
                "description": "\"nam\" = male, \"nu\" = female"
              },
              "name": {
                "type": "string",
                "maxLength": 40
              }
            },
            "required": [
              "birth_year",
              "gender"
            ]
          },
          "person2": {
            "type": "object",
            "properties": {
              "birth_year": {
                "type": "integer",
                "minimum": 1920,
                "maximum": 2100
              },
              "gender": {
                "type": "string",
                "enum": [
                  "nam",
                  "nu"
                ],
                "description": "\"nam\" = male, \"nu\" = female"
              },
              "name": {
                "type": "string",
                "maxLength": 40
              }
            },
            "required": [
              "birth_year",
              "gender"
            ]
          }
        },
        "required": [
          "person1",
          "person2"
        ]
      },
      "annotations": {
        "title": "Check age compatibility",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "find_compatible_birth_years",
      "title": "Find compatible birth years",
      "description": "For one person's birth year and gender, scores every partner birth year within a range by the same Vietnamese age-matching rules and returns the best and worst matching years.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "birth_year": {
            "type": "integer",
            "minimum": 1920,
            "maximum": 2100
          },
          "gender": {
            "type": "string",
            "enum": [
              "nam",
              "nu"
            ],
            "description": "\"nam\" = male, \"nu\" = female"
          },
          "partner_gender": {
            "description": "default: the opposite gender",
            "type": "string",
            "enum": [
              "nam",
              "nu"
            ]
          },
          "range": {
            "description": "years around the birth year to scan, default 10",
            "type": "integer",
            "minimum": 1,
            "maximum": 30
          }
        },
        "required": [
          "birth_year",
          "gender"
        ]
      },
      "annotations": {
        "title": "Find compatible birth years",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_2027_forecast_by_birth_year",
      "title": "Get 2027 outlook by birth year",
      "description": "Returns the traditional facts for a birth year in the lunar year 2027 (Đinh Mùi): age, relation of the birth branch and stem with the year, element relation, Tam Tai, Kim Lâu, and the yearly palace for men and women.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "birth_year": {
            "type": "integer",
            "minimum": 1920,
            "maximum": 2100,
            "description": "Gregorian birth year (the person's lunar year of birth)"
          }
        },
        "required": [
          "birth_year"
        ]
      },
      "annotations": {
        "title": "Get 2027 outlook by birth year",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "search_articles",
      "title": "Search lstuvi articles",
      "description": "Searches the Vietnamese articles published on lstuvi.com about Tử Vi, palaces, stars, the lunar calendar and yearly outlooks. Returns titles, slugs and short descriptions.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "query": {
            "description": "Vietnamese or unaccented keywords; empty lists the newest articles",
            "type": "string",
            "maxLength": 100
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          }
        }
      },
      "annotations": {
        "title": "Search lstuvi articles",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_article",
      "title": "Read an lstuvi article",
      "description": "Returns the summary of one lstuvi.com article by slug (from search_articles): the short answer, key points and FAQ, or the opening of the article.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "pattern": "^[a-z0-9-]{1,120}$"
          }
        },
        "required": [
          "slug"
        ]
      },
      "annotations": {
        "title": "Read an lstuvi article",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_pricing",
      "title": "Get lstuvi prices",
      "description": "Returns which lstuvi.com features are free and the current prices of the paid ones: detailed chart reading, couple reading, Tử Vi chat packages and coin top-up packages.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {}
      },
      "annotations": {
        "title": "Get lstuvi prices",
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    }
  ]
}