Skip to main content
Glama

Liki — Professional AI Astrologer

subject_candidates

Read-onlyIdempotent

把民用时间事实归一化为 canonical subject 候选:接受公历/农历壁钟、时辰或同日区间;longitude_range 可选,表示地点边界不确定性。返回候选列表,input 候选恒定第一,边界派生候选按时间排序,每个候选附 reasons;longitude_range 省略时只用精确 longitude,非法时间、时区或范围直接报错。时间明确时直接组装下游 subject;模糊或触及时辰、日界、交节、夏令时边界时先调用本工具并等待确认。地点未知先用 city_info,不得静默选择候选或编造缺失时间/地点。

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
candidatesYes候选列表:永远包含一个 input 候选;其余为边界派生。

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / $defs
      Added value: +{
      +  "Enum_f1c34956050abbed": {
      +    "enum": [
      +      "male",
      +      "female"
      +    ],
      +    "type": "string"
      +  }
      +}
    • changedInput schema / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "公历日期 + 当地壁钟精确时间。",
      -    "properties": {
      -      "calendar_kind": {
      -        "const": "solar",
      -        "description": "壁钟日期口径:solar 或 lunar。",
      -        "type": "string"
      -      },
      -      "longitude": {
      -        "description": "地点经度(-180..180)。",
      -        "maximum": 180,
      -        "minimum": -180,
      -        "type": "number"
      -      },
      -      "longitude_range": {
      -        "additionalProperties": false,
      -        "description": "地点行政范围(东西经度);可选。",
      -        "properties": {
      -          "east": {
      -            "description": "地点东界经度(-180..180)。",
      -            "maximum": 180,
      -            "minimum": -180,
      -            "type": "number"
      -          },
      -          "west": {
      -            "description": "地点西界经度(-180..180)。",
      -            "maximum": 180,
      -            "minimum": -180,
      -            "type": "number"
      -          }
      -        },
      -        "required": [
      -          "west",
      -          "east"
      -        ],
      -        "type": [
      -          "null",
      -          "object"
      -        ]
      -      },
      -      "record_timezone": {
      -        "description": "记录时间所在时区(IANA)。",
      -        "type": "string"
      -      },
      -      "recorded_date": {
      -        "description": "公历日期 YYYY-MM-DD。",
      -        "type": "string"
      -      },
      -      "recorded_time": {
      -        "description": "当地壁钟时间 HH:MM 或 HH:MM:SS(分钟/秒精度)。",
      -        "type": "string"
      -      },
      -      "subject_gender": {
      -        "description": "性别。",
      -        "enum": [
      -          "male",
      -          "female"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "calendar_kind",
      -      "recorded_date",
      -      "recorded_time",
      -      "record_timezone",
      -      "longitude",
      -      "subject_gender"
      -    ],
      -    "title": "solar_wall_clock",
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "农历日期 + 当地壁钟精确时间。",
      -    "properties": {
      -      "calendar_kind": {
      -        "const": "lunar",
      -        "description": "壁钟日期口径:solar 或 lunar。",
      -        "type": "string"
      -      },
      -      "longitude": {
      -        "description": "地点经度(-180..180)。",
      -        "maximum": 180,
      -        "minimum": -180,
      -        "type": "number"
      -      },
      -      "longitude_range": {
      -        "additionalProperties": false,
      -        "description": "地点行政范围(东西经度);可选。",
      -        "properties": {
      -          "east": {
      -            "description": "地点东界经度(-180..180)。",
      -            "maximum": 180,
      -            "minimum": -180,
      -            "type": "number"
      -          },
      -          "west": {
      -            "description": "地点西界经度(-180..180)。",
      -            "maximum": 180,
      -            "minimum": -180,
      -            "type": "number"
      -          }
      -        },
      -        "required": [
      -          "west",
      -          "east"
      -        ],
      -        "type": [
      -          "null",
      -          "object"
      -        ]
      -      },
      -      "record_timezone": {
      -        "description": "记录时间所在时区(IANA)。",
      -        "type": "string"
      -      },
      -      "recorded_lunar": {
      -        "additionalProperties": false,
      -        "description": "农历日期(含闰月标记 leap)。",
      -        "properties": {
      -          "day": {
      -            "description": "农历日(1-30)。",
      -            "type": "integer"
      -          },
      -          "leap": {
      -            "description": "是否闰月。",
      -            "type": "boolean"
      -          },
      -          "month": {
      -            "description": "农历月(1-12)。",
      -            "type": "integer"
      -          },
      -          "year": {
      -            "description": "农历年(1900-2100)。",
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "year",
      -          "month",
      -          "day"
      -        ],
      -        "type": [
      -          "null",
      -          "object"
      -        ]
      -      },
      -      "recorded_time": {
      -        "description": "当地壁钟时间 HH:MM 或 HH:MM:SS。",
      -        "type": "string"
      -      },
      -      "subject_gender": {
      -        "description": "性别。",
      -        "enum": [
      -          "male",
      -          "female"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "calendar_kind",
      -      "recorded_lunar",
      -      "recorded_time",
      -      "record_timezone",
      -      "longitude",
      -      "subject_gender"
      -    ],
      -    "title": "lunar_wall_clock",
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "公历日期 + 已知时辰。",
      -    "properties": {
      -      "calendar_kind": {
      -        "const": "solar",
      -        "description": "壁钟日期口径:solar 或 lunar。",
      -        "type": "string"
      -      },
      -      "longitude": {
      -        "description": "地点经度(-180..180)。",
      -        "maximum": 180,
      -        "minimum": -180,
      -        "type": "number"
      -      },
      -      "longitude_range": {
      -        "additionalProperties": false,
      -        "description": "地点行政范围(东西经度);可选。",
      -        "properties": {
      -          "east": {
      -            "description": "地点东界经度(-180..180)。",
      -            "maximum": 180,
      -            "minimum": -180,
      -            "type": "number"
      -          },
      -          "west": {
      -            "description": "地点西界经度(-180..180)。",
      -            "maximum": 180,
      -            "minimum": -180,
      -            "type": "number"
      -          }
      -        },
      -        "required": [
      -          "west",
      -          "east"
      -        ],
      -        "type": [
      -          "null",
      -          "object"
      -        ]
      -      },
      -      "record_timezone": {
      -        "description": "记录时间所在时区(IANA)。",
      -        "type": "string"
      -      },
      -      "recorded_date": {
      -        "description": "公历日期 YYYY-MM-DD。",
      -        "type": "string"
      -      },
      -      "recorded_shichen": {
      -        "description": "已知时辰(真太阳时基,2 小时)。",
      -        "type": "string"
      -      },
      -      "subject_gender": {
      -        "description": "性别。",
      -        "enum": [
      -          "male",
      -          "female"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "calendar_kind",
      -      "recorded_date",
      -      "recorded_shichen",
      -      "record_timezone",
      -      "longitude",
      -      "subject_gender"
      -    ],
      -    "title": "solar_shichen",
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "description": "公历日期 + 同日民用时间区间。",
      -    "properties": {
      -      "calendar_kind": {
      -        "const": "solar",
      -        "description": "壁钟日期口径:solar 或 lunar。",
      -        "type": "string"
      -      },
      -      "longitude": {
      -        "description": "地点经度(-180..180)。",
      -        "maximum": 180,
      -        "minimum": -180,
      -        "type": "number"
      -      },
      -      "longitude_range": {
      -        "additionalProperties": false,
      -        "description": "地点行政范围(东西经度);可选。",
      -        "properties": {
      -          "east": {
      -            "description": "地点东界经度(-180..180)。",
      -            "maximum": 180,
      -            "minimum": -180,
      -            "type": "number"
      -          },
      -          "west": {
      -            "description": "地点西界经度(-180..180)。",
      -            "maximum": 180,
      -            "minimum": -180,
      -            "type": "number"
      -          }
      -        },
      -        "required": [
      -          "west",
      -          "east"
      -        ],
      -        "type": [
      -          "null",
      -          "object"
      -        ]
      -      },
      -      "record_timezone": {
      -        "description": "记录时间所在时区(IANA)。",
      -        "type": "string"
      -      },
      -      "recorded_date": {
      -        "description": "公历日期 YYYY-MM-DD。",
      -        "type": "string"
      -      },
      -      "recorded_time_range": {
      -        "additionalProperties": false,
      -        "description": "同日民用时间区间。",
      -        "properties": {
      -          "end": {
      -            "description": "区间终点 HH:MM(不含)。",
      -            "type": "string"
      -          },
      -          "start": {
      -            "description": "区间起点 HH:MM(含)。",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "start",
      -          "end"
      -        ],
      -        "type": [
      -          "null",
      -          "object"
      -        ]
      -      },
      -      "subject_gender": {
      -        "description": "性别。",
      -        "enum": [
      -          "male",
      -          "female"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "calendar_kind",
      -      "recorded_date",
      -      "recorded_time_range",
      -      "record_timezone",
      -      "longitude",
      -      "subject_gender"
      -    ],
      -    "title": "solar_time_range",
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "description": "公历日期 + 当地壁钟精确时间。",
      +    "properties": {
      +      "calendar_kind": {
      +        "const": "solar",
      +        "description": "壁钟日期口径:solar 或 lunar。",
      +        "type": "string"
      +      },
      +      "longitude": {
      +        "description": "地点经度(-180..180)。",
      +        "maximum": 180,
      +        "minimum": -180,
      +        "type": "number"
      +      },
      +      "longitude_range": {
      +        "additionalProperties": false,
      +        "description": "地点行政范围(东西经度);可选。",
      +        "properties": {
      +          "east": {
      +            "description": "地点东界经度(-180..180)。",
      +            "maximum": 180,
      +            "minimum": -180,
      +            "type": "number"
      +          },
      +          "west": {
      +            "description": "地点西界经度(-180..180)。",
      +            "maximum": 180,
      +            "minimum": -180,
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "west",
      +          "east"
      +        ],
      +        "type": [
      +          "null",
      +          "object"
      +        ]
      +      },
      +      "record_timezone": {
      +        "description": "记录时间所在时区(IANA)。",
      +        "type": "string"
      +      },
      +      "recorded_date": {
      +        "description": "公历日期 YYYY-MM-DD。",
      +        "type": "string"
      +      },
      +      "recorded_time": {
      +        "description": "当地壁钟时间 HH:MM 或 HH:MM:SS(分钟/秒精度)。",
      +        "type": "string"
      +      },
      +      "subject_gender": {
      +        "$ref": "#/$defs/Enum_f1c34956050abbed",
      +        "description": "性别。"
      +      }
      +    },
      +    "required": [
      +      "calendar_kind",
      +      "recorded_date",
      +      "recorded_time",
      +      "record_timezone",
      +      "longitude",
      +      "subject_gender"
      +    ],
      +    "title": "solar_wall_clock",
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "农历日期 + 当地壁钟精确时间。",
      +    "properties": {
      +      "calendar_kind": {
      +        "const": "lunar",
      +        "description": "壁钟日期口径:solar 或 lunar。",
      +        "type": "string"
      +      },
      +      "longitude": {
      +        "description": "地点经度(-180..180)。",
      +        "maximum": 180,
      +        "minimum": -180,
      +        "type": "number"
      +      },
      +      "longitude_range": {
      +        "additionalProperties": false,
      +        "description": "地点行政范围(东西经度);可选。",
      +        "properties": {
      +          "east": {
      +            "description": "地点东界经度(-180..180)。",
      +            "maximum": 180,
      +            "minimum": -180,
      +            "type": "number"
      +          },
      +          "west": {
      +            "description": "地点西界经度(-180..180)。",
      +            "maximum": 180,
      +            "minimum": -180,
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "west",
      +          "east"
      +        ],
      +        "type": [
      +          "null",
      +          "object"
      +        ]
      +      },
      +      "record_timezone": {
      +        "description": "记录时间所在时区(IANA)。",
      +        "type": "string"
      +      },
      +      "recorded_lunar": {
      +        "additionalProperties": false,
      +        "description": "农历日期(含闰月标记 leap)。",
      +        "properties": {
      +          "day": {
      +            "description": "农历日(1-30)。",
      +            "type": "integer"
      +          },
      +          "leap": {
      +            "description": "是否闰月。",
      +            "type": "boolean"
      +          },
      +          "month": {
      +            "description": "农历月(1-12)。",
      +            "type": "integer"
      +          },
      +          "year": {
      +            "description": "农历年(1900-2100)。",
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "year",
      +          "month",
      +          "day"
      +        ],
      +        "type": [
      +          "null",
      +          "object"
      +        ]
      +      },
      +      "recorded_time": {
      +        "description": "当地壁钟时间 HH:MM 或 HH:MM:SS。",
      +        "type": "string"
      +      },
      +      "subject_gender": {
      +        "$ref": "#/$defs/Enum_f1c34956050abbed",
      +        "description": "性别。"
      +      }
      +    },
      +    "required": [
      +      "calendar_kind",
      +      "recorded_lunar",
      +      "recorded_time",
      +      "record_timezone",
      +      "longitude",
      +      "subject_gender"
      +    ],
      +    "title": "lunar_wall_clock",
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "公历日期 + 已知时辰。",
      +    "properties": {
      +      "calendar_kind": {
      +        "const": "solar",
      +        "description": "壁钟日期口径:solar 或 lunar。",
      +        "type": "string"
      +      },
      +      "longitude": {
      +        "description": "地点经度(-180..180)。",
      +        "maximum": 180,
      +        "minimum": -180,
      +        "type": "number"
      +      },
      +      "longitude_range": {
      +        "additionalProperties": false,
      +        "description": "地点行政范围(东西经度);可选。",
      +        "properties": {
      +          "east": {
      +            "description": "地点东界经度(-180..180)。",
      +            "maximum": 180,
      +            "minimum": -180,
      +            "type": "number"
      +          },
      +          "west": {
      +            "description": "地点西界经度(-180..180)。",
      +            "maximum": 180,
      +            "minimum": -180,
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "west",
      +          "east"
      +        ],
      +        "type": [
      +          "null",
      +          "object"
      +        ]
      +      },
      +      "record_timezone": {
      +        "description": "记录时间所在时区(IANA)。",
      +        "type": "string"
      +      },
      +      "recorded_date": {
      +        "description": "公历日期 YYYY-MM-DD。",
      +        "type": "string"
      +      },
      +      "recorded_shichen": {
      +        "description": "已知时辰(真太阳时基,2 小时)。",
      +        "type": "string"
      +      },
      +      "subject_gender": {
      +        "$ref": "#/$defs/Enum_f1c34956050abbed",
      +        "description": "性别。"
      +      }
      +    },
      +    "required": [
      +      "calendar_kind",
      +      "recorded_date",
      +      "recorded_shichen",
      +      "record_timezone",
      +      "longitude",
      +      "subject_gender"
      +    ],
      +    "title": "solar_shichen",
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "description": "公历日期 + 同日民用时间区间。",
      +    "properties": {
      +      "calendar_kind": {
      +        "const": "solar",
      +        "description": "壁钟日期口径:solar 或 lunar。",
      +        "type": "string"
      +      },
      +      "longitude": {
      +        "description": "地点经度(-180..180)。",
      +        "maximum": 180,
      +        "minimum": -180,
      +        "type": "number"
      +      },
      +      "longitude_range": {
      +        "additionalProperties": false,
      +        "description": "地点行政范围(东西经度);可选。",
      +        "properties": {
      +          "east": {
      +            "description": "地点东界经度(-180..180)。",
      +            "maximum": 180,
      +            "minimum": -180,
      +            "type": "number"
      +          },
      +          "west": {
      +            "description": "地点西界经度(-180..180)。",
      +            "maximum": 180,
      +            "minimum": -180,
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "west",
      +          "east"
      +        ],
      +        "type": [
      +          "null",
      +          "object"
      +        ]
      +      },
      +      "record_timezone": {
      +        "description": "记录时间所在时区(IANA)。",
      +        "type": "string"
      +      },
      +      "recorded_date": {
      +        "description": "公历日期 YYYY-MM-DD。",
      +        "type": "string"
      +      },
      +      "recorded_time_range": {
      +        "additionalProperties": false,
      +        "description": "同日民用时间区间。",
      +        "properties": {
      +          "end": {
      +            "description": "区间终点 HH:MM(不含)。",
      +            "type": "string"
      +          },
      +          "start": {
      +            "description": "区间起点 HH:MM(含)。",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "start",
      +          "end"
      +        ],
      +        "type": [
      +          "null",
      +          "object"
      +        ]
      +      },
      +      "subject_gender": {
      +        "$ref": "#/$defs/Enum_f1c34956050abbed",
      +        "description": "性别。"
      +      }
      +    },
      +    "required": [
      +      "calendar_kind",
      +      "recorded_date",
      +      "recorded_time_range",
      +      "record_timezone",
      +      "longitude",
      +      "subject_gender"
      +    ],
      +    "title": "solar_time_range",
      +    "type": "object"
      +  }
      +]
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnly/idempotent annotations it discloses output ordering (input candidate always first, boundary-derived candidates sorted by time), that each candidate carries reasons, that omitting longitude_range falls back to the exact longitude only, and that illegal time/timezone/range errors out. It stops short of describing precision limits or how many boundary candidates may be produced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: purpose first, then input forms, return behavior, error handling, and routing rules. A few clauses (e.g. the anti-fabrication warning) are repeated in spirit, and the single long sentence chain is harder to scan than bullets would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-variant oneOf schema with an output schema present, the description covers what the schema cannot: which variant situations warrant the call, candidate ordering semantics, error conditions, and the confirmation workflow. Nothing an agent needs before invoking is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description still adds real meaning by explaining that longitude_range encodes location-boundary uncertainty and that its omission changes derivation behavior — semantics the schema's '地点行政范围' label does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb+resource: normalizing civil-time facts into canonical subject candidates, and enumerates the four accepted input shapes (solar/lunar wall clock, shichen, same-day range). It also positions itself relative to siblings by naming city_info for unknown locations and '下游 subject' tools for confirmed times.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit routing: use this tool first and wait for confirmation when time is ambiguous or touches shichen/day-boundary/jieqi/DST edges; skip it and assemble downstream subject directly when time is unambiguous; call city_info first when location is unknown. Both when-to-use and when-to-skip are stated, plus a prohibition on silently picking candidates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources