Skip to main content
Glama

Mirdan

AIコード品質オーケストレーター — トリアージ、リンティング、型チェック、テスト実行、検証を処理するローカルインテリジェンス層を実行することで、有料のAIコーディングトークンを30〜45%節約し、Claude Opusのような高価なモデルがコードの記述に集中できるようにします。

PyPI version Python 3.11+ License: MIT

uv tool install mirdan                  # Install mirdan
mirdan llm setup                        # Auto-installs backend, downloads model, configures
mirdan init --claude-code               # or --cursor
# Done. Quality enforcement + local intelligence is now automatic.

Claude CodeCursor IDECursor CLIと連携します。16GBのノートPCで動作します。すべてローカルで完結します。


ローカルインテリジェンス層 (2.0の新機能)

Mirdan 2.0は、日常的な作業をマシン上で実行される小型のローカルモデル(Gemma 4)にオフロードします。有料モデルは、複雑な推論とコードの記述にのみ集中します。

コーディング前:

  • トリアージ — タスクを分類します。些細なタスク(インポートの修正、ファイルのフォーマット)は有料モデルに送られません。トークン消費はゼロです。

  • リサーチ — コードベースのコンテキスト、ライブラリのドキュメント、プロジェクトの規約をローカルで収集します(64GB以上のみ)。

コーディング後:

  • チェックランナー — ruff、mypy、pytestをローカルで実行します。LLMが出力を解析し、リンターを自動修正し、複雑な失敗のみを報告します。

  • スマート検証 — 64の品質ルールに加え、LLMによる偽陽性フィルタリング、根本原因のグループ化、修正提案を行います。

  • 自動修正mirdan check --smart --fix は、LLMが生成した検索/置換による修正を検証付きで適用します。

ハードウェア

実行内容

トークン節約率

16GB ノートPC

Gemma 4 E4B Q3 — トリアージ、チェック、検証、自動修正

30-45%

32GB

Gemma 4 E4B Q3 — 同機能、より余裕のある動作

35-50%

64GB+ Apple Silicon

+ Gemma 4 31B(プロンプト最適化およびリサーチ用)

50-70%

クイックセットアップ

mirdan llm setup              # Detects hardware, installs backend, downloads model, configures
mirdan init --claude-code     # or --cursor
mirdan llm status             # Verify it's working

すべてがローカルで実行されます。リモートサーバーはありません。データがマシンから外部へ出ることはありません。


なぜMirdanなのか?

AIコーディングアシスタントは高速にコードを生成しますが、ガードレールがないと、ハードコードされたシークレット、SQLインジェクション、プレースホルダー関数、幻覚によるインポート、空のexceptブロックなど、見た目は正しいが本番環境で失敗する**粗悪なコード(slop)**を生成してしまいます。

Mirdanは、AIワークフローの以下の2点で介入することでこれを修正します:

  1. コーディング前enhance_prompt が品質要件、セキュリティ制約、フレームワーク固有の基準でタスクを強化し、AIが最初からより良いコードを生成できるようにします。

  2. コーディング後validate_code_quality がすり抜けた問題をキャッチします:セキュリティ脆弱性、AI特有のアンチパターン、言語のベストプラクティスをカバーする64のルール。

インストール後は、IDEフックを通じて目に見えない形で動作します。あなたは通常通りコーディングするだけです。

何をキャッチするか

典型的なAI生成コードの単一関数に対してmirdanがフラグを立てる例です:

API_KEY = "sk-proj-abc123456789"           # SEC001: hardcoded API key
def get_users(user_id):
    query = f"SELECT * FROM users WHERE id={user_id}"  # SEC005 + AI008: SQL injection
    result = eval(user_input)              # PY001: code injection via eval()
    data = requests.get(url, verify=False) # SEC007: SSL verification disabled
    try:
        process(data)
    except:                                # PY003: bare except
        pass

結果: スコア 0.0/1.0、エラー6件、警告3件。自動修正により、mirdanはこれら5件を自動的に解決します。

プロンプトへの追加内容

AIアシスタントに「FastAPIでJWTトークンを使用したユーザー認証エンドポイントを作成して」と依頼すると、mirdanの enhance_prompt はこれがセキュリティに関わることを検出し、以下を注入します:

  • フレームワーク基準: 「型安全な依存性注入のために Annotated を使用した Depends() を使用すること」

  • セキュリティ制約: 「シークレットや認証情報がハードコードされていないことを確認すること」

  • 品質要件: 「すべてのリクエストボディとレスポンススキーマにPydanticモデルを使用すること」

  • 検証ステップ: 「エラーハンドリングがすべての非同期操作をカバーしていることを確認すること」

AIは単なるプロンプトではなく構造化されたガイダンスを受け取るため、最初からより良いコードが生成されます。


クイックスタート

インストール

uv tool install mirdan                   # Install mirdan
mirdan llm setup                         # Auto-installs LLM backend + downloads model

# Optional extras:
uv tool install 'mirdan[ast]'            # + tree-sitter for TS/JS AST analysis
uv tool install 'mirdan[enterprise]'     # + truststore for corporate SSL inspection

# Upgrade:
uv tool upgrade mirdan

# Or with pip:
pip install mirdan

IDEのセットアップ

mirdan init --claude-code    # Claude Code: hooks, rules, skills, agents
mirdan init --cursor         # Cursor: hooks, rules, AGENTS.md, BUGBOT.md
mirdan init --all            # Both IDEs

これにより、MCPサーバー設定、品質フック、ルールファイル、エージェント定義など、すべてが生成されます。LLMが有効な場合、フックはローカルのトリアージとチェックランナーも設定します。初期化後、IDEは自動的に以下を行います:

  1. コーディングタスクの前に品質要件でプロンプトを強化する

  2. 編集のたびにセキュリティおよび品質ルールに対してコードを検証する

  3. タスク完了前に最終的な品質ゲートを実行する

コマンドラインからの使用

mirdan validate --file src/auth.py     # Validate a file
mirdan validate --staged               # Validate git staged changes
mirdan fix --file src/auth.py          # Auto-fix violations (pattern-based)
mirdan check --smart                   # Run lint + typecheck + test with LLM analysis
mirdan check --smart --fix src/        # Run checks AND auto-fix with local LLM
mirdan gate                            # CI/CD quality gate (exit 0 or 1)
mirdan scan --dependencies             # Check deps for known CVEs
mirdan scan --directory src/           # Discover codebase conventions
mirdan llm setup                       # Configure local LLM
mirdan llm status                      # Show LLM health, model, hardware
mirdan llm metrics                     # Token savings dashboard

仕組み

Mirdanは MCPサーバー です。AIコーディングアシスタント(Claude Code、Cursor、Claude Desktop、または任意のMCPクライアント)に接続し、品質強制ツールを提供します。

┌──────────────────────────────────────────────────┐
│  Your AI Assistant (Claude Code / Cursor / etc)  │
│                                                  │
│  1. You type a coding task                       │
│  2. Hook triages task via local LLM ────┐        │
│  3. AI generates code with guidance     │        │
│  4. Hook runs lint/typecheck/test ◄─────┘        │
│  5. AI fixes only complex issues                 │
│  6. Quality gate passes → task complete          │
└──────────────────────────────────────────────────┘
         │                        ▲
         ▼                        │
┌──────────────────────────────────────────────────┐
│  Mirdan MCP Server + Local Intelligence Layer    │
│                                                  │
│  MCP Tools (unchanged):                          │
│  enhance_prompt         → Quality requirements   │
│  validate_code_quality  → 64 rules + LLM enrich │
│  validate_quick         → Fast security checks   │
│  get_quality_standards  → Language/framework ref  │
│  get_quality_trends     → Historical analysis    │
│  scan_dependencies      → CVE detection (OSV)    │
│  scan_conventions       → Convention discovery   │
│                                                  │
│  Local LLM (Gemma 4, runs on your machine):      │
│  Triage          → Classify tasks, save tokens   │
│  Check Runner    → Run ruff/mypy/pytest locally  │
│  Smart Validator → FP filtering, root causes     │
│  Auto-Fix        → Search/replace code fixes     │
│  HTTP Sidecar    → <5ms hook integration         │
└──────────────────────────────────────────────────┘

検証ルール

Mirdanには10カテゴリ、64のルールが同梱されています。外部サービスは不要で、すべてのルールがローカルで実行されます。

AI品質 (AI001–AI008)

AI生成コード特有のパターンをキャッチするルール:

ルール

キャッチするもの

AI001

プレースホルダーコード — raise NotImplementedError、TODO付きの pass@abstractmethodはスキップ)

AI002

幻覚によるインポート — 標準ライブラリやプロジェクト依存関係にないパッケージ

AI003

過剰なエンジニアリング — 単純な操作に対する不要な抽象化

AI004

重複したコードブロック

AI005

一貫性のないエラーハンドリングパターン

AI006

より軽量な代替手段がある場合の不要な重いインポート

AI007

セキュリティシアター — 安全に見えるが保護を提供しないパターン

AI008

f-stringによるインジェクション — 補間を伴うSQL、eval、exec、os.system

セキュリティ (SEC001–SEC014)

ルール

キャッチするもの

SEC001–003

ハードコードされたシークレット — APIキー、パスワード、AWSキー

SEC004–006

SQLインジェクション — 文字列連結、f-string、テンプレートリテラル

SEC007

SSL/TLS検証が無効

SEC008–009

文字列フォーマットによるシェルコマンドインジェクション

SEC010

JWT検証が無効

SEC011–013

グラフデータベースインジェクション — Neo4j Cypher、Gremlin

SEC014

脆弱な依存関係 — 既知のCVEを持つパッケージ

言語固有

言語

ルール

主なチェック

Python

PY001–PY015

eval/exec、空のexcept、ミュータブルなデフォルト引数、非推奨の型指定、安全でないpickle/yaml、subprocess shell、デッドインポート、到達不能コード

JavaScript

JS001–JS005

var、eval、document.write、innerHTML、child_process.exec

TypeScript

TS001–TS005

eval、Functionコンストラクタ、@ts-ignore、as any、innerHTML

Go

GO001–GO003

無視されたエラー、panic()、fmt.SprintfによるSQL

Java

JV001–JV007

String ==、汎用Exception、System.exit、Runtime.exec、安全でないデシリアライズ

Rust

RS001–RS002

.unwrap()、空の.expect()

さらに ARCH001–003 / TSARCH001–004(関数長、ファイル長、ネストの深さ、戻り値の型の欠如)、RAG001–002(チャンクの重複、非推奨のローダー)があります。

Pythonルール PY001–PY004 は ASTベースの検証 を使用し、文字列やコメント内の偽陽性を排除します。mirdan[ast] がインストールされている場合、TypeScript/JavaScriptのアーキテクチャチェックは tree-sitter を使用して、関数長、ネストの深さ、戻り値の型の分析を正確に行います。

32のルールmirdan fix による自動修正をサポートしています。


言語とフレームワークのサポート

言語: Python, TypeScript, JavaScript, Go, Java, Rust

33のフレームワーク基準 — mirdanはそれぞれのイディオム、ベストプラクティス、一般的な落とし穴を把握しています:

React, React Native, Next.js, Nuxt, Vue, SvelteKit, Astro, Flutter, Tailwind, FastAPI, Django, Express, NestJS, Echo, Gin, Spring Boot, Micronaut, Quarkus, Drizzle, Neo4j, Supabase, Convex, Pinecone, Qdrant, Milvus, Weaviate, ChromaDB, FAISS, LangChain, LangGraph, CrewAI, DSPy, tRPC

enhance_prompt がフレームワークを検出すると、フレームワーク固有の品質要件を注入します(例:FastAPIには「Annotated を使用した Depends() を使用」、Next.jsには「サーバーコンポーネントを優先」)。


品質プロファイル

プロファイルは8つの次元で強制レベルを調整します。プロジェクトに合ったものを選択してください:

プロファイル

セキュリティ

アーキテクチャ

テスト

AIの粗悪さ

依存関係のセキュリティ

最適な用途

default

0.7

0.5

0.7

0.7

0.7

汎用プロジェクト

startup

0.7

0.3

0.5

0.8

0.5

安全ネット付きの高速開発

enterprise

1.0

0.9

0.9

1.0

1.0

本番環境のエンタープライズコード

fintech

1.0

0.8

1.0

1.0

1.0

金融グレードの正確性

library

0.8

0.9

0.9

0.8

0.8

公開APIおよびパッケージ

data-science

0.7

0.3

0.5

0.6

0.5

データ安全性を伴う探索

prototype

0.5

0.2

0.2

0.5

0.3

ラピッドプロトタイピング

スケール: 0.0–0.3 寛容 | 0.3–0.7 中程度 | 0.7–1.0 厳格

mirdan init --quality-profile enterprise
mirdan profile apply fintech          # Change later
mirdan profile suggest                # Let mirdan recommend one

IDE統合

Claude Code

mirdan init --claude-code

.mcp.json、フック、ルール、7つのスキル(/code/debug/review/plan/quality/scan/gate)、5つのエージェント(quality-gate, security-audit, test-quality, convention-check, architecture-reviewer)を生成します。

フックの厳格度レベルでmirdanの介入の強さを制御します:

レベル

フック

最適な用途

MINIMAL

2 (PostToolUse, Stop)

低摩擦なオンボーディング

STANDARD

5 (+ UserPromptSubmit, PreToolUse, SubagentStart)

日々の開発

COMPREHENSIVE

15 (コンパクション、ワークツリーを含むフルライフサイクル)

チームおよび本番環境

Cursor

mirdan init --cursor

完全なCursor 2.x統合を生成します:

  • ルール.cursor/rules/*.mdc (常時有効、セキュリティ、計画、デバッグ、エージェント、言語固有)

  • フック — プロンプトタイプ + コマンドタイプフック付きの .cursor/hooks.json.cursor/hooks/*.sh スクリプト

  • サブエージェント.cursor/agents/*.md (quality-validator, security-scanner, test-auditor, slop-detector, architecture-reviewer)

  • スキルAgent Skills Standard に従った .cursor/skills/*/SKILL.md (code, debug, review, plan, quality, scan, gate)

  • コマンド.cursor/commands/*.md スラッシュコマンド (/code, /debug, /review, /plan, /quality, /scan, /gate)

  • 環境 — Cloud Agent環境用の .cursor/environment.json

  • 設定.cursor/mcp.json, AGENTS.md, BUGBOT.md

Cursorにはツールスロットの制限があります。MIRDAN_TOOL_BUDGET を設定して、どのツールを公開するかを制御してください(2 = 検証のみ、5+ = すべてのツール)。

Claude Desktop / 任意のMCPクライアント

MCP設定に追加してください:

{
  "mcpServers": {
    "mirdan": {
      "command": "uvx",
      "args": ["mirdan"]
    }
  }
}

企業ネットワーク (Netskope, Zscaler, Artifactoryプロキシ): SSLおよびモデルダウンロード用の環境変数を渡します:

{
  "mcpServers": {
    "mirdan": {
      "command": "uvx",
      "args": ["mirdan"],
      "env": {
        "MIRDAN_HF_ENDPOINT": "https://artifactory.corp.com/hf",
        "MIRDAN_HF_TOKEN": "your-artifactory-token",
        "MIRDAN_SSL_CERT_FILE": "/path/to/corporate-ca-bundle.crt"
      }
    }
  }
}

エンタープライズ展開

管理された設定による組織全体の強制適用:

macOS: /Library/Application Support/ClaudeCode/managed-mcp.json Linux: /etc/claude-code/managed-mcp.json

{
  "mcpServers": {
    "mirdan": {
      "command": "uvx",
      "args": ["mirdan"]
    }
  }
}

CI/CD統合

GitHub Actions

このワークフローを .github/workflows/mirdan.yml に追加してください:

name: Mirdan Quality Gate
on: [pull_request]

jobs:
  quality:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: astral-sh/setup-uv@v4
      - run: uv tool install mirdan
      - run: mirdan gate

GitHubコードスキャン用のSARIFエクスポート

- run: mirdan export --format sarif > results.sarif
- uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: results.sarif

Pre-commitフック

# .pre-commit-config.yaml
repos:
  - repo: local
    hooks:
      - id: mirdan
        name: mirdan quality gate
        entry: mirdan validate --staged --quick
        language: system
        types: [python]

品質バッジ

mirdan export --format badge > .mirdan/badge.json

設定

mirdan init.mirdan/config.yaml を生成します。主要セクション:

version: "1.0"

project:
  name: "MyApp"
  primary_language: "python"
  frameworks: ["fastapi", "react"]

# Quality enforcement levels
quality:
  security: "strict"           # strict|moderate|permissive
  architecture: "moderate"
  documentation: "moderate"
  testing: "strict"

# Or use a named profile (overrides quality section)
quality_profile: "default"

# Semantic validation and dependency scanning
semantic:
  enabled: true
  analysis_protocol: "security"  # none|security|comprehensive

dependencies:
  enabled: true
  osv_cache_ttl: 86400           # 24 hours
  scan_on_gate: true
  fail_on_severity: "high"       # critical|high|medium|low|none

# Score thresholds
thresholds:
  severity_error_weight: 0.25
  severity_warning_weight: 0.08
  arch_max_function_length: 30
  arch_max_file_length: 300
  # Per-file threshold overrides (glob patterns)
  file_overrides:
    - pattern: "tests/**"
      arch_max_function_length: 60
    - pattern: "scripts/**"
      arch_max_file_length: 500

# Hook behavior
hooks:
  enabled_events: ["PreToolUse", "PostToolUse", "Stop"]
  quick_validate_timeout: 5000
  auto_fix_suggestions: true

LLM設定は .mirdan.yaml に記述されます(mirdan llm setup によって書き込まれます):

llm:
  enabled: true
  backend: llamacpp                # llamacpp (default) or ollama
  model_keep_alive: 5m             # Unload model after idle (saves RAM)
Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/S-Corkum/mirdan'

If you have feedback or need assistance with the MCP directory API, please join our Discord server