Publishes content to DEV.to, Hashnode, GitHub Discussions, Reddit, Bluesky and other platforms, adapting it per channel and tracking state to avoid duplicates.
Setup
Choose your client, copy the config, then fill in any required environment variables.
Local
claude mcp add content-distribution --env DEV_TO_API_KEY='<DEV_TO_API_KEY>' --env HASHNODE_TOKEN='<HASHNODE_TOKEN>' --env GITHUB_TOKEN='<GITHUB_TOKEN>' --env REDDIT_CLIENT_ID='<REDDIT_CLIENT_ID>' --env REDDIT_CLIENT_SECRET='<REDDIT_CLIENT_SECRET>' --env REDDIT_PASSWORD='<REDDIT_PASSWORD>' --env BLUESKY_PASSWORD='<BLUESKY_PASSWORD>' -- npx -y @automatelab/content-distribution-mcp~/.codex/config.toml
[mcp_servers.content-distribution]
command = "npx"
args = ["-y", "@automatelab/content-distribution-mcp"]
env = { DEV_TO_API_KEY = "<DEV_TO_API_KEY>", HASHNODE_TOKEN = "<HASHNODE_TOKEN>", GITHUB_TOKEN = "<GITHUB_TOKEN>", REDDIT_CLIENT_ID = "<REDDIT_CLIENT_ID>", REDDIT_CLIENT_SECRET = "<REDDIT_CLIENT_SECRET>", REDDIT_PASSWORD = "<REDDIT_PASSWORD>", BLUESKY_PASSWORD = "<BLUESKY_PASSWORD>" }
# codex mcp add content-distribution --env DEV_TO_API_KEY='<DEV_TO_API_KEY>' --env HASHNODE_TOKEN='<HASHNODE_TOKEN>' --env GITHUB_TOKEN='<GITHUB_TOKEN>' --env REDDIT_CLIENT_ID='<REDDIT_CLIENT_ID>' --env REDDIT_CLIENT_SECRET='<REDDIT_CLIENT_SECRET>' --env REDDIT_PASSWORD='<REDDIT_PASSWORD>' --env BLUESKY_PASSWORD='<BLUESKY_PASSWORD>' -- npx -y @automatelab/content-distribution-mcp~/.cursor/mcp.json
{
"mcpServers": {
"content-distribution": {
"command": "npx",
"args": [
"-y",
"@automatelab/content-distribution-mcp"
],
"env": {
"DEV_TO_API_KEY": "<DEV_TO_API_KEY>",
"HASHNODE_TOKEN": "<HASHNODE_TOKEN>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"REDDIT_CLIENT_ID": "<REDDIT_CLIENT_ID>",
"REDDIT_CLIENT_SECRET": "<REDDIT_CLIENT_SECRET>",
"REDDIT_PASSWORD": "<REDDIT_PASSWORD>",
"BLUESKY_PASSWORD": "<BLUESKY_PASSWORD>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"content-distribution": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@automatelab/content-distribution-mcp"
],
"env": {
"DEV_TO_API_KEY": "<DEV_TO_API_KEY>",
"HASHNODE_TOKEN": "<HASHNODE_TOKEN>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"REDDIT_CLIENT_ID": "<REDDIT_CLIENT_ID>",
"REDDIT_CLIENT_SECRET": "<REDDIT_CLIENT_SECRET>",
"REDDIT_PASSWORD": "<REDDIT_PASSWORD>",
"BLUESKY_PASSWORD": "<BLUESKY_PASSWORD>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"content-distribution": {
"command": "npx",
"args": [
"-y",
"@automatelab/content-distribution-mcp"
],
"env": {
"DEV_TO_API_KEY": "<DEV_TO_API_KEY>",
"HASHNODE_TOKEN": "<HASHNODE_TOKEN>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"REDDIT_CLIENT_ID": "<REDDIT_CLIENT_ID>",
"REDDIT_CLIENT_SECRET": "<REDDIT_CLIENT_SECRET>",
"REDDIT_PASSWORD": "<REDDIT_PASSWORD>",
"BLUESKY_PASSWORD": "<BLUESKY_PASSWORD>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"content-distribution": {
"command": "npx",
"args": [
"-y",
"@automatelab/content-distribution-mcp"
],
"env": {
"DEV_TO_API_KEY": "<DEV_TO_API_KEY>",
"HASHNODE_TOKEN": "<HASHNODE_TOKEN>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"REDDIT_CLIENT_ID": "<REDDIT_CLIENT_ID>",
"REDDIT_CLIENT_SECRET": "<REDDIT_CLIENT_SECRET>",
"REDDIT_PASSWORD": "<REDDIT_PASSWORD>",
"BLUESKY_PASSWORD": "<BLUESKY_PASSWORD>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"content-distribution": {
"command": "npx",
"args": [
"-y",
"@automatelab/content-distribution-mcp"
],
"env": {
"DEV_TO_API_KEY": "<DEV_TO_API_KEY>",
"HASHNODE_TOKEN": "<HASHNODE_TOKEN>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"REDDIT_CLIENT_ID": "<REDDIT_CLIENT_ID>",
"REDDIT_CLIENT_SECRET": "<REDDIT_CLIENT_SECRET>",
"REDDIT_PASSWORD": "<REDDIT_PASSWORD>",
"BLUESKY_PASSWORD": "<BLUESKY_PASSWORD>"
}
}
}
}Remote
claude mcp add --transport http content-distribution https://content-distribution-mcp--automatelab.run.tools~/.codex/config.toml
[mcp_servers.content-distribution]
url = "https://content-distribution-mcp--automatelab.run.tools"
# codex mcp add content-distribution --url https://content-distribution-mcp--automatelab.run.tools~/.cursor/mcp.json
{
"mcpServers": {
"content-distribution": {
"url": "https://content-distribution-mcp--automatelab.run.tools"
}
}
}.vscode/mcp.json
{
"servers": {
"content-distribution": {
"type": "http",
"url": "https://content-distribution-mcp--automatelab.run.tools"
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"content-distribution": {
"httpUrl": "https://content-distribution-mcp--automatelab.run.tools"
}
}
}claude_desktop_config.json · Customize › Connectors › Add custom connector
{
"mcpServers": {
"content-distribution": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://content-distribution-mcp--automatelab.run.tools"
]
}
}
}.trae/mcp.json
{
"mcpServers": {
"content-distribution": {
"url": "https://content-distribution-mcp--automatelab.run.tools"
}
}
}Environment variables
DEV_TO_API_KEYHASHNODE_TOKENGITHUB_TOKENREDDIT_CLIENT_IDREDDIT_CLIENT_SECRETREDDIT_PASSWORDBLUESKY_PASSWORD
Replace the placeholders with your own credentials and keep them out of version control.