Skip to content

Commit c28e346

Browse files
jonathanMLDevzhao
andauthored
Updated documents for new release (#236)
* Updated documents for new release * fixed 0.3.0's migration --------- Co-authored-by: zhao <jornathanm910923@gmail.com>
1 parent ea830a5 commit c28e346

6 files changed

Lines changed: 34 additions & 23 deletions

File tree

CHANGELOG.md

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,21 @@ Tagged releases are published to npm from GitHub Actions when a **GitHub Release
88

99
## [Unreleased]
1010

11+
## [0.5.0] - 2026-07-25
12+
1113
### Added
1214

15+
- **`suggest_query_params` in core:** Tool registered by `setupCoreServer` / package-root import (handler lives in core; suggest-flow gate remains off by default via `resolveConfig`). (#223)
1316
- **Per-source and per-namespace private config:** optional `description` (source-level) and `namespaces` map (`description` + declared `metadata_schema`) in JSON config files (`PINECONE_CONFIG_FILE`), or loaded automatically from the `_mcp_config` Pinecone namespace when not declared locally. Declared schemas skip live sampling; stale declared namespaces surface as `config_warnings` in `list_namespaces`. See [CONFIGURATION.md § Multi-source mode](docs/CONFIGURATION.md#multi-source-mode).
1417
- **Remote `_mcp_config` schema manifest:** automatic per-source loading of description and namespace declarations from Pinecone at startup (opt out via `PINECONE_DISABLE_REMOTE_SCHEMA` / `--disable-remote-schema`); non-fatal on failure.
1518
- **`list_namespaces`:** optional per-namespace `schema_source` (`declared` | `sampled`), optional per-namespace `description` (from private config), and top-level `config_warnings` when private config declarations do not match live Pinecone data.
1619
- **Tests:** MCP verification harness ([src/__tests__/mcp-rc-readiness.test.ts](src/__tests__/mcp-rc-readiness.test.ts)) that drives the real server over an in-memory transport with the SDK client (initialize and protocol negotiation, the full registered tool surface, and a round-trip tool call), so a future SDK or MCP protocol bump is verified in one place. Protocol assertions key off the SDK's `LATEST_PROTOCOL_VERSION`, so pinning the RC SDK re-runs the check with no test edits. (#202)
1720

1821
### Changed
1922

20-
- **Breaking (`list_sources`):** response shape `sources: string[]``sources: { name, description? }[]`. Migration: [MIGRATION.md § Unreleased list_sources](docs/MIGRATION.md#unreleased-list_sources-response-shape).
21-
- **Breaking (library API):** `PineconeClient.listNamespacesWithMetadata()` now returns `{ namespaces, warnings }` instead of a bare array. Migration: [MIGRATION.md § Unreleased PineconeClient.listNamespacesWithMetadata](docs/MIGRATION.md#unreleased-pineconeclientlistnamespaceswithmetadata-return-shape).
23+
- **Pinecone I/O resilience:** Configurable request timeout and retry with backoff on the Pinecone search/rerank hot path for retryable HTTP statuses (429, 408, 5xx). (#225)
24+
- **Breaking (`list_sources`):** response shape `sources: string[]``sources: { name, description? }[]`. Migration: [MIGRATION.md § 0.5.0 list_sources](docs/MIGRATION.md#050-list_sources-response-shape).
25+
- **Breaking (library API):** `PineconeClient.listNamespacesWithMetadata()` now returns `{ namespaces, warnings }` instead of a bare array. Migration: [MIGRATION.md § 0.5.0 PineconeClient.listNamespacesWithMetadata](docs/MIGRATION.md#050-pineconeclientlistnamespaceswithmetadata-return-shape).
2226
- **Dependencies:** Bumped the declared `@modelcontextprotocol/sdk` floor from `^1.25.3` to `^1.29.0` to match the resolved version and ready the server for the upcoming MCP RC protocol revision. `McpServer` construction and tool registration are re-verified by the harness above through `server.connect()` over the SDK in-memory transport; the production `StdioServerTransport` wiring in `src/index.ts` is unchanged and was reviewed, not exercised, by the harness. (#202)
2327
- **Instructions:** Trimmed operator/install/deploy content (env-var setup, misconfiguration note, Alliance CLI index/rerank defaults, stderr logging config) from `CORE_SERVER_INSTRUCTIONS` and `ALLIANCE_INSTRUCTIONS_APPENDIX` — reduces per-session token cost; no behavior change. Replaced colliding Alliance appendix steps 4–5 with unnumbered "Manual Alliance flow" bullets (includes `PINECONE_DISABLE_SUGGEST_FLOW=true` escape clause). Full detail remains in [docs/CONFIGURATION.md](docs/CONFIGURATION.md).
2428

@@ -28,6 +32,8 @@ Tagged releases are published to npm from GitHub Actions when a **GitHub Release
2832

2933
### Fixed
3034

35+
- **Credential redaction:** Tool error messages and `source_errors` no longer echo Pinecone API keys or other secrets from upstream error text. (#234)
36+
- **Retry and timeout classification:** `defaultShouldRetry` and app-timeout handling prefer structured HTTP status, Pinecone SDK error names, and branded `AppTimeoutError` over message-regex heuristics. (#235)
3137
- **Hybrid query degradation:** When exactly one search leg fails and the surviving leg returns zero hits, `query` / `query_documents` / `guided_query` now set `experimental.hybrid_leg_failed` and `experimental.degraded: true` with `degradation_reason` `dense_leg_failed` or `sparse_leg_failed`, so empty results from a leg failure are distinguishable from a legitimately empty namespace. (#228)
3238

3339
## [0.4.0] - 2026-06-24
@@ -60,15 +66,15 @@ Tagged releases are published to npm from GitHub Actions when a **GitHub Release
6066
- **Breaking (core):** `resolveConfig` requires a Pinecone index name and no longer applies Alliance index/rerank defaults. Removed exported `DEFAULT_INDEX_NAME` and `DEFAULT_RERANK_MODEL` from the package root. Rerank is opt-in when `PINECONE_RERANK_MODEL` / `rerankModel` is unset.
6167
- **Breaking (core):** `setupCoreServer` MCP `instructions` use `CORE_SERVER_INSTRUCTIONS` (includes `guided_query`; no `suggest_query_params`). `resolveConfig` defaults `disableSuggestFlow` to `true` so `query` / `count` / `query_documents` work without Alliance tools. Alliance CLI / `resolveAllianceConfig` unchanged: gate on by default, `ALLIANCE_SERVER_INSTRUCTIONS`.
6268
- **Alliance CLI / `resolveAllianceConfig`:** When index or rerank env/CLI values are omitted, defaults remain `rag-hybrid` and `bge-reranker-v2-m3` (API-key-only MCP configs unchanged). See [examples/alliance/.env.example](examples/alliance/.env.example).
63-
- **Breaking (library):** Trimmed public re-exports — `buildQueryExperimental` and `buildGuidedQueryExperimental` removed from package root and `/alliance` entry. See [MIGRATION.md](docs/MIGRATION.md#unreleased-trimmed-library-exports).
69+
- **Breaking (library):** Trimmed public re-exports — `buildQueryExperimental` and `buildGuidedQueryExperimental` removed from package root and `/alliance` entry. See [MIGRATION.md § 0.3.0 trimmed library exports](docs/MIGRATION.md#030-trimmed-library-exports).
6470

6571
### Deprecated
6672

6773
- Module-level singleton facades — use `ServerContext` instance methods via `createServer(config)` and `{ context: ctx }` at setup instead. Deprecated in **0.3.0**; earliest removal **0.5.0** per [deprecation-policy.md](docs/deprecation-policy.md#deprecation-window). Affected symbols: `getPineconeClient`, `setPineconeClient`, `clearPineconeClient`, `getServerConfig`, `setServerConfig`, `resetServerConfig`, `registerUrlGenerator`, `unregisterUrlGenerator`, `generateUrlForNamespace`, `hasUrlGenerator`, `resetUrlGenerationRegistry`, `markSuggested`, `requireSuggested`, `resetSuggestionFlow`, `getNamespacesWithCache`, `invalidateNamespacesCache`, `getDefaultServerContext`. Opt-in runtime warnings when `PINECONE_DEPRECATION_WARNINGS=1` or log level is `DEBUG`. See [MIGRATION.md § Legacy module-facade deprecations](docs/MIGRATION.md#030-legacy-module-facade-deprecations) and [deprecation-policy.md](docs/deprecation-policy.md#active-deprecations-legacy-module-facades).
6874

6975
### Removed
7076

71-
- **Breaking (library):** `buildQueryExperimental` and `buildGuidedQueryExperimental` are no longer re-exported from `@will-cppa/pinecone-read-only-mcp` or `@will-cppa/pinecone-read-only-mcp/alliance`. They were internal helpers used to assemble the `experimental` block on `query` / `query_documents` / `guided_query` success payloads. The assembled fields and Zod schemas (`queryResponseSchema`, `QueryExperimental`, etc.) are unchanged — see [Unreleased stable vs experimental](docs/MIGRATION.md#unreleased-stable-vs-experimental-response-fields).
77+
- **Breaking (library):** `buildQueryExperimental` and `buildGuidedQueryExperimental` are no longer re-exported from `@will-cppa/pinecone-read-only-mcp` or `@will-cppa/pinecone-read-only-mcp/alliance`. They were internal helpers used to assemble the `experimental` block on `query` / `query_documents` / `guided_query` success payloads. The assembled fields and Zod schemas (`queryResponseSchema`, `QueryExperimental`, etc.) are unchanged — see [MIGRATION.md § 0.3.0 trimmed library exports](docs/MIGRATION.md#030-trimmed-library-exports) and [stable vs experimental response fields](docs/MIGRATION.md#unreleased-stable-vs-experimental-response-fields).
7278
- **No change:** `HybridQueryResult`, `HybridLegFailed`, and `KeywordIndexNamespacesResult` remain exported as the declared return types of public `PineconeClient` methods.
7379

7480
### Fixed
@@ -166,7 +172,8 @@ details. Newer shipped changes are recorded in this changelog by version.
166172
- Environment variable support
167173
- Full documentation and examples
168174

169-
[Unreleased]: https://github.com/cppalliance/pinecone-read-only-mcp-typescript/compare/v0.4.0...HEAD
175+
[Unreleased]: https://github.com/cppalliance/pinecone-read-only-mcp-typescript/compare/v0.5.0...HEAD
176+
[0.5.0]: https://github.com/cppalliance/pinecone-read-only-mcp-typescript/compare/v0.4.0...v0.5.0
170177
[0.4.0]: https://github.com/cppalliance/pinecone-read-only-mcp-typescript/compare/v0.3.0...v0.4.0
171178
[0.3.0]: https://github.com/cppalliance/pinecone-read-only-mcp-typescript/compare/v0.2.0...v0.3.0
172179
[0.2.0]: https://github.com/cppalliance/pinecone-read-only-mcp-typescript/compare/v0.1.6...v0.2.0

README.md

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@
77

88
A [Model Context Protocol](https://modelcontextprotocol.io) (MCP) server that implements the MCP specification via `@modelcontextprotocol/sdk` v1.29+ and provides semantic search over Pinecone vector databases using hybrid search (dense + sparse) with reranking.
99

10-
Current version: 0.4.0 (npm `latest` after publish). Pin `@0.4.0` in install and MCP config for reproducible upgrades.
10+
Current version: 0.5.0 (npm `latest` after publish). Pin `@0.5.0` in install and MCP config for reproducible upgrades.
11+
12+
## Upgrading to 0.5.0
13+
14+
Version **0.5.0** includes breaking MCP and library changes: `list_sources` returns `sources: { name, description? }[]`, `PineconeClient.listNamespacesWithMetadata()` returns `{ namespaces, warnings }`, internal-only package re-exports were removed (#203), the MCP SDK floor is **^1.29.0**, and hybrid leg failure with zero surviving hits is signaled under `experimental.degraded` / `experimental.hybrid_leg_failed` (#228). Legacy module facades remain deprecated but are **not** removed in this release. See [docs/MIGRATION.md § list_sources](docs/MIGRATION.md#050-list_sources-response-shape), [§ listNamespacesWithMetadata](docs/MIGRATION.md#050-pineconeclientlistnamespaceswithmetadata-return-shape), [§ internal re-exports (#203)](docs/MIGRATION.md#internal-only-re-exports-removed-203), and the [CHANGELOG](CHANGELOG.md#050---2026-07-25).
1115

1216
## Upgrading to 0.4.0
1317

@@ -74,25 +78,25 @@ For successful `query`, `query_documents`, and `guided_query` payloads, **rerank
7478
### As a Package
7579

7680
```bash
77-
npm install @will-cppa/pinecone-read-only-mcp@0.4.0
81+
npm install @will-cppa/pinecone-read-only-mcp@0.5.0
7882
```
7983

8084
Or using yarn:
8185

8286
```bash
83-
yarn add @will-cppa/pinecone-read-only-mcp@0.4.0
87+
yarn add @will-cppa/pinecone-read-only-mcp@0.5.0
8488
```
8589

8690
Or using pnpm:
8791

8892
```bash
89-
pnpm add @will-cppa/pinecone-read-only-mcp@0.4.0
93+
pnpm add @will-cppa/pinecone-read-only-mcp@0.5.0
9094
```
9195

9296
### Global Installation
9397

9498
```bash
95-
npm install -g @will-cppa/pinecone-read-only-mcp@0.4.0
99+
npm install -g @will-cppa/pinecone-read-only-mcp@0.5.0
96100
```
97101

98102
### From Source
@@ -260,7 +264,7 @@ Add to your `claude_desktop_config.json`:
260264
"mcpServers": {
261265
"pinecone-search": {
262266
"command": "npx",
263-
"args": ["-y", "@will-cppa/pinecone-read-only-mcp@0.4.0"],
267+
"args": ["-y", "@will-cppa/pinecone-read-only-mcp@0.5.0"],
264268
"env": {
265269
"PINECONE_API_KEY": "your-api-key-here",
266270
"PINECONE_INDEX_NAME": "your-index-name",
@@ -280,7 +284,7 @@ Or with explicit options:
280284
"command": "npx",
281285
"args": [
282286
"-y",
283-
"@will-cppa/pinecone-read-only-mcp@0.4.0",
287+
"@will-cppa/pinecone-read-only-mcp@0.5.0",
284288
"--api-key",
285289
"your-api-key-here",
286290
"--index-name",
@@ -313,7 +317,7 @@ For a global installation:
313317
Run the server using npx (no installation required):
314318

315319
```bash
316-
npx @will-cppa/pinecone-read-only-mcp@0.4.0 --api-key YOUR_API_KEY --index-name YOUR_INDEX
320+
npx @will-cppa/pinecone-read-only-mcp@0.5.0 --api-key YOUR_API_KEY --index-name YOUR_INDEX
317321
```
318322

319323
Or if installed globally:
@@ -353,10 +357,10 @@ Run `pinecone-read-only-mcp --help` for the full option list.
353357

354358
```bash
355359
# install
356-
npm i @will-cppa/pinecone-read-only-mcp@0.4.0
360+
npm i @will-cppa/pinecone-read-only-mcp@0.5.0
357361

358362
# run
359-
npx @will-cppa/pinecone-read-only-mcp@0.4.0 --api-key YOUR_API_KEY
363+
npx @will-cppa/pinecone-read-only-mcp@0.5.0 --api-key YOUR_API_KEY
360364
```
361365

362366
### Deploy with Docker

docs/MIGRATION.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This guide is for **library and MCP client authors** upgrading from earlier **0.
66

77
Under [semver 0.y.z](https://semver.org/spec/v2.0.0.html#spec-item-4), **0.1.x → 0.2.0 is a breaking minor** — pin `@0.2.0` only after reading this guide.
88

9-
## Unreleased: `list_sources` response shape
9+
## 0.5.0: `list_sources` response shape
1010

1111
**Who is affected:** MCP clients parsing `list_sources` success JSON in multi-source mode.
1212

@@ -35,7 +35,7 @@ Under [semver 0.y.z](https://semver.org/spec/v2.0.0.html#spec-item-4), **0.1.x
3535

3636
Read `sources[].name` instead of treating `sources` as `string[]`. `description` is omitted when not configured.
3737

38-
## Unreleased: `PineconeClient.listNamespacesWithMetadata` return shape
38+
## 0.5.0: `PineconeClient.listNamespacesWithMetadata` return shape
3939

4040
**Who is affected:** Direct library consumers of `PineconeClient` (not MCP tool clients — `list_namespaces` tool response shape is additive only).
4141

@@ -235,7 +235,7 @@ Or point `PINECONE_CONFIG_FILE` at a JSON file (see [examples/multi-source/pinec
235235

236236
Single-key configs are unchanged; no migration required when using one API key.
237237

238-
## Unreleased: trimmed library exports
238+
## 0.3.0: trimmed library exports
239239

240240
**Who is affected:** Library embedders that imported `buildQueryExperimental` or `buildGuidedQueryExperimental` from `@will-cppa/pinecone-read-only-mcp` or `/alliance`.
241241

@@ -252,7 +252,7 @@ import { buildQueryExperimental } from '@will-cppa/pinecone-read-only-mcp';
252252

253253
`PineconeClient.query()` return types (`HybridQueryResult`, etc.) and all Zod response schemas remain on the public surface.
254254

255-
### Internal-only re-exports removed (#203)
255+
## 0.5.0: internal-only re-exports removed (#203)
256256

257257
**Who is affected:** Library embedders that imported any of these internal helpers from the package root or `/alliance`:
258258

docs/deprecation-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ For step-by-step upgrades, see [MIGRATION.md](./MIGRATION.md). For publish mecha
1010

1111
## Semantic versioning while `0.y.z`
1212

13-
This package currently ships as **`0.y.z`**. Under [Semantic Versioning §4](https://semver.org/spec/v2.0.0.html#spec-item-4), **minor releases may include breaking changes** until the first `1.0.0` release. Consumers should **pin an exact version** (for example `@will-cppa/pinecone-read-only-mcp@0.4.0`) in `package.json`, MCP server config, and Docker tags.
13+
This package currently ships as **`0.y.z`**. Under [Semantic Versioning §4](https://semver.org/spec/v2.0.0.html#spec-item-4), **minor releases may include breaking changes** until the first `1.0.0` release. Consumers should **pin an exact version** (for example `@will-cppa/pinecone-read-only-mcp@0.5.0`) in `package.json`, MCP server config, and Docker tags.
1414

1515
After **`1.0.0`**, this project intends to follow standard semver: breaking changes land only in **major** releases, and the deprecation window below becomes **binding** for removals that were previously announced as deprecated.
1616

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@will-cppa/pinecone-read-only-mcp",
3-
"version": "0.4.0",
3+
"version": "0.5.0",
44
"description": "A Model Context Protocol (MCP) server that provides semantic search over Pinecone vector databases using hybrid search (dense + sparse) with reranking.",
55
"type": "module",
66
"main": "dist/core/index.js",

0 commit comments

Comments
 (0)