Claude TypeScript MCP Servers
# Claude TypeScript MCP Servers (For Software Developers)
A comprehensive collection of Model Context Protocol (MCP) servers that
transform Claude Desktop into a powerful development assistant. This project
leverages your flat-rate Claude Pro/Max subscription to provide capabilities
similar to Cline, but without the per-token API costs.
日本語による解説記事:
[Cline任せでコード書いてたらAPIクレジットが爆散したのでClaude Desktop + MCPをいい感じにしてサブスクだけで無双する](https://zenn.dev/ukkz/articles/c8726063edd2cd)
## 🚀 Features
- **File System Operations** - Read, write, and manage files with security
restrictions
- **Git Integration** - Full Git workflow support including commits, branches,
and diffs
- **GitHub API** - Manage repositories, issues, PRs, and more with multi-account
support
- **Web Search** - AI-powered search with Sonar and traditional keyword search
with Brave
- **Browser Automation** - 30+ Puppeteer tools for web scraping and automation
- **Shell Commands** - Execute development commands in a controlled environment
- **URL Fetching** - Extract content from web pages with HTML-to-Markdown
conversion
## 📋 Requirements
- [Node.js](https://nodejs.org/) v18 or higher
- [Bun](https://bun.sh/) runtime
- [Claude Desktop](https://anthropic.com/claude) application
- API keys for external services (Brave Search, Perplexity/Sonar)
## 🛠️ Installation
```bash
# Clone the repository
git clone https://github.com/yourusername/claude-ts-mcps.git
cd claude-ts-mcps
# Install dependencies
bun install
```
## ⚙️ Configuration
Create a configuration file for Claude Desktop with all the MCP servers:
```json
{
"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"
}
}
}
}
```
## 🔧 Available Tools
### File System Operations (`filesystem`)
- **Security**: Restricted to specified directories with symlink protection
- **Core Operations**:
- Read/write files with encoding support (utf-8, base64, hex)
- Partial file reading by byte range or line range
- Move, copy, delete, append files
- Create directories and manage file trees
- **Advanced Editing**:
- Text replacement with diff preview
- Line-based operations (replace, insert, delete specific lines)
- Regular expression replacements with capture groups
- **Search Capabilities**:
- Search files by name patterns
- Search content within files (plain text or regex)
- Exclude patterns support
- **Batch Operations**:
- Execute multiple file operations efficiently
- Parallel execution for read operations
- Transactional mode with rollback support
- **Archive Management**:
- Compress files (zip, tar, tar.gz)
- Extract archives with overwrite control
- **File Monitoring**:
- Check for file changes since specific time
- Support for change, rename, and delete events
- **Use Cases**: Code editing, project management, file analysis, bulk
operations
### Git Integration (`git`)
- **Full Git Workflow**: init, add, commit, branch, checkout, diff, log
- **Repository Management**: status tracking, history viewing
- **Tag Management**:
- Create lightweight and annotated tags
- List tags with pattern filtering
- Show tag details and messages
- Delete unwanted tags
- **Use Cases**: Version control, code review, project history, release management
### GitHub API (`github`)
- **Repository Management**: Create, search, manage repositories
- **Issues & PRs**: Create, update, merge pull requests and issues
- **Release Management**: Create, update, and manage releases
- **Multi-Account Support**: Switch between work/personal accounts
- **File Operations**: Direct file creation and updates via API
### Web Search Tools
#### AI-Powered Search (`sonar`)
- **Natural Language Understanding**: Ask complex questions in plain language
- **Synthesized Answers**: Get comprehensive responses with citations
- **Multiple Models**:
- `sonar`: Fast general-purpose search
- `sonar-pro`: Complex queries with 200k context
- `sonar-reasoning`: Chain-of-thought reasoning
- `sonar-deep-research`: Comprehensive research mode
- **Use Cases**: Research, fact-checking, learning about complex topics
#### Traditional Search (`brave-search`)
- **Web Search**: Keyword-based search returning multiple results
- **Local Search**: Find businesses and services
- **Use Cases**: Quick lookups, finding multiple sources, local information
### Browser Automation (`puppeteer`)
Our most comprehensive tool with 30+ functions organized into categories:
#### 🧭 Navigation & Basic Interaction
- Navigate to URLs, take screenshots
- Click elements, fill forms, select options
- Hover over elements, execute JavaScript
#### ⏳ Wait Operations
- Wait for elements, timeouts, navigation
- Wait for custom JavaScript conditions
#### ⌨️ Keyboard Operations
- Press keys and key combinations
- Type text with human-like delays
#### 📄 Page Management
- Set viewport size, go back/forward, reload
- Generate PDFs, emulate devices
#### 🍪 Cookies & Authentication
- Set/get cookies, HTTP authentication
#### ℹ️ Information Retrieval
- Get page title, URL, HTML content
- Extract text and detailed element information
#### 🖼️ Frame Operations (Advanced)
- List all frames, switch between frames
- Execute JavaScript in specific frames
- Search elements across all frames
#### 🔧 Miscellaneous
- Add script tags, clear input fields
### Shell Commands (`shell`)
- **Controlled Execution**: Allowlist-based command restrictions
- **Development Tools**: npm, yarn, bun, git, node, python, tsc
- **Security**: Prevents dangerous operations, directory restrictions
- **Features**: Auto-parsing of command strings, output size limits, timeout
control
- **Streaming Mode**: Now enabled by default! Captures output from long-running
processes
- Automatically returns partial output after timeout (default: 10s) or buffer
limit (100KB)
- Normal commands complete as usual; only affects long-running processes
- Processes are automatically terminated after streaming timeout (safe
default)
- Keep processes running with `killOnStreamingTimeout: false`
- Perfect for: development servers, build watchers, interactive commands
- Disable with `streaming: false` if needed
- **Use Cases**: Package management, build processes, script execution, server
monitoring
### URL Content Fetching (`fetch`)
- **Content Extraction**: Convert HTML to clean Markdown
- **Customization**: Custom user agents, robots.txt handling
- **Use Cases**: Documentation reading, content analysis
## 💡 Usage Examples
### Development Workflow
```
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*
```
### Research and Analysis
```
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*
```
### Automation
```
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*
```
## 🔒 Security Considerations
- **File System**: Restricted to specified directories only
- **Shell**: Commands must be in the allowlist
- **Credentials**: Store API keys securely, use environment variables
- **GitHub**: Use minimal token permissions
- **Fetch**: Respects robots.txt by default
## 🏗️ Project Structure
```
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
```
## 🚧 Development
To add new functionality:
1. Create a new TypeScript file in `src/`
2. Implement the MCP server using `@modelcontextprotocol/sdk`
3. Add tool definitions with clear descriptions
4. Include proper error handling and validation
5. Update the configuration file
### Testing Your Changes
```bash
# Run a specific MCP server directly
bun run src/your-new-server.ts
# Test with Claude Desktop
# Update your config and restart Claude
```
### Type Checking
This project uses TypeScript for type safety. Several type checking commands are
available:
```bash
# 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
```
#### Current Type Issues
The project is functional but has some type issues that are being addressed:
- Some Puppeteer APIs need proper type imports
- A few cases of potential undefined values need guards
- Unused variables in some files (can be ignored during development)
These don't affect runtime functionality but will be cleaned up over time.
### Code Formatting
This project uses Prettier for consistent code formatting. The following
commands are available:
```bash
# 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
```
#### Prettier Configuration
The project uses the following Prettier settings (`.prettierrc`):
- **Print Width**: 100 characters (80 for JSON/Markdown)
- **Tab Width**: 2 spaces
- **Semicolons**: Always
- **Quotes**: Double quotes
- **Trailing Commas**: All (ES5+)
- **Arrow Parens**: Always include parentheses
#### Formatting on Save
For the best development experience, configure your editor to format on save:
**VS Code**: Add to `.vscode/settings.json`:
```json
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
```
**Other Editors**: Check your editor's documentation for Prettier integration.
## 📚 Resources
- [Model Context Protocol Documentation](https://modelcontextprotocol.io/)
- [MCP SDK Reference](https://modelcontextprotocol.io/sdks)
- [Anthropic Claude](https://www.anthropic.com/claude)
- [Brave Search API](https://api.search.brave.com/app/documentation)
- [Perplexity API](https://docs.perplexity.ai/)
## 📄 License
[MIT License](LICENSE)
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: brave_local_search is focused on location-based queries for businesses, services, and attractions, while brave_web_search handles general web searches for current events, news, and broader information. There is no overlap in their intended use cases, making it easy for an agent to choose the correct tool based on the query type.
Both tools follow a consistent naming pattern with the prefix 'brave_' followed by a descriptive term ('local_search' and 'web_search'), using snake_case throughout. This uniformity makes the tool set predictable and easy to understand, with no deviations in style or structure.
With only two tools, the server feels thin for a general-purpose search functionality, as it might lack coverage for specific domains or advanced search capabilities. While the tools are well-defined, a broader scope could benefit from additional tools to handle more nuanced search types or integrations, making the count borderline for the apparent purpose.
The tool set covers the core search needs with local and web search, providing a good foundation for real-time information retrieval. However, there are minor gaps, such as the absence of tools for specialized searches (e.g., image, video, or academic searches) or advanced filtering options, which agents might need to work around for more complex queries.