Reddit · Capability

Reddit Community Engagement

Unified capability for reading and engaging with Reddit community content. Combines the Reddit Data API for browsing posts, searching communities, and accessing user profiles. Used by community managers, content researchers, and social listening applications to monitor discussions, analyze sentiment, and engage with Reddit audiences.

Run with Naftiko CommunitiesContentRedditSocial MediaSocial Listening

What You Can Do

GET
Get me — Get authenticated user identity
/v1/me
GET
Get subreddit — Get subreddit information and stats
/v1/subreddits/{subreddit}
GET
Get hot posts — Get trending hot posts
/v1/subreddits/{subreddit}/hot
GET
Get new posts — Get newest posts
/v1/subreddits/{subreddit}/new
GET
Search — Search Reddit content
/v1/search
POST
Submit post — Submit a new post to a subreddit
/v1/posts

MCP Tools

get-current-user

Get the identity of the currently authenticated Reddit user

read-only
get-subreddit-info

Get metadata, description, subscriber count, and stats for a subreddit

read-only
get-hot-posts

Get the currently trending hot posts from a subreddit

read-only
get-new-posts

Get the most recently submitted posts from a subreddit

read-only
search-reddit

Search Reddit for posts and discussions matching a query

read-only
submit-post

Submit a new text post to a subreddit

APIs Used

reddit-data

Capability Spec

community-engagement.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Reddit Community Engagement"
  description: >-
    Unified capability for reading and engaging with Reddit community content.
    Combines the Reddit Data API for browsing posts, searching communities,
    and accessing user profiles. Used by community managers, content researchers,
    and social listening applications to monitor discussions, analyze sentiment,
    and engage with Reddit audiences.
  tags:
    - Communities
    - Content
    - Reddit
    - Social Media
    - Social Listening
  created: "2026-05-02"
  modified: "2026-05-02"

binds:
  - namespace: env
    keys:
      REDDIT_ACCESS_TOKEN: REDDIT_ACCESS_TOKEN

capability:
  consumes:
    - import: reddit-data
      location: ./shared/data-api.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: reddit-community-rest
      description: "Unified REST API for Reddit community content access and engagement."
      resources:
        - path: /v1/me
          name: me
          description: "Current user identity"
          operations:
            - method: GET
              name: get-me
              description: "Get authenticated user identity"
              call: "reddit-data.get-me"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/subreddits/{subreddit}
          name: subreddit
          description: "Subreddit community information"
          operations:
            - method: GET
              name: get-subreddit
              description: "Get subreddit information and stats"
              call: "reddit-data.get-subreddit-info"
              with:
                subreddit: "rest.subreddit"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/subreddits/{subreddit}/hot
          name: hot-posts
          description: "Hot posts in a subreddit"
          operations:
            - method: GET
              name: get-hot-posts
              description: "Get trending hot posts"
              call: "reddit-data.get-hot-listings"
              with:
                subreddit: "rest.subreddit"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/subreddits/{subreddit}/new
          name: new-posts
          description: "New posts in a subreddit"
          operations:
            - method: GET
              name: get-new-posts
              description: "Get newest posts"
              call: "reddit-data.get-new-listings"
              with:
                subreddit: "rest.subreddit"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/search
          name: search
          description: "Reddit search"
          operations:
            - method: GET
              name: search
              description: "Search Reddit content"
              call: "reddit-data.search-submissions"
              with:
                q: "rest.q"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/posts
          name: posts
          description: "Post submission"
          operations:
            - method: POST
              name: submit-post
              description: "Submit a new post to a subreddit"
              call: "reddit-data.submit-post"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9080
      namespace: reddit-community-mcp
      transport: http
      description: "MCP server for AI-assisted Reddit community monitoring and engagement."
      tools:
        - name: get-current-user
          description: "Get the identity of the currently authenticated Reddit user"
          hints:
            readOnly: true
            openWorld: false
          call: "reddit-data.get-me"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-subreddit-info
          description: "Get metadata, description, subscriber count, and stats for a subreddit"
          hints:
            readOnly: true
            openWorld: true
          call: "reddit-data.get-subreddit-info"
          with:
            subreddit: "tools.subreddit"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-hot-posts
          description: "Get the currently trending hot posts from a subreddit"
          hints:
            readOnly: true
            openWorld: true
          call: "reddit-data.get-hot-listings"
          with:
            subreddit: "tools.subreddit"
            limit: "tools.limit"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-new-posts
          description: "Get the most recently submitted posts from a subreddit"
          hints:
            readOnly: true
            openWorld: true
          call: "reddit-data.get-new-listings"
          with:
            subreddit: "tools.subreddit"
            limit: "tools.limit"
          outputParameters:
            - type: object
              mapping: "$."
        - name: search-reddit
          description: "Search Reddit for posts and discussions matching a query"
          hints:
            readOnly: true
            openWorld: true
          call: "reddit-data.search-submissions"
          with:
            q: "tools.query"
            sort: "tools.sort"
            limit: "tools.limit"
          outputParameters:
            - type: object
              mapping: "$."
        - name: submit-post
          description: "Submit a new text post to a subreddit"
          hints:
            readOnly: false
            openWorld: false
          call: "reddit-data.submit-post"
          with:
            subreddit: "tools.subreddit"
            title: "tools.title"
            text: "tools.text"
          outputParameters:
            - type: object
              mapping: "$."