プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Code Firewall MCP

作者:egoughnourバージョン 0.7.0i★ –iパソコンで動く
レジストリ名io.github.egoughnour/code-firewall-mcp

インストール

概要

作者による説明(英語の原文)

Structural similarity-based code filter. Stops malicious code pattern reaching execution tools.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: FIREWALL_DATA_DIR, OLLAMA_URL, EMBEDDING_MODEL, SIMILARITY_THRESHOLD

必要なもの

  • PyPIPythonのuvのインストール(uvxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

作者の .mcpb ファイルをダウンロード

リンク先は作者自身のファイルです。私たちが置いたり再パッケージしたりしたものではありません。ファイルを開くと、Claude Desktopがインストールします。

ターミナルでこれを実行します

claude mcp add code-firewall --env FIREWALL_DATA_DIR=your-value --env OLLAMA_URL=your-value --env EMBEDDING_MODEL=your-value --env SIMILARITY_THRESHOLD=your-value -- uvx code-firewall-mcp

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "code-firewall": {
      "command": "uvx",
      "args": [
        "code-firewall-mcp"
      ],
      "env": {
        "FIREWALL_DATA_DIR": "your-value",
        "OLLAMA_URL": "your-value",
        "EMBEDDING_MODEL": "your-value",
        "SIMILARITY_THRESHOLD": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "code-firewall": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "code-firewall-mcp"
      ],
      "env": {
        "FIREWALL_DATA_DIR": "your-value",
        "OLLAMA_URL": "your-value",
        "EMBEDDING_MODEL": "your-value",
        "SIMILARITY_THRESHOLD": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • FIREWALL_DATA_DIR env
    Directory for storing ChromaDB data
  • OLLAMA_URL env
    URL for Ollama server (default: http://localhost:11434)
  • EMBEDDING_MODEL env
    Ollama embedding model (default: nomic-embed-text)
  • SIMILARITY_THRESHOLD env
    Block threshold 0-1 (default: 0.85)

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント egoughnour で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

  • このカテゴリのほかの32505件のうち0%よりスターが多い
  • このカテゴリのほかの32505件のうち1%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32505件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Code Firewall MCPは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.7.0)がレジストリに届いたのは10 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv), MCPBも必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, topo^alpin

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211昨日更新
インストール

topo^alpin

作者:topoalpin.app

Avalanche bulletins and mountain weather forecasts for any place in the Alps.

クラウドで動く今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

Code Firewall MCP

A structural similarity-based code security filter for MCP (Model Context Protocol). Blocks dangerous code patterns before they reach execution tools by comparing code structure against a blacklist of known-bad patterns.

How It Works

flowchart LR

A[Code file/string] --> B[Parse & Normalize tree-sitter] B --> C[Embed Ollama] C --> D{Similarity Check vs Blacklist} D -->|≥ threshold| E[🚫 BLOCKED] D -->|< threshold| F[✅ ALLOWED] F --> G[Execution Tools rlm_exec, etc.]

style E fill:#ff6b6b,color:#fff style F fill:#51cf66,color:#fff style D fill:#339af0,color:#fff

  1. Parse code to Concrete Syntax Tree (CST) using tree-sitter
  2. Normalize by stripping identifiers and literals → structural skeleton
  3. Embed the normalized structure via Ollama
  4. Compare against blacklisted patterns in ChromaDB
  5. Block if similarity exceeds threshold, otherwise allow

Key Insight

Code patterns like os.system("rm -rf /") and os.system("ls") have identical structure. By normalizing away the specific commands/identifiers, we can detect dangerous patterns regardless of the specific arguments used.

Security-sensitive identifiers are preserved during normalization (e.g., eval, exec, os, system, subprocess, Popen, shell) to ensure embeddings remain discriminative for dangerous patterns.

Installation

Quick Start

Option 1: PyPI (Recommended)

uvx code-firewall-mcp

or

pip install code-firewall-mcp

Option 2: Claude Desktop One-Click

Download the .mcpb from Releases and double-click to install.

Option 3: From Source

git clone https://github.com/egoughnour/code-firewall-mcp.git

cd code-firewall-mcp uv sync

Wire to Claude Code / Claude Desktop

Add to ~/.claude/.mcp.json (Claude Code) or claude_desktop_config.json (Claude Desktop):

{

"mcpServers": { "code-firewall": { "command": "uvx", "args": ["code-firewall-mcp"], "env": { "FIREWALL_DATA_DIR": "~/.code-firewall", "OLLAMA_URL": "http://localhost:11434" } } } }

Requirements

  • Python 3.10+ (< 3.14 due to onnxruntime compatibility)
  • Ollama (for embeddings)
  • ChromaDB (for vector storage)
  • tree-sitter (optional, for better parsing)

Setting Up Ollama (Embeddings)

Code Firewall can automatically install and configure Ollama on macOS with Apple Silicon. There are two installation methods:

Method 1: Homebrew Installation
# 1. Check system requirements

firewall_system_check()

2. Install via Homebrew

firewall_setup_ollama(install=True, start_service=True, pull_model=True)

What this does:

  • Installs Ollama via Homebrew (brew install ollama)
  • Starts Ollama as a managed background service
  • Pulls nomic-embed-text model for embeddings
Method 2: Direct Download (No Sudo)
# 1. Check system

firewall_system_check()

2. Install via direct download - no sudo, no Homebrew

firewall_setup_ollama_direct(install=True, start_service=True, pull_model=True)

What this does:

  • Downloads Ollama from https://ollama.com
  • Extracts to ~/Applications/ (no admin needed)
  • Starts Ollama via ollama serve
  • Pulls nomic-embed-text model
Manual Setup
# Install Ollama

brew install ollama

or download from https://ollama.ai

Start service

brew services start ollama

or: ollama serve

Pull embedding model

ollama pull nomic-embed-text

Verify

firewall_ollama_status()

Tools

Setup & Status Tools
ToolPurpose
firewall_system_checkCheck system requirements — verify macOS, Apple Silicon, RAM
firewall_setup_ollamaInstall via Homebrew — managed service, auto-updates
firewall_setup_ollama_directInstall via direct download — no sudo, fully headless
firewall_ollama_statusCheck Ollama availability — verify embeddings are ready
Firewall Tools
ToolPurpose
firewall_checkCheck if a code file is safe to execute
firewall_check_codeCheck code string directly (no file required)
firewall_blacklistAdd a dangerous pattern to the blacklist
firewall_record_deltaRecord near-miss variants for classifier sharpening
firewall_list_patternsList patterns in blacklist or delta collection
firewall_remove_patternRemove a pattern from blacklist or deltas
firewall_statusGet firewall status and statistics
firewall_check

Check if a code file is safe to pass to execution tools.

result = await firewall_check(file_path="/path/to/script.py")

Returns: {allowed: bool, blocked: bool, similarity: float, ...}

firewall_check_code

Check code string directly (no file required).

result = await firewall_check_code(

code="import os; os.system('rm -rf /')", language="python" )

firewall_blacklist

Add a dangerous pattern to the blacklist.

result = await firewall_blacklist(

code="os.system(arbitrary_command)", reason="Arbitrary command execution", severity="critical" )

firewall_record_delta

Record near-miss variants to sharpen the classifier.

result = await firewall_record_delta(

code="subprocess.run(['ls', '-la'])", similar_to="abc123", notes="Legitimate use case for file listing" )

firewall_list_patterns

List patterns in the blacklist or delta collection.

firewall_remove_pattern

Remove a pattern from blacklist or deltas.

firewall_status

Get firewall status and statistics.

Configuration

Environment variables:

VariableDefaultDescription
FIREWALL_DATA_DIR/tmp/code-firewallData storage directory
OLLAMA_URLhttp://localhost:11434Ollama server URL
EMBEDDING_MODELnomic-embed-textOllama embedding model
SIMILARITY_THRESHOLD0.85Block threshold (0-1)
NEAR_MISS_THRESHOLD0.70Near-miss recording threshold

Usage Pattern

Pre-filter for massive-context-mcp

Use code-firewall-mcp as a gatekeeper before passing code to rlm_exec:

# 1. Check code safety

check = await firewall_check_code(user_code)

if check["blocked"]: print(f"BLOCKED: {check['reason']}") return

2. If allowed, proceed with execution

result = await rlm_exec(code=user_code, context_name="my-context")

Integrated with massive-context-mcp

Install massive-context-mcp with firewall integration:

pip install massive-context-mcp[firewall]

When enabled, rlm_exec automatically checks code against the firewall before execution.

Building the Blacklist

The blacklist grows through use:

  1. Initial seeding: Add known dangerous patterns
  2. Audit feedback: When rlm_auto_analyze finds security issues, add patterns
  3. Delta sharpening: Record near-misses to improve classification boundaries
# After security audit finds issues

await firewall_blacklist( code=dangerous_code, reason="Command injection via subprocess", severity="critical" )

Structural Normalization

flowchart TD

subgraph Input A1["os.system('rm -rf /')"] A2["os.system('ls -la')"] A3["os.system(user_cmd)"] end

subgraph Normalization B[Strip literals & identifiers Preserve security keywords] end

subgraph Output C["os.system('S')"] end

A1 --> B A2 --> B A3 --> B B --> C

style C fill:#ff922b,color:#fff

The normalizer strips:

  • Identifiers: my_var → _ (except security-sensitive ones)
  • String literals: "hello" → "S"
  • Numbers: 42 → N
  • Comments: Removed entirely

Preserved identifiers (for better pattern matching):

  • eval, exec, compile, __import__
  • os, system, popen, subprocess, Popen, shell
  • open, read, write, socket, connect
  • getattr, setattr, __globals__, __builtins__
  • And more security-sensitive names...

Example:

# Original

subprocess.run(["curl", url, "-o", output_file])

Normalized (preserves 'subprocess' and 'run')

subprocess.run(["S", _, "S", _])

Both subprocess.run(["curl", ...]) and subprocess.run(["wget", ...]) normalize to the same structure, so blacklisting one catches both.

License

MIT

PopNxに聞く