Google Blogger · Capability

Google Blogger API

Google Blogger API. 16 operations. Lead operation: Get a blog by URL. Self-contained Naftiko capability covering one Google Blogger business surface.

Run with Naftiko Google BloggerGoogle Blogger API

What You Can Do

GET
Getblogbyurl — Get a blog by URL
/v1/blogs/byurl
GET
Getblog — Get a blog
/v1/blogs/{blogid}
GET
Listpages — List pages
/v1/blogs/{blogid}/pages
POST
Insertpage — Create a page
/v1/blogs/{blogid}/pages
GET
Listposts — List posts
/v1/blogs/{blogid}/posts
POST
Insertpost — Create a post
/v1/blogs/{blogid}/posts
GET
Searchposts — Search posts
/v1/blogs/{blogid}/posts/search
GET
Getpost — Get a post
/v1/blogs/{blogid}/posts/{postid}
PUT
Updatepost — Update a post
/v1/blogs/{blogid}/posts/{postid}
PATCH
Patchpost — Patch a post
/v1/blogs/{blogid}/posts/{postid}
DELETE
Deletepost — Delete a post
/v1/blogs/{blogid}/posts/{postid}
GET
Listcomments — List comments
/v1/blogs/{blogid}/posts/{postid}/comments
GET
Getcomment — Get a comment
/v1/blogs/{blogid}/posts/{postid}/comments/{commentid}
DELETE
Deletecomment — Delete a comment
/v1/blogs/{blogid}/posts/{postid}/comments/{commentid}
GET
Getuser — Get a user
/v1/users/{userid}
GET
Listblogsbyuser — List blogs by user
/v1/users/{userid}/blogs

MCP Tools

get-blog-url

Get a blog by URL

read-only idempotent
get-blog

Get a blog

read-only idempotent
list-pages

List pages

read-only idempotent
create-page

Create a page

list-posts

List posts

read-only idempotent
create-post

Create a post

search-posts

Search posts

read-only idempotent
get-post

Get a post

read-only idempotent
update-post

Update a post

idempotent
patch-post

Patch a post

idempotent
delete-post

Delete a post

idempotent
list-comments

List comments

read-only idempotent
get-comment

Get a comment

read-only idempotent
delete-comment

Delete a comment

idempotent
get-user

Get a user

read-only idempotent
list-blogs-user

List blogs by user

read-only idempotent

Capability Spec

blogger.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google Blogger API
  description: 'Google Blogger API. 16 operations. Lead operation: Get a blog by URL. Self-contained Naftiko capability covering
    one Google Blogger business surface.'
  tags:
  - Google Blogger
  - Google Blogger API
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GOOGLE_BLOGGER_API_KEY: GOOGLE_BLOGGER_API_KEY
capability:
  consumes:
  - type: http
    namespace: blogger
    baseUri: https://www.googleapis.com/blogger/v3
    description: Google Blogger API business capability. Self-contained, no shared references.
    resources:
    - name: blogs-byurl
      path: /blogs/byurl
      operations:
      - name: getblogbyurl
        method: GET
        description: Get a blog by URL
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: url
          in: query
          type: string
          required: true
    - name: blogs-blogId
      path: /blogs/{blogId}
      operations:
      - name: getblog
        method: GET
        description: Get a blog
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
    - name: blogs-blogId-pages
      path: /blogs/{blogId}/pages
      operations:
      - name: listpages
        method: GET
        description: List pages
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
      - name: insertpage
        method: POST
        description: Create a page
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: blogs-blogId-posts
      path: /blogs/{blogId}/posts
      operations:
      - name: listposts
        method: GET
        description: List posts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
        - name: maxResults
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
        - name: labels
          in: query
          type: string
        - name: startDate
          in: query
          type: string
        - name: endDate
          in: query
          type: string
        - name: status
          in: query
          type: string
        - name: orderBy
          in: query
          type: string
      - name: insertpost
        method: POST
        description: Create a post
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
        - name: isDraft
          in: query
          type: boolean
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: blogs-blogId-posts-search
      path: /blogs/{blogId}/posts/search
      operations:
      - name: searchposts
        method: GET
        description: Search posts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
        - name: q
          in: query
          type: string
          required: true
    - name: blogs-blogId-posts-postId
      path: /blogs/{blogId}/posts/{postId}
      operations:
      - name: getpost
        method: GET
        description: Get a post
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
        - name: postId
          in: path
          type: string
          required: true
      - name: updatepost
        method: PUT
        description: Update a post
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
        - name: postId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: patchpost
        method: PATCH
        description: Patch a post
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
        - name: postId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: deletepost
        method: DELETE
        description: Delete a post
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
        - name: postId
          in: path
          type: string
          required: true
    - name: blogs-blogId-posts-postId-comments
      path: /blogs/{blogId}/posts/{postId}/comments
      operations:
      - name: listcomments
        method: GET
        description: List comments
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
        - name: postId
          in: path
          type: string
          required: true
        - name: maxResults
          in: query
          type: integer
        - name: pageToken
          in: query
          type: string
    - name: blogs-blogId-posts-postId-comments-commentId
      path: /blogs/{blogId}/posts/{postId}/comments/{commentId}
      operations:
      - name: getcomment
        method: GET
        description: Get a comment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
        - name: postId
          in: path
          type: string
          required: true
        - name: commentId
          in: path
          type: string
          required: true
      - name: deletecomment
        method: DELETE
        description: Delete a comment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: blogId
          in: path
          type: string
          required: true
        - name: postId
          in: path
          type: string
          required: true
        - name: commentId
          in: path
          type: string
          required: true
    - name: users-userId
      path: /users/{userId}
      operations:
      - name: getuser
        method: GET
        description: Get a user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: userId
          in: path
          type: string
          required: true
    - name: users-userId-blogs
      path: /users/{userId}/blogs
      operations:
      - name: listblogsbyuser
        method: GET
        description: List blogs by user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: userId
          in: path
          type: string
          required: true
    authentication:
      type: bearer
      token: '{{env.GOOGLE_BLOGGER_API_KEY}}'
  exposes:
  - type: rest
    namespace: blogger-rest
    port: 8080
    description: REST adapter for Google Blogger API. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/blogs/byurl
      name: blogs-byurl
      description: REST surface for blogs-byurl.
      operations:
      - method: GET
        name: getblogbyurl
        description: Get a blog by URL
        call: blogger.getblogbyurl
        with:
          url: rest.url
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/blogs/{blogid}
      name: blogs-blogid
      description: REST surface for blogs-blogId.
      operations:
      - method: GET
        name: getblog
        description: Get a blog
        call: blogger.getblog
        with:
          blogId: rest.blogId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/blogs/{blogid}/pages
      name: blogs-blogid-pages
      description: REST surface for blogs-blogId-pages.
      operations:
      - method: GET
        name: listpages
        description: List pages
        call: blogger.listpages
        with:
          blogId: rest.blogId
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: insertpage
        description: Create a page
        call: blogger.insertpage
        with:
          blogId: rest.blogId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/blogs/{blogid}/posts
      name: blogs-blogid-posts
      description: REST surface for blogs-blogId-posts.
      operations:
      - method: GET
        name: listposts
        description: List posts
        call: blogger.listposts
        with:
          blogId: rest.blogId
          maxResults: rest.maxResults
          pageToken: rest.pageToken
          labels: rest.labels
          startDate: rest.startDate
          endDate: rest.endDate
          status: rest.status
          orderBy: rest.orderBy
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: insertpost
        description: Create a post
        call: blogger.insertpost
        with:
          blogId: rest.blogId
          isDraft: rest.isDraft
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/blogs/{blogid}/posts/search
      name: blogs-blogid-posts-search
      description: REST surface for blogs-blogId-posts-search.
      operations:
      - method: GET
        name: searchposts
        description: Search posts
        call: blogger.searchposts
        with:
          blogId: rest.blogId
          q: rest.q
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/blogs/{blogid}/posts/{postid}
      name: blogs-blogid-posts-postid
      description: REST surface for blogs-blogId-posts-postId.
      operations:
      - method: GET
        name: getpost
        description: Get a post
        call: blogger.getpost
        with:
          blogId: rest.blogId
          postId: rest.postId
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatepost
        description: Update a post
        call: blogger.updatepost
        with:
          blogId: rest.blogId
          postId: rest.postId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: patchpost
        description: Patch a post
        call: blogger.patchpost
        with:
          blogId: rest.blogId
          postId: rest.postId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletepost
        description: Delete a post
        call: blogger.deletepost
        with:
          blogId: rest.blogId
          postId: rest.postId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/blogs/{blogid}/posts/{postid}/comments
      name: blogs-blogid-posts-postid-comments
      description: REST surface for blogs-blogId-posts-postId-comments.
      operations:
      - method: GET
        name: listcomments
        description: List comments
        call: blogger.listcomments
        with:
          blogId: rest.blogId
          postId: rest.postId
          maxResults: rest.maxResults
          pageToken: rest.pageToken
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/blogs/{blogid}/posts/{postid}/comments/{commentid}
      name: blogs-blogid-posts-postid-comments-commentid
      description: REST surface for blogs-blogId-posts-postId-comments-commentId.
      operations:
      - method: GET
        name: getcomment
        description: Get a comment
        call: blogger.getcomment
        with:
          blogId: rest.blogId
          postId: rest.postId
          commentId: rest.commentId
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletecomment
        description: Delete a comment
        call: blogger.deletecomment
        with:
          blogId: rest.blogId
          postId: rest.postId
          commentId: rest.commentId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/{userid}
      name: users-userid
      description: REST surface for users-userId.
      operations:
      - method: GET
        name: getuser
        description: Get a user
        call: blogger.getuser
        with:
          userId: rest.userId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/users/{userid}/blogs
      name: users-userid-blogs
      description: REST surface for users-userId-blogs.
      operations:
      - method: GET
        name: listblogsbyuser
        description: List blogs by user
        call: blogger.listblogsbyuser
        with:
          userId: rest.userId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: blogger-mcp
    port: 9090
    transport: http
    description: MCP adapter for Google Blogger API. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: get-blog-url
      description: Get a blog by URL
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: blogger.getblogbyurl
      with:
        url: tools.url
      outputParameters:
      - type: object
        mapping: $.
    - name: get-blog
      description: Get a blog
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: blogger.getblog
      with:
        blogId: tools.blogId
      outputParameters:
      - type: object
        mapping: $.
    - name: list-pages
      description: List pages
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: blogger.listpages
      with:
        blogId: tools.blogId
      outputParameters:
      - type: object
        mapping: $.
    - name: create-page
      description: Create a page
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: blogger.insertpage
      with:
        blogId: tools.blogId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-posts
      description: List posts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: blogger.listposts
      with:
        blogId: tools.blogId
        maxResults: tools.maxResults
        pageToken: tools.pageToken
        labels: tools.labels
        startDate: tools.startDate
        endDate: tools.endDate
        status: tools.status
        orderBy: tools.orderBy
      outputParameters:
      - type: object
        mapping: $.
    - name: create-post
      description: Create a post
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: blogger.insertpost
      with:
        blogId: tools.blogId
        isDraft: tools.isDraft
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: search-posts
      description: Search posts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: blogger.searchposts
      with:
        blogId: tools.blogId
        q: tools.q
      outputParameters:
      - type: object
        mapping: $.
    - name: get-post
      description: Get a post
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: blogger.getpost
      with:
        blogId: tools.blogId
        postId: tools.postId
      outputParameters:
      - type: object
        mapping: $.
    - name: update-post
      description: Update a post
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: blogger.updatepost
      with:
        blogId: tools.blogId
        postId: tools.postId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: patch-post
      description: Patch a post
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: blogger.patchpost
      with:
        blogId: tools.blogId
        postId: tools.postId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-post
      description: Delete a post
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: blogger.deletepost
      with:
        blogId: tools.blogId
        postId: tools.postId
      outputParameters:
      - type: object
        mapping: $.
    - name: list-comments
      description: List comments
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: blogger.listcomments
      with:
        blogId: tools.blogId
        postId: tools.postId
        maxResults: tools.maxResults
        pageToken: tools.pageToken
      outputParameters:
      - type: object
        mapping: $.
    - name: get-comment
      description: Get a comment
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: blogger.getcomment
      with:
        blogId: tools.blogId
        postId: tools.postId
        commentId: tools.commentId
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-comment
      description: Delete a comment
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: blogger.deletecomment
      with:
        blogId: tools.blogId
        postId: tools.postId
        commentId: tools.commentId
      outputParameters:
      - type: object
        mapping: $.
    - name: get-user
      description: Get a user
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: blogger.getuser
      with:
        userId: tools.userId
      outputParameters:
      - type: object
        mapping: $.
    - name: list-blogs-user
      description: List blogs by user
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: blogger.listblogsbyuser
      with:
        userId: tools.userId
      outputParameters:
      - type: object
        mapping: $.