{
  "service": "getnote",
  "displayName": "Getnote",
  "categories": [
    "AI",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "gk_live_xxxxx",
      "description": "Getnote API key sent with the Authorization header. Create an app in the official open platform: https://www.biji.com/openapi.",
      "extraFields": [
        {
          "key": "clientId",
          "label": "Client ID",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "cli_xxxxx",
          "description": "Getnote Client ID sent with the X-Client-ID header. It is shown with the API key after you create an app in the official open platform: https://www.biji.com/openapi."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.biji.com/",
  "actions": [
    {
      "id": "getnote.add_note_tags",
      "service": "getnote",
      "name": "add_note_tags",
      "description": "Add one or more tags to a Getnote note.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.tag.write"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "noteId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote note ID. Treat this as a string because upstream IDs are int64."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Tag name."
            },
            "description": "Tag names to add.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input for adding tags to a Getnote note."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote mutation response."
      }
    },
    {
      "id": "getnote.add_notes_to_knowledge_base",
      "service": "getnote",
      "name": "add_notes_to_knowledge_base",
      "description": "Add up to 20 notes to one Getnote knowledge base. Subscribed knowledge bases are read-only unless the user is an admin.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.topic.write"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "topicId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote knowledge base topic ID."
          },
          "noteIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Getnote note ID. Treat this as a string because upstream IDs are int64."
            },
            "description": "Note IDs to add.",
            "minItems": 1,
            "maxItems": 20
          }
        },
        "additionalProperties": false,
        "description": "Input for adding notes to a Getnote knowledge base."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote mutation response."
      }
    },
    {
      "id": "getnote.create_knowledge_base",
      "service": "getnote",
      "name": "create_knowledge_base",
      "description": "Create a Getnote knowledge base. Upstream limits creation to 50 per day.",
      "requiredScopes": [],
      "providerPermissions": [
        "topic.write"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Knowledge base name."
          },
          "description": {
            "type": "string",
            "description": "Knowledge base description."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "Input for creating a Getnote knowledge base."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "topic": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized create knowledge base response."
      }
    },
    {
      "id": "getnote.delete_note",
      "service": "getnote",
      "name": "delete_note",
      "description": "Move a Getnote note to trash.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.content.trash"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "noteId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote note ID. Treat this as a string because upstream IDs are int64."
          }
        },
        "additionalProperties": false,
        "description": "Input containing one Getnote note ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote mutation response."
      }
    },
    {
      "id": "getnote.follow_live",
      "service": "getnote",
      "name": "follow_live",
      "description": "Subscribe a Dedao live channel link into one Getnote knowledge base. Upstream currently supports Dedao App live links.",
      "requiredScopes": [],
      "providerPermissions": [
        "topic.live.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "topicId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote knowledge base topic ID."
          },
          "link": {
            "type": "string",
            "description": "Dedao live link to subscribe.",
            "format": "uri"
          },
          "platform": {
            "type": "string",
            "description": "Optional upstream platform value."
          }
        },
        "additionalProperties": false,
        "required": [
          "topicId",
          "link"
        ],
        "description": "Input for following a Dedao live channel in Getnote."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "item": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote detail response."
      }
    },
    {
      "id": "getnote.get_blogger_content",
      "service": "getnote",
      "name": "get_blogger_content",
      "description": "Get one Getnote blogger content detail, including original text when returned.",
      "requiredScopes": [],
      "providerPermissions": [
        "topic.blogger.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "topicId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote knowledge base topic ID."
          },
          "postId": {
            "type": "string",
            "minLength": 1,
            "description": "Blogger post ID alias returned by list_blogger_contents."
          }
        },
        "additionalProperties": false,
        "description": "Input for getting one Getnote blogger content item."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "item": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote detail response."
      }
    },
    {
      "id": "getnote.get_live_detail",
      "service": "getnote",
      "name": "get_live_detail",
      "description": "Get one Getnote live detail, including AI summary and transcript when returned.",
      "requiredScopes": [],
      "providerPermissions": [
        "topic.live.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "topicId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote knowledge base topic ID."
          },
          "liveId": {
            "type": "string",
            "minLength": 1,
            "description": "Live ID returned by list_knowledge_base_lives."
          }
        },
        "additionalProperties": false,
        "description": "Input for getting one Getnote live detail."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "item": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote detail response."
      }
    },
    {
      "id": "getnote.get_note",
      "service": "getnote",
      "name": "get_note",
      "description": "Get one Getnote note detail, including fields that are not present in lists.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.content.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "noteId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote note ID. Treat this as a string because upstream IDs are int64."
          },
          "imageQuality": {
            "type": "string",
            "enum": [
              "original"
            ],
            "description": "Set to `original` to request original image links."
          }
        },
        "additionalProperties": false,
        "required": [
          "noteId"
        ],
        "description": "Input for retrieving a Getnote note."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "note": {
            "type": "object",
            "properties": {
              "noteId": {
                "type": "string",
                "minLength": 1,
                "description": "Getnote note ID. Treat this as a string because upstream IDs are int64."
              },
              "title": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "String value returned by Getnote."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "content": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "String value returned by Getnote."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "noteType": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "String value returned by Getnote."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Raw upstream object returned by Getnote."
              }
            },
            "additionalProperties": true,
            "description": "Detailed note object returned by Getnote."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote note detail response."
      }
    },
    {
      "id": "getnote.get_save_task",
      "service": "getnote",
      "name": "get_save_task",
      "description": "Check the progress of an asynchronous Getnote link or image save task.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.content.write"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "taskId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote asynchronous save task ID."
          }
        },
        "additionalProperties": false,
        "description": "Input for checking Getnote save task progress."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "status": {
            "type": "string",
            "description": "Task status returned by Getnote."
          },
          "noteId": {
            "anyOf": [
              {
                "type": "string",
                "description": "String value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote save task progress."
      },
      "asyncLifecycle": {
        "startActionId": "getnote.save_note",
        "statusActionId": "getnote.get_save_task"
      }
    },
    {
      "id": "getnote.list_blogger_contents",
      "service": "getnote",
      "name": "list_blogger_contents",
      "description": "List content items for a subscribed blogger in a Getnote knowledge base.",
      "requiredScopes": [],
      "providerPermissions": [
        "topic.blogger.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "topicId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote knowledge base topic ID."
          },
          "followId": {
            "type": "string",
            "minLength": 1,
            "description": "Blogger follow ID returned by list_knowledge_base_bloggers."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request."
          }
        },
        "additionalProperties": false,
        "required": [
          "topicId",
          "followId"
        ],
        "description": "Input for listing Getnote blogger contents."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw upstream object returned by Getnote."
            },
            "description": "Items returned by Getnote."
          },
          "hasMore": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Boolean value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "page": {
            "anyOf": [
              {
                "type": "number",
                "description": "Number value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote list response."
      }
    },
    {
      "id": "getnote.list_knowledge_base_bloggers",
      "service": "getnote",
      "name": "list_knowledge_base_bloggers",
      "description": "List bloggers subscribed in one Getnote knowledge base.",
      "requiredScopes": [],
      "providerPermissions": [
        "topic.blogger.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "topicId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote knowledge base topic ID."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request."
          }
        },
        "additionalProperties": false,
        "required": [
          "topicId"
        ],
        "description": "Input for a page-based knowledge base endpoint."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw upstream object returned by Getnote."
            },
            "description": "Items returned by Getnote."
          },
          "hasMore": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Boolean value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "page": {
            "anyOf": [
              {
                "type": "number",
                "description": "Number value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote list response."
      }
    },
    {
      "id": "getnote.list_knowledge_base_lives",
      "service": "getnote",
      "name": "list_knowledge_base_lives",
      "description": "List completed live sessions in one Getnote knowledge base.",
      "requiredScopes": [],
      "providerPermissions": [
        "topic.live.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "topicId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote knowledge base topic ID."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request."
          }
        },
        "additionalProperties": false,
        "required": [
          "topicId"
        ],
        "description": "Input for a page-based knowledge base endpoint."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw upstream object returned by Getnote."
            },
            "description": "Items returned by Getnote."
          },
          "hasMore": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Boolean value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "page": {
            "anyOf": [
              {
                "type": "number",
                "description": "Number value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote list response."
      }
    },
    {
      "id": "getnote.list_knowledge_base_notes",
      "service": "getnote",
      "name": "list_knowledge_base_notes",
      "description": "List notes in one Getnote knowledge base.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.topic.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "topicId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote knowledge base topic ID."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request."
          }
        },
        "additionalProperties": false,
        "required": [
          "topicId"
        ],
        "description": "Input for a page-based knowledge base endpoint."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "noteId": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Getnote note ID. Treat this as a string because upstream IDs are int64."
                },
                "title": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "content": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "noteType": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "Raw upstream object returned by Getnote."
                  },
                  "description": "Tags returned for the note."
                },
                "topics": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "Raw upstream object returned by Getnote."
                  },
                  "description": "Knowledge base topics returned for the note."
                },
                "createdAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "updatedAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Raw upstream object returned by Getnote."
                }
              },
              "additionalProperties": false,
              "description": "Normalized Getnote note summary."
            },
            "description": "Notes in the knowledge base."
          },
          "hasMore": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Boolean value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "page": {
            "anyOf": [
              {
                "type": "number",
                "description": "Number value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote knowledge base notes response."
      }
    },
    {
      "id": "getnote.list_knowledge_bases",
      "service": "getnote",
      "name": "list_knowledge_bases",
      "description": "List knowledge bases owned by the authenticated Getnote account.",
      "requiredScopes": [],
      "providerPermissions": [
        "topic.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request."
          }
        },
        "additionalProperties": false,
        "description": "Input for page-based Getnote list endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "topics": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "topicId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "noteCount": {
                  "anyOf": [
                    {
                      "type": "number",
                      "description": "Number value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "createdAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Raw upstream object returned by Getnote."
                }
              },
              "additionalProperties": false,
              "description": "Normalized Getnote knowledge base."
            },
            "description": "Knowledge bases returned by Getnote."
          },
          "total": {
            "anyOf": [
              {
                "type": "number",
                "description": "Number value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "hasMore": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Boolean value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote knowledge base list response."
      }
    },
    {
      "id": "getnote.list_note_tags",
      "service": "getnote",
      "name": "list_note_tags",
      "description": "List tags attached to one Getnote note.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.tag.read",
        "note.content.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "noteId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote note ID. Treat this as a string because upstream IDs are int64."
          }
        },
        "additionalProperties": false,
        "description": "Input containing one Getnote note ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "noteId": {
            "anyOf": [
              {
                "type": "string",
                "description": "String value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Raw upstream object returned by Getnote."
                }
              },
              "additionalProperties": false,
              "description": "Normalized Getnote tag."
            },
            "description": "Tags attached to the note."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote note tag list response."
      }
    },
    {
      "id": "getnote.list_notes",
      "service": "getnote",
      "name": "list_notes",
      "description": "List recent Getnote notes using the official cursor pagination endpoint.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.content.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "cursor": {
            "type": "string",
            "description": "Pagination cursor returned by the previous page."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing Getnote notes."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "noteId": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Getnote note ID. Treat this as a string because upstream IDs are int64."
                },
                "title": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "content": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "noteType": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "Raw upstream object returned by Getnote."
                  },
                  "description": "Tags returned for the note."
                },
                "topics": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "Raw upstream object returned by Getnote."
                  },
                  "description": "Knowledge base topics returned for the note."
                },
                "createdAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "updatedAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Raw upstream object returned by Getnote."
                }
              },
              "additionalProperties": false,
              "description": "Normalized Getnote note summary."
            },
            "description": "Notes returned by Getnote."
          },
          "hasMore": {
            "type": "boolean",
            "description": "Whether another page is available."
          },
          "cursor": {
            "anyOf": [
              {
                "type": "string",
                "description": "String value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote note list response."
      }
    },
    {
      "id": "getnote.list_subscribed_knowledge_bases",
      "service": "getnote",
      "name": "list_subscribed_knowledge_bases",
      "description": "List knowledge bases subscribed by the authenticated Getnote account. These are read-only unless the user is an admin.",
      "requiredScopes": [],
      "providerPermissions": [
        "topic.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request."
          }
        },
        "additionalProperties": false,
        "description": "Input for page-based Getnote list endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "topics": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "topicId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "noteCount": {
                  "anyOf": [
                    {
                      "type": "number",
                      "description": "Number value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "createdAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Raw upstream object returned by Getnote."
                }
              },
              "additionalProperties": false,
              "description": "Normalized Getnote knowledge base."
            },
            "description": "Knowledge bases returned by Getnote."
          },
          "total": {
            "anyOf": [
              {
                "type": "number",
                "description": "Number value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "hasMore": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Boolean value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote knowledge base list response."
      }
    },
    {
      "id": "getnote.remove_note_tag",
      "service": "getnote",
      "name": "remove_note_tag",
      "description": "Remove one Getnote tag by tag ID. System tags cannot be deleted upstream.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.tag.write"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "noteId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote note ID. Treat this as a string because upstream IDs are int64."
          },
          "tagId": {
            "type": "string",
            "minLength": 1,
            "description": "Tag ID to remove, as returned by list_note_tags or note detail."
          }
        },
        "additionalProperties": false,
        "description": "Input for removing a tag from a Getnote note."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote mutation response."
      }
    },
    {
      "id": "getnote.remove_notes_from_knowledge_base",
      "service": "getnote",
      "name": "remove_notes_from_knowledge_base",
      "description": "Remove notes from one Getnote knowledge base.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.topic.write"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "topicId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote knowledge base topic ID."
          },
          "noteIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Getnote note ID. Treat this as a string because upstream IDs are int64."
            },
            "description": "Note IDs to remove.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input for removing notes from a Getnote knowledge base."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote mutation response."
      }
    },
    {
      "id": "getnote.save_note",
      "service": "getnote",
      "name": "save_note",
      "description": "Save a plain-text, link, or image-URL note to Getnote. Plain text and Getnote share links are synchronous; regular links and image notes may return tasks.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.content.write"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "noteType": {
            "type": "string",
            "enum": [
              "plain_text",
              "link",
              "img_text"
            ],
            "description": "The note type to save."
          },
          "title": {
            "type": "string",
            "description": "Optional note title."
          },
          "content": {
            "type": "string",
            "description": "Markdown content or image note description."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Tag name."
            },
            "description": "Tag names to attach to the note."
          },
          "parentId": {
            "type": "string",
            "description": "Parent note ID. Treat this as a string because upstream IDs are int64."
          },
          "linkUrl": {
            "type": "string",
            "description": "URL to save when noteType is `link`.",
            "format": "uri"
          },
          "imageUrls": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "One image URL.",
              "format": "uri"
            },
            "description": "Image URLs to save when noteType is `img_text`; use URLs from Getnote upload tokens or other accessible image URLs.",
            "minItems": 1,
            "maxItems": 9
          },
          "topicId": {
            "type": "string",
            "description": "Knowledge base topic ID to save the note into."
          }
        },
        "additionalProperties": false,
        "description": "Input for saving a text, link, or image-URL note to Getnote."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "noteId": {
            "anyOf": [
              {
                "type": "string",
                "description": "String value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "title": {
            "anyOf": [
              {
                "type": "string",
                "description": "String value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "anyOf": [
              {
                "type": "string",
                "description": "String value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "updatedAt": {
            "anyOf": [
              {
                "type": "string",
                "description": "String value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "tasks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "taskId": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Getnote asynchronous save task ID."
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Raw upstream object returned by Getnote."
                }
              },
              "additionalProperties": false,
              "description": "Normalized Getnote asynchronous save task."
            },
            "description": "Asynchronous save tasks returned by Getnote."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote save note response."
      },
      "asyncLifecycle": {
        "startActionId": "getnote.save_note",
        "statusActionId": "getnote.get_save_task"
      }
    },
    {
      "id": "getnote.search_notes",
      "service": "getnote",
      "name": "search_notes",
      "description": "Run Getnote semantic search globally, or within one knowledge base when topicId is provided.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.recall.read",
        "note.topic.recall.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Natural language search query."
          },
          "topicId": {
            "type": "string",
            "description": "Knowledge base topic ID for scoped search."
          },
          "topK": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10,
            "description": "Maximum number of results to return. Getnote allows up to 10."
          }
        },
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "description": "Input for Getnote semantic search."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "noteId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "noteType": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "content": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "score": {
                  "anyOf": [
                    {
                      "type": "number",
                      "description": "Number value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "createdAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "String value returned by Getnote."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Raw upstream object returned by Getnote."
                }
              },
              "additionalProperties": false,
              "description": "Normalized Getnote semantic search result."
            },
            "description": "Search results returned by Getnote."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote semantic search response."
      }
    },
    {
      "id": "getnote.share_note",
      "service": "getnote",
      "name": "share_note",
      "description": "Generate or retrieve the idempotent public share link for a Getnote note.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.content.read"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "noteId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote note ID. Treat this as a string because upstream IDs are int64."
          },
          "excludeAudio": {
            "type": "boolean",
            "description": "Whether to exclude audio from the public share."
          }
        },
        "additionalProperties": false,
        "required": [
          "noteId"
        ],
        "description": "Input for generating a Getnote share link."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "noteId": {
            "anyOf": [
              {
                "type": "string",
                "description": "String value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "shareId": {
            "anyOf": [
              {
                "type": "string",
                "description": "String value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "shareUrl": {
            "anyOf": [
              {
                "type": "string",
                "description": "String value returned by Getnote."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote share link response."
      }
    },
    {
      "id": "getnote.update_note",
      "service": "getnote",
      "name": "update_note",
      "description": "Update a Getnote note title, plain-text content, or tags. Tags replace the existing tag list.",
      "requiredScopes": [],
      "providerPermissions": [
        "note.content.write"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "noteId": {
            "type": "string",
            "minLength": 1,
            "description": "Getnote note ID. Treat this as a string because upstream IDs are int64."
          },
          "title": {
            "type": "string",
            "description": "New note title."
          },
          "content": {
            "type": "string",
            "description": "New note content. Upstream only supports this for plain-text notes."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Tag name."
            },
            "description": "Replacement tag names."
          }
        },
        "additionalProperties": false,
        "required": [
          "noteId"
        ],
        "description": "Input for updating a Getnote note."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Getnote reported success."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw upstream object returned by Getnote."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Getnote mutation response."
      }
    }
  ]
}
