Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
},
"metadata": {
"description": "Marketplace for the code-index-mcp plugin — local semantic code search over C# codebases, backed by Ollama embeddings.",
"version": "0.2.3"
"version": "0.2.4"
},
"plugins": [
{
"name": "code-index",
"source": "./plugins/code-index",
"description": "Local stdio MCP that gives Claude Code semantic search over C# codebases via Roslyn-aware chunking and Ollama embeddings. Requires Ollama running locally with qwen3-embedding:4b pulled, and at least one project configured.",
"version": "0.2.3",
"version": "0.2.4",
"author": {
"name": "StaticBit",
"url": "https://github.com/StaticBit-io"
Expand Down
4 changes: 2 additions & 2 deletions plugins/code-index/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"name": "code-index",
"description": "Local stdio MCP that gives Claude Code semantic search over C# codebases. Spawns CodeIndex.Server.dll under the user's .NET 10 runtime; embeddings are computed locally via Ollama (qwen3-embedding:4b). Four tools: code_search, code_get_chunk, code_index_status, code_reindex.",
"version": "0.2.3",
"serverVersion": "0.2.1",
"version": "0.2.4",
"serverVersion": "0.2.2",
"author": {
"name": "StaticBit",
"url": "https://github.com/StaticBit-io"
Expand Down
27 changes: 27 additions & 0 deletions plugins/code-index/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,33 @@

All notable changes to this plugin are listed here. Newest at the top.

## v0.2.4 — 2026-08-03

Ships server **v0.2.2**.

### Changes
- **`code_search` returns far less per call.** Two A/B measurements found this tool costing *more*
tokens than plain `Grep` — most recently +25.7% on a clean index while making 26% *fewer* tool
calls. The mechanism was isolated rather than guessed at: `code_search` averaged 9,086 tokens per
call against `Grep`'s 5,348. It finds things in fewer searches and then loses on what each search
returns.
- Excerpts are capped at **5 lines** per hit, down from 15. An excerpt's job is to let a caller
judge relevance, not to stand in for the declaration — every hit already carries `signature`
and `doc` as separate fields, and `code_get_chunk` exists for the body. Short chunks are
unaffected: a one-line property still returns one line, never a padded five.
- The default `limit` is **5**, down from 10. Search depth inside each branch before
Reciprocal-Rank-Fusion is unchanged (it is bounded below by an independent floor of 50), so
this changes how many hits are returned, not how well they are ranked.
- Measured on eight representative queries: the default response fell from 11,421 to 5,187
characters, **−54.6%**. Roughly a third of that came from the shorter excerpt and the rest from
the lower default.
- Both tool descriptions now say excerpts are short and that following up with `code_get_chunk`
is the expected common case rather than a rare fallback.
- No recall or quality test moved. The golden-query suite passes `limit` explicitly (3 or 5), so
it never depended on the default.
- Whether this is enough to make the tool cheaper than `Grep` has **not** been re-measured yet. The
published benchmark numbers were taken on the old defaults and should be read as historical.

## v0.2.3 — 2026-08-02

Ships server **v0.2.1** (`serverVersion` moves from 0.2.0). The launcher will fetch and verify the
Expand Down
22 changes: 11 additions & 11 deletions plugins/code-index/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,11 +203,11 @@ it locally:
You'll see progress on stderr the first time a version downloads:

```text
[code-index] Server v0.2.1 not found in local cache — downloading from GitHub Releases (~14 MB, one-time)...
[code-index] Server v0.2.2 not found in local cache — downloading from GitHub Releases (~14 MB, one-time)...
[code-index] Downloaded 14.1 MB / 14.1 MB (100%)
[code-index] Verifying checksum...
[code-index] Checksum OK — extracting...
[code-index] Server v0.2.1 installed at C:\Users\you\.code-index-mcp\server\0.2.1\
[code-index] Server v0.2.2 installed at C:\Users\you\.code-index-mcp\server\0.2.2\
```

After that, every subsequent launch (any project, any session) reuses the cached install with no
Expand All @@ -223,22 +223,22 @@ This is a development escape hatch, not something to set for normal use.

**No network reachable, nothing cached yet:**
```text
[code-index] Server v0.2.1 is not installed yet, and GitHub could not be reached to download it.
[code-index] Server v0.2.2 is not installed yet, and GitHub could not be reached to download it.
[code-index] Network error: <underlying error>

[code-index] Check your internet connection and try again. If you are offline, download the release
[code-index] manually and extract it into the folder below:

https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.1/code-index-server-0.2.1.tar.gz
https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.2/code-index-server-0.2.2.tar.gz

C:\Users\you\.code-index-mcp\server\0.2.1\
C:\Users\you\.code-index-mcp\server\0.2.2\

[code-index] Then ask your question again — the launcher will find it there and skip the download.
```

**Checksum mismatch (corrupted download or compromised asset) — never run:**
```text
[code-index] Downloaded server v0.2.1 but its checksum does not match — refusing to run it.
[code-index] Downloaded server v0.2.2 but its checksum does not match — refusing to run it.
[code-index] expected: <64-char sha256>
[code-index] actual: <64-char sha256>

Expand All @@ -250,19 +250,19 @@ This is a development escape hatch, not something to set for normal use.

**Release asset not published for this plugin version:**
```text
[code-index] No GitHub release found for server v0.2.1 (tag server-v0.2.1).
[code-index] No GitHub release found for server v0.2.2 (tag server-v0.2.2).

[code-index] This plugin build expects a matching server release that is not published — check
[code-index] https://github.com/StaticBit-io/code-index-mcp/releases
[code-index] for available versions, or download it manually once published:

https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.1/code-index-server-0.2.1.tar.gz
https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.2/code-index-server-0.2.2.tar.gz
```

**Private repository, no credentials available** (this repository is private today; the same code
path works unchanged, with no token needed, if it ever becomes public):
```text
[code-index] GitHub returned 401 while requesting the server v0.2.1 release.
[code-index] GitHub returned 401 while requesting the server v0.2.2 release.
[code-index] This repository is private and needs authentication to download release assets.

[code-index] Provide a token with 'repo' scope one of these ways:
Expand All @@ -271,9 +271,9 @@ path works unchanged, with no token needed, if it ever becomes public):

[code-index] Or download the asset manually with your browser and extract it into:

C:\Users\you\.code-index-mcp\server\0.2.1\
C:\Users\you\.code-index-mcp\server\0.2.2\

https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.1/code-index-server-0.2.1.tar.gz
https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.2/code-index-server-0.2.2.tar.gz
```

### Concurrent installs
Expand Down
22 changes: 11 additions & 11 deletions plugins/code-index/README.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,11 +206,11 @@ endpoint или модель Ollama без правки файла.
При первой загрузке новой версии в stderr виден прогресс:

```text
[code-index] Server v0.2.1 not found in local cache — downloading from GitHub Releases (~14 MB, one-time)...
[code-index] Server v0.2.2 not found in local cache — downloading from GitHub Releases (~14 MB, one-time)...
[code-index] Downloaded 14.1 MB / 14.1 MB (100%)
[code-index] Verifying checksum...
[code-index] Checksum OK — extracting...
[code-index] Server v0.2.1 installed at C:\Users\you\.code-index-mcp\server\0.2.1\
[code-index] Server v0.2.2 installed at C:\Users\you\.code-index-mcp\server\0.2.2\
```

После этого каждый следующий запуск (любой проект, любая сессия) использует закэшированную
Expand All @@ -226,23 +226,23 @@ endpoint или модель Ollama без правки файла.

**Сеть недоступна, в кэше ещё ничего нет:**
```text
[code-index] Server v0.2.1 is not installed yet, and GitHub could not be reached to download it.
[code-index] Server v0.2.2 is not installed yet, and GitHub could not be reached to download it.
[code-index] Network error: <underlying error>

[code-index] Check your internet connection and try again. If you are offline, download the release
[code-index] manually and extract it into the folder below:

https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.1/code-index-server-0.2.1.tar.gz
https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.2/code-index-server-0.2.2.tar.gz

C:\Users\you\.code-index-mcp\server\0.2.1\
C:\Users\you\.code-index-mcp\server\0.2.2\

[code-index] Then ask your question again — the launcher will find it there and skip the download.
```

**Несовпадение контрольной суммы (повреждённая загрузка или скомпрометированный ассет) — сервер
не запускается ни при каких условиях:**
```text
[code-index] Downloaded server v0.2.1 but its checksum does not match — refusing to run it.
[code-index] Downloaded server v0.2.2 but its checksum does not match — refusing to run it.
[code-index] expected: <64-char sha256>
[code-index] actual: <64-char sha256>

Expand All @@ -254,19 +254,19 @@ endpoint или модель Ollama без правки файла.

**Релиз для этой версии плагина не опубликован:**
```text
[code-index] No GitHub release found for server v0.2.1 (tag server-v0.2.1).
[code-index] No GitHub release found for server v0.2.2 (tag server-v0.2.2).

[code-index] This plugin build expects a matching server release that is not published — check
[code-index] https://github.com/StaticBit-io/code-index-mcp/releases
[code-index] for available versions, or download it manually once published:

https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.1/code-index-server-0.2.1.tar.gz
https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.2/code-index-server-0.2.2.tar.gz
```

**Приватный репозиторий, нет доступных учётных данных** (сегодня репозиторий приватный; тот же
код без изменений сработает и без токена, если репозиторий когда-нибудь станет публичным):
```text
[code-index] GitHub returned 401 while requesting the server v0.2.1 release.
[code-index] GitHub returned 401 while requesting the server v0.2.2 release.
[code-index] This repository is private and needs authentication to download release assets.

[code-index] Provide a token with 'repo' scope one of these ways:
Expand All @@ -275,9 +275,9 @@ endpoint или модель Ollama без правки файла.

[code-index] Or download the asset manually with your browser and extract it into:

C:\Users\you\.code-index-mcp\server\0.2.1\
C:\Users\you\.code-index-mcp\server\0.2.2\

https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.1/code-index-server-0.2.1.tar.gz
https://github.com/StaticBit-io/code-index-mcp/releases/download/server-v0.2.2/code-index-server-0.2.2.tar.gz
```

Сами сообщения лаунчер печатает на английском (это вывод инструмента, не документация) — здесь
Expand Down
2 changes: 1 addition & 1 deletion plugins/code-index/bin/server.sha256
Original file line number Diff line number Diff line change
@@ -1 +1 @@
480eddc8b0ad89163ee6403b2b408d8821edf3a586f1e34805bdd2f57b87b065 code-index-server-0.2.1.tar.gz
40deb431d220aeffa1da92a760e1997c7474bea394dad9ba775b29794512e56f code-index-server-0.2.2.tar.gz