{
  "service": "ghost",
  "displayName": "Ghost",
  "categories": [
    "Productivity",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Content API Key",
      "placeholder": "ghost_content_api_key",
      "description": "Ghost Content API key used as the key query parameter. Create or view it in Ghost Admin under Settings > Advanced > Integrations: https://ghost.org/docs/content-api/.",
      "extraFields": [
        {
          "key": "siteUrl",
          "label": "Site URL",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "https://example.ghost.io",
          "description": "The public URL of your Ghost site. Copy it from the site URL shown in Ghost Admin or your publication settings."
        }
      ]
    }
  ],
  "homepageUrl": "https://ghost.org",
  "actions": [
    {
      "id": "ghost.get_author",
      "service": "ghost",
      "name": "get_author",
      "description": "Get one public Ghost author by ID or slug.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Ghost resource ID."
          },
          "slug": {
            "type": "string",
            "minLength": 1,
            "description": "The Ghost resource slug."
          },
          "include": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost include expression, such as authors,tags or count.posts."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost field list to return."
          },
          "formats": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost formats to return, such as html,plaintext."
          }
        },
        "additionalProperties": false,
        "description": "Input for reading one Ghost content resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "author": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Ghost Content API object."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Ghost author read response."
      }
    },
    {
      "id": "ghost.get_page",
      "service": "ghost",
      "name": "get_page",
      "description": "Get one published Ghost page by ID or slug.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Ghost resource ID."
          },
          "slug": {
            "type": "string",
            "minLength": 1,
            "description": "The Ghost resource slug."
          },
          "include": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost include expression, such as authors,tags or count.posts."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost field list to return."
          },
          "formats": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost formats to return, such as html,plaintext."
          }
        },
        "additionalProperties": false,
        "description": "Input for reading one Ghost content resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Ghost Content API object."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Ghost page read response."
      }
    },
    {
      "id": "ghost.get_post",
      "service": "ghost",
      "name": "get_post",
      "description": "Get one published Ghost post by ID or slug.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Ghost resource ID."
          },
          "slug": {
            "type": "string",
            "minLength": 1,
            "description": "The Ghost resource slug."
          },
          "include": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost include expression, such as authors,tags or count.posts."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost field list to return."
          },
          "formats": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost formats to return, such as html,plaintext."
          }
        },
        "additionalProperties": false,
        "description": "Input for reading one Ghost content resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "post": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Ghost Content API object."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Ghost post read response."
      }
    },
    {
      "id": "ghost.get_tag",
      "service": "ghost",
      "name": "get_tag",
      "description": "Get one public Ghost tag by ID or slug.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Ghost resource ID."
          },
          "slug": {
            "type": "string",
            "minLength": 1,
            "description": "The Ghost resource slug."
          },
          "include": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost include expression, such as authors,tags or count.posts."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost field list to return."
          },
          "formats": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost formats to return, such as html,plaintext."
          }
        },
        "additionalProperties": false,
        "description": "Input for reading one Ghost content resource."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tag": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Ghost Content API object."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Ghost tag read response."
      }
    },
    {
      "id": "ghost.list_authors",
      "service": "ghost",
      "name": "list_authors",
      "description": "List public authors from the connected Ghost site.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of resources to request from Ghost."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The one-based page number to request from Ghost."
          },
          "include": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost include expression, such as authors,tags or count.posts."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost field list to return."
          },
          "formats": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost formats to return, such as html,plaintext."
          },
          "filter": {
            "type": "string",
            "minLength": 1,
            "description": "Ghost Content API filter expression."
          },
          "order": {
            "type": "string",
            "minLength": 1,
            "description": "Ghost Content API order expression."
          }
        },
        "additionalProperties": false,
        "description": "Input for browsing Ghost content resources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "authors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw Ghost Content API object."
            },
            "description": "The Ghost authors returned by the Content API."
          },
          "meta": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The Ghost Content API pagination metadata."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Ghost authors browse response."
      }
    },
    {
      "id": "ghost.list_pages",
      "service": "ghost",
      "name": "list_pages",
      "description": "List published pages from the connected Ghost site.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of resources to request from Ghost."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The one-based page number to request from Ghost."
          },
          "include": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost include expression, such as authors,tags or count.posts."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost field list to return."
          },
          "formats": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost formats to return, such as html,plaintext."
          },
          "filter": {
            "type": "string",
            "minLength": 1,
            "description": "Ghost Content API filter expression."
          },
          "order": {
            "type": "string",
            "minLength": 1,
            "description": "Ghost Content API order expression."
          }
        },
        "additionalProperties": false,
        "description": "Input for browsing Ghost content resources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "pages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw Ghost Content API object."
            },
            "description": "The Ghost pages returned by the Content API."
          },
          "meta": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The Ghost Content API pagination metadata."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Ghost pages browse response."
      }
    },
    {
      "id": "ghost.list_posts",
      "service": "ghost",
      "name": "list_posts",
      "description": "List published posts from the connected Ghost site.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of resources to request from Ghost."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The one-based page number to request from Ghost."
          },
          "include": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost include expression, such as authors,tags or count.posts."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost field list to return."
          },
          "formats": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost formats to return, such as html,plaintext."
          },
          "filter": {
            "type": "string",
            "minLength": 1,
            "description": "Ghost Content API filter expression."
          },
          "order": {
            "type": "string",
            "minLength": 1,
            "description": "Ghost Content API order expression."
          }
        },
        "additionalProperties": false,
        "description": "Input for browsing Ghost content resources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw Ghost Content API object."
            },
            "description": "The Ghost posts returned by the Content API."
          },
          "meta": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The Ghost Content API pagination metadata."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Ghost posts browse response."
      }
    },
    {
      "id": "ghost.list_tags",
      "service": "ghost",
      "name": "list_tags",
      "description": "List public tags from the connected Ghost site.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of resources to request from Ghost."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The one-based page number to request from Ghost."
          },
          "include": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost include expression, such as authors,tags or count.posts."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost field list to return."
          },
          "formats": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Ghost formats to return, such as html,plaintext."
          },
          "filter": {
            "type": "string",
            "minLength": 1,
            "description": "Ghost Content API filter expression."
          },
          "order": {
            "type": "string",
            "minLength": 1,
            "description": "Ghost Content API order expression."
          }
        },
        "additionalProperties": false,
        "description": "Input for browsing Ghost content resources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw Ghost Content API object."
            },
            "description": "The Ghost tags returned by the Content API."
          },
          "meta": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The Ghost Content API pagination metadata."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Ghost tags browse response."
      }
    },
    {
      "id": "ghost.read_settings",
      "service": "ghost",
      "name": "read_settings",
      "description": "Read public settings for the connected Ghost site.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to read Ghost settings."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "settings": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Ghost settings object."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Ghost settings response."
      }
    }
  ]
}
