Skip to content
VS Code

content distribution for VS Code

io.github.automatelab-tech/content-distribution

Publish content to DEV.to, Hashnode, GitHub Discussions, Reddit, Bluesky, LinkedIn, and Medium.

client:VS Code transport:stdio runtime:npm

Install content distribution in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "dev-to-api-key",
      "description": "DEV_TO_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "hashnode-token",
      "description": "HASHNODE_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "hashnode-publication-id",
      "description": "HASHNODE_PUBLICATION_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "github-token",
      "description": "GITHUB_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "github-discussion-repo",
      "description": "GITHUB_DISCUSSION_REPO",
      "password": true
    },
    {
      "type": "promptString",
      "id": "reddit-client-id",
      "description": "REDDIT_CLIENT_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "reddit-client-secret",
      "description": "REDDIT_CLIENT_SECRET",
      "password": true
    },
    {
      "type": "promptString",
      "id": "reddit-username",
      "description": "REDDIT_USERNAME",
      "password": true
    },
    {
      "type": "promptString",
      "id": "reddit-password",
      "description": "REDDIT_PASSWORD",
      "password": true
    },
    {
      "type": "promptString",
      "id": "bluesky-identifier",
      "description": "BLUESKY_IDENTIFIER",
      "password": true
    },
    {
      "type": "promptString",
      "id": "bluesky-password",
      "description": "BLUESKY_PASSWORD",
      "password": true
    },
    {
      "type": "promptString",
      "id": "distribution-backend",
      "description": "DISTRIBUTION_BACKEND",
      "password": true
    },
    {
      "type": "promptString",
      "id": "distribution-backend-dir",
      "description": "DISTRIBUTION_BACKEND_DIR",
      "password": true
    }
  ],
  "servers": {
    "content-distribution": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@automatelab/content-distribution-mcp"
      ],
      "env": {
        "DEV_TO_API_KEY": "${input:dev-to-api-key}",
        "HASHNODE_TOKEN": "${input:hashnode-token}",
        "HASHNODE_PUBLICATION_ID": "${input:hashnode-publication-id}",
        "GITHUB_TOKEN": "${input:github-token}",
        "GITHUB_DISCUSSION_REPO": "${input:github-discussion-repo}",
        "REDDIT_CLIENT_ID": "${input:reddit-client-id}",
        "REDDIT_CLIENT_SECRET": "${input:reddit-client-secret}",
        "REDDIT_USERNAME": "${input:reddit-username}",
        "REDDIT_PASSWORD": "${input:reddit-password}",
        "BLUESKY_IDENTIFIER": "${input:bluesky-identifier}",
        "BLUESKY_PASSWORD": "${input:bluesky-password}",
        "DISTRIBUTION_BACKEND": "${input:distribution-backend}",
        "DISTRIBUTION_BACKEND_DIR": "${input:distribution-backend-dir}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

content distribution in other clients