Claude TypeScript MCP Servers
Uma coleção de servidores MCP TypeScript para aprimorar o Claude Desktop como um assistente de desenvolvimento poderoso usando sua assinatura Claude Pro/Max.
Documentação
Claude TypeScript MCP Servers (Para Desenvolvedores de Software)
Uma coleção abrangente de servidores Model Context Protocol (MCP) que transformam o Claude Desktop em um poderoso assistente de desenvolvimento. Este projeto aproveita sua assinatura de taxa fixa do Claude Pro/Max para fornecer capacidades semelhantes ao Cline, mas sem os custos de API por token.
Artigo de explicação em japonês: Cline任せでコード書いてたらAPIクレジットが爆散したのでClaude Desktop + MCPをいい感じにしてサブスクだけで無双する
🚀 Recursos
- Operações de Sistema de Arquivos - Ler, escrever e gerenciar arquivos com restrições de segurança
- Integração com Git - Suporte completo ao fluxo de trabalho Git, incluindo commits, branches e diffs
- API do GitHub - Gerenciar repositórios, issues, PRs e mais com suporte a múltiplas contas
- Pesquisa na Web - Pesquisa com IA usando Sonar e pesquisa tradicional por palavras-chave com Brave
- Automação de Navegador - Mais de 30 ferramentas Puppeteer para scraping e automação web
- Comandos de Shell - Executar comandos de desenvolvimento em um ambiente controlado
- Busca de URLs - Extrair conteúdo de páginas web com conversão de HTML para Markdown
📋 Requisitos
- Node.js v18 ou superior
- Runtime Bun
- Aplicativo Claude Desktop
- Chaves de API para serviços externos (Brave Search, Perplexity/Sonar)
🛠️ Instalação
# Clone the repository
git clone https://github.com/yourusername/claude-ts-mcps.git
cd claude-ts-mcps
# Install dependencies
bun install
⚙️ Configuração
Crie um arquivo de configuração para o Claude Desktop com todos os servidores MCP:
{
"mcpServers": {
"filesystem": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/path/to/claude-ts-mcps/src/filesystem.ts",
"/Users/username"
]
},
"git": {
"command": "/Users/username/.bun/bin/bun",
"args": ["run", "/path/to/claude-ts-mcps/src/git.ts"]
},
"github": {
"command": "/Users/username/.bun/bin/bun",
"args": ["run", "/path/to/claude-ts-mcps/src/github.ts"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_DEFAULT_TOKEN",
"GITHUB_TOKEN_WORK": "YOUR_WORK_ACCOUNT_TOKEN",
"GITHUB_TOKEN_PERSONAL": "YOUR_PERSONAL_ACCOUNT_TOKEN"
}
},
"brave-search": {
"command": "/Users/username/.bun/bin/bun",
"args": ["run", "/path/to/claude-ts-mcps/src/brave-search.ts"],
"env": {
"BRAVE_API_KEY": "YOUR_BRAVE_API_KEY"
}
},
"sonar": {
"command": "/Users/username/.bun/bin/bun",
"args": ["run", "/path/to/claude-ts-mcps/src/sonar.ts"],
"env": {
"PERPLEXITY_API_KEY": "YOUR_PERPLEXITY_API_KEY"
}
},
"puppeteer": {
"command": "/Users/username/.bun/bin/bun",
"args": ["run", "/path/to/claude-ts-mcps/src/puppeteer/index.ts"]
},
"shell": {
"command": "/Users/username/.bun/bin/bun",
"args": ["run", "/path/to/claude-ts-mcps/src/shell.ts"]
},
"fetch": {
"command": "/Users/username/.bun/bin/bun",
"args": ["run", "/path/to/claude-ts-mcps/src/fetch.ts"],
"env": {
"CUSTOM_USER_AGENT": "YOUR_CUSTOM_USER_AGENT",
"IGNORE_ROBOTS_TXT": "false"
}
}
}
}
🔧 Ferramentas Disponíveis
Operações de Sistema de Arquivos (filesystem)
- Segurança: Restrito a diretórios especificados com proteção contra symlinks
- Operações Principais:
- Ler/escrever arquivos com suporte a codificações (utf-8, base64, hex)
- Leitura parcial de arquivos por intervalo de bytes ou linhas
- Mover, copiar, excluir, anexar arquivos
- Criar diretórios e gerenciar árvores de arquivos
- Edição Avançada:
- Substituição de texto com pré-visualização de diff
- Operações baseadas em linhas (substituir, inserir, excluir linhas específicas)
- Substituições com expressões regulares e grupos de captura
- Capacidades de Busca:
- Buscar arquivos por padrões de nome
- Buscar conteúdo dentro de arquivos (texto simples ou regex)
- Suporte a padrões de exclusão
- Operações em Lote:
- Executar múltiplas operações de arquivo com eficiência
- Execução paralela para operações de leitura
- Modo transacional com suporte a rollback
- Gerenciamento de Arquivos:
- Comprimir arquivos (zip, tar, tar.gz)
- Extrair arquivos com controle de sobrescrita
- Monitoramento de Arquivos:
- Verificar alterações em arquivos desde um horário específico
- Suporte a eventos de alteração, renomeação e exclusão
- Casos de Uso: Edição de código, gerenciamento de projetos, análise de arquivos, operações em lote
Integração com Git (git)
- Fluxo de Trabalho Git Completo: init, add, commit, branch, checkout, diff, log
- Gerenciamento de Repositórios: acompanhamento de status, visualização de histórico
- Gerenciamento de Tags:
- Criar tags leves e anotadas
- Listar tags com filtro por padrões
- Exibir detalhes e mensagens de tags
- Excluir tags indesejadas
- Casos de Uso: Controle de versão, revisão de código, histórico de projetos, gerenciamento de releases
API do GitHub (github)
- Gerenciamento de Repositórios: Criar, buscar, gerenciar repositórios
- Issues e PRs: Criar, atualizar, mesclar pull requests e issues
- Gerenciamento de Releases: Criar, atualizar e gerenciar releases
- Suporte a Múltiplas Contas: Alternar entre contas de trabalho/pessoais
- Operações de Arquivos: Criação e atualização direta de arquivos via API
Ferramentas de Pesquisa na Web
Pesquisa com IA (sonar)
- Compreensão de Linguagem Natural: Faça perguntas complexas em linguagem simples
- Respostas Sintetizadas: Obtenha respostas abrangentes com citações
- Múltiplos Modelos:
sonar: Pesquisa rápida de propósito geralsonar-pro: Consultas complexas com contexto de 200ksonar-reasoning: Raciocínio em cadeia de pensamentosonar-deep-research: Modo de pesquisa abrangente
- Casos de Uso: Pesquisa, verificação de fatos, aprendizado sobre tópicos complexos
Pesquisa Tradicional (brave-search)
- Pesquisa na Web: Busca baseada em palavras-chave que retorna múltiplos resultados
- Pesquisa Local: Encontre empresas e serviços
- Casos de Uso: Consultas rápidas, encontrar múltiplas fontes, informações locais
Automação de Navegador (puppeteer)
Nossa ferramenta mais abrangente, com mais de 30 funções organizadas em categorias:
🧭 Navegação e Interação Básica
- Navegar para URLs, tirar screenshots
- Clicar em elementos, preencher formulários, selecionar opções
- Passar o mouse sobre elementos, executar JavaScript
⏳ Operações de Espera
- Aguardar elementos, timeouts, navegação
- Aguardar condições JavaScript personalizadas
⌨️ Operações de Teclado
- Pressionar teclas e combinações de teclas
- Digitar texto com atrasos semelhantes aos humanos
📄 Gerenciamento de Páginas
- Definir tamanho da viewport, voltar/avançar, recarregar
- Gerar PDFs, emular dispositivos
🍪 Cookies e Autenticação
- Definir/obter cookies, autenticação HTTP
ℹ️ Recuperação de Informações
- Obter título da página, URL, conteúdo HTML
- Extrair texto e informações detalhadas de elementos
🖼️ Operações de Frames (Avançado)
- Listar todos os frames, alternar entre frames
- Executar JavaScript em frames específicos
- Buscar elementos em todos os frames
🔧 Diversos
- Adicionar tags de script, limpar campos de entrada
Comandos de Shell (shell)
- Execução Controlada: Restrições de comandos baseadas em lista de permissões
- Ferramentas de Desenvolvimento: npm, yarn, bun, git, node, python, tsc
- Segurança: Previne operações perigosas, restrições de diretório
- Recursos: Análise automática de strings de comando, limites de tamanho de saída, controle de timeout
- Modo de Streaming: Agora habilitado por padrão! Captura a saída de processos de longa duração
- Retorna automaticamente saída parcial após timeout (padrão: 10s) ou limite de buffer (100KB)
- Comandos normais são concluídos normalmente; afeta apenas processos de longa duração
- Processos são encerrados automaticamente após o timeout de streaming (padrão seguro)
- Mantenha processos em execução com
killOnStreamingTimeout: false - Perfeito para: servidores de desenvolvimento, watchers de build, comandos interativos
- Desative com
streaming: falsese necessário
- Casos de Uso: Gerenciamento de pacotes, processos de build, execução de scripts, monitoramento de servidores
Busca de Conteúdo de URLs (fetch)
- Extração de Conteúdo: Converter HTML em Markdown limpo
- Personalização: User agents personalizados, tratamento de robots.txt
- Casos de Uso: Leitura de documentação, análise de conteúdo
💡 Exemplos de Uso
Fluxo de Trabalho de Desenvolvimento
You: "Create a new React component for user authentication"
Claude: *Uses filesystem to create component file, npm to install dependencies*
You: "Find examples of OAuth implementation on GitHub"
Claude: *Uses GitHub search and fetch to find and analyze implementations*
You: "Test the login form on our staging site"
Claude: *Uses Puppeteer to navigate, fill forms, and verify functionality*
Pesquisa e Análise
You: "What are the latest best practices for Next.js 14 App Router?"
Claude: *Uses Sonar for comprehensive research with citations*
You: "Compare our package.json with similar projects"
Claude: *Uses GitHub to find similar projects, filesystem to read local files*
Automação
You: "Extract all product prices from this e-commerce site"
Claude: *Uses Puppeteer to navigate pages, extract data, and compile results*
You: "Monitor our GitHub issues and create a summary"
Claude: *Uses GitHub API to fetch issues, analyze patterns, generate report*
🔒 Considerações de Segurança
- Sistema de Arquivos: Restrito apenas aos diretórios especificados
- Shell: Comandos devem estar na lista de permissões
- Credenciais: Armazene chaves de API com segurança, use variáveis de ambiente
- GitHub: Use permissões mínimas de token
- Fetch: Respeita robots.txt por padrão
🏗️ Estrutura do Projeto
claude-ts-mcps/
├── src/
│ ├── filesystem.ts # File operations
│ ├── git.ts # Git integration
│ ├── github.ts # GitHub API (main entry)
│ ├── github/ # GitHub implementation
│ ├── brave-search.ts # Brave search API
│ ├── sonar.ts # Perplexity Sonar API
│ ├── sonar/ # Sonar types and utilities
│ ├── puppeteer/ # Browser automation
│ │ ├── index.ts # Main entry point
│ │ ├── tools/ # Tool definitions
│ │ ├── handlers/ # Implementation
│ │ └── state.ts # State management
│ ├── shell.ts # Shell commands (entry)
│ ├── shell/ # Shell implementation
│ │ ├── index.ts # Main logic
│ │ ├── executor.ts # Command execution
│ │ ├── types.ts # Type definitions
│ │ └── ... # Other modules
│ └── fetch.ts # URL fetching
└── package.json
🚧 Desenvolvimento
Para adicionar novas funcionalidades:
- Crie um novo arquivo TypeScript em
src/ - Implemente o servidor MCP usando
@modelcontextprotocol/sdk - Adicione definições de ferramentas com descrições claras
- Inclua tratamento de erros e validação adequados
- Atualize o arquivo de configuração
Testando Suas Alterações
# Run a specific MCP server directly
bun run src/your-new-server.ts
# Test with Claude Desktop
# Update your config and restart Claude
Verificação de Tipos
Este projeto usa TypeScript para segurança de tipos. Vários comandos de verificação de tipos estão disponíveis:
# Standard type check (all strict checks enabled)
bun run type-check
# Type check with file watching for development
bun run type-check:watch
# Type check without unused variable warnings (good for development)
bun run check:loose
# Strict type check (same as type-check)
bun run check:strict
Problemas de Tipos Atuais
O projeto é funcional, mas possui alguns problemas de tipos que estão sendo resolvidos:
- Algumas APIs do Puppeteer precisam de imports de tipos adequados
- Alguns casos de valores potencialmente indefinidos precisam de proteções
- Variáveis não utilizadas em alguns arquivos (podem ser ignoradas durante o desenvolvimento)
Isso não afeta a funcionalidade em tempo de execução, mas será limpo ao longo do tempo.
Formatação de Código
Este projeto usa Prettier para formatação consistente de código. Os seguintes comandos estão disponíveis:
# Format all files
bun run format
# Check formatting without making changes
bun run format:check
# Format only source files (src directory)
bun run format:src
# Check formatting of source files only
bun run format:check:src
# Run both formatting check and type check
bun run lint
# Fix formatting and run type check
bun run lint:fix
Configuração do Prettier
O projeto usa as seguintes configurações do Prettier (.prettierrc):
- Largura de Impressão: 100 caracteres (80 para JSON/Markdown)
- Largura da Tabulação: 2 espaços
- Ponto e Vírgula: Sempre
- Aspas: Aspas duplas
- Vírgulas Finais: Todas (ES5+)
- Parênteses em Arrow: Sempre incluir parênteses
Formatação ao Salvar
Para a melhor experiência de desenvolvimento, configure seu editor para formatar ao salvar:
VS Code: Adicione a .vscode/settings.json:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
Outros Editores: Consulte a documentação do seu editor para integração com Prettier.
📚 Recursos
- Documentação do Model Context Protocol
- Referência do SDK MCP
- Anthropic Claude
- API Brave Search
- API Perplexity