@nevzatcirak/review-mcp 1.0.0 → 1.1.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.
Files changed (2) hide show
  1. package/README.md +44 -12
  2. package/package.json +7 -7
package/README.md CHANGED
@@ -12,8 +12,8 @@ mode), are never logged and are never persisted. There is no telemetry and there
12
12
  are no embedded defaults for URLs or endpoints: everything comes from your
13
13
  configuration.
14
14
 
15
- **Status: release candidate.** The current release candidate is published
16
- under the npm dist-tag `next`; it is being validated before v1.0.0. See the
15
+ **Status: stable (1.1.0).** Stable releases are published under the npm
16
+ dist-tag `latest`; release candidates of the next version under `next`. See the
17
17
  [changelog](CHANGELOG.md).
18
18
 
19
19
  ## Quick start
@@ -22,9 +22,8 @@ under the npm dist-tag `next`; it is being validated before v1.0.0. See the
22
22
  ([Setup guide, steps 2 and 3](docs/setup.md#2-create-tokens)). A read-only
23
23
  token is enough for reviews and questions that are not published.
24
24
  2. Register the server with your client. With npm there is nothing to install.
25
- Release candidates are published under the dist-tag `next`; pin the exact
26
- version you test (for example `@nevzatcirak/review-mcp@1.0.0-rc.3`) so that
27
- `npx` does not reuse an older cached copy. Stable releases are `latest`.
25
+ Pin the exact version (for example `@nevzatcirak/review-mcp@1.1.0`) so that
26
+ `npx` does not reuse an older cached copy; update the pin to upgrade.
28
27
 
29
28
  **Claude Code**
30
29
 
@@ -35,7 +34,7 @@ under the npm dist-tag `next`; it is being validated before v1.0.0. See the
35
34
  --env REVIEW_MCP_GITEA_BASE_URL=https://your-gitea.example \
36
35
  --env REVIEW_MCP_LLM_API_KEY="$REVIEW_MCP_LLM_API_KEY" \
37
36
  --env REVIEW_MCP_GITEA_TOKEN="$REVIEW_MCP_GITEA_TOKEN" \
38
- -- npx -y @nevzatcirak/review-mcp@next
37
+ -- npx -y @nevzatcirak/review-mcp@1.1.0
39
38
  ```
40
39
 
41
40
  **opencode** (`opencode.json`)
@@ -46,7 +45,7 @@ under the npm dist-tag `next`; it is being validated before v1.0.0. See the
46
45
  "mcp": {
47
46
  "review-mcp": {
48
47
  "type": "local",
49
- "command": ["npx", "-y", "@nevzatcirak/review-mcp@next"],
48
+ "command": ["npx", "-y", "@nevzatcirak/review-mcp@1.1.0"],
50
49
  "enabled": true,
51
50
  "environment": {
52
51
  "REVIEW_MCP_LLM_BASE_URL": "https://llm.example.com/v1",
@@ -96,9 +95,15 @@ under the npm dist-tag `next`; it is being validated before v1.0.0. See the
96
95
  (Ollama, for example), set it to the context size your server actually
97
96
  runs with, not the model's maximum.
98
97
  - **`REVIEW_MCP_DIFF_MAX_TOKENS`** (optional) caps how much of the diff is
99
- sent, independently of the context window. A smaller prompt means a
100
- faster answer from a slow model; files that do not fit are listed in the
101
- review's coverage section instead of being reviewed.
98
+ sent in one model call, independently of the context window. A smaller
99
+ prompt means a faster answer from a slow model. A pull request that does
100
+ not fit is reviewed in several parts, one call each
101
+ (`REVIEW_MCP_REVIEW_MAX_CHUNKS`, default 8, 1 to 32), so the cap now makes
102
+ each part smaller, not the review shorter. Files left after the last part
103
+ are listed in the review's coverage section instead of being reviewed.
104
+ The merged review shows at most `REVIEW_MCP_REVIEW_MAX_TOTAL_FINDINGS`
105
+ findings (default 10, up to 50; when you set it, at least
106
+ `review.max_findings`).
102
107
  - **Long calls (stdio):** a `pr_review` or `pr_ask` call that is still
103
108
  running after `REVIEW_MCP_LLM_WAIT_SECONDS` (default 45) answers with a
104
109
  `job_id`; ask the client to fetch the result and it calls `job_result`.
@@ -111,12 +116,37 @@ under the npm dist-tag `next`; it is being validated before v1.0.0. See the
111
116
  publishing it. The [Setup guide](docs/setup.md) walks through the first run,
112
117
  keeps tokens out of files, and covers release archives and `go install`.
113
118
 
119
+ ## Repository context (opt-in)
120
+
121
+ A diff does not show who depends on what it changes. With
122
+ `REVIEW_MCP_CONTEXT_REPO_ENABLED=true` (stdio only, needs `git` 2.31 or later),
123
+ `pr_review` and `pr_ask` also fetch the pull request head into a local,
124
+ self-pruning cache, search where the changed symbols are used, and add the
125
+ best uses to the prompt within a token budget. Off by default; the token never
126
+ touches disk or logs. Settings:
127
+
128
+ | Key | Env | Default |
129
+ |---|---|---|
130
+ | `context.repo.enabled` | `REVIEW_MCP_CONTEXT_REPO_ENABLED` | `false` |
131
+ | `context.repo.cache_dir` | `REVIEW_MCP_CONTEXT_REPO_CACHE_DIR` | OS user cache dir + `review-mcp/repos` |
132
+ | `context.repo.idle_days` | `REVIEW_MCP_CONTEXT_REPO_IDLE_DAYS` | `7` |
133
+ | `context.repo.max_cache_mb` | `REVIEW_MCP_CONTEXT_REPO_MAX_CACHE_MB` | `2048` |
134
+ | `context.repo.max_repo_mb` | `REVIEW_MCP_CONTEXT_REPO_MAX_REPO_MB` | `500` |
135
+ | `context.repo.fetch_timeout_seconds` | `REVIEW_MCP_CONTEXT_REPO_FETCH_TIMEOUT_SECONDS` | `60` |
136
+ | `context.repo.max_symbols` | `REVIEW_MCP_CONTEXT_REPO_MAX_SYMBOLS` | `20` |
137
+ | `context.repo.max_hits_per_symbol` | `REVIEW_MCP_CONTEXT_REPO_MAX_HITS_PER_SYMBOL` | `5` |
138
+ | `context.repo.max_tokens` | `REVIEW_MCP_CONTEXT_REPO_MAX_TOKENS` | `2000` |
139
+
140
+ See [Repository context](docs/repo-context.md) for the details. `review-mcp
141
+ diag cache [--prune]` lists and sweeps the cache.
142
+
114
143
  ## Tools
115
144
 
116
145
  | Tool | What it does |
117
146
  |---|---|
118
147
  | `server_info` | Version, enabled providers and the effective non-secret configuration; secrets show only as set or unset. |
119
148
  | `pr_comments` | Lists a pull request's comment threads. |
149
+ | `pr_info` | Which branch a pull request merges into and who has reviewed or approved it: human reviewers with their states, approval counts, required approvals and merge status where the provider exposes them. review-mcp's own reviews and comments are reported separately and never count as approvals. Read-only, no LLM call; see [Pull request status](docs/pr-info.md). |
120
150
  | `pr_comment_reply` | Replies to a pull request comment (inside the thread on Bitbucket Server; as a quoting PR-level comment on Gitea). |
121
151
  | `pr_comment_create` | Posts a new comment on a pull request, PR-level or on a changed line (`file` and `line`). A line outside the diff is refused, never posted at PR level instead. |
122
152
  | `pr_review` | Reviews a pull request with your LLM. The title, description, existing comments and diff are sent to your LLM endpoint. Optionally publishes the review: one overview comment, edited in place on later runs, and inline comments on the changed lines. |
@@ -127,8 +157,10 @@ under the npm dist-tag `next`; it is being validated before v1.0.0. See the
127
157
 
128
158
  - [Setup guide](docs/setup.md): install, token checklist, LLM endpoint, client configuration, first run.
129
159
  - [Serve mode](docs/serve.md): one shared HTTP server for a team, the header contract, TLS, the container.
130
- - [Reviewing pull requests](docs/review.md): what `pr_review` sends to the LLM, choosing `llm.context_window`, reading coverage and notes, `publish` (the overview and inline comments), discussion awareness, slow endpoints and `job_result`, `diag review --dry-run`.
131
- - [Asking questions about a pull request](docs/ask.md): what `pr_ask` sends to the LLM, grounding and honesty, coverage, `publish` and the slash sanitization, `diag ask --dry-run`.
160
+ - [Reviewing pull requests](docs/review.md): what `pr_review` sends to the LLM, choosing `llm.context_window`, reading coverage and notes, large pull requests reviewed in parts, `publish` (the overview and inline comments), discussion awareness, slow endpoints and `job_result`, `diag review --dry-run`.
161
+ - [Asking questions about a pull request](docs/ask.md): what `pr_ask` sends to the LLM, files the question names, grounding and honesty, coverage, `publish` and the slash sanitization, `diag ask --dry-run`.
162
+ - [Pull request status](docs/pr-info.md): what `pr_info` reports (target branch, human reviewers, approvals, merge status), where each fact comes from, and why review-mcp's own reviews are not reviewers.
163
+ - [Repository context](docs/repo-context.md): opt-in, stdio only: shows the model where the symbols a pull request changes are used elsewhere in the project (a cached `git` fetch of the head, `git grep`, a budgeted prompt block), its configuration, the cache, the security properties, the coverage line and the evaluation harness.
132
164
  - [Getting started](docs/getting-started.md): the minimal configuration and the diff budget in detail.
133
165
  - [Troubleshooting](docs/troubleshooting.md): the `diag` commands and every error sentence.
134
166
  - [Changelog](CHANGELOG.md).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nevzatcirak/review-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "MCP server for AI-assisted pull-request review on Gitea and Bitbucket Server.",
5
5
  "keywords": [
6
6
  "mcp",
@@ -23,12 +23,12 @@
23
23
  "node": ">=18"
24
24
  },
25
25
  "optionalDependencies": {
26
- "@nevzatcirak/review-mcp-linux-x64": "1.0.0",
27
- "@nevzatcirak/review-mcp-linux-arm64": "1.0.0",
28
- "@nevzatcirak/review-mcp-darwin-x64": "1.0.0",
29
- "@nevzatcirak/review-mcp-darwin-arm64": "1.0.0",
30
- "@nevzatcirak/review-mcp-win32-x64": "1.0.0",
31
- "@nevzatcirak/review-mcp-win32-arm64": "1.0.0"
26
+ "@nevzatcirak/review-mcp-linux-x64": "1.1.0",
27
+ "@nevzatcirak/review-mcp-linux-arm64": "1.1.0",
28
+ "@nevzatcirak/review-mcp-darwin-x64": "1.1.0",
29
+ "@nevzatcirak/review-mcp-darwin-arm64": "1.1.0",
30
+ "@nevzatcirak/review-mcp-win32-x64": "1.1.0",
31
+ "@nevzatcirak/review-mcp-win32-arm64": "1.1.0"
32
32
  },
33
33
  "files": [
34
34
  "bin/review-mcp.js",