Skip to main content
Glama
uptrixbr

mcp-reddit-publisher

by uptrixbr
README.md
# mcp-reddit-publisher

Servidor MCP para publicar no Reddit com segurança, feito para ser instalado do jeito mais simples possível em Claude, Codex, OpenCode e qualquer cliente MCP via stdio.

Repo: https://github.com/uptrixbr/mcp-reddit-publisher
Pacote npm: mcp-reddit-publisher

## Instalação rápida

Você NÃO precisa clonar o projeto nem rodar build manual.

Use direto via npm/npx:

```bash
npx -y mcp-reddit-publisher --help
```

Para gerar uma configuração pronta para o seu cliente:

```bash
npx -y mcp-reddit-publisher setup claude \
  --client-id "SEU_REDDIT_CLIENT_ID" \
  --client-secret "SEU_REDDIT_CLIENT_SECRET" \
  --refresh-token "SEU_REDDIT_REFRESH_TOKEN" \
  --user-agent "mcp-reddit-publisher/0.1.0 by u/SEU_USUARIO" \
  --allowed "SideProject,saas,startups" \
  --dry-run true
```

Troque `claude` por `codex` ou `opencode`:

```bash
npx -y mcp-reddit-publisher setup codex ...
npx -y mcp-reddit-publisher setup opencode ...
```

O comando imprime o bloco de configuração MCP já pronto para copiar e colar.

Fallback sem npm registry, direto do GitHub:

```bash
npx -y github:uptrixbr/mcp-reddit-publisher --help
```

## Credenciais Reddit

Você precisa criar um app Reddit uma vez:

1. Acesse https://www.reddit.com/prefs/apps
2. Clique em `create another app`.
3. Escolha o tipo `script` para uso pessoal/local.
4. Copie:
   - `client_id`
   - `client_secret`
5. Configure um user agent descritivo, exemplo:

```text
mcp-reddit-publisher/0.1.0 by u/seu_usuario
```

Autenticação recomendada:

```text
REDDIT_REFRESH_TOKEN
```

Alternativa para app do tipo script:

```text
REDDIT_USERNAME + REDDIT_PASSWORD
```

## Claude Desktop / Claude Code

Gere o config:

```bash
npx -y mcp-reddit-publisher setup claude \
  --client-id "..." \
  --client-secret "..." \
  --refresh-token "..." \
  --user-agent "mcp-reddit-publisher/0.1.0 by u/SEU_USUARIO" \
  --allowed "SideProject,saas" \
  --dry-run true
```

Saída esperada:

```json
{
  "mcpServers": {
    "reddit-publisher": {
      "command": "npx",
      "args": ["-y", "mcp-reddit-publisher"],
      "env": {
        "REDDIT_CLIENT_ID": "...",
        "REDDIT_CLIENT_SECRET": "...",
        "REDDIT_REFRESH_TOKEN": "...",
        "REDDIT_USER_AGENT": "mcp-reddit-publisher/0.1.0 by u/SEU_USUARIO",
        "REDDIT_DRY_RUN": "true"
      }
    }
  }
}
```

Cole no arquivo de configuração MCP do Claude e reinicie o Claude.

## Codex

Gere o config:

```bash
npx -y mcp-reddit-publisher setup codex \
  --client-id "..." \
  --client-secret "..." \
  --refresh-token "..." \
  --user-agent "mcp-reddit-publisher/0.1.0 by u/SEU_USUARIO" \
  --dry-run true
```

Saída esperada em TOML:

```toml
[mcp_servers.reddit-publisher]
command = "npx"
args = ["-y", "mcp-reddit-publisher"]
env.REDDIT_CLIENT_ID = "..."
env.REDDIT_CLIENT_SECRET = "..."
env.REDDIT_REFRESH_TOKEN = "..."
env.REDDIT_USER_AGENT = "mcp-reddit-publisher/0.1.0 by u/SEU_USUARIO"
env.REDDIT_DRY_RUN = "true"
```

Adicione ao `config.toml` do Codex e reinicie o Codex.

## OpenCode

Gere o config:

```bash
npx -y mcp-reddit-publisher setup opencode \
  --client-id "..." \
  --client-secret "..." \
  --refresh-token "..." \
  --user-agent "mcp-reddit-publisher/0.1.0 by u/SEU_USUARIO" \
  --dry-run true
```

Saída esperada:

```json
{
  "mcp": {
    "reddit-publisher": {
      "type": "local",
      "command": "npx -y mcp-reddit-publisher",
      "enabled": true,
      "environment": {
        "REDDIT_CLIENT_ID": "...",
        "REDDIT_CLIENT_SECRET": "...",
        "REDDIT_REFRESH_TOKEN": "...",
        "REDDIT_USER_AGENT": "mcp-reddit-publisher/0.1.0 by u/SEU_USUARIO",
        "REDDIT_DRY_RUN": "true"
      }
    }
  }
}
```

Adicione ao arquivo de configuração do OpenCode e reinicie o OpenCode.

## OpenAI Agents / outros clientes MCP

Use o servidor stdio:

```json
{
  "command": "npx",
  "args": ["-y", "mcp-reddit-publisher"],
  "env": {
    "REDDIT_CLIENT_ID": "...",
    "REDDIT_CLIENT_SECRET": "...",
    "REDDIT_REFRESH_TOKEN": "...",
    "REDDIT_USER_AGENT": "mcp-reddit-publisher/0.1.0 by u/SEU_USUARIO",
    "REDDIT_DRY_RUN": "true"
  }
}
```

## Ferramentas MCP disponíveis

- `health`: valida a configuração sem expor secrets.
- `search_subreddits`: busca comunidades por termo.
- `get_subreddit_rules`: lê regras do subreddit e aponta riscos.
- `preview_text_post`: valida e mostra o post sem publicar.
- `submit_text_post`: publica o post, respeitando dry-run, allowlist, checagem de regras e rate limit.

## Segurança por padrão

Por padrão, nada é publicado:

```text
REDDIT_DRY_RUN=true
```

Recomendações:

```text
REDDIT_ALLOWED_SUBREDDITS=SideProject,saas,startups
REDDIT_REQUIRE_RULE_CHECK=true
REDDIT_MIN_SECONDS_BETWEEN_POSTS=300
```

Só mude para publicação real depois de testar:

```text
REDDIT_DRY_RUN=false
```

## Exemplo de prompt depois de instalar

```text
Use o reddit-publisher para buscar subreddits sobre SaaS, verificar as regras de r/SideProject e preparar um post pedindo feedback. Faça apenas preview, não publique.
```

Depois, se estiver tudo certo e `REDDIT_DRY_RUN=false`:

```text
Publique em r/SideProject somente se as regras permitirem e me retorne o permalink.
```

## Desenvolvimento local

```bash
git clone https://github.com/uptrixbr/mcp-reddit-publisher.git
cd mcp-reddit-publisher
npm install
npm run typecheck
npm test
npm run build
node scripts/smoke.mjs
```

## Licença

Uso permitido para uso pessoal, avaliação, integrações e uso interno.

Não é permitido vender, redistribuir comercialmente, republicar como seu, remover créditos, fazer white-label ou oferecer como produto/SaaS/serviço próprio sem autorização por escrito.

Crédito obrigatório: MCP Reddit Publisher by Samuel Novaes / UptrixBR.

Veja `LICENSE`.

TDQS

B3.4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: fetching rules, checking health, previewing posts, searching subreddits, and submitting. No overlap.

Naming Consistency4/5

Most tools follow verb_noun snake_case (get_subreddit_rules, preview_text_post, etc.), but 'health' deviates as a single noun. Nearly consistent.

Tool Count5/5

Five tools cover the core publishing workflow: rules, health, preview, search, submit. Not excessive or insufficient.

Completeness4/5

Covers the main lifecycle: find subreddit, check rules, preview, submit. Minor gaps like post status or deletion are acceptable for a focused publisher.

Maintenance

ActivityInactive
ResponsivenessNo issues