Reddit

Interaja com o Reddit postando comentários e pesquisando por posts.

Documentação

Reddit MCP Server

Este servidor MCP permite que Clientes interajam com o Reddit usando autenticação OAuth2, possibilitando acesso somente leitura para pesquisar postagens em subreddits.

Recursos

  • Pesquisar postagens: Pesquise postagens em subreddits específicos com várias opções de ordenação (relevance, hot, top, new, comments)
  • Autenticação OAuth2: Autenticação segura usando o fluxo de credenciais de cliente OAuth2 do Reddit
  • Acesso somente leitura: Acesso seguro e somente leitura aos dados do Reddit sem exigir credenciais de usuário

Início Rápido

  1. Crie um aplicativo Reddit para obter suas credenciais de API:

    • Vá para https://www.reddit.com/prefs/apps
    • Clique em "Create App" ou "Create Another App"
    • Escolha "script" como tipo de aplicativo
    • Anote seu client ID e client secret
  2. Adicione esta configuração ao seu arquivo de configuração do Claude Desktop:

Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "reddit-mcp": {
      "command": "npx",
      "args": ["-y", "@enisze/reddit-mcp"],
      "env": {
        "REDDIT_CLIENT_ID": "your_client_id_here",
        "REDDIT_CLIENT_SECRET": "your_client_secret_here",
        "REDDIT_USER_AGENT": "reddit-mcp-server/1.0.0"
      }
    }
  }
}
  1. Reinicie o Claude Desktop

Pronto! O Claude agora pode pesquisar no Reddit através da ferramenta search_posts.

Exemplo de Uso

Experimente pedir ao Claude:

  • "Você pode pesquisar postagens sobre 'inteligência artificial' no subreddit MachineLearning?"
  • "Pesquise as 10 principais postagens sobre 'Claude AI' no subreddit artificial"
  • "Encontre discussões recentes sobre 'melhores práticas de programação' no subreddit programming"

Variáveis de Ambiente

  • REDDIT_CLIENT_ID: O client ID do seu aplicativo Reddit
  • REDDIT_CLIENT_SECRET: O client secret do seu aplicativo Reddit
  • REDDIT_USER_AGENT: String de user agent (opcional, padrão "reddit-mcp-server/1.0.0")

Desenvolvimento

Se você quiser contribuir ou executar a partir do código-fonte:

  1. Clone o repositório:
git clone <repository-url>
cd reddit-mcp
  1. Instale as dependências:
npm install
  1. Compile:
npm run build
  1. Execute:
npm start
  1. Teste:
# Run unit tests (no API credentials needed)
npm test

# Run API integration tests (requires Reddit credentials)
npm run test:api

Executando Avaliações

Para testar a funcionalidade do servidor MCP do Reddit:

npm run eval

Isso executará uma série de avaliações para garantir que todas as ferramentas estejam funcionando corretamente.

Executando Evals

O pacote de evals carrega um cliente MCP que então executa o arquivo index.ts, portanto não há necessidade de recompilar entre os testes. Você pode carregar variáveis de ambiente prefixando o comando npx. A documentação completa pode ser encontrada aqui.

OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/index.ts

Suporte a Docker

Você também pode executar este servidor MCP usando Docker:

# Build the Docker image
docker build -t reddit-mcp .

# Run the container with environment variables
docker run -e REDDIT_CLIENT_ID=your_client_id \
           -e REDDIT_CLIENT_SECRET=your_client_secret \
           reddit-mcp

Documentação da API

search_posts

Pesquisa postagens em um subreddit do Reddit usando autenticação OAuth2.

Parâmetros:

  • query (string, obrigatório): Consulta de pesquisa
  • subreddit (string, obrigatório): O nome do subreddit (sem o prefixo r/)
  • count (number, opcional): Número de postagens a retornar (1-100, padrão: 25)
  • sort (string, opcional): Ordem de classificação - 'relevance', 'hot', 'top', 'new', 'comments' (padrão: 'relevance')

Solução de Problemas

Problemas de Autenticação

  • Certifique-se de que seu client ID e client secret do Reddit estão corretos
  • Garanta que seu aplicativo Reddit esteja configurado como tipo "script"
  • Verifique se sua string de user agent é descritiva e única

Limite de Taxa

  • O servidor implementa limite de taxa básico (2 segundos entre solicitações)
  • O Reddit tem seus próprios limites de taxa - se você os atingir, aguarde antes de tentar novamente

Erros Comuns

  • "Subreddit not found": Verifique a grafia do nome do subreddit
  • "OAuth2 authentication failed": Verifique as credenciais do seu aplicativo Reddit
  • "Invalid credentials": Certifique-se de que seu client ID e secret estão corretos

Testes

O projeto inclui testes abrangentes para verificar a funcionalidade:

Testes Unitários

Execute testes básicos de funcionalidade sem exigir credenciais da API do Reddit:

npm test

Esses testes verificam:

  • Formatação de respostas
  • Definições de tipos
  • Manipulação de estruturas de dados
  • Lógica de tratamento de erros

Testes de Integração com API

Teste a funcionalidade real da API do Reddit (requer credenciais):

npm run test:api

Configure suas credenciais em .env primeiro (copie de .env.example).

Esses testes verificam:

  • Fluxo de autenticação OAuth2
  • Funcionalidade de pesquisa
  • Tratamento de respostas da API
  • Tratamento de erros para vários cenários

Consulte TEST.md para instruções detalhadas de teste.

Licença

MIT