Mirdan
Mirdan
AIコード品質オーケストレーター — トリアージ、リンティング、型チェック、テスト実行、検証を処理するローカルインテリジェンス層を実行することで、有料のAIコーディングトークンを30〜45%節約し、Claude Opusのような高価なモデルがコードの記述に集中できるようにします。
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 Code、Cursor IDE、Cursor 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点で介入することでこれを修正します:
コーディング前 —
enhance_promptが品質要件、セキュリティ制約、フレームワーク固有の基準でタスクを強化し、AIが最初からより良いコードを生成できるようにします。コーディング後 —
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 mirdanIDEのセットアップ
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は自動的に以下を行います:
コーディングタスクの前に品質要件でプロンプトを強化する
編集のたびにセキュリティおよび品質ルールに対してコードを検証する
タスク完了前に最終的な品質ゲートを実行する
コマンドラインからの使用
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 | プレースホルダーコード — |
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 |
|
TypeScript | TS001–TS005 | eval、Functionコンストラクタ、@ts-ignore、 |
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 oneIDE統合
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 gateGitHubコードスキャン用のSARIFエクスポート
- run: mirdan export --format sarif > results.sarif
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarifPre-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: trueLLM設定は .mirdan.yaml に記述されます(mirdan llm setup によって書き込まれます):
llm:
enabled: true
backend: llamacpp # llamacpp (default) or ollama
model_keep_alive: 5m # Unload model after idle (saves RAM)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