Claude TypeScript MCP Servers

by ukkz

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • 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.

クロード 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 に変換して読みやすさを向上させます

要件

インストール

  1. リポジトリをクローンします。
    git clone https://github.com/yourusername/claude-ts-mcps.git cd claude-ts-mcps
  2. 依存関係をインストールします:
    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」に設定するとこの制限は無効になりますが、責任を持って使用してください。

使用法

  1. Claudeデスクトップを起動
  2. 設定ファイルをロードする
  3. クロードはこれらの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サーバーのツール定義

新しい機能を追加するには:

  1. srcディレクトリに新しいTypeScriptファイルを作成する
  2. @modelcontextprotocol/sdkを使用して MCP サーバーを実装します。
  3. Claude Desktop構成に新しいサーバーを追加します

セキュリティに関する考慮事項

  • ファイルシステムとシェルサーバーには不正アクセスを防ぐためのセキュリティ対策が組み込まれている
  • コマンドを実行する前に必ずユーザー入力を検証する
  • ファイルシステムへのアクセスを許可するディレクトリを設定するときは注意が必要です
  • シェルサーバーのコマンド許可リストを使用して実行可能なコマンドを制限する
  • フェッチサーバーは、制限されたサイトのスクレイピングを防ぐために、デフォルトでrobots.txtディレクティブを尊重します。
  • GitHub 個人アクセス トークンを安全に保存し、適切なトークン権限を使用します。

参考文献

ライセンス

MITライセンス

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Claude Desktop が API 使用コストをかけずにファイルシステム、Git、シェル コマンド、Web 検索機能を使用した開発支援機能を提供できるようにするモデル コンテキスト プロトコル サーバーのコレクションです。

  1. Overview
    1. Requirements
      1. Installation
        1. Configuration
          1. Multiple GitHub Account Support
          2. Fetch Server Configuration
        2. Usage
          1. Development
            1. Security Considerations
              1. References
                1. License
                  ID: s0v7ilayxa