Claude TypeScript MCP Servers
This server provides web and local search capabilities using the Brave Search API.
Web Search: Retrieve current information for news, technical details, product specifications, and other topics where fresh data is crucial.
Local Search: Find real-time data about local businesses, services, attractions, and locations.
Query Parameters: Configure searches with options for result count (1-20), query strings (max 400 chars for web search), and pagination offset (max 9, default 0) for web searches.
Provides web search and local search functionality using the Brave Search API to retrieve information from the web and find information about local businesses, services, and attractions.
Enables Git operations including viewing repository status, showing differences, committing changes, managing staging, viewing logs, creating branches, and initializing repositories.
Supports running Node.js development commands through the Shell MCP server for JavaScript/TypeScript development tasks.
Allows running npm package management commands through the Shell MCP server for JavaScript/TypeScript project management.
Enables execution of Yarn package management commands through the Shell MCP server for JavaScript/TypeScript dependency management.
Referenced as a platform where an explanatory article about the project is published in Japanese.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Claude TypeScript MCP Serversshow me the git status for the current project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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をいい感じにしてサブスクだけで無双する
🚀 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
Related MCP server: MCP Tools
📋 Requirements
Node.js v18 or higher
Bun runtime
Claude Desktop application
API keys for external services (Brave Search, Perplexity/Sonar)
🛠️ Installation
# 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:
{
"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 searchsonar-pro: Complex queries with 200k contextsonar-reasoning: Chain-of-thought reasoningsonar-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: falsePerfect for: development servers, build watchers, interactive commands
Disable with
streaming: falseif 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:
Create a new TypeScript file in
src/Implement the MCP server using
@modelcontextprotocol/sdkAdd tool definitions with clear descriptions
Include proper error handling and validation
Update the configuration file
Testing Your Changes
# Run a specific MCP server directly
bun run src/your-new-server.ts
# Test with Claude Desktop
# Update your config and restart ClaudeType Checking
This project uses TypeScript for type safety. Several type checking commands are available:
# 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:strictCurrent 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:
# 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:fixPrettier 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:
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}Other Editors: Check your editor's documentation for Prettier integration.
📚 Resources
📄 License
Available Tools
2 toolsbrave_local_searchA
Finds information about local businesses, services, attractions, and locations with real-time data. Use this tool proactively whenever a query mentions specific places or location-based information. This is especially useful for questions about restaurants, shops, tourist attractions, local services, or any place-based inquiry. You should automatically search when users ask about places 'near' somewhere, business hours, local reviews, addresses, or location details that would benefit from current information. This provides much more accurate and up-to-date information than your built-in knowledge.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results (1-20, default 5) | |
| query | Yes | Local search query (e.g. 'pizza near Central Park') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key traits: it's a search tool (implying read-only, non-destructive), uses real-time data, and is proactive/automatic for certain queries. However, it doesn't mention rate limits, authentication needs, or error conditions, leaving some behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose. However, it includes some redundancy (e.g., repeating location-based examples) and could be slightly more streamlined without losing clarity. Every sentence adds value, but it's not maximally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is largely complete. It covers purpose, usage, and behavioral context well. The main gap is the lack of output format details, which is significant since there's no output schema, but the description compensates somewhat by emphasizing the type of information returned (real-time data about places).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any parameter-specific details beyond what's in the schema (e.g., it doesn't explain 'query' format beyond the schema's example or 'count' constraints beyond the schema's range). This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('finds information') and resources ('local businesses, services, attractions, locations'), and explicitly distinguishes it from its sibling tool by emphasizing its focus on real-time local data versus the broader 'brave_web_search'. It provides concrete examples of what it searches for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('whenever a query mentions specific places or location-based information') and provides detailed examples of use cases (e.g., questions about restaurants, 'near' queries, business hours). It also contrasts with alternatives by noting it provides 'more accurate and up-to-date information than your built-in knowledge', though it doesn't explicitly name the sibling tool as an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
brave_web_searchA
Retrieves up-to-date information from the web using Brave Search. You should proactively use this tool whenever you need current information beyond your knowledge cutoff, when answering questions about recent events, when asked about specific facts you're uncertain about, or when providing comprehensive answers. Search automatically when you suspect information might be outdated or when greater detail would improve your response. Use this for news, technical information, current events, product details, or any topic where fresh, accurate data would enhance your answer quality.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of results (1-20, default 10) | |
| offset | No | Pagination offset (max 9, default 0) | |
| query | Yes | Search query (max 400 chars, 50 words) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the tool retrieves 'up-to-date information' and should be used for 'fresh, accurate data,' which implies real-time capabilities but doesn't detail rate limits, authentication needs, or error handling. It adds some context but lacks comprehensive behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose. However, it includes repetitive phrases like 'when you need current information' and 'when greater detail would improve your response,' which could be more concise without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (web search with three parameters) and no output schema, the description is fairly complete. It covers purpose, usage guidelines, and context, but lacks details on output format or error handling, which would enhance completeness for an agent invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all parameters (query, count, offset) with their descriptions. The tool description doesn't add any additional meaning or examples beyond what the schema provides, such as search strategy or query formatting tips, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieves up-to-date information from the web using Brave Search.' It specifies the verb ('retrieves'), resource ('information from the web'), and distinguishes it from the sibling tool 'brave_local_search' by emphasizing web-based, current information rather than local data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool, listing specific scenarios such as needing current information beyond knowledge cutoff, answering questions about recent events, or when greater detail would improve responses. It also implicitly distinguishes from alternatives by focusing on web search, though it doesn't explicitly name when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
The Telnyx MCP server is an official implementation of the Model Context Protocol that enables AI clients (like Claude Desktop, Cursor, and OpenAI Agents) to interact with Telnyx's telephony, messaging, and AI assistant APIs. It provides comprehensive capabilities including making and managing phone calls, sending SMS/MMS messages, purchasing and configuring phone numbers, creating AI assistants with custom instructions, managing cloud storage buckets, scraping and embedding website content, and handling integration secrets. The server exists as both a local implementation and a remotely hosted version, allowing developers to integrate real-world communication infrastructure directly into AI applications.
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA comprehensive suite of Model Context Protocol servers designed to extend AI agent Claude's capabilities with integrations for knowledge management, reasoning, advanced search, news access, and workspace tools.5
- AlicenseNot gradedqualityDmaintenanceA custom Model Context Protocol server that gives Claude Desktop and other LLMs access to file system operations and command execution capabilities through standardized tool interfaces.23Apache 2.0
- FlicenseNot gradedqualityDmaintenanceIntegration project for Model Context Protocol (MCP) servers with Claude Desktop App, enabling filesystem operations, development support, and file management through natural language.
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables Claude Desktop to perform file operations like reading, writing, listing directories, and managing files through natural language commands.MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ukkz/claude-ts-mcps'
If you have feedback or need assistance with the MCP directory API, please join our Discord server