{
  "contractHash": "a7f7291eacfe473fb2aaccd530742309b587770afc4634936218e1236b6913e1",
  "tools": [
    {
      "name": "list_connected_social_accounts",
      "title": "List connected social accounts",
      "description": "Use first when a request depends on Instagram, YouTube, TikTok, LinkedIn, or X. Returns owner-scoped connection IDs, account identity, safe health state, available capabilities, plan locks, and a FavStash setup URL. If connectionRequired is true, direct the user to connect an account before analytics or scheduling. Sensitive token, scope, provider-metadata, and internal media fields are omitted. Do not use it for analytics or post history. LinkedIn self-serve connections support publishing but not account analytics or post-history sync. For a question spanning multiple matching analytics-capable accounts, pass every relevant connectionId and platform in analyze_social_content_performance.queries instead of stopping after the first empty account.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "additionalProperties": true
                  },
                  {
                    "type": "array",
                    "items": {}
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          },
          "connectionRequired": {
            "type": "boolean"
          },
          "connectUrl": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://"
          },
          "setupMessage": {
            "type": "string"
          }
        },
        "required": [
          "accounts",
          "connectionRequired",
          "connectUrl"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_account_plan_and_usage",
      "title": "Get account plan and usage",
      "description": "Use when plan capacity matters. Returns unlimited save/search status, transcript + AI enrichment allowance and usage, channel/post usage, analytics-history allowance, and an account-management destination. Do not call for ordinary single-item reads.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "array",
              "items": {}
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "save_content_url",
      "title": "Save content URL",
      "description": "Save one public Instagram, TikTok, YouTube, LinkedIn, or X post URL to the user's FavStash without a stash-size cap. Full transcript and AI enrichment follows the account's plan allowance when available; X saves index available public post text with the user's note and collection, but do not copy X media or use AI visual analysis. Use get_saved_content with the returned item id to check status. This changes the user's stash and requires confirmation unless the user already asked to save that exact URL.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https?://",
            "description": "Public Instagram, TikTok, YouTube, LinkedIn, or X post HTTP(S) URL to save."
          },
          "clientRequestId": {
            "type": "string",
            "minLength": 16,
            "maxLength": 128,
            "pattern": "^[A-Za-z0-9:_-]+$",
            "description": "Unique request key for this save. Reuse the exact same value only when retrying the same URL, collection, and note; use a new UUID-like value for a different save."
          },
          "collectionId": {
            "type": "string"
          },
          "userNote": {
            "type": "string"
          }
        },
        "required": [
          "url",
          "clientRequestId"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "array",
              "items": {}
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "search_saved_content",
      "title": "Search saved content",
      "description": "Semantic search fused with keyword matches across saved captions, transcripts, on-screen text, visual summaries, creators, notes, and topics. Use when the request describes meaning or content; use list_recently_saved_content for a purely chronological request. Returns ranked owner-scoped matches and applied search metadata.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Natural-language query."
          },
          "collectionId": {
            "type": "string"
          },
          "sourcePlatform": {
            "type": "string",
            "enum": [
              "instagram",
              "tiktok",
              "youtube",
              "twitter",
              "x",
              "linkedin",
              "reddit",
              "threads",
              "web"
            ]
          },
          "dateFrom": {
            "type": "string",
            "format": "date-time",
            "description": "Inclusive ISO 8601 datetime start."
          },
          "dateTo": {
            "type": "string",
            "format": "date-time",
            "description": "Inclusive ISO 8601 datetime end."
          },
          "tagIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "hits": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "additionalProperties": true
                  },
                  {
                    "type": "array",
                    "items": {}
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        },
        "required": [
          "hits",
          "meta"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_recently_saved_content",
      "title": "List recently saved content",
      "description": "List saved content newest-first without semantic search. Use for requests such as 'what did I save this week?' and optional date/collection filters. Use search_saved_content when the request is about meaning, hooks, creators, or topics.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "since": {
            "type": "string",
            "format": "date-time",
            "description": "Inclusive ISO 8601 datetime start."
          },
          "until": {
            "type": "string",
            "format": "date-time",
            "description": "Inclusive ISO 8601 datetime end."
          },
          "collectionId": {
            "type": "string"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "hits": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "additionalProperties": true
                  },
                  {
                    "type": "array",
                    "items": {}
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        },
        "required": [
          "hits",
          "meta"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_saved_content",
      "title": "Get saved content",
      "description": "Fetch one known saved-content item by FavStash item id, including recreation signals such as creative format, literal on-screen text, visual scene, hook, and content type when available. Returns bounded long text by default and null when missing or not owned by the caller. Request full text only when the user needs the transcript/caption rather than a preview.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "includeFullText": {
            "type": "boolean"
          },
          "textLimit": {
            "type": "integer",
            "minimum": 500,
            "maximum": 50000
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "item": {
            "oneOf": [
              {
                "type": "object",
                "additionalProperties": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "object",
                      "additionalProperties": true
                    },
                    {
                      "type": "array",
                      "items": {}
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "item"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_stash_summary",
      "title": "Get stash summary",
      "description": "Return counts for the user's stash, grouped by platform, source type, enrichment status, and collection. Use for inventory/count questions without retrieving item text.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "since": {
            "type": "string",
            "format": "date-time"
          },
          "until": {
            "type": "string",
            "format": "date-time"
          },
          "collectionId": {
            "type": "string"
          },
          "maxItemsToScan": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2000
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "array",
              "items": {}
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_stash_collections",
      "title": "List stash collections",
      "description": "List owner-scoped FavStash collections with IDs and descriptive metadata. Use before applying a user-named collection filter.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "collections": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "additionalProperties": true
                  },
                  {
                    "type": "array",
                    "items": {}
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          }
        },
        "required": [
          "collections"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_stash_tags",
      "title": "List stash tags",
      "description": "List owner-scoped user-created tags with IDs. Use before passing tagIds to search_saved_content when the user names a tag.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "additionalProperties": true
                  },
                  {
                    "type": "array",
                    "items": {}
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          }
        },
        "required": [
          "tags"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "get_social_account_analytics",
      "title": "Get social account analytics",
      "description": "Return aggregate analytics for one connected social account over a plan-capped 1–90 day window. Use for account trends and totals only. Do not use to identify, rank, or inspect individual posts; use analyze_social_content_performance for that.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "description": "ID from list_connected_social_accounts."
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 90,
            "default": 30
          }
        },
        "required": [
          "connectionId"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "schemaVersion": {
            "type": "string",
            "enum": [
              "2"
            ]
          },
          "account": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "period": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "granularity": {
            "type": "string"
          },
          "metrics": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "value": {
                  "type": "number"
                },
                "unit": {
                  "type": "string"
                },
                "grain": {
                  "type": "string"
                },
                "date": {
                  "type": "string"
                }
              },
              "required": [
                "key",
                "label",
                "value",
                "grain"
              ],
              "additionalProperties": false
            }
          },
          "series": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "additionalProperties": true
                  },
                  {
                    "type": "array",
                    "items": {}
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "nextActions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "tool": {
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "arguments": {
                  "type": "object",
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "object",
                        "additionalProperties": true
                      },
                      {
                        "type": "array",
                        "items": {}
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "requiresConfirmation": {
                  "type": "boolean"
                }
              },
              "required": [
                "tool",
                "reason",
                "arguments",
                "requiresConfirmation"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "schemaVersion",
          "account",
          "period",
          "granularity",
          "metrics",
          "series",
          "limitations",
          "nextActions"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "analyze_social_content_performance",
      "title": "Analyze social content performance",
      "description": "Inspect or rank owned Instagram, YouTube, TikTok, or X content, including posts not published through FavStash. For one connected account, pass connectionId+platform to rank recent content, add providerContentId to inspect one native post, or use favstashPostId alone for one FavStash-published post. For broad comparisons spanning multiple accounts or platforms, send 2–6 typed ranking requests in queries[] so all accounts are analyzed in one call. Each platform exposes only metrics it can rank. X reports currently expose public engagement metrics and a recent-post window, not historical impressions or a full account time series. Identity, account, platform, metadata, URL, and metrics stay together in every content row. Cross-platform output does not assert that two posts are the same idea; match them only when title, caption, description, or publish timing supports it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "minLength": 1,
            "description": "ID from list_connected_social_accounts."
          },
          "platform": {
            "type": "string",
            "enum": [
              "instagram",
              "youtube",
              "tiktok",
              "x"
            ],
            "description": "Platform belonging to the selected connection."
          },
          "days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 90,
            "default": 30
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "default": 10
          },
          "sortBy": {
            "type": "string",
            "enum": [
              "views",
              "reach",
              "likes",
              "comments",
              "shares",
              "saves",
              "watch_time",
              "average_view_duration",
              "skip_rate",
              "average_view_percentage",
              "subscribers_gained",
              "reposts",
              "replies",
              "quotes",
              "bookmarks"
            ],
            "default": "views",
            "description": "Ranking metric. The server enforces the platform-specific subset."
          },
          "order": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "default": "desc"
          },
          "providerContentId": {
            "type": "string",
            "minLength": 1,
            "description": "Native social-platform content ID. Requires connectionId and platform."
          },
          "favstashPostId": {
            "type": "string",
            "minLength": 1,
            "description": "FavStash post ID for internally resolved single-content mode."
          },
          "queries": {
            "type": "array",
            "description": "Two to six account-specific ranking queries for a multi-account or cross-platform comparison.",
            "items": {
              "type": "object",
              "properties": {
                "connectionId": {
                  "type": "string",
                  "minLength": 1,
                  "description": "ID from list_connected_social_accounts."
                },
                "platform": {
                  "type": "string",
                  "enum": [
                    "instagram",
                    "youtube",
                    "tiktok",
                    "x"
                  ],
                  "description": "Platform belonging to the selected connection."
                },
                "days": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 90,
                  "default": 30
                },
                "limit": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 25,
                  "default": 10
                },
                "sortBy": {
                  "type": "string",
                  "enum": [
                    "views",
                    "reach",
                    "likes",
                    "comments",
                    "shares",
                    "saves",
                    "watch_time",
                    "average_view_duration",
                    "skip_rate",
                    "average_view_percentage",
                    "subscribers_gained",
                    "reposts",
                    "replies",
                    "quotes",
                    "bookmarks"
                  ],
                  "default": "views",
                  "description": "Ranking metric. The server enforces the platform-specific subset."
                },
                "order": {
                  "type": "string",
                  "enum": [
                    "asc",
                    "desc"
                  ],
                  "default": "desc"
                }
              },
              "required": [
                "connectionId",
                "platform"
              ],
              "additionalProperties": false
            },
            "minItems": 2,
            "maxItems": 6
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "schemaVersion": {
            "type": "string",
            "enum": [
              "2"
            ]
          },
          "mode": {
            "type": "string",
            "enum": [
              "ranked_list",
              "single",
              "batch"
            ]
          },
          "account": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "period": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "granularity": {
            "type": "string"
          },
          "content": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "providerContentId": {
                  "type": "string"
                },
                "favstashPostId": {
                  "type": "string"
                },
                "connectionId": {
                  "type": "string"
                },
                "platform": {
                  "type": "string",
                  "enum": [
                    "instagram",
                    "youtube",
                    "tiktok",
                    "x"
                  ]
                },
                "account": {
                  "type": "object",
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "object",
                        "additionalProperties": true
                      },
                      {
                        "type": "array",
                        "items": {}
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "analysisDays": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 90
                },
                "contentType": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "caption": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                },
                "thumbnailUrl": {
                  "type": "string"
                },
                "publishedAt": {
                  "type": "string"
                },
                "metrics": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "key": {
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      },
                      "value": {
                        "type": "number"
                      },
                      "unit": {
                        "type": "string"
                      },
                      "grain": {
                        "type": "string"
                      },
                      "date": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "key",
                      "label",
                      "value",
                      "grain"
                    ],
                    "additionalProperties": false
                  }
                },
                "providerMetrics": {
                  "type": "object",
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "object",
                        "additionalProperties": true
                      },
                      {
                        "type": "array",
                        "items": {}
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                }
              },
              "required": [
                "providerContentId",
                "contentType",
                "metrics",
                "providerMetrics"
              ],
              "additionalProperties": false
            }
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "nextActions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "tool": {
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "arguments": {
                  "type": "object",
                  "additionalProperties": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "object",
                        "additionalProperties": true
                      },
                      {
                        "type": "array",
                        "items": {}
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "requiresConfirmation": {
                  "type": "boolean"
                }
              },
              "required": [
                "tool",
                "reason",
                "arguments",
                "requiresConfirmation"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "schemaVersion",
          "mode",
          "account",
          "period",
          "granularity",
          "content",
          "limitations",
          "nextActions"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "create_social_post",
      "title": "Create social post",
      "description": "Create one multi-channel publishing group as a planned draft, future schedule, or immediate publish. Top-level content/media are shared defaults; each target can override content and media so platform-specific captions or assets remain one atomic request. LinkedIn supports one PDF document. X is paid-only with a monthly weighted allowance; it accepts four photos, one GIF, or one MP4 video, never mixed. For draft=true, plannedDate places the idea without scheduling it. Supply a stable clientRequestId for an exact retry. Call get_social_publishing_options before provider-sensitive publishing. Media must be public HTTPS URLs; import temporary/private media first. Confirm exact targets, media, timing, and declarations unless already authorized.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "targets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "connectionId": {
                  "type": "string",
                  "minLength": 1,
                  "description": "ID returned by list_connected_social_accounts."
                },
                "platform": {
                  "type": "string",
                  "enum": [
                    "instagram",
                    "youtube",
                    "tiktok",
                    "linkedin",
                    "x"
                  ]
                },
                "settings": {
                  "type": "object",
                  "description": "Provider settings from get_social_publishing_options. The server applies the platform-specific schema.",
                  "additionalProperties": true
                },
                "content": {
                  "type": "string",
                  "maxLength": 5000,
                  "description": "Optional caption override for this target. Omit to reuse top-level content."
                },
                "media": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "format": "uri",
                        "pattern": "^https://",
                        "description": "Public HTTPS image, video, or PDF document URL."
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "image",
                          "video",
                          "document"
                        ],
                        "description": "Optional explicit media kind. FavStash otherwise infers it from the URL extension."
                      },
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200,
                        "description": "Attachment title. Recommended for documents; FavStash derives a filename when omitted."
                      },
                      "thumbnailUrl": {
                        "type": "string",
                        "format": "uri",
                        "pattern": "^https://",
                        "description": "Optional public HTTPS cover image URL."
                      },
                      "thumbnailTimestampMs": {
                        "type": "integer",
                        "minimum": 0,
                        "description": "Optional video cover-frame offset in milliseconds."
                      },
                      "altText": {
                        "type": "string",
                        "maxLength": 2200
                      },
                      "durationSeconds": {
                        "type": "number",
                        "exclusiveMinimum": 0,
                        "description": "Video duration in seconds. Required for TikTok Direct Post video."
                      },
                      "width": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Image pixel width returned by import_post_media or the upload completion response."
                      },
                      "height": {
                        "type": "integer",
                        "minimum": 1,
                        "description": "Image pixel height returned by import_post_media or the upload completion response."
                      }
                    },
                    "required": [
                      "url"
                    ],
                    "additionalProperties": false
                  },
                  "maxItems": 20,
                  "description": "Optional media override for this target. Omit to reuse top-level media."
                }
              },
              "required": [
                "connectionId",
                "platform"
              ],
              "additionalProperties": false
            },
            "minItems": 1,
            "maxItems": 5
          },
          "content": {
            "type": "string",
            "maxLength": 5000
          },
          "media": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https://",
                  "description": "Public HTTPS image, video, or PDF document URL."
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "image",
                    "video",
                    "document"
                  ],
                  "description": "Optional explicit media kind. FavStash otherwise infers it from the URL extension."
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200,
                  "description": "Attachment title. Recommended for documents; FavStash derives a filename when omitted."
                },
                "thumbnailUrl": {
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https://",
                  "description": "Optional public HTTPS cover image URL."
                },
                "thumbnailTimestampMs": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Optional video cover-frame offset in milliseconds."
                },
                "altText": {
                  "type": "string",
                  "maxLength": 2200
                },
                "durationSeconds": {
                  "type": "number",
                  "exclusiveMinimum": 0,
                  "description": "Video duration in seconds. Required for TikTok Direct Post video."
                },
                "width": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "Image pixel width returned by import_post_media or the upload completion response."
                },
                "height": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "Image pixel height returned by import_post_media or the upload completion response."
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": false
            },
            "maxItems": 20,
            "description": "Shared media for every target. Use target.media when platforms need different assets."
          },
          "clientRequestId": {
            "type": "string",
            "minLength": 16,
            "maxLength": 128,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$",
            "description": "Stable request key for this post creation. Start with a letter or number, reuse the exact same value only when retrying the same complete request, and use a new UUID-like value for a different post."
          },
          "plannedDate": {
            "type": "string",
            "format": "date",
            "description": "Optional YYYY-MM-DD calendar date for a draft idea. It does not schedule publishing."
          },
          "draft": {
            "const": true,
            "description": "Create a draft. plannedDate may place it on the calendar without scheduling it."
          },
          "postNow": {
            "const": true,
            "description": "Publish immediately."
          },
          "publishAt": {
            "type": "string",
            "format": "date-time",
            "description": "UTC ISO 8601 datetime for scheduled publishing."
          }
        },
        "required": [
          "targets",
          "clientRequestId"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "group": {
            "type": "string"
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "additionalProperties": true
                  },
                  {
                    "type": "array",
                    "items": {}
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          },
          "id": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "hint": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "get_social_post",
      "title": "Get social post",
      "description": "Fetch one FavStash social post by id, including state, release URL, warnings, and errors. Poll after immediate publishing or while a scheduled post is processing.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "array",
              "items": {}
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "list_social_posts",
      "title": "List social posts",
      "description": "List the user's planned drafts, queued, processing, paused, published, failed, or cancelled social posts in a calendar range. Drafts with plannedDate are matched by that date; other posts are matched by publishAt. Optionally filter by state or connected account.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          },
          "state": {
            "type": "string",
            "enum": [
              "DRAFT",
              "QUEUE",
              "PROCESSING",
              "PAUSED",
              "PUBLISHED",
              "ERROR",
              "CANCELLED"
            ]
          },
          "connectionId": {
            "type": "string"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500
          }
        },
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "additionalProperties": true
                  },
                  {
                    "type": "array",
                    "items": {}
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          },
          "count": {
            "type": "integer"
          }
        },
        "required": [
          "posts",
          "count"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false
      }
    },
    {
      "name": "update_social_post",
      "title": "Update social post",
      "description": "Update a FavStash DRAFT, QUEUE, or PAUSED post's content, media, typed platform target settings, planned date, or publish time. Pass expectedUpdatedAt from list_social_posts or get_social_post so a newer web, mobile, or agent edit is rejected instead of overwritten. plannedDate only moves a DRAFT on the calendar and never schedules it; publishAt retains the existing scheduling behavior. Omitted target settings are preserved; use target.clearSettings with its platform-specific literals to remove optional audio, tags, location, thumbnail, privacy, or similar settings. When target is present, its connectionId and platform must match the existing post. Queued posts become read-only inside the publishing window. Confirm the exact change unless the user already requested it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "expectedUpdatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "publishAt": {
            "type": "string",
            "format": "date-time"
          },
          "plannedDate": {
            "type": "string",
            "format": "date",
            "description": "Optional YYYY-MM-DD calendar date for a draft idea. It does not schedule publishing."
          },
          "content": {
            "type": "string",
            "maxLength": 5000
          },
          "media": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https://",
                  "description": "Public HTTPS image, video, or PDF document URL."
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "image",
                    "video",
                    "document"
                  ],
                  "description": "Optional explicit media kind. FavStash otherwise infers it from the URL extension."
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200,
                  "description": "Attachment title. Recommended for documents; FavStash derives a filename when omitted."
                },
                "thumbnailUrl": {
                  "type": "string",
                  "format": "uri",
                  "pattern": "^https://",
                  "description": "Optional public HTTPS cover image URL."
                },
                "thumbnailTimestampMs": {
                  "type": "integer",
                  "minimum": 0,
                  "description": "Optional video cover-frame offset in milliseconds."
                },
                "altText": {
                  "type": "string",
                  "maxLength": 2200
                },
                "durationSeconds": {
                  "type": "number",
                  "exclusiveMinimum": 0,
                  "description": "Video duration in seconds. Required for TikTok Direct Post video."
                },
                "width": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "Image pixel width returned by import_post_media or the upload completion response."
                },
                "height": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "Image pixel height returned by import_post_media or the upload completion response."
                }
              },
              "required": [
                "url"
              ],
              "additionalProperties": false
            },
            "maxItems": 20,
            "description": "Shared media for every target. Use target.media when platforms need different assets."
          },
          "target": {
            "type": "object",
            "properties": {
              "connectionId": {
                "type": "string",
                "minLength": 1,
                "description": "ID returned by list_connected_social_accounts."
              },
              "platform": {
                "type": "string",
                "enum": [
                  "instagram",
                  "youtube",
                  "tiktok",
                  "linkedin",
                  "x"
                ]
              },
              "settings": {
                "type": "object",
                "description": "Partial provider settings. The server applies the platform-specific schema.",
                "additionalProperties": true
              },
              "content": {
                "type": "string",
                "maxLength": 5000,
                "description": "Optional replacement caption for this destination."
              },
              "media": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "pattern": "^https://",
                      "description": "Public HTTPS image, video, or PDF document URL."
                    },
                    "kind": {
                      "type": "string",
                      "enum": [
                        "image",
                        "video",
                        "document"
                      ],
                      "description": "Optional explicit media kind. FavStash otherwise infers it from the URL extension."
                    },
                    "title": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200,
                      "description": "Attachment title. Recommended for documents; FavStash derives a filename when omitted."
                    },
                    "thumbnailUrl": {
                      "type": "string",
                      "format": "uri",
                      "pattern": "^https://",
                      "description": "Optional public HTTPS cover image URL."
                    },
                    "thumbnailTimestampMs": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Optional video cover-frame offset in milliseconds."
                    },
                    "altText": {
                      "type": "string",
                      "maxLength": 2200
                    },
                    "durationSeconds": {
                      "type": "number",
                      "exclusiveMinimum": 0,
                      "description": "Video duration in seconds. Required for TikTok Direct Post video."
                    },
                    "width": {
                      "type": "integer",
                      "minimum": 1,
                      "description": "Image pixel width returned by import_post_media or the upload completion response."
                    },
                    "height": {
                      "type": "integer",
                      "minimum": 1,
                      "description": "Image pixel height returned by import_post_media or the upload completion response."
                    }
                  },
                  "required": [
                    "url"
                  ],
                  "additionalProperties": false
                },
                "maxItems": 20,
                "description": "Optional replacement media for this destination."
              },
              "clearSettings": {
                "type": "array",
                "description": "Optional provider settings to remove. The server applies the platform-specific enum.",
                "items": {
                  "type": "string",
                  "enum": [
                    "collaborators",
                    "userTags",
                    "locationId",
                    "productTags",
                    "brandedContentSponsorIds",
                    "trialReel",
                    "audio",
                    "tags",
                    "thumbnailUrl",
                    "privacy",
                    "title",
                    "autoAddMusic",
                    "acceptTerms",
                    "promotesOwnBrand",
                    "brandedContent"
                  ]
                },
                "uniqueItems": true,
                "maxItems": 7
              }
            },
            "required": [
              "connectionId",
              "platform"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "expectedUpdatedAt"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "array",
              "items": {}
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "cancel_social_post",
      "title": "Cancel social post",
      "description": "Cancel one FavStash DRAFT, QUEUE, or PAUSED post. Published posts cannot be cancelled. This is destructive and requires confirmation unless the user explicitly asked to cancel that exact post.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "array",
              "items": {}
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": true,
        "idempotentHint": false,
        "openWorldHint": false
      }
    },
    {
      "name": "import_post_media",
      "title": "Import post media",
      "description": "Import one public HTTPS JPEG, PNG, WebP, GIF, MP4, MOV, or PDF into owner-scoped FavStash publishing storage and return a stable CDN URL for create_social_post or update_social_post. Use for expiring, private, unverified-domain, attached, or generated media. Images (including GIF) are limited to 8 MB, PDF documents to 100 MB, and video to 200 MB. GIF publishing is currently X-only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "pattern": "^https://",
            "description": "Public HTTPS media URL."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "Optional document title. Otherwise the filename is used."
          }
        },
        "required": [
          "url"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "array",
              "items": {}
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "annotations": {
        "readOnlyHint": false,
        "destructiveHint": false,
        "idempotentHint": false,
        "openWorldHint": true
      }
    },
    {
      "name": "get_social_publishing_options",
      "title": "Get social publishing options",
      "description": "Fetch live publishing constraints for one connected social account before composing or confirming a post. Returns provider content types, privacy/interactions, declarations, media requirements, quota/limits, and current limitations. Required before TikTok Direct Post and recommended whenever provider-specific settings matter.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "description": "ID from list_connected_social_accounts."
          },
          "mediaType": {
            "type": "string",
            "enum": [
              "image",
              "video",
              "carousel",
              "document"
            ]
          },
          "durationSeconds": {
            "type": "number",
            "minimum": 0.01
          }
        },
        "required": [
          "connectionId"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "schemaVersion": {
            "type": "string",
            "enum": [
              "2"
            ]
          },
          "account": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "provider": {
            "type": "string"
          },
          "contentTypes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "privacyOptions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "interactions": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "quota": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "declarations": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "object",
                    "additionalProperties": true
                  },
                  {
                    "type": "array",
                    "items": {}
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          },
          "allowedValues": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "disabledSettings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "requiredSettings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "defaults": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "limits": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "object",
                  "additionalProperties": true
                },
                {
                  "type": "array",
                  "items": {}
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "requirements": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "schemaVersion",
          "account",
          "provider",
          "contentTypes",
          "privacyOptions",
          "interactions",
          "quota",
          "declarations",
          "allowedValues",
          "disabledSettings",
          "requiredSettings",
          "defaults",
          "limits",
          "requirements",
          "limitations"
        ],
        "additionalProperties": false
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    },
    {
      "name": "search_instagram_audio",
      "title": "Search Instagram audio",
      "description": "Search music or original sound for an Instagram-via-Facebook connection. Use only when preparing a single-video Reel with audio, then pass the returned audio id in the account-specific post settings.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string"
          },
          "q": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "music",
              "original_sound"
            ]
          }
        },
        "required": [
          "connectionId"
        ],
        "additionalProperties": false
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "array",
              "items": {}
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": true
      }
    }
  ]
}
