{
  "service": "flomo",
  "displayName": "flomo",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key",
    "custom_credential"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Incoming Webhook URL",
      "placeholder": "https://flomoapp.com/iwh/...",
      "description": "Paste your dedicated flomo incoming webhook URL. You can copy it from https://flomoapp.com/mine?source=incoming_webhook."
    },
    {
      "type": "custom_credential",
      "fields": [
        {
          "key": "token",
          "label": "MCP Token",
          "inputType": "password",
          "required": true,
          "secret": true,
          "placeholder": "flomo_mcp_token",
          "description": "flomo MCP token used with the Authorization: Bearer header for https://flomoapp.com/mcp. This requires a flomo Max membership: https://help.flomoapp.com/membership/pro.html. Create or copy the token from the flomo MCP Token setup page: https://help.flomoapp.com/advance/mcp/token.html."
        }
      ]
    }
  ],
  "homepageUrl": "https://flomoapp.com",
  "actions": [
    {
      "id": "flomo.create_memo",
      "service": "flomo",
      "name": "create_memo",
      "description": "Create a flomo memo by sending markdown or plain text to the incoming webhook.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "minLength": 1,
            "description": "The memo content to publish to flomo."
          },
          "contentType": {
            "type": "string",
            "enum": [
              "markdown"
            ],
            "description": "Set to `markdown` to send flomo webhook `content_type: markdown`; this is mapped to MCP `format` when custom_credential auth is used."
          },
          "format": {
            "type": "string",
            "description": "The flomo MCP content format, such as `markdown`."
          }
        },
        "additionalProperties": false,
        "required": [
          "content"
        ],
        "description": "Input for creating a flomo memo. With api_key auth this uses the incoming webhook; with custom_credential auth this calls the flomo MCP memo_create tool."
      },
      "outputSchema": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "code": {
                "type": "integer",
                "description": "The flomo response code. `0` means the memo was recorded."
              },
              "message": {
                "type": "string",
                "description": "The flomo response message."
              },
              "memo": {
                "type": "object",
                "properties": {
                  "creator_id": {
                    "type": "integer",
                    "description": "The flomo creator ID that owns the created memo."
                  },
                  "source": {
                    "type": "string",
                    "description": "The flomo source name for the created memo."
                  },
                  "memo_from": {
                    "type": "string",
                    "description": "The flomo memo origin for the created memo."
                  },
                  "content": {
                    "type": "string",
                    "description": "The created memo content rendered as HTML by flomo."
                  },
                  "tags": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "One flomo tag."
                    },
                    "description": "Tags parsed by flomo from the memo content."
                  },
                  "updated_at": {
                    "type": "string",
                    "description": "The flomo local timestamp when the memo was last updated."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "The flomo local timestamp when the memo was created."
                  },
                  "linked_memos": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "One linked memo object returned by flomo."
                    },
                    "description": "Linked memo objects detected by flomo."
                  },
                  "linked_count": {
                    "type": "integer",
                    "description": "The number of linked memos detected by flomo."
                  },
                  "slug": {
                    "type": "string",
                    "description": "The flomo slug for the created memo."
                  }
                },
                "additionalProperties": true,
                "description": "The memo object created by flomo."
              }
            },
            "additionalProperties": true,
            "required": [
              "code",
              "message",
              "memo"
            ],
            "description": "The flomo incoming webhook JSON response."
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The flomo memo ID."
              },
              "content": {
                "type": "string",
                "description": "The memo content in Markdown."
              },
              "created_at": {
                "type": "string",
                "description": "The memo creation time in ISO 8601 format."
              },
              "updated_at": {
                "type": "string",
                "description": "The memo update time in ISO 8601 format."
              },
              "from": {
                "type": "string",
                "description": "The memo source type."
              },
              "tags": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "One flomo tag."
                    },
                    "description": "Tags attached to the memo."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "has_image": {
                "type": "boolean",
                "description": "Whether the memo contains an image."
              },
              "has_link": {
                "type": "boolean",
                "description": "Whether the memo contains a link."
              },
              "has_voice": {
                "type": "boolean",
                "description": "Whether the memo contains a voice attachment."
              },
              "files": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "description": "The file type."
                        },
                        "url": {
                          "type": "string",
                          "description": "A short-lived signed download URL for the file.",
                          "format": "uri"
                        }
                      },
                      "additionalProperties": false,
                      "description": "A file attached to a flomo memo."
                    },
                    "description": "Files attached to the memo."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "linked_memos": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "description": "One linked memo ID."
                    },
                    "description": "IDs of memos linked from this memo."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "word_count": {
                "type": "integer",
                "description": "The original memo content length in characters."
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "created_at",
              "updated_at",
              "from",
              "tags",
              "has_image",
              "has_link",
              "has_voice",
              "files",
              "linked_memos",
              "word_count"
            ],
            "description": "The memo created by the flomo MCP memo_create tool."
          }
        ],
        "description": "The response from creating a flomo memo through either the webhook API or the flomo MCP server."
      }
    },
    {
      "id": "flomo.get_daily_review",
      "service": "flomo",
      "name": "get_daily_review",
      "description": "Fetch flomo daily review content through the flomo Max MCP server.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input for fetching the flomo daily review."
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The flomo memo ID."
                  },
                  "content": {
                    "type": "string",
                    "description": "The memo content in Markdown."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "The memo creation time in ISO 8601 format."
                  },
                  "updated_at": {
                    "type": "string",
                    "description": "The memo update time in ISO 8601 format."
                  },
                  "from": {
                    "type": "string",
                    "description": "The memo source type."
                  },
                  "tags": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "One flomo tag."
                        },
                        "description": "Tags attached to the memo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "has_image": {
                    "type": "boolean",
                    "description": "Whether the memo contains an image."
                  },
                  "has_link": {
                    "type": "boolean",
                    "description": "Whether the memo contains a link."
                  },
                  "has_voice": {
                    "type": "boolean",
                    "description": "Whether the memo contains a voice attachment."
                  },
                  "files": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "description": "The file type."
                            },
                            "url": {
                              "type": "string",
                              "description": "A short-lived signed download URL for the file.",
                              "format": "uri"
                            }
                          },
                          "additionalProperties": false,
                          "description": "A file attached to a flomo memo."
                        },
                        "description": "Files attached to the memo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "linked_memos": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "One linked memo ID."
                        },
                        "description": "IDs of memos linked from this memo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "word_count": {
                    "type": "integer",
                    "description": "The original memo content length in characters."
                  },
                  "relevance": {
                    "anyOf": [
                      {
                        "type": "number",
                        "description": "The search relevance score returned by flomo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false,
                "required": [
                  "id",
                  "created_at",
                  "updated_at",
                  "from",
                  "tags",
                  "has_image",
                  "has_link",
                  "has_voice",
                  "files",
                  "linked_memos",
                  "word_count"
                ],
                "description": "A flomo memo returned by the MCP server."
              },
              "description": "flomo memo records."
            },
            {
              "type": "null"
            }
          ]
        },
        "description": "A flomo MCP object whose values are memo arrays, such as `memos` or daily review groups."
      }
    },
    {
      "id": "flomo.get_format_guide",
      "service": "flomo",
      "name": "get_format_guide",
      "description": "Fetch flomo memo formatting guidance through the flomo Max MCP server.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input for fetching the flomo memo format guide."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "The returned Markdown content."
          }
        },
        "additionalProperties": false,
        "description": "A Markdown text response returned by flomo MCP."
      }
    },
    {
      "id": "flomo.get_tag_guide",
      "service": "flomo",
      "name": "get_tag_guide",
      "description": "Fetch flomo tag usage guidance through the flomo Max MCP server.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input for fetching the flomo tag guide."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "The returned Markdown content."
          }
        },
        "additionalProperties": false,
        "description": "A Markdown text response returned by flomo MCP."
      }
    },
    {
      "id": "flomo.memo_batch_get",
      "service": "flomo",
      "name": "memo_batch_get",
      "description": "Fetch multiple flomo memos through the flomo Max MCP server in a single tool call.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "One memo ID to fetch."
          },
          "ids": {
            "oneOf": [
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One memo ID."
                },
                "description": "Memo IDs to fetch."
              },
              {
                "type": "string",
                "description": "Memo IDs to fetch."
              }
            ],
            "description": "Memo IDs to fetch, as an array or comma-separated string."
          }
        },
        "additionalProperties": false,
        "description": "Input for fetching flomo memos by ID through flomo MCP."
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The flomo memo ID."
                  },
                  "content": {
                    "type": "string",
                    "description": "The memo content in Markdown."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "The memo creation time in ISO 8601 format."
                  },
                  "updated_at": {
                    "type": "string",
                    "description": "The memo update time in ISO 8601 format."
                  },
                  "from": {
                    "type": "string",
                    "description": "The memo source type."
                  },
                  "tags": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "One flomo tag."
                        },
                        "description": "Tags attached to the memo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "has_image": {
                    "type": "boolean",
                    "description": "Whether the memo contains an image."
                  },
                  "has_link": {
                    "type": "boolean",
                    "description": "Whether the memo contains a link."
                  },
                  "has_voice": {
                    "type": "boolean",
                    "description": "Whether the memo contains a voice attachment."
                  },
                  "files": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "description": "The file type."
                            },
                            "url": {
                              "type": "string",
                              "description": "A short-lived signed download URL for the file.",
                              "format": "uri"
                            }
                          },
                          "additionalProperties": false,
                          "description": "A file attached to a flomo memo."
                        },
                        "description": "Files attached to the memo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "linked_memos": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "One linked memo ID."
                        },
                        "description": "IDs of memos linked from this memo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "word_count": {
                    "type": "integer",
                    "description": "The original memo content length in characters."
                  },
                  "relevance": {
                    "anyOf": [
                      {
                        "type": "number",
                        "description": "The search relevance score returned by flomo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false,
                "required": [
                  "id",
                  "created_at",
                  "updated_at",
                  "from",
                  "tags",
                  "has_image",
                  "has_link",
                  "has_voice",
                  "files",
                  "linked_memos",
                  "word_count"
                ],
                "description": "A flomo memo returned by the MCP server."
              },
              "description": "flomo memo records."
            },
            {
              "type": "null"
            }
          ]
        },
        "description": "A flomo MCP object whose values are memo arrays, such as `memos` or daily review groups."
      }
    },
    {
      "id": "flomo.memo_recommended",
      "service": "flomo",
      "name": "memo_recommended",
      "description": "Find flomo memos related to a target memo through the flomo Max MCP server.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The target memo ID."
          },
          "limit": {
            "type": "integer",
            "description": "Maximum number of related memos to return."
          },
          "no_same_tag": {
            "type": "boolean",
            "description": "Whether to exclude memos that share the same tag."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input for finding memos related to a target flomo memo."
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The flomo memo ID."
                  },
                  "content": {
                    "type": "string",
                    "description": "The memo content in Markdown."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "The memo creation time in ISO 8601 format."
                  },
                  "updated_at": {
                    "type": "string",
                    "description": "The memo update time in ISO 8601 format."
                  },
                  "from": {
                    "type": "string",
                    "description": "The memo source type."
                  },
                  "tags": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "One flomo tag."
                        },
                        "description": "Tags attached to the memo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "has_image": {
                    "type": "boolean",
                    "description": "Whether the memo contains an image."
                  },
                  "has_link": {
                    "type": "boolean",
                    "description": "Whether the memo contains a link."
                  },
                  "has_voice": {
                    "type": "boolean",
                    "description": "Whether the memo contains a voice attachment."
                  },
                  "files": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "description": "The file type."
                            },
                            "url": {
                              "type": "string",
                              "description": "A short-lived signed download URL for the file.",
                              "format": "uri"
                            }
                          },
                          "additionalProperties": false,
                          "description": "A file attached to a flomo memo."
                        },
                        "description": "Files attached to the memo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "linked_memos": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "One linked memo ID."
                        },
                        "description": "IDs of memos linked from this memo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "word_count": {
                    "type": "integer",
                    "description": "The original memo content length in characters."
                  },
                  "relevance": {
                    "anyOf": [
                      {
                        "type": "number",
                        "description": "The search relevance score returned by flomo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false,
                "required": [
                  "id",
                  "created_at",
                  "updated_at",
                  "from",
                  "tags",
                  "has_image",
                  "has_link",
                  "has_voice",
                  "files",
                  "linked_memos",
                  "word_count"
                ],
                "description": "A flomo memo returned by the MCP server."
              },
              "description": "flomo memo records."
            },
            {
              "type": "null"
            }
          ]
        },
        "description": "A flomo MCP object whose values are memo arrays, such as `memos` or daily review groups."
      }
    },
    {
      "id": "flomo.memo_search",
      "service": "flomo",
      "name": "memo_search",
      "description": "Search flomo memos through the flomo Max MCP server by keywords, tags, time range, or semantic search options.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "type": "string",
            "description": "Keywords to search for in memo content."
          },
          "tag": {
            "type": "string",
            "description": "Only return memos with this tag."
          },
          "start_date": {
            "type": "string",
            "description": "Only return memos created on or after this date."
          },
          "end_date": {
            "type": "string",
            "description": "Only return memos created on or before this date."
          },
          "from": {
            "type": "string",
            "description": "Only return memos from this source type."
          },
          "has_tag": {
            "anyOf": [
              {
                "type": "boolean",
                "description": "Filter memos by whether they have tags."
              },
              {
                "type": "null"
              }
            ]
          },
          "limit": {
            "type": "integer",
            "description": "Maximum number of memos to return."
          }
        },
        "additionalProperties": false,
        "description": "Input for searching flomo memos through flomo MCP."
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The flomo memo ID."
                  },
                  "content": {
                    "type": "string",
                    "description": "The memo content in Markdown."
                  },
                  "created_at": {
                    "type": "string",
                    "description": "The memo creation time in ISO 8601 format."
                  },
                  "updated_at": {
                    "type": "string",
                    "description": "The memo update time in ISO 8601 format."
                  },
                  "from": {
                    "type": "string",
                    "description": "The memo source type."
                  },
                  "tags": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "One flomo tag."
                        },
                        "description": "Tags attached to the memo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "has_image": {
                    "type": "boolean",
                    "description": "Whether the memo contains an image."
                  },
                  "has_link": {
                    "type": "boolean",
                    "description": "Whether the memo contains a link."
                  },
                  "has_voice": {
                    "type": "boolean",
                    "description": "Whether the memo contains a voice attachment."
                  },
                  "files": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "string",
                              "description": "The file type."
                            },
                            "url": {
                              "type": "string",
                              "description": "A short-lived signed download URL for the file.",
                              "format": "uri"
                            }
                          },
                          "additionalProperties": false,
                          "description": "A file attached to a flomo memo."
                        },
                        "description": "Files attached to the memo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "linked_memos": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "One linked memo ID."
                        },
                        "description": "IDs of memos linked from this memo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "word_count": {
                    "type": "integer",
                    "description": "The original memo content length in characters."
                  },
                  "relevance": {
                    "anyOf": [
                      {
                        "type": "number",
                        "description": "The search relevance score returned by flomo."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false,
                "required": [
                  "id",
                  "created_at",
                  "updated_at",
                  "from",
                  "tags",
                  "has_image",
                  "has_link",
                  "has_voice",
                  "files",
                  "linked_memos",
                  "word_count"
                ],
                "description": "A flomo memo returned by the MCP server."
              },
              "description": "flomo memo records."
            },
            {
              "type": "null"
            }
          ]
        },
        "description": "A flomo MCP object whose values are memo arrays, such as `memos` or daily review groups."
      }
    },
    {
      "id": "flomo.memo_update",
      "service": "flomo",
      "name": "memo_update",
      "description": "Update an existing flomo memo through the flomo Max MCP server. The exact arguments are validated by flomo MCP.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the memo to update."
          },
          "content": {
            "type": "string",
            "description": "The updated memo content."
          },
          "format": {
            "type": "string",
            "description": "The flomo MCP content format, such as `markdown`."
          },
          "local_updated_at": {
            "type": "string",
            "description": "The expected local update timestamp for conflict checks."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input for updating an existing flomo memo through flomo MCP."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The flomo memo ID."
          },
          "content": {
            "type": "string",
            "description": "The memo content in Markdown."
          },
          "created_at": {
            "type": "string",
            "description": "The memo creation time in ISO 8601 format."
          },
          "updated_at": {
            "type": "string",
            "description": "The memo update time in ISO 8601 format."
          },
          "from": {
            "type": "string",
            "description": "The memo source type."
          },
          "tags": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One flomo tag."
                },
                "description": "Tags attached to the memo."
              },
              {
                "type": "null"
              }
            ]
          },
          "has_image": {
            "type": "boolean",
            "description": "Whether the memo contains an image."
          },
          "has_link": {
            "type": "boolean",
            "description": "Whether the memo contains a link."
          },
          "has_voice": {
            "type": "boolean",
            "description": "Whether the memo contains a voice attachment."
          },
          "files": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "The file type."
                    },
                    "url": {
                      "type": "string",
                      "description": "A short-lived signed download URL for the file.",
                      "format": "uri"
                    }
                  },
                  "additionalProperties": false,
                  "description": "A file attached to a flomo memo."
                },
                "description": "Files attached to the memo."
              },
              {
                "type": "null"
              }
            ]
          },
          "linked_memos": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One linked memo ID."
                },
                "description": "IDs of memos linked from this memo."
              },
              {
                "type": "null"
              }
            ]
          },
          "word_count": {
            "type": "integer",
            "description": "The original memo content length in characters."
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "created_at",
          "updated_at",
          "from",
          "tags",
          "has_image",
          "has_link",
          "has_voice",
          "files",
          "linked_memos",
          "word_count"
        ],
        "description": "The memo created by the flomo MCP memo_create tool."
      }
    },
    {
      "id": "flomo.memory_context",
      "service": "flomo",
      "name": "memory_context",
      "description": "Read the generated flomo memory context through the flomo Max MCP server.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input for reading the flomo memory context."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "The returned Markdown content."
          }
        },
        "additionalProperties": false,
        "description": "A Markdown text response returned by flomo MCP."
      }
    },
    {
      "id": "flomo.memory_user",
      "service": "flomo",
      "name": "memory_user",
      "description": "Read the generated flomo memory user profile through the flomo Max MCP server.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input for reading the flomo memory user profile."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "The returned Markdown content."
          }
        },
        "additionalProperties": false,
        "description": "A Markdown text response returned by flomo MCP."
      }
    },
    {
      "id": "flomo.tag_rename",
      "service": "flomo",
      "name": "tag_rename",
      "description": "Rename flomo tags through the flomo Max MCP server and update associated memos.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "old_tag": {
            "type": "string",
            "description": "The existing tag name to rename."
          },
          "new_tag": {
            "type": "string",
            "description": "The new tag name."
          },
          "max_memos": {
            "type": "integer",
            "description": "Maximum number of associated memos to update."
          }
        },
        "additionalProperties": false,
        "required": [
          "old_tag"
        ],
        "description": "Input for renaming a flomo tag."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "old_tag": {
            "type": "string",
            "description": "The previous tag name."
          },
          "new_tag": {
            "type": "string",
            "description": "The new tag name."
          },
          "matched_memos": {
            "type": "integer",
            "description": "The number of matching memos."
          },
          "updated_memos": {
            "type": "integer",
            "description": "The number of updated memos."
          },
          "updated_tags": {
            "type": "integer",
            "description": "The number of updated tag records."
          },
          "notify_settings_job_enqueued": {
            "type": "boolean",
            "description": "Whether a notification-settings update job was enqueued."
          },
          "warnings": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "One warning message."
                },
                "description": "Warnings returned by flomo."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "old_tag",
          "new_tag",
          "matched_memos",
          "updated_memos",
          "updated_tags",
          "notify_settings_job_enqueued"
        ],
        "description": "The result of renaming a flomo tag."
      }
    },
    {
      "id": "flomo.tag_search",
      "service": "flomo",
      "name": "tag_search",
      "description": "Search flomo tags through the flomo Max MCP server.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "type": "string",
            "description": "Keywords to search for in tag names."
          },
          "limit": {
            "type": "integer",
            "description": "Maximum number of tags to return."
          }
        },
        "additionalProperties": false,
        "required": [
          "keywords"
        ],
        "description": "Input for searching flomo tags."
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The tag name."
                  }
                },
                "additionalProperties": false,
                "description": "One flomo tag."
              },
              "description": "flomo tags returned by MCP."
            },
            {
              "type": "null"
            }
          ]
        },
        "description": "A flomo MCP object whose values are tag arrays."
      }
    },
    {
      "id": "flomo.tag_tree",
      "service": "flomo",
      "name": "tag_tree",
      "description": "Fetch the flomo tag tree through the flomo Max MCP server.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "prefix": {
            "type": "string",
            "description": "Only return tags under this prefix."
          },
          "depth": {
            "type": "integer",
            "description": "Maximum tag tree depth to return."
          }
        },
        "additionalProperties": false,
        "description": "Input for fetching a flomo tag tree."
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": true,
        "description": "The flomo tag tree returned by MCP."
      }
    }
  ]
}
