Skip to main content
Glama

Read my month

get_timing_month
Read-onlyIdempotent

Returns a calendar month of personal astrology periods for a temporary chartContext or the authorized saved self chart. Saved access requires the full_timing entitlement; temporary access requires a confirmed viewing timezone unless already present in context. Relative months resolve in the viewing or account timezone. Both modes share calculation methods and coverage. Excludes saved life events and messages. Empty periods are not predictions of no life events.

Input Schema

NameRequiredDescriptionDefault
monthYesYYYY-MM, or this_month, next_month, previous_month resolved in the chart's viewing timezone.
timezoneNoOptional confirmed viewing timezone (IANA identifier or UTC), separate from birthplace. Temporary charts require a supplied timezone when their context has none; saved charts retain the configured account timezone.
chartContextNoSensitive opaque temporary chart context. A supplied value selects the temporary chart; an absent value selects the authorized saved self chart. Valid for two hours in its issuing environment and calculation version.

Output Schema

NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / data / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "algorithmVersion": {
      -        "maxLength": 100,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "availableFrom": {
      -        "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      -        "type": "string"
      -      },
      -      "availableTo": {
      -        "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      -        "type": "string"
      -      },
      -      "birthProfileVersion": {
      -        "maximum": 9007199254740991,
      -        "minimum": 1,
      -        "type": "integer"
      -      },
      -      "calculatedAt": {
      -        "format": "date-time",
      -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      -        "type": "string"
      -      },
      -      "days": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "contacts": {
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "aspect": {
      -                    "enum": [
      -                      "conjunction",
      -                      "sextile",
      -                      "square",
      -                      "trine",
      -                      "opposition"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "movingBody": {
      -                    "maxLength": 20,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "natalBody": {
      -                    "maxLength": 20,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "orbDegrees": {
      -                    "maximum": 3,
      -                    "minimum": 0,
      -                    "type": "number"
      -                  },
      -                  "relativeWeight": {
      -                    "maximum": 1,
      -                    "minimum": 0,
      -                    "type": "number"
      -                  },
      -                  "uncertaintyDegrees": {
      -                    "maximum": 3,
      -                    "minimum": 0,
      -                    "type": "number"
      -                  }
      -                },
      -                "required": [
      -                  "movingBody",
      -                  "natalBody",
      -                  "aspect",
      -                  "orbDegrees",
      -                  "uncertaintyDegrees",
      -                  "relativeWeight"
      -                ],
      -                "type": "object"
      -              },
      -              "maxItems": 3,
      -              "type": "array"
      -            },
      -            "localDate": {
      -              "format": "date",
      -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -              "type": "string"
      -            },
      -            "relativeScore": {
      -              "maximum": 3,
      -              "minimum": 0,
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "localDate",
      -            "relativeScore",
      -            "contacts"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 31,
      -        "type": "array"
      -      },
      -      "interpretationNote": {
      -        "maxLength": 1000,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "kind": {
      -        "const": "sampled_timing_calendar",
      -        "type": "string"
      -      },
      -      "method": {
      -        "maxLength": 1000,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "month": {
      -        "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      -        "type": "string"
      -      },
      -      "providerVersion": {
      -        "maxLength": 300,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "timezone": {
      -        "maxLength": 100,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "timezoneDataVersion": {
      -        "maxLength": 100,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "uncertainty": {
      -        "maxLength": 1000,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "windows": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "contact": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "aspect": {
      -                  "enum": [
      -                    "conjunction",
      -                    "sextile",
      -                    "square",
      -                    "trine",
      -                    "opposition"
      -                  ],
      -                  "type": "string"
      -                },
      -                "movingBody": {
      -                  "maxLength": 20,
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                "natalBody": {
      -                  "maxLength": 20,
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                "orbDegrees": {
      -                  "maximum": 3,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "relativeWeight": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "uncertaintyDegrees": {
      -                  "maximum": 3,
      -                  "minimum": 0,
      -                  "type": "number"
      -                }
      -              },
      -              "required": [
      -                "movingBody",
      -                "natalBody",
      -                "aspect",
      -                "orbDegrees",
      -                "uncertaintyDegrees",
      -                "relativeWeight"
      -              ],
      -              "type": "object"
      -            },
      -            "contactKey": {
      -              "maxLength": 80,
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "end": {
      -              "format": "date",
      -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -              "type": "string"
      -            },
      -            "endClipped": {
      -              "type": "boolean"
      -            },
      -            "id": {
      -              "maxLength": 160,
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "peak": {
      -              "format": "date",
      -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -              "type": "string"
      -            },
      -            "peakIsUnique": {
      -              "type": "boolean"
      -            },
      -            "peakRelativeScore": {
      -              "maximum": 3,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "relativeLabel": {
      -              "maxLength": 100,
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "relativeRatio": {
      -              "maximum": 1,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "start": {
      -              "format": "date",
      -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -              "type": "string"
      -            },
      -            "startClipped": {
      -              "type": "boolean"
      -            },
      -            "title": {
      -              "maxLength": 200,
      -              "minLength": 1,
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "id",
      -            "start",
      -            "end",
      -            "peak",
      -            "peakIsUnique",
      -            "contactKey",
      -            "contact",
      -            "title",
      -            "peakRelativeScore",
      -            "relativeLabel",
      -            "relativeRatio",
      -            "startClipped",
      -            "endClipped"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 31,
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "birthProfileVersion",
      -      "month",
      -      "availableFrom",
      -      "availableTo",
      -      "timezone",
      -      "timezoneDataVersion",
      -      "providerVersion",
      -      "algorithmVersion",
      -      "calculatedAt",
      -      "days",
      -      "uncertainty",
      -      "method",
      -      "kind",
      -      "windows",
      -      "interpretationNote"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "algorithmVersion": {
      -        "maxLength": 100,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "availableFrom": {
      -        "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      -        "type": "string"
      -      },
      -      "availableTo": {
      -        "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      -        "type": "string"
      -      },
      -      "calculatedAt": {
      -        "format": "date-time",
      -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      -        "type": "string"
      -      },
      -      "days": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "contacts": {
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "aspect": {
      -                    "enum": [
      -                      "conjunction",
      -                      "sextile",
      -                      "square",
      -                      "trine",
      -                      "opposition"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "movingBody": {
      -                    "maxLength": 20,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "natalBody": {
      -                    "maxLength": 20,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "orbDegrees": {
      -                    "maximum": 3,
      -                    "minimum": 0,
      -                    "type": "number"
      -                  },
      -                  "relativeWeight": {
      -                    "maximum": 1,
      -                    "minimum": 0,
      -                    "type": "number"
      -                  },
      -                  "uncertaintyDegrees": {
      -                    "maximum": 3,
      -                    "minimum": 0,
      -                    "type": "number"
      -                  }
      -                },
      -                "required": [
      -                  "movingBody",
      -                  "natalBody",
      -                  "aspect",
      -                  "orbDegrees",
      -                  "uncertaintyDegrees",
      -                  "relativeWeight"
      -                ],
      -                "type": "object"
      -              },
      -              "maxItems": 3,
      -              "type": "array"
      -            },
      -            "localDate": {
      -              "format": "date",
      -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -              "type": "string"
      -            },
      -            "relativeScore": {
      -              "maximum": 3,
      -              "minimum": 0,
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "localDate",
      -            "relativeScore",
      -            "contacts"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 31,
      -        "type": "array"
      -      },
      -      "interpretationNote": {
      -        "maxLength": 1000,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "kind": {
      -        "const": "sampled_timing_calendar",
      -        "type": "string"
      -      },
      -      "method": {
      -        "maxLength": 1000,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "month": {
      -        "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      -        "type": "string"
      -      },
      -      "persistence": {
      -        "const": "no_profile_chart_or_analysis_saved",
      -        "type": "string"
      -      },
      -      "providerVersion": {
      -        "maxLength": 300,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "timezone": {
      -        "maxLength": 100,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "timezoneDataVersion": {
      -        "maxLength": 100,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "uncertainty": {
      -        "maxLength": 1000,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "windows": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "contact": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "aspect": {
      -                  "enum": [
      -                    "conjunction",
      -                    "sextile",
      -                    "square",
      -                    "trine",
      -                    "opposition"
      -                  ],
      -                  "type": "string"
      -                },
      -                "movingBody": {
      -                  "maxLength": 20,
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                "natalBody": {
      -                  "maxLength": 20,
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                "orbDegrees": {
      -                  "maximum": 3,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "relativeWeight": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "uncertaintyDegrees": {
      -                  "maximum": 3,
      -                  "minimum": 0,
      -                  "type": "number"
      -                }
      -              },
      -              "required": [
      -                "movingBody",
      -                "natalBody",
      -                "aspect",
      -                "orbDegrees",
      -                "uncertaintyDegrees",
      -                "relativeWeight"
      -              ],
      -              "type": "object"
      -            },
      -            "contactKey": {
      -              "maxLength": 80,
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "end": {
      -              "format": "date",
      -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -              "type": "string"
      -            },
      -            "endClipped": {
      -              "type": "boolean"
      -            },
      -            "id": {
      -              "maxLength": 160,
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "peak": {
      -              "format": "date",
      -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -              "type": "string"
      -            },
      -            "peakIsUnique": {
      -              "type": "boolean"
      -            },
      -            "peakRelativeScore": {
      -              "maximum": 3,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "relativeLabel": {
      -              "maxLength": 100,
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "relativeRatio": {
      -              "maximum": 1,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "start": {
      -              "format": "date",
      -              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      -              "type": "string"
      -            },
      -            "startClipped": {
      -              "type": "boolean"
      -            },
      -            "title": {
      -              "maxLength": 200,
      -              "minLength": 1,
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "id",
      -            "start",
      -            "end",
      -            "peak",
      -            "peakIsUnique",
      -            "contactKey",
      -            "contact",
      -            "title",
      -            "peakRelativeScore",
      -            "relativeLabel",
      -            "relativeRatio",
      -            "startClipped",
      -            "endClipped"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 31,
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "month",
      -      "availableFrom",
      -      "availableTo",
      -      "timezone",
      -      "timezoneDataVersion",
      -      "providerVersion",
      -      "algorithmVersion",
      -      "calculatedAt",
      -      "days",
      -      "uncertainty",
      -      "method",
      -      "kind",
      -      "windows",
      -      "interpretationNote",
      -      "persistence"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "algorithmVersion": {
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "availableFrom": {
      +        "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      +        "type": "string"
      +      },
      +      "availableTo": {
      +        "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      +        "type": "string"
      +      },
      +      "birthProfileVersion": {
      +        "maximum": 9007199254740991,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "calculatedAt": {
      +        "format": "date-time",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +        "type": "string"
      +      },
      +      "days": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "contacts": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "aspect": {
      +                    "enum": [
      +                      "conjunction",
      +                      "sextile",
      +                      "square",
      +                      "trine",
      +                      "opposition"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "movingBody": {
      +                    "maxLength": 20,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "natalBody": {
      +                    "maxLength": 20,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "orbDegrees": {
      +                    "maximum": 3,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "relativeWeight": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "uncertaintyDegrees": {
      +                    "maximum": 3,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "movingBody",
      +                  "natalBody",
      +                  "aspect",
      +                  "orbDegrees",
      +                  "uncertaintyDegrees",
      +                  "relativeWeight"
      +                ],
      +                "type": "object"
      +              },
      +              "maxItems": 3,
      +              "type": "array"
      +            },
      +            "localDate": {
      +              "format": "date",
      +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +              "type": "string"
      +            },
      +            "relativeScore": {
      +              "maximum": 3,
      +              "minimum": 0,
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "localDate",
      +            "relativeScore",
      +            "contacts"
      +          ],
      +          "type": "object"
      +        },
      +        "maxItems": 31,
      +        "type": "array"
      +      },
      +      "interpretationNote": {
      +        "maxLength": 1000,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "kind": {
      +        "const": "sampled_timing_calendar",
      +        "type": "string"
      +      },
      +      "method": {
      +        "maxLength": 1000,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "month": {
      +        "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      +        "type": "string"
      +      },
      +      "providerVersion": {
      +        "maxLength": 300,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "timezone": {
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "timezoneDataVersion": {
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "uncertainty": {
      +        "maxLength": 1000,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "windows": {
      +        "items": {
      +          "oneOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "contact": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "aspect": {
      +                      "enum": [
      +                        "conjunction",
      +                        "sextile",
      +                        "square",
      +                        "trine",
      +                        "opposition"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "movingBody": {
      +                      "maxLength": 20,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "natalBody": {
      +                      "maxLength": 20,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "orbDegrees": {
      +                      "maximum": 3,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "relativeWeight": {
      +                      "maximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "uncertaintyDegrees": {
      +                      "maximum": 3,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "movingBody",
      +                    "natalBody",
      +                    "aspect",
      +                    "orbDegrees",
      +                    "uncertaintyDegrees",
      +                    "relativeWeight"
      +                  ],
      +                  "type": "object"
      +                },
      +                "contactKey": {
      +                  "maxLength": 80,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "end": {
      +                  "format": "date",
      +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                  "type": "string"
      +                },
      +                "endClipped": {
      +                  "type": "boolean"
      +                },
      +                "id": {
      +                  "maxLength": 160,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "peak": {
      +                  "format": "date",
      +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                  "type": "string"
      +                },
      +                "peakIsUnique": {
      +                  "const": true,
      +                  "type": "boolean"
      +                },
      +                "peakRelativeScore": {
      +                  "maximum": 3,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "relativeLabel": {
      +                  "maxLength": 100,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "relativeRatio": {
      +                  "maximum": 1,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "start": {
      +                  "format": "date",
      +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                  "type": "string"
      +                },
      +                "startClipped": {
      +                  "type": "boolean"
      +                },
      +                "title": {
      +                  "maxLength": 200,
      +                  "minLength": 1,
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "start",
      +                "end",
      +                "contactKey",
      +                "contact",
      +                "title",
      +                "peakRelativeScore",
      +                "relativeLabel",
      +                "relativeRatio",
      +                "startClipped",
      +                "endClipped",
      +                "peakIsUnique",
      +                "peak"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "contact": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "aspect": {
      +                      "enum": [
      +                        "conjunction",
      +                        "sextile",
      +                        "square",
      +                        "trine",
      +                        "opposition"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "movingBody": {
      +                      "maxLength": 20,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "natalBody": {
      +                      "maxLength": 20,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "orbDegrees": {
      +                      "maximum": 3,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "relativeWeight": {
      +                      "maximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "uncertaintyDegrees": {
      +                      "maximum": 3,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "movingBody",
      +                    "natalBody",
      +                    "aspect",
      +                    "orbDegrees",
      +                    "uncertaintyDegrees",
      +                    "relativeWeight"
      +                  ],
      +                  "type": "object"
      +                },
      +                "contactKey": {
      +                  "maxLength": 80,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "end": {
      +                  "format": "date",
      +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                  "type": "string"
      +                },
      +                "endClipped": {
      +                  "type": "boolean"
      +                },
      +                "id": {
      +                  "maxLength": 160,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "peak": {
      +                  "type": "null"
      +                },
      +                "peakIsUnique": {
      +                  "const": false,
      +                  "type": "boolean"
      +                },
      +                "peakRelativeScore": {
      +                  "maximum": 3,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "relativeLabel": {
      +                  "maxLength": 100,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "relativeRatio": {
      +                  "maximum": 1,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "start": {
      +                  "format": "date",
      +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                  "type": "string"
      +                },
      +                "startClipped": {
      +                  "type": "boolean"
      +                },
      +                "title": {
      +                  "maxLength": 200,
      +                  "minLength": 1,
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "start",
      +                "end",
      +                "contactKey",
      +                "contact",
      +                "title",
      +                "peakRelativeScore",
      +                "relativeLabel",
      +                "relativeRatio",
      +                "startClipped",
      +                "endClipped",
      +                "peakIsUnique",
      +                "peak"
      +              ],
      +              "type": "object"
      +            }
      +          ]
      +        },
      +        "maxItems": 31,
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "birthProfileVersion",
      +      "month",
      +      "availableFrom",
      +      "availableTo",
      +      "timezone",
      +      "timezoneDataVersion",
      +      "providerVersion",
      +      "algorithmVersion",
      +      "calculatedAt",
      +      "days",
      +      "uncertainty",
      +      "method",
      +      "kind",
      +      "windows",
      +      "interpretationNote"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "algorithmVersion": {
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "availableFrom": {
      +        "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      +        "type": "string"
      +      },
      +      "availableTo": {
      +        "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      +        "type": "string"
      +      },
      +      "calculatedAt": {
      +        "format": "date-time",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +        "type": "string"
      +      },
      +      "days": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "contacts": {
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "aspect": {
      +                    "enum": [
      +                      "conjunction",
      +                      "sextile",
      +                      "square",
      +                      "trine",
      +                      "opposition"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "movingBody": {
      +                    "maxLength": 20,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "natalBody": {
      +                    "maxLength": 20,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "orbDegrees": {
      +                    "maximum": 3,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "relativeWeight": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "uncertaintyDegrees": {
      +                    "maximum": 3,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "movingBody",
      +                  "natalBody",
      +                  "aspect",
      +                  "orbDegrees",
      +                  "uncertaintyDegrees",
      +                  "relativeWeight"
      +                ],
      +                "type": "object"
      +              },
      +              "maxItems": 3,
      +              "type": "array"
      +            },
      +            "localDate": {
      +              "format": "date",
      +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +              "type": "string"
      +            },
      +            "relativeScore": {
      +              "maximum": 3,
      +              "minimum": 0,
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "localDate",
      +            "relativeScore",
      +            "contacts"
      +          ],
      +          "type": "object"
      +        },
      +        "maxItems": 31,
      +        "type": "array"
      +      },
      +      "interpretationNote": {
      +        "maxLength": 1000,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "kind": {
      +        "const": "sampled_timing_calendar",
      +        "type": "string"
      +      },
      +      "method": {
      +        "maxLength": 1000,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "month": {
      +        "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      +        "type": "string"
      +      },
      +      "persistence": {
      +        "const": "no_profile_chart_or_analysis_saved",
      +        "type": "string"
      +      },
      +      "providerVersion": {
      +        "maxLength": 300,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "timezone": {
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "timezoneDataVersion": {
      +        "maxLength": 100,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "uncertainty": {
      +        "maxLength": 1000,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "windows": {
      +        "items": {
      +          "oneOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "contact": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "aspect": {
      +                      "enum": [
      +                        "conjunction",
      +                        "sextile",
      +                        "square",
      +                        "trine",
      +                        "opposition"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "movingBody": {
      +                      "maxLength": 20,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "natalBody": {
      +                      "maxLength": 20,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "orbDegrees": {
      +                      "maximum": 3,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "relativeWeight": {
      +                      "maximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "uncertaintyDegrees": {
      +                      "maximum": 3,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "movingBody",
      +                    "natalBody",
      +                    "aspect",
      +                    "orbDegrees",
      +                    "uncertaintyDegrees",
      +                    "relativeWeight"
      +                  ],
      +                  "type": "object"
      +                },
      +                "contactKey": {
      +                  "maxLength": 80,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "end": {
      +                  "format": "date",
      +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                  "type": "string"
      +                },
      +                "endClipped": {
      +                  "type": "boolean"
      +                },
      +                "id": {
      +                  "maxLength": 160,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "peak": {
      +                  "format": "date",
      +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                  "type": "string"
      +                },
      +                "peakIsUnique": {
      +                  "const": true,
      +                  "type": "boolean"
      +                },
      +                "peakRelativeScore": {
      +                  "maximum": 3,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "relativeLabel": {
      +                  "maxLength": 100,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "relativeRatio": {
      +                  "maximum": 1,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "start": {
      +                  "format": "date",
      +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                  "type": "string"
      +                },
      +                "startClipped": {
      +                  "type": "boolean"
      +                },
      +                "title": {
      +                  "maxLength": 200,
      +                  "minLength": 1,
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "start",
      +                "end",
      +                "contactKey",
      +                "contact",
      +                "title",
      +                "peakRelativeScore",
      +                "relativeLabel",
      +                "relativeRatio",
      +                "startClipped",
      +                "endClipped",
      +                "peakIsUnique",
      +                "peak"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "contact": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "aspect": {
      +                      "enum": [
      +                        "conjunction",
      +                        "sextile",
      +                        "square",
      +                        "trine",
      +                        "opposition"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "movingBody": {
      +                      "maxLength": 20,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "natalBody": {
      +                      "maxLength": 20,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    },
      +                    "orbDegrees": {
      +                      "maximum": 3,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "relativeWeight": {
      +                      "maximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "uncertaintyDegrees": {
      +                      "maximum": 3,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "movingBody",
      +                    "natalBody",
      +                    "aspect",
      +                    "orbDegrees",
      +                    "uncertaintyDegrees",
      +                    "relativeWeight"
      +                  ],
      +                  "type": "object"
      +                },
      +                "contactKey": {
      +                  "maxLength": 80,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "end": {
      +                  "format": "date",
      +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                  "type": "string"
      +                },
      +                "endClipped": {
      +                  "type": "boolean"
      +                },
      +                "id": {
      +                  "maxLength": 160,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "peak": {
      +                  "type": "null"
      +                },
      +                "peakIsUnique": {
      +                  "const": false,
      +                  "type": "boolean"
      +                },
      +                "peakRelativeScore": {
      +                  "maximum": 3,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "relativeLabel": {
      +                  "maxLength": 100,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "relativeRatio": {
      +                  "maximum": 1,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "start": {
      +                  "format": "date",
      +                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
      +                  "type": "string"
      +                },
      +                "startClipped": {
      +                  "type": "boolean"
      +                },
      +                "title": {
      +                  "maxLength": 200,
      +                  "minLength": 1,
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "start",
      +                "end",
      +                "contactKey",
      +                "contact",
      +                "title",
      +                "peakRelativeScore",
      +                "relativeLabel",
      +                "relativeRatio",
      +                "startClipped",
      +                "endClipped",
      +                "peakIsUnique",
      +                "peak"
      +              ],
      +              "type": "object"
      +            }
      +          ]
      +        },
      +        "maxItems": 31,
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "month",
      +      "availableFrom",
      +      "availableTo",
      +      "timezone",
      +      "timezoneDataVersion",
      +      "providerVersion",
      +      "algorithmVersion",
      +      "calculatedAt",
      +      "days",
      +      "uncertainty",
      +      "method",
      +      "kind",
      +      "windows",
      +      "interpretationNote",
      +      "persistence"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. First observed

TDQS

A4/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial context beyond them: the full_timing entitlement gate, the timezone confirmation requirement, the two-hour lifetime of chartContext, and the scope exclusions for life events and messages. The closing caveat that empty periods are not predictions of no life events is exactly the kind of interpretation guard an agent could not infer from structured fields.

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?

Access conditions are front-loaded in the second and third sentences, and the exclusion and caveat sentences are short and load-bearing. 'Both modes share calculation methods and coverage' is the one sentence that borders on filler, keeping this off a 5.

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?

An output schema exists, so return values needn't be explained. Given that, the description covers everything an agent needs to invoke correctly: mode selection, entitlement prerequisite, timezone requirement, chartContext lifetime, scope exclusions, and a caveat on interpreting empty results.

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

Parameters3/5

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

Schema description coverage is 100%, so all three parameters are already documented in the schema, setting the baseline at 3. The description reinforces the timezone resolution rule ('Relative months resolve in the viewing or account timezone') but adds no format or constraint detail beyond what the schema's own descriptions and patterns provide.

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

Purpose4/5

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

States a specific verb and resource: 'Returns a calendar month of personal astrology periods', with the two chart modes (temporary chartContext vs. authorized saved self chart) spelled out. The month-vs-year boundary with get_timing_year is implied by 'calendar month' but never made explicit, and get_daily_focus is not contrasted, so it stops short of a 5.

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

Usage Guidelines3/5

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

It clearly explains the preconditions for each mode (full_timing entitlement for saved, a confirmed viewing timezone for temporary), which is real guidance. But it never states when to pick this tool over get_timing_year or get_daily_focus; the branching it describes is parameter-level, not tool-level, so the alternative-selection guidance is only implied.

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