@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.
- package/README.md +44 -12
- 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:
|
|
16
|
-
|
|
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
|
-
|
|
26
|
-
|
|
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@
|
|
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@
|
|
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
|
|
100
|
-
faster answer from a slow model
|
|
101
|
-
|
|
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.
|
|
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.
|
|
27
|
-
"@nevzatcirak/review-mcp-linux-arm64": "1.
|
|
28
|
-
"@nevzatcirak/review-mcp-darwin-x64": "1.
|
|
29
|
-
"@nevzatcirak/review-mcp-darwin-arm64": "1.
|
|
30
|
-
"@nevzatcirak/review-mcp-win32-x64": "1.
|
|
31
|
-
"@nevzatcirak/review-mcp-win32-arm64": "1.
|
|
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",
|