Claude TypeScript MCP Servers
クロード TypeScript MCP サーバー
LLMを開発支援に利用するソフトウェア開発者向けのモデルコンテキストプロトコル(MCP)サーバーのコレクションです。多くの開発者はVSCodeとの直接統合が可能なためClineを好みますが、従量課金制のAPIを使用しているため、使用量が多すぎるとコストがかさみます。このプロジェクトでは、定額制のClaude Proサブスクリプションを活用し、Claude DesktopアプリケーションをカスタムMCPサーバーに接続することで、変動費なしで同等の開発支援機能を提供します。
日本語による解説記事: Cline委託でコードを書いてたらAPIクレジットが爆散したのでClaude Desktop + MCPをいい感じにしてサブスクだけで無双する
概要
このプロジェクトでは、Claude Desktop で使用してソフトウェア開発機能を強化できるいくつかの MCP サーバーを実装します。
Brave Search : Brave Search APIを使用してウェブ検索とローカル検索機能を提供します
ファイルシステム: セキュリティ制限付きでファイルシステム操作を可能にする
Git : リポジトリを管理するためのGit機能を提供します
GitHub : GitHub リポジトリ、問題、プルリクエストなどとのやり取りを可能にします
シェル: 制御された環境でシェルコマンドを実行できます
Puppeteer : Puppeteerを通じてブラウザの自動化とWebインタラクションを可能にします
Fetch : URL からコンテンツを取得し、HTML を Markdown に変換して読みやすさを向上させます
Related MCP server: MCP Tools
要件
Node.js (v18+)
JavaScript/TypeScriptランタイムとしてのBun
クロードデスクトップアプリケーション
インストール
リポジトリをクローンします。
git clone https://github.com/yourusername/claude-ts-mcps.git cd claude-ts-mcps依存関係をインストールします:
bun install
構成
Claude DesktopでこれらのMCPサーバーを使用するには、Claudeがサーバーへの接続方法を指示する設定ファイルを作成する必要があります。設定例を以下に示します。
{
"mcpServers": {
"brave-search": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/brave-search.ts"
],
"env": {
"BRAVE_API_KEY": "YOUR_BRAVE_API_KEY"
}
},
"filesystem": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/filesystem.ts",
"/Users/username"
]
},
"git": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/git.ts"
]
},
"github": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/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"
}
},
"shell": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/shell.ts"
]
},
"puppeteer": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/puppeteer.ts"
]
},
"fetch": {
"command": "/Users/username/.bun/bin/bun",
"args": [
"run",
"/Users/username/Documents/claude-ts-mcps/src/fetch.ts"
],
"env": {
"CUSTOM_USER_AGENT": "YOUR_CUSTOM_USER_AGENT", // Optional
"IGNORE_ROBOTS_TXT": "false" // Optional, set to true to ignore robots.txt
}
}
}
}この構成をclaude_desktop_config.jsonとして保存し、Claude Desktop がそれを使用するように構成します。
複数の GitHub アカウントのサポート
GitHub MCPサーバーは複数のGitHubアカウントの切り替えをサポートしています。環境変数を設定することで、複数のアカウントプロファイルを設定できます。
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_DEFAULT_TOKEN", // Default account (backward compatible)
"GITHUB_TOKEN_WORK": "YOUR_WORK_ACCOUNT_TOKEN", // Work account profile
"GITHUB_TOKEN_PERSONAL": "YOUR_PERSONAL_ACCOUNT_TOKEN" // Personal account profile
}リクエストで特定のアカウント プロファイルを使用するには、任意の GitHub API 呼び出しにaccount_profileパラメータを追加します。
{
"owner": "username",
"repo": "repo-name",
"path": "path/to/file.txt",
"account_profile": "work" // Will use the GITHUB_TOKEN_WORK environment variable
}account_profileが指定されていない場合は、デフォルトのGITHUB_PERSONAL_ACCESS_TOKENが使用されます。
フェッチサーバー構成
Fetch MCP サーバーは、環境変数を通じてカスタマイズ オプションを提供します。
"env": {
"CUSTOM_USER_AGENT": "YOUR_CUSTOM_USER_AGENT", // Optional: Specify a custom User-Agent header
"IGNORE_ROBOTS_TXT": "false" // Optional: Set to "true" to bypass robots.txt rules
}CUSTOM_USER_AGENT: HTTP リクエストに特定の User-Agent 文字列を定義できます。これは、特定の Web サイトがクライアント ID に基づいてアクセスを制限する場合に役立ちます。IGNORE_ROBOTS_TXT: デフォルト(false)では、フェッチサーバーはウェブサイトがウェブクローラーを制御するために設定したrobots.txtルールを尊重します。これを「true」に設定するとこの制限は無効になりますが、責任を持って使用してください。
使用法
Claudeデスクトップを起動
設定ファイルをロードする
クロードはこれらのMCPサーバーが提供する追加ツールにアクセスできるようになります。
発達
各 MCP サーバーは、 srcディレクトリ内のスタンドアロン TypeScript ファイルとして実装されます。
src/brave-search.ts: Brave Search API 統合src/filesystem.ts: ファイルシステム操作src/git.ts: Git操作src/github.ts: リポジトリ管理、問題、PR などのための GitHub API 統合。src/shell.ts: シェルコマンドの実行src/puppeteer.ts: ブラウザの自動化とウェブインタラクションsrc/fetch.ts: URL コンテンツの取得と HTML から Markdown への変換
GitHub MCP サーバーはモジュール構造になっています。
src/github/common/: 共通ユーティリティ、インターフェース、型src/github/operations/: さまざまな GitHub API 操作の実装src/github/tools/: MCPサーバーのツール定義
新しい機能を追加するには:
srcディレクトリに新しいTypeScriptファイルを作成する@modelcontextprotocol/sdkを使用して MCP サーバーを実装します。Claude Desktop構成に新しいサーバーを追加します
セキュリティに関する考慮事項
ファイルシステムとシェルサーバーには不正アクセスを防ぐためのセキュリティ対策が組み込まれている
コマンドを実行する前に必ずユーザー入力を検証する
ファイルシステムへのアクセスを許可するディレクトリを設定するときは注意が必要です
シェルサーバーのコマンド許可リストを使用して実行可能なコマンドを制限する
フェッチサーバーは、制限されたサイトのスクレイピングを防ぐために、デフォルトでrobots.txtディレクティブを尊重します。
GitHub 個人アクセス トークンを安全に保存し、適切なトークン権限を使用します。
参考文献
ライセンス
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
brave_local_search - First observed
brave_web_search
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.
Maintenance
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