@alibaba-group/open-code-review 1.6.5 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ja-JP.md CHANGED
@@ -38,7 +38,9 @@ Open Code ReviewはAIを活用したコードレビューCLIツールです。
38
38
 
39
39
  Gitのdiffを読み取り、変更されたファイルをツール利用機能を持つエージェント経由で設定可能なLLMに送信し、行レベルの精度で構造化されたレビューコメントを生成します。エージェントはファイル全体の内容を読み取り、コードベースを検索し、コンテキストのために他の変更ファイルを参照し、深いレビューを生成できます — 単なる表面的なdiffへのフィードバックではありません。diffレビュー以外にも、`ocr scan` はファイル全体をレビューできます。不慣れなコードベースの監査や、意味のあるdiffがないディレクトリの検査に便利です。
40
40
 
41
- ![Highlights](imgs/highlights-en.png)
41
+ 詳細は[公式サイト](https://alibaba.github.io/open-code-review/)をご覧ください。
42
+
43
+ ![Highlights](imgs/highlights-ja.png)
42
44
 
43
45
  ## ベンチマーク
44
46
 
@@ -54,7 +56,7 @@ Gitのdiffを読み取り、変更されたファイルをツール利用機能
54
56
  | **平均時間 (Avg Time)** | レビューあたりの実時間 | CIパイプラインの待機時間に影響 |
55
57
  | **平均トークン (Avg Token)** | レビューあたりの総トークン消費量 | APIコストに直接影響 |
56
58
 
57
- ![Benchmark](imgs/benchmark-en.png)
59
+ ![Benchmark](imgs/benchmark-ja.png)
58
60
 
59
61
  ## なぜOpen Code Reviewなのか?
60
62
 
@@ -660,15 +662,22 @@ OCRは4層の優先度チェーンを使ってレビュールールを解決し
660
662
  | `providers.<name>.models` | array | 対話的選択に使う任意のプロバイダーモデル一覧 |
661
663
  | `providers.<name>.auth_header` | string | `x-api-key` \| `authorization` |
662
664
  | `providers.<name>.extra_body` | object | すべてのリクエストボディにマージされるJSONオブジェクト |
665
+ | `providers.<name>.timeout_sec` | integer | リクエストごとのHTTPタイムアウト(秒)、デフォルト `300` |
663
666
  | `providers.<name>.extra_headers` | string | カンマ区切りの `key=value` HTTPヘッダー |
664
667
  | `custom_providers.<name>.*` | — | 任意の`models`を含む`providers.<name>.*`と同じフィールド |
665
668
  | `llm.url` | string | `https://api.openai.com/v1/chat/completions` |
666
669
  | `llm.auth_token` | string | `sk-xxxxxxx` |
667
670
  | `llm.auth_header` | string | Anthropicのみ:`x-api-key` \| `authorization` |
668
671
  | `llm.extra_body` | object | すべてのリクエストボディにマージされるJSONオブジェクト |
672
+ | `llm.timeout_sec` | integer | リクエストごとのHTTPタイムアウト(秒)、デフォルト `300` |
669
673
  | `llm.extra_headers` | string | カンマ区切りの `key=value` HTTPヘッダー |
670
674
  | `llm.model` | string | `claude-opus-4-6` |
671
675
  | `llm.use_anthropic` | boolean | `true` \| `false` |
676
+ | `mcp_servers.<name>.command` | string | MCPサーバーを起動するコマンド |
677
+ | `mcp_servers.<name>.args` | array | MCPサーバーのコマンドライン引数 |
678
+ | `mcp_servers.<name>.env` | array | 環境変数(`KEY=VALUE`形式) |
679
+ | `mcp_servers.<name>.tools` | array | 許可するツール名(空の場合はすべてのツール) |
680
+ | `mcp_servers.<name>.setup` | string | サーバー起動前に実行するセットアップコマンド |
672
681
  | `language` | string | 任意の言語名、例:`English`、`Chinese`(デフォルト:`English`) |
673
682
  | `telemetry.enabled` | boolean | `true` \| `false` |
674
683
  | `telemetry.exporter` | string | `console` \| `otlp` |
@@ -677,6 +686,43 @@ OCRは4層の優先度チェーンを使ってレビュールールを解決し
677
686
 
678
687
  環境変数は設定ファイルより優先されます。
679
688
 
689
+ ### MCPサーバー
690
+
691
+ Open Code Reviewは[Model Context Protocol (MCP)](https://modelcontextprotocol.io/)サーバーをサポートしており、レビューエージェントがstdioトランスポートを介してコードレビュー中に外部ツールを使用できます。
692
+
693
+ CLIからMCPサーバーを設定します:
694
+
695
+ ```bash
696
+ # MCPサーバーを追加
697
+ ocr config set mcp_servers.<name>.command <command>
698
+ ocr config set mcp_servers.<name>.args '["arg1","arg2"]'
699
+ ocr config set mcp_servers.<name>.env '["KEY=VALUE"]'
700
+ ocr config set mcp_servers.<name>.tools '["tool_name"]'
701
+ ocr config set mcp_servers.<name>.setup '<setup command>'
702
+
703
+ # MCPサーバーを削除
704
+ ocr config unset mcp_servers.<name>
705
+ ```
706
+
707
+ | フィールド | 必須 | 説明 |
708
+ |-----------|------|------|
709
+ | `command` | はい | MCPサーバーを起動する実行コマンド |
710
+ | `args` | いいえ | サーバーに渡すコマンドライン引数 |
711
+ | `env` | いいえ | 環境変数(`KEY=VALUE`形式) |
712
+ | `tools` | いいえ | 許可するツール名。空の場合、サーバーのすべてのツールが利用可能 |
713
+ | `setup` | いいえ | サーバー起動前に実行するシェルコマンド(例:インデックスの構築) |
714
+
715
+ > **注意:** MCPツールの名前が組み込みツールと競合する場合、そのツールは警告付きでスキップされます。`setup`コマンドのタイムアウトは5分です。
716
+
717
+ **例:[CodeGraph](https://github.com/nicholasgasior/codegraph)を追加してコード構造分析を強化**
718
+
719
+ ```bash
720
+ ocr config set mcp_servers.codegraph.command codegraph
721
+ ocr config set mcp_servers.codegraph.args '["serve","--mcp"]'
722
+ ocr config set mcp_servers.codegraph.tools '["codegraph_explore"]'
723
+ ocr config set mcp_servers.codegraph.setup 'codegraph init && codegraph index'
724
+ ```
725
+
680
726
  ### 環境変数
681
727
 
682
728
  | 変数 | 用途 |
@@ -686,6 +732,7 @@ OCRは4層の優先度チェーンを使ってレビュールールを解決し
686
732
  | `OCR_LLM_AUTH_HEADER` | Anthropic認証ヘッダー(`x-api-key`または`authorization`) |
687
733
  | `OCR_LLM_EXTRA_HEADERS` | カンマ区切りの `key=value` HTTPヘッダー |
688
734
  | `OCR_LLM_MODEL` | モデル名 |
735
+ | `OCR_LLM_TIMEOUT` | リクエストごとのHTTPタイムアウト(秒)、設定ファイルの `timeout_sec` を上書き |
689
736
  | `OCR_USE_ANTHROPIC` | `true` = Anthropic、`false` = OpenAI |
690
737
 
691
738
 
package/README.ko-KR.md CHANGED
@@ -38,6 +38,8 @@ Open Code Review는 AI 기반 코드 리뷰 CLI 도구입니다. Alibaba Group
38
38
 
39
39
  이 도구는 Git diff를 읽고, 변경 파일을 tool-use 기능을 가진 agent를 통해 설정 가능한 LLM으로 전달한 뒤, 라인 단위 위치 정보가 포함된 구조화된 리뷰 코멘트를 생성합니다. agent는 전체 파일 내용 읽기, 코드베이스 검색, 다른 변경 파일 확인 등을 통해 맥락을 확보하고 표면적인 diff 피드백이 아닌 깊이 있는 리뷰를 수행할 수 있습니다. diff 리뷰 외에도 `ocr scan`은 전체 파일을 리뷰할 수 있어, 익숙하지 않은 코드베이스를 감사하거나 의미 있는 diff가 없는 디렉터리를 검토하는 데 유용합니다.
40
40
 
41
+ 자세한 내용은 [공식 웹사이트](https://alibaba.github.io/open-code-review/)를 참조하세요.
42
+
41
43
  ![Highlights](imgs/highlights-en.png)
42
44
 
43
45
  ## 벤치마크
@@ -618,15 +620,22 @@ Config file: `~/.opencodereview/config.json`
618
620
  | `providers.<name>.models` | array | 대화형 선택에 사용할 optional provider model 목록 |
619
621
  | `providers.<name>.auth_header` | string | `x-api-key` \| `authorization` |
620
622
  | `providers.<name>.extra_body` | object | 모든 요청 본문에 병합되는 JSON 객체 |
623
+ | `providers.<name>.timeout_sec` | integer | 요청당 HTTP timeout(초), 기본값 `300` |
621
624
  | `providers.<name>.extra_headers` | string | 쉼표로 구분된 `key=value` HTTP 헤더 |
622
625
  | `custom_providers.<name>.*` | — | optional `models`를 포함한 `providers.<name>.*`과 동일한 필드 |
623
626
  | `llm.url` | string | `https://api.openai.com/v1/chat/completions` |
624
627
  | `llm.auth_token` | string | `sk-xxxxxxx` |
625
628
  | `llm.auth_header` | string | Anthropic only: `x-api-key` \| `authorization` |
626
629
  | `llm.extra_body` | object | 모든 요청 본문에 병합되는 JSON 객체 |
630
+ | `llm.timeout_sec` | integer | 요청당 HTTP timeout(초), 기본값 `300` |
627
631
  | `llm.extra_headers` | string | 쉼표로 구분된 `key=value` HTTP 헤더 |
628
632
  | `llm.model` | string | `claude-opus-4-6` |
629
633
  | `llm.use_anthropic` | boolean | `true` \| `false` |
634
+ | `mcp_servers.<name>.command` | string | MCP 서버를 시작하는 명령어 |
635
+ | `mcp_servers.<name>.args` | array | MCP 서버의 커맨드라인 인수 |
636
+ | `mcp_servers.<name>.env` | array | 환경 변수 (`KEY=VALUE` 형식) |
637
+ | `mcp_servers.<name>.tools` | array | 허용할 도구 이름 (비어 있으면 모든 도구 허용) |
638
+ | `mcp_servers.<name>.setup` | string | 서버 시작 전에 실행할 설정 명령어 |
630
639
  | `language` | string | 임의의 언어 이름, 예: `English`, `Chinese` (기본값: `English`) |
631
640
  | `telemetry.enabled` | boolean | `true` \| `false` |
632
641
  | `telemetry.exporter` | string | `console` \| `otlp` |
@@ -635,6 +644,43 @@ Config file: `~/.opencodereview/config.json`
635
644
 
636
645
  환경 변수는 config file보다 우선합니다.
637
646
 
647
+ ### MCP Server
648
+
649
+ Open Code Review는 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) 서버를 지원하여 리뷰 에이전트가 stdio 전송을 통해 코드 리뷰 중에 외부 도구를 사용할 수 있습니다.
650
+
651
+ CLI로 MCP 서버를 설정합니다:
652
+
653
+ ```bash
654
+ # MCP 서버 추가
655
+ ocr config set mcp_servers.<name>.command <command>
656
+ ocr config set mcp_servers.<name>.args '["arg1","arg2"]'
657
+ ocr config set mcp_servers.<name>.env '["KEY=VALUE"]'
658
+ ocr config set mcp_servers.<name>.tools '["tool_name"]'
659
+ ocr config set mcp_servers.<name>.setup '<setup command>'
660
+
661
+ # MCP 서버 삭제
662
+ ocr config unset mcp_servers.<name>
663
+ ```
664
+
665
+ | 필드 | 필수 | 설명 |
666
+ |------|------|------|
667
+ | `command` | 예 | MCP 서버를 시작하는 실행 명령어 |
668
+ | `args` | 아니오 | 서버에 전달할 커맨드라인 인수 |
669
+ | `env` | 아니오 | 환경 변수 (`KEY=VALUE` 형식) |
670
+ | `tools` | 아니오 | 허용할 도구 이름. 비어 있으면 서버의 모든 도구 사용 가능 |
671
+ | `setup` | 아니오 | 서버 시작 전에 실행할 셸 명령어 (예: 인덱스 빌드) |
672
+
673
+ > **참고:** MCP 도구의 이름이 내장 도구와 충돌하면 경고와 함께 건너뜁니다. `setup` 명령어의 타임아웃은 5분입니다.
674
+
675
+ **예시: [CodeGraph](https://github.com/nicholasgasior/codegraph)를 추가하여 코드 구조 분석 강화**
676
+
677
+ ```bash
678
+ ocr config set mcp_servers.codegraph.command codegraph
679
+ ocr config set mcp_servers.codegraph.args '["serve","--mcp"]'
680
+ ocr config set mcp_servers.codegraph.tools '["codegraph_explore"]'
681
+ ocr config set mcp_servers.codegraph.setup 'codegraph init && codegraph index'
682
+ ```
683
+
638
684
  ### Environment Variables
639
685
 
640
686
  | Variable | Purpose |
@@ -644,6 +690,7 @@ Config file: `~/.opencodereview/config.json`
644
690
  | `OCR_LLM_AUTH_HEADER` | Anthropic auth header (`x-api-key` 또는 `authorization`) |
645
691
  | `OCR_LLM_EXTRA_HEADERS` | 쉼표로 구분된 `key=value` HTTP 헤더 |
646
692
  | `OCR_LLM_MODEL` | Model name |
693
+ | `OCR_LLM_TIMEOUT` | 요청당 HTTP timeout(초), config file의 `timeout_sec`를 override |
647
694
  | `OCR_USE_ANTHROPIC` | `true` = Anthropic, `false` = OpenAI |
648
695
 
649
696
  ## Telemetry
package/README.md CHANGED
@@ -38,6 +38,8 @@ Open Code Review is an AI-powered code review CLI tool. It originated as Alibaba
38
38
 
39
39
  It reads Git diffs, sends changed files to a configurable LLM via an agent with tool-use capabilities, and generates structured review comments with line-level precision. The agent can read full file contents, search the codebase, inspect other changed files for context, and produce deep reviews — not just surface-level diff feedback. Beyond diff review, `ocr scan` reviews entire files for auditing unfamiliar codebases or directories that have no meaningful diff.
40
40
 
41
+ Visit the [official website](https://alibaba.github.io/open-code-review/) for more details.
42
+
41
43
  ![Highlights](imgs/highlights-en.png)
42
44
 
43
45
  ## Benchmark
@@ -665,15 +667,22 @@ Config file: `~/.opencodereview/config.json`
665
667
  | `providers.<name>.models` | array | Optional provider model list for interactive selection |
666
668
  | `providers.<name>.auth_header` | string | `x-api-key` \| `authorization` |
667
669
  | `providers.<name>.extra_body` | object | JSON object merged into every request body |
670
+ | `providers.<name>.timeout_sec` | integer | Per-request HTTP timeout in seconds (default: `300`) |
668
671
  | `providers.<name>.extra_headers` | string | Comma-separated `key=value` HTTP headers |
669
672
  | `custom_providers.<name>.*` | — | Same fields as `providers.<name>.*`, including optional `models` |
670
673
  | `llm.url` | string | `https://api.openai.com/v1/chat/completions` |
671
674
  | `llm.auth_token` | string | `sk-xxxxxxx` |
672
675
  | `llm.auth_header` | string | Anthropic only: `x-api-key` \| `authorization` |
673
676
  | `llm.extra_body` | object | JSON object merged into every request body |
677
+ | `llm.timeout_sec` | integer | Per-request HTTP timeout in seconds (default: `300`) |
674
678
  | `llm.extra_headers` | string | Comma-separated `key=value` HTTP headers |
675
679
  | `llm.model` | string | `claude-opus-4-6` |
676
680
  | `llm.use_anthropic` | boolean | `true` \| `false` |
681
+ | `mcp_servers.<name>.command` | string | Command to start the MCP server |
682
+ | `mcp_servers.<name>.args` | array | Command-line arguments for the MCP server |
683
+ | `mcp_servers.<name>.env` | array | Environment variables in `KEY=VALUE` format |
684
+ | `mcp_servers.<name>.tools` | array | Allowed tool names (empty = all tools) |
685
+ | `mcp_servers.<name>.setup` | string | Setup command to run before starting the server |
677
686
  | `language` | string | Any language name, e.g. `English`, `Chinese` (default: `English`) |
678
687
  | `telemetry.enabled` | boolean | `true` \| `false` |
679
688
  | `telemetry.exporter` | string | `console` \| `otlp` |
@@ -682,6 +691,43 @@ Config file: `~/.opencodereview/config.json`
682
691
 
683
692
  Environment variables take precedence over the config file.
684
693
 
694
+ ### MCP Server
695
+
696
+ Open Code Review supports [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) servers, allowing the review agent to use external tools during code review via the stdio transport.
697
+
698
+ Configure MCP servers via the CLI:
699
+
700
+ ```bash
701
+ # Add an MCP server
702
+ ocr config set mcp_servers.<name>.command <command>
703
+ ocr config set mcp_servers.<name>.args '["arg1","arg2"]'
704
+ ocr config set mcp_servers.<name>.env '["KEY=VALUE"]'
705
+ ocr config set mcp_servers.<name>.tools '["tool_name"]'
706
+ ocr config set mcp_servers.<name>.setup '<setup command>'
707
+
708
+ # Delete an MCP server
709
+ ocr config unset mcp_servers.<name>
710
+ ```
711
+
712
+ | Field | Required | Description |
713
+ |-------|----------|-------------|
714
+ | `command` | Yes | The executable command to start the MCP server |
715
+ | `args` | No | Command-line arguments passed to the server |
716
+ | `env` | No | Environment variables in `KEY=VALUE` format |
717
+ | `tools` | No | Allowed tool names; if empty, all tools from the server are available |
718
+ | `setup` | No | A shell command to run before starting the server (e.g. build an index) |
719
+
720
+ > **Note:** If an MCP tool's name conflicts with a built-in tool, it will be skipped with a warning. The `setup` command has a 5-minute timeout.
721
+
722
+ **Example: Add [CodeGraph](https://github.com/nicholasgasior/codegraph) for code structure analysis**
723
+
724
+ ```bash
725
+ ocr config set mcp_servers.codegraph.command codegraph
726
+ ocr config set mcp_servers.codegraph.args '["serve","--mcp"]'
727
+ ocr config set mcp_servers.codegraph.tools '["codegraph_explore"]'
728
+ ocr config set mcp_servers.codegraph.setup 'codegraph init && codegraph index'
729
+ ```
730
+
685
731
  ### Environment Variables
686
732
 
687
733
  | Variable | Purpose |
@@ -691,6 +737,7 @@ Environment variables take precedence over the config file.
691
737
  | `OCR_LLM_AUTH_HEADER` | Anthropic auth header (`x-api-key` or `authorization`) |
692
738
  | `OCR_LLM_EXTRA_HEADERS` | Comma-separated `key=value` HTTP headers |
693
739
  | `OCR_LLM_MODEL` | Model name |
740
+ | `OCR_LLM_TIMEOUT` | Per-request HTTP timeout in seconds (overrides config file `timeout_sec`) |
694
741
  | `OCR_USE_ANTHROPIC` | `true` = Anthropic, `false` = OpenAI |
695
742
 
696
743
 
package/README.ru-RU.md CHANGED
@@ -38,6 +38,8 @@ Open Code Review — это CLI-инструмент для код-ревью н
38
38
 
39
39
  Инструмент читает git-диффы, отправляет изменённые файлы настраиваемой LLM через агента с поддержкой вызова инструментов (tool use) и генерирует структурированные ревью-комментарии с точностью до строки. Агент может читать полное содержимое файлов, искать по кодовой базе, заглядывать в другие изменённые файлы за контекстом и выполнять глубокое ревью — а не только давать поверхностные замечания по диффу. Помимо ревью диффов, `ocr scan` позволяет проверять файлы целиком — удобно для аудита незнакомой кодовой базы или каталогов без значимого диффа.
40
40
 
41
+ Подробнее на [официальном сайте](https://alibaba.github.io/open-code-review/).
42
+
41
43
  ![Highlights](imgs/highlights-en.png)
42
44
 
43
45
  ## Бенчмарк
@@ -662,15 +664,22 @@ OCR разрешает правила ревью по цепочке приор
662
664
  | `providers.<name>.models` | array | Необязательный список моделей для интерактивного выбора |
663
665
  | `providers.<name>.auth_header` | string | `x-api-key` \| `authorization` |
664
666
  | `providers.<name>.extra_body` | object | JSON-объект, добавляемый в каждое тело запроса |
667
+ | `providers.<name>.timeout_sec` | integer | Таймаут HTTP-запроса в секундах, по умолчанию `300` |
665
668
  | `providers.<name>.extra_headers` | string | HTTP-заголовки `key=value` через запятую |
666
669
  | `custom_providers.<name>.*` | — | Те же поля, что и `providers.<name>.*`, включая необязательное `models` |
667
670
  | `llm.url` | string | `https://api.openai.com/v1/chat/completions` |
668
671
  | `llm.auth_token` | string | `sk-xxxxxxx` |
669
672
  | `llm.auth_header` | string | Только для Anthropic: `x-api-key` \| `authorization` |
670
673
  | `llm.extra_body` | object | JSON-объект, добавляемый в каждое тело запроса |
674
+ | `llm.timeout_sec` | integer | Таймаут HTTP-запроса в секундах, по умолчанию `300` |
671
675
  | `llm.extra_headers` | string | HTTP-заголовки `key=value` через запятую |
672
676
  | `llm.model` | string | `claude-opus-4-6` |
673
677
  | `llm.use_anthropic` | boolean | `true` \| `false` |
678
+ | `mcp_servers.<name>.command` | string | Команда для запуска MCP-сервера |
679
+ | `mcp_servers.<name>.args` | array | Аргументы командной строки для MCP-сервера |
680
+ | `mcp_servers.<name>.env` | array | Переменные окружения в формате `KEY=VALUE` |
681
+ | `mcp_servers.<name>.tools` | array | Разрешённые имена инструментов (пусто = все инструменты) |
682
+ | `mcp_servers.<name>.setup` | string | Команда настройки перед запуском сервера |
674
683
  | `language` | string | Любое название языка, например `English`, `Chinese` (по умолчанию: `English`) |
675
684
  | `telemetry.enabled` | boolean | `true` \| `false` |
676
685
  | `telemetry.exporter` | string | `console` \| `otlp` |
@@ -679,6 +688,43 @@ OCR разрешает правила ревью по цепочке приор
679
688
 
680
689
  Переменные окружения имеют приоритет над файлом конфигурации.
681
690
 
691
+ ### MCP-сервер
692
+
693
+ Open Code Review поддерживает серверы [Model Context Protocol (MCP)](https://modelcontextprotocol.io/), позволяя агенту ревью использовать внешние инструменты во время проверки кода через stdio-транспорт.
694
+
695
+ Настройка MCP-серверов через CLI:
696
+
697
+ ```bash
698
+ # Добавить MCP-сервер
699
+ ocr config set mcp_servers.<name>.command <command>
700
+ ocr config set mcp_servers.<name>.args '["arg1","arg2"]'
701
+ ocr config set mcp_servers.<name>.env '["KEY=VALUE"]'
702
+ ocr config set mcp_servers.<name>.tools '["tool_name"]'
703
+ ocr config set mcp_servers.<name>.setup '<setup command>'
704
+
705
+ # Удалить MCP-сервер
706
+ ocr config unset mcp_servers.<name>
707
+ ```
708
+
709
+ | Поле | Обязательно | Описание |
710
+ |------|-------------|----------|
711
+ | `command` | Да | Исполняемая команда для запуска MCP-сервера |
712
+ | `args` | Нет | Аргументы командной строки для сервера |
713
+ | `env` | Нет | Переменные окружения в формате `KEY=VALUE` |
714
+ | `tools` | Нет | Разрешённые имена инструментов; если пусто — доступны все инструменты сервера |
715
+ | `setup` | Нет | Shell-команда для выполнения перед запуском сервера (например, построение индекса) |
716
+
717
+ > **Примечание:** Если имя MCP-инструмента конфликтует со встроенным инструментом, он будет пропущен с предупреждением. Таймаут команды `setup` составляет 5 минут.
718
+
719
+ **Пример: добавление [CodeGraph](https://github.com/nicholasgasior/codegraph) для усиления анализа структуры кода**
720
+
721
+ ```bash
722
+ ocr config set mcp_servers.codegraph.command codegraph
723
+ ocr config set mcp_servers.codegraph.args '["serve","--mcp"]'
724
+ ocr config set mcp_servers.codegraph.tools '["codegraph_explore"]'
725
+ ocr config set mcp_servers.codegraph.setup 'codegraph init && codegraph index'
726
+ ```
727
+
682
728
  ### Переменные окружения
683
729
 
684
730
  | Переменная | Назначение |
@@ -688,6 +734,7 @@ OCR разрешает правила ревью по цепочке приор
688
734
  | `OCR_LLM_AUTH_HEADER` | Заголовок авторизации Anthropic (`x-api-key` или `authorization`) |
689
735
  | `OCR_LLM_EXTRA_HEADERS` | HTTP-заголовки `key=value` через запятую |
690
736
  | `OCR_LLM_MODEL` | Имя модели |
737
+ | `OCR_LLM_TIMEOUT` | Таймаут HTTP-запроса в секундах (переопределяет `timeout_sec` из файла конфигурации) |
691
738
  | `OCR_USE_ANTHROPIC` | `true` = Anthropic, `false` = OpenAI |
692
739
 
693
740
 
package/README.zh-CN.md CHANGED
@@ -38,6 +38,8 @@ Open Code Review 是一款 AI 驱动的代码审查 CLI 工具。它的前身是
38
38
 
39
39
  它读取 Git diff,通过具备工具调用能力的 Agent 将变更文件发送至可配置的 LLM,生成具有行级精度的结构化审查意见。Agent 可以读取完整文件内容、搜索代码库、检查其他变更文件以获取上下文,从而进行深度审查——而非仅停留在表面的 diff 反馈。除了 diff 审查,`ocr scan` 可以审查整个文件,适用于审计不熟悉的代码库或没有有意义 diff 的目录。
40
40
 
41
+ 访问[官方网站](https://alibaba.github.io/open-code-review/)了解更多信息。
42
+
41
43
  ![Highlights](imgs/highlights-zh.png)
42
44
 
43
45
  ## 基准测试
@@ -650,15 +652,22 @@ OCR 通过四层优先级链解析评审规则。每层采用首次匹配原则
650
652
  | `providers.<name>.models` | array | 用于交互式选择的可选供应商模型列表 |
651
653
  | `providers.<name>.auth_header` | string | `x-api-key` \| `authorization` |
652
654
  | `providers.<name>.extra_body` | object | 合并到每个请求体的 JSON 对象 |
655
+ | `providers.<name>.timeout_sec` | integer | 每次请求的 HTTP 超时时间(秒),默认 `300` |
653
656
  | `providers.<name>.extra_headers` | string | 逗号分隔的 `key=value` HTTP 头 |
654
657
  | `custom_providers.<name>.*` | — | 与 `providers.<name>.*` 相同的字段,包括可选的 `models` |
655
658
  | `llm.url` | string | `https://api.openai.com/v1/chat/completions` |
656
659
  | `llm.auth_token` | string | `sk-xxxxxxx` |
657
660
  | `llm.auth_header` | string | 仅 Anthropic:`x-api-key` \| `authorization` |
658
661
  | `llm.extra_body` | object | 合并到每个请求体的 JSON 对象 |
662
+ | `llm.timeout_sec` | integer | 每次请求的 HTTP 超时时间(秒),默认 `300` |
659
663
  | `llm.extra_headers` | string | 逗号分隔的 `key=value` HTTP 头 |
660
664
  | `llm.model` | string | `claude-opus-4-6` |
661
665
  | `llm.use_anthropic` | boolean | `true` \| `false` |
666
+ | `mcp_servers.<name>.command` | string | 启动 MCP 服务器的命令 |
667
+ | `mcp_servers.<name>.args` | array | MCP 服务器的命令行参数 |
668
+ | `mcp_servers.<name>.env` | array | 环境变量,`KEY=VALUE` 格式 |
669
+ | `mcp_servers.<name>.tools` | array | 允许使用的工具名称(为空则允许所有工具) |
670
+ | `mcp_servers.<name>.setup` | string | 启动服务器前运行的初始化命令 |
662
671
  | `language` | string | 任意语言名称,例如 `English`、`Chinese`(默认:`English`) |
663
672
  | `telemetry.enabled` | boolean | `true` \| `false` |
664
673
  | `telemetry.exporter` | string | `console` \| `otlp` |
@@ -667,6 +676,43 @@ OCR 通过四层优先级链解析评审规则。每层采用首次匹配原则
667
676
 
668
677
  环境变量优先级高于配置文件。
669
678
 
679
+ ### MCP Server
680
+
681
+ Open Code Review 支持 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) 服务器,允许评审 Agent 在代码评审过程中通过 stdio 传输协议调用外部工具。
682
+
683
+ 通过 CLI 配置 MCP 服务器:
684
+
685
+ ```bash
686
+ # 添加 MCP 服务器
687
+ ocr config set mcp_servers.<name>.command <command>
688
+ ocr config set mcp_servers.<name>.args '["arg1","arg2"]'
689
+ ocr config set mcp_servers.<name>.env '["KEY=VALUE"]'
690
+ ocr config set mcp_servers.<name>.tools '["tool_name"]'
691
+ ocr config set mcp_servers.<name>.setup '<setup command>'
692
+
693
+ # 删除 MCP 服务器
694
+ ocr config unset mcp_servers.<name>
695
+ ```
696
+
697
+ | 字段 | 必填 | 说明 |
698
+ |------|------|------|
699
+ | `command` | 是 | 启动 MCP 服务器的可执行命令 |
700
+ | `args` | 否 | 传递给服务器的命令行参数 |
701
+ | `env` | 否 | 环境变量,`KEY=VALUE` 格式 |
702
+ | `tools` | 否 | 允许使用的工具名称;为空则服务器的所有工具均可用 |
703
+ | `setup` | 否 | 启动服务器前运行的 shell 命令(例如构建索引) |
704
+
705
+ > **注意:** 如果 MCP 工具的名称与内置工具冲突,该工具将被跳过并输出警告。`setup` 命令的超时时间为 5 分钟。
706
+
707
+ **示例:添加 [CodeGraph](https://github.com/nicholasgasior/codegraph) 增强代码结构分析能力**
708
+
709
+ ```bash
710
+ ocr config set mcp_servers.codegraph.command codegraph
711
+ ocr config set mcp_servers.codegraph.args '["serve","--mcp"]'
712
+ ocr config set mcp_servers.codegraph.tools '["codegraph_explore"]'
713
+ ocr config set mcp_servers.codegraph.setup 'codegraph init && codegraph index'
714
+ ```
715
+
670
716
  ### 环境变量
671
717
 
672
718
  | 变量 | 用途 |
@@ -676,6 +722,7 @@ OCR 通过四层优先级链解析评审规则。每层采用首次匹配原则
676
722
  | `OCR_LLM_AUTH_HEADER` | Anthropic 认证头(`x-api-key` 或 `authorization`) |
677
723
  | `OCR_LLM_EXTRA_HEADERS` | 逗号分隔的 `key=value` HTTP 头 |
678
724
  | `OCR_LLM_MODEL` | 模型名称 |
725
+ | `OCR_LLM_TIMEOUT` | 每次请求的 HTTP 超时时间(秒),覆盖配置文件中的 `timeout_sec` |
679
726
  | `OCR_USE_ANTHROPIC` | `true` = Anthropic,`false` = OpenAI |
680
727
 
681
728
 
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="500" height="500" viewBox="0 0 500 500"><defs><clipPath id="master_svg0_3_1846"><rect x="0" y="0" width="500" height="500" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_3_1846)"><path d="M369.391824777832,207.16971852783203L369.391854777832,131.60131852783203C369.391854777832,128.15557852783203,367.18552477783203,125.09696952783203,363.915744777832,124.00987252783203L265.002354777832,91.12426762783203C256.809764777832,88.40048217783203,247.95578477783204,88.40048217783203,239.76320477783204,91.12426762783203L140.84986477783204,124.00987252783203C137.58010877783204,125.09696952783203,135.37377977783203,128.15557852783203,135.37377977783203,131.60131052783203L135.37377977783203,187.979896527832Q110.36145377783203,206.39992852783203,91.91033172783203,231.29782852783202C91.25267028783203,232.18527852783203,91.45416259783204,233.43310852783202,92.34779357783204,234.08234852783204L101.33021547783203,240.60814852783204C102.22384677783204,241.25737852783203,103.48256677783203,241.04652852783204,104.14099877783204,240.15965852783202Q117.80681777783204,221.75247852783204,135.37377977783203,207.15375852783203L135.37377977783203,207.16845852783203C135.42538077783203,207.12065852783203,135.47701677783203,207.07290852783203,135.52869377783202,207.02515852783205Q150.71423377783202,194.43231852783202,168.80918877783205,184.679801527832Q209.221374777832,162.89910852783203,251.50217477783204,162.39883452783204C251.59465477783203,162.39774352783203,251.68558477783202,162.39046452783202,251.77458477783202,162.377410527832C251.97704477783202,162.37673952783203,252.17955477783204,162.37640352783203,252.38211477783204,162.37640352783203C296.51404477783205,162.37640352783203,338.303324777832,178.37404652783204,369.391824777832,207.16971852783203ZM252.38291477783204,295.414878527832C279.10971477783204,295.414878527832,300.776084777832,273.74850852783203,300.776084777832,247.02170852783203C300.776084777832,240.21207852783203,299.33893477783204,233.47909852783204,296.55858477783204,227.26292852783203C294.66187477783205,235.80182852783204,287.548164777832,242.19144852783202,278.85541477783204,243.16412852783202C279.03736477783207,244.42372852783203,279.131504777832,245.71170852783203,279.131504777832,247.02168852783203C279.131504777832,261.794608527832,267.155694777832,273.770428527832,252.38277477783203,273.770428527832C237.60985477783203,273.770428527832,225.63404477783203,261.794608527832,225.63404477783203,247.02168852783203C225.63404477783203,232.24876852783203,237.60985477783203,220.27295852783203,252.38277477783203,220.27295852783203C253.69280477783204,220.27295852783203,254.98084477783203,220.36711852783202,256.240474777832,220.54907852783202C257.21321477783204,211.85636852783205,263.60280477783203,204.742728527832,272.141634777832,202.84602852783203C265.925484777832,200.06567852783203,259.19254477783204,198.62853852783203,252.38291477783204,198.62853852783203C225.65610477783204,198.62853852783203,203.98974477783202,220.29489852783203,203.98974477783202,247.02170852783203C203.98974477783202,273.74850852783203,225.65610477783204,295.414878527832,252.38291477783204,295.414878527832ZM274.81439477783204,243.21481852783202C264.90529477783207,242.35698852783204,257.04755477783203,234.49919852783202,256.1897847778321,224.59009852783203C254.95186477783204,224.38151852783204,253.68000477783204,224.27295852783203,252.38277477783203,224.27295852783203C239.81899477783202,224.27295852783203,229.63404477783203,234.45790852783202,229.63404477783203,247.02168852783203C229.63404477783203,259.58546852783206,239.81899477783202,269.770428527832,252.38277477783203,269.770428527832C264.94655477783203,269.770428527832,275.131504777832,259.58546852783206,275.131504777832,247.02168852783203C275.131504777832,245.72450852783203,275.02294477783204,244.45268852783204,274.81439477783204,243.21481852783202ZM313.98419477783204,373.06705852783205C339.51094477783204,356.76340852783204,357.58451477783206,331.66420852783205,365.26810477783204,303.12996852783203Q389.75952477783204,285.49681852783203,408.076424777832,260.794778527832C408.73435477783204,259.907508527832,408.54584477783203,258.641948527832,407.65219477783205,257.99271852783204L398.669774777832,251.46689852783203C397.77616477783204,250.81766852783204,396.535404777832,251.00403852783202,395.87693477783205,251.89087852783203Q383.89679477783204,268.02557852783207,369.057804777832,280.89197852783207L369.05826477783205,280.88595852783203C369.02341477783204,280.91804852783207,368.98856477783204,280.950138527832,368.95362477783203,280.98224852783204Q352.70179477783205,295.05160852783206,333.025454777832,305.20590852783204Q296.652744777832,323.976658527832,256.24428477783204,325.33029852783204C254.95902477783204,325.35753852783205,253.67157477783203,325.37118852783203,252.38211477783204,325.37118852783203C208.41640477783204,325.37118852783203,166.76860077783203,309.49237852783205,135.70742077783203,280.88730852783203C138.50842277783204,318.39349852783204,158.79284677783204,352.636328527832,190.78138777783204,373.067088527832L248.07660477783202,409.660928527832C250.70246477783203,411.33801852783205,254.06308477783202,411.33801852783205,256.68894477783203,409.660928527832L313.98419477783204,373.06705852783205Z" fill-rule="evenodd" fill="#35BD5F" fill-opacity="1"/></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" version="1.1" width="64" height="64" viewBox="0 0 64 64"><path d="M16.011564254260254,24.651044499999998C14.199108154260253,26.0486085,12.604812654260254,27.6949085,11.290275574260255,29.5567475C11.202753064260254,29.6807115,10.984476089260253,29.5737765,11.051337242260255,29.4375555C12.365951554260254,26.7591665,14.005819354260254,24.3629835,15.886684454260255,22.313341100000002L15.886684454260255,14.091053C15.886684454260255,13.28568935,16.539560354260253,12.6328125,17.344924954260254,12.6328125L46.644013054260256,12.6328125C47.449376054260256,12.6328125,48.10225405426026,13.28568935,48.10225405426026,14.091054L48.10225405426026,24.7461315C43.604340054260255,21.2891407,37.94170905426026,19.4149723,31.994634054260253,19.4149723C26.104784054260254,19.4149723,20.491794554260252,21.2537956,16.011564254260254,24.651044499999998ZM31.994557054260255,36.8882445C35.14015305426025,36.8882445,37.690160054260254,34.3323665,37.690160054260254,31.1795235C37.690160054260254,30.5937725,37.60022405426025,30.0115585,37.423505054260254,29.4532315C36.96355905426026,30.4290525,35.98299105426025,31.0517195,34.906236054260255,31.0517195C33.36864905426025,31.0517195,32.122189054260254,29.8023895,32.122189054260254,28.2612605C32.122189054260254,27.1816535,32.74318005426025,26.199264499999998,33.71711105426026,25.738142500000002C33.160027054260254,25.5609745,32.57901505426025,25.4708005,31.994557054260255,25.4708005C28.848966054260252,25.4708005,26.298958054260254,28.026681500000002,26.298958054260254,31.1795235C26.298958054260254,34.3323665,28.848966054260252,36.8882445,31.994557054260255,36.8882445ZM47.15295105426026,40.7200085C49.430203054260254,38.5980795,51.40581205426025,36.0023425,52.94698805426025,33.029174499999996C53.01721305426025,32.8936925,52.805627054260256,32.7626725,52.716546054260256,32.8865775C51.36659305426026,34.7642635,49.73017205426025,36.4189305,47.87169405426025,37.8158765C47.87339505426026,37.8053205,47.87509205426026,37.7947615,47.87677505426026,37.7842025C43.46611505426026,41.092453500000005,37.971620054260256,42.9006615,32.199830054260254,42.9434055C32.19153705426025,42.9434665,32.18324405426026,42.9435235,32.174951054260255,42.9435765C32.11482705426025,42.943946499999996,32.054662054260255,42.9441415,31.994454054260252,42.9441415C26.150606054260255,42.9441185,20.577615754260254,41.1334415,16.112119654260255,37.7839245C17.329820654260253,45.4193075,23.367437054260254,51.7093845,31.457871054260252,54.2405735C31.808347054260253,54.3502275,32.18059205426025,54.3502275,32.53106805426025,54.2405775C39.557904054260256,52.0421445,45.03618705426025,47.0081745,47.15295105426026,40.7200085Z" fill-rule="evenodd" fill="#2BDE5E"/></svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alibaba-group/open-code-review",
3
- "version": "1.6.5",
3
+ "version": "1.7.0",
4
4
  "description": "OpenCodeReview CLI — AI-powered code review tool",
5
5
  "bin": {
6
6
  "ocr": "bin/ocr.js"
@@ -28,12 +28,12 @@
28
28
  "checksumPattern": "https://github.com/alibaba/open-code-review/releases/download/v{version}/sha256sum.txt"
29
29
  },
30
30
  "optionalDependencies": {
31
- "@alibaba-group/ocr-darwin-arm64": "1.6.5",
32
- "@alibaba-group/ocr-darwin-x64": "1.6.5",
33
- "@alibaba-group/ocr-linux-arm64": "1.6.5",
34
- "@alibaba-group/ocr-linux-x64": "1.6.5",
35
- "@alibaba-group/ocr-win32-arm64": "1.6.5",
36
- "@alibaba-group/ocr-win32-x64": "1.6.5"
31
+ "@alibaba-group/ocr-darwin-arm64": "1.7.0",
32
+ "@alibaba-group/ocr-darwin-x64": "1.7.0",
33
+ "@alibaba-group/ocr-linux-arm64": "1.7.0",
34
+ "@alibaba-group/ocr-linux-x64": "1.7.0",
35
+ "@alibaba-group/ocr-win32-arm64": "1.7.0",
36
+ "@alibaba-group/ocr-win32-x64": "1.7.0"
37
37
  },
38
38
  "engines": {
39
39
  "node": ">=14"