GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
🚀 Kill the Junior AI Era. 🤖 Level up AI code to automatically Principal standards. 🛡️ Quality Gate ✨
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
PROJECT_ROOT, SONAR_HOST_URL, SONAR_TOKEN, SONAR_PROJECT_KEY, ENABLE_I18N_RULES「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"ai-quality-gate": {
"command": "npx",
"args": [
"-y",
"ai-quality-gate"
],
"env": {
"PROJECT_ROOT": "your-value",
"SONAR_HOST_URL": "your-value",
"SONAR_TOKEN": "your-value",
"SONAR_PROJECT_KEY": "your-value",
"ENABLE_I18N_RULES": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add ai-quality-gate --env PROJECT_ROOT=your-value --env SONAR_HOST_URL=your-value --env SONAR_TOKEN=your-value --env SONAR_PROJECT_KEY=your-value --env ENABLE_I18N_RULES=your-value -- npx -y ai-quality-gate動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"ai-quality-gate": {
"command": "npx",
"args": [
"-y",
"ai-quality-gate"
],
"env": {
"PROJECT_ROOT": "your-value",
"SONAR_HOST_URL": "your-value",
"SONAR_TOKEN": "your-value",
"SONAR_PROJECT_KEY": "your-value",
"ENABLE_I18N_RULES": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"ai-quality-gate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"ai-quality-gate"
],
"env": {
"PROJECT_ROOT": "your-value",
"SONAR_HOST_URL": "your-value",
"SONAR_TOKEN": "your-value",
"SONAR_PROJECT_KEY": "your-value",
"ENABLE_I18N_RULES": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
PROJECT_ROOT envSONAR_HOST_URL envSONAR_PROJECT_KEY envENABLE_I18N_RULES envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月10日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント mustafacagri で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:SONAR_TOKEN
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.1.0)がレジストリに届いたのは33 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
MCP Server for AI code quality automation.
AI writes code → calls quality_fix → Server fixes what it can → Reports remaining issues to AI.
Hybrid Approach:
Important: ESLint vs Prettier
| Tool | Source | Config |
|---|---|---|
| ESLint | Project's config (if exists) or MCP's embedded | .eslintrc.* / eslint.config.* / MCP embedded |
| Prettier | Project's own | Project's prettier.config.mjs |
ESLint rules are controlled by MCP for consistent quality gates.
Prettier uses project's config so formatting matches project preferences.
Phase 1 Rule Coverage:
| Plugin | Rules | Description |
|---|---|---|
| SonarJS | 201 | Security, bugs, code smells |
| Unicorn | 127 | Modern JS best practices |
| ESLint Core | 108 | JavaScript fundamentals |
| TypeScript-ESLint | 99 | TypeScript-specific rules |
| RegExp | 60 | Regex best practices |
| Import | 11 | Import/export rules |
| Promise | 10 | Async/await best practices |
| Node.js (n) | 9 | Node.js specific rules |
| Unused Imports | 2 | Auto-remove unused imports |
| Total | 627 |
node -v).Project root is auto-detected when PROJECT_ROOT is omitted: the server walks up from the MCP process working directory until it finds package.json or tsconfig.json. Set PROJECT_ROOT in env only to analyze a different tree than the inferred root.
Open Settings → Tools & MCP → Edit (user mcp.json). Add one server block; the examples below match .cursor/mcp.json.example (JSONC with comments — if your editor rejects comments, copy the JSON blocks below only).
Server name vs tool name: The key under mcpServers (e.g. "ai-quality-gate") is only the label for that connection in Cursor. The MCP tool your agent calls is always quality_fix — that name is fixed by this package and is separate from the server key and from ai-quality-gate.
npx (no global install)Always runs the published package; good for teams and CI-like setups.
{
"mcpServers": { "ai-quality-gate": { "command": "npx", "args": ["-y", "ai-quality-gate"] } } }
npm installAfter npm i -g ai-quality-gate, the ai-quality-gate binary is on your PATH:
{
"mcpServers": { "ai-quality-gate": { "command": "ai-quality-gate", "args": [] } } }
Requires a running SonarQube instance, sonar-scanner available (see SonarQube Setup), and all three variables below. Phase 1 still runs first.
{
"mcpServers": { "ai-quality-gate": { "command": "npx", "args": ["-y", "ai-quality-gate"], "env": { "SONAR_HOST_URL": "http://localhost:9000", "SONAR_TOKEN": "your_sonar_token", "SONAR_PROJECT_KEY": "your_project_key" } } } }
Add an "env" object when you need overrides. Merge order for config is defaults → `.quality-gate.yaml` / `.quality-gate.json` → environment variables.
| Variable | When to set |
|---|---|
QUALITY_GATE_CONFIG | Absolute path to a specific .quality-gate.yaml or .quality-gate.json (skips walking directories). |
PROJECT_ROOT | Force project root if auto-detection is wrong for your layout. |
SONAR_HOST_URL | SonarQube server URL (with Phase 2). |
SONAR_TOKEN | SonarQube token (with Phase 2). |
SONAR_PROJECT_KEY | SonarQube project key (with Phase 2). |
SONAR_SCANNER_PATH | Full path to sonar-scanner if not on PATH. |
PHASE1_TIMEOUT | Phase 1 timeout (ms), default 30000. |
PHASE2_TIMEOUT | Phase 2 timeout (ms), default 300000. |
ENABLE_I18N_RULES | true / false — stricter JSX literal checks for i18n projects. |
{
"mcpServers": { "ai-quality-gate": { "command": "npx", "args": ["-y", "ai-quality-gate"] } } }
Create or edit OpenCode config (typically ~/.config/opencode/opencode.json or project-level config):
{
"$schema": "https://opencode.ai/config.json", "mcp": { "ai-quality-gate": { "type": "local", "enabled": true, "command": ["npx", "-y", "ai-quality-gate"] } } }
Environment variables can be added under the server config if needed (see C) SonarQube (Phase 2) above).
To dogfood or contribute:
dist/server.js.{
"mcpServers": { "ai-quality-gate-dev": { "command": "node", "args": ["/ABSOLUTE/PATH/TO/ai-quality-gate/dist/server.js"] } } }
env.PROJECT_ROOT only if the repo you analyze differs from the inferred root.Settings → Rules and Commands → Add Rule:
After every code change, before telling the user "done",
AI must call the quality_fix MCP tool. This is mandatory.
AI writes code → calls quality_fix → Fixes errors → "Done ✅"
--setup)The interactive wizard creates or updates .quality-gate.yaml without hand-editing: it walks you through project root, optional SonarQube (host URL + project key; token is not saved to disk — use SONAR_TOKEN in your environment), which Phase 1 tools to enable (ESLint, curly-brace / arrow AST fixers, Prettier, JSON validator), timeouts, and i18n rules. The generated file includes a fixers: block you can adjust later.
After yarn build (or install from npm), run from the target project (or any path under it):
node dist/server.js --setup
PROJECT_ROOT is inferred when unset (see MCP configuration). Use the same entrypoint as the MCP server (node dist/server.js or npx ai-quality-gate); only the --setup flag switches to wizard mode. Answer prompts in the terminal; on success you get a ready-to-use config next to your project root.
Other CLI modes: --check (read-only Phase 1), --fix (default behavior when using CLI quality run), --phase1-only, --phase2-only — see docs/DEVELOPMENT.md.
Configure Sonar env in MCP as in [C) SonarQube (Phase 2)](#c-sonarqube-phase-2) above, or copy from .cursor/mcp.json.example. You need `sonar-scanner` on your machine for analysis (see below).
# Start SonarQube
docker run -d --name sonarqube -p 9000:9000 sonarqube:community
# docker-compose.yml
version: '3' services: sonarqube: image: sonarqube:community ports:
volumes: sonarqube_data: sonarqube_logs: sonarqube_extensions:
docker-compose up -d
SONAR_TOKEN| Platform | Method | Command |
|---|---|---|
| Windows | npm (global) | npm install -g sonarqube-scanner |
| Windows | Chocolatey | choco install sonar-scanner |
| macOS | npm (global) | npm install -g sonarqube-scanner |
| macOS | Homebrew | brew install sonar-scanner |
| Linux | npm (global) | npm install -g sonarqube-scanner |
| Docker | Container | docker run sonarsource/sonar-scanner-cli |
For custom path: SONAR_SCANNER_PATH env var
Optional files (discovered by walking up from the inferred project root — same algorithm as package.json / tsconfig.json — or from PROJECT_ROOT when set): `.quality-gate.yaml` (preferred) or `.quality-gate.json`. Same fields as environment variables (camelCase); you may nest Sonar settings under sonar: { hostUrl, token, projectKey, scannerPath }.
Merge order: defaults → config file → environment variables (ENV wins on conflicts).
Set `QUALITY_GATE_CONFIG` to an explicit path to skip discovery.
customRules)Optional line-based regex checks on lintable files (Phase 1). Each match is reported as an issue with rule set to custom: (and included in quality_fix remaining). Example:
customRules:
Patterns use JavaScript RegExp source (escape backslashes as in YAML strings). An invalid pattern is skipped, and says so in warnings.
When `fixers.jsonValidator` is enabled and you pass JSON paths that match locale patterns (for example locales/en.json / locales/tr.json), the tool compares keys across those files.
issues and fail Phase 1 / quality_fix until fixed.passed: false and do not block the gate.Treat i18nIssues as advisory unless you add your own CI check on top.
All variables are optional unless you use Phase 2, which requires `SONAR_HOST_URL`, `SONAR_TOKEN`, and `SONAR_PROJECT_KEY` together.
| Variable | Description
冒頭だけを表示しています。続きはリポジトリで読めます