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
10 changes: 7 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,16 @@ Tagged releases are published to npm from GitHub Actions when a **GitHub Release

## [Unreleased]

## [0.4.0] - 2026-06-24

### Added

- **Multi-source mode:** configure multiple Pinecone API keys / indexes in one MCP server via `PINECONE_SOURCES`, `--sources`, or a JSON config file (`PINECONE_CONFIG_FILE` / `--config-file`). New `list_sources` tool (when more than one source is configured). Optional `source` parameter on discovery and query tools; `list_namespaces` aggregates across sources and tags each namespace with `source`. See [CONFIGURATION.md](docs/CONFIGURATION.md#multi-source-mode), [TOOLS.md](docs/TOOLS.md#multi-source-mode), and deployment profiles in [CONFIGURATION.md](docs/CONFIGURATION.md#deployment-profiles).
- **Multi-source mode:** configure multiple Pinecone API keys / indexes in one MCP server via `PINECONE_SOURCES`, `--sources`, or a JSON config file (`PINECONE_CONFIG_FILE` / `--config-file`). New `list_sources` tool (when more than one source is configured). Optional `source` parameter on discovery and query tools; `list_namespaces` aggregates across sources and tags each namespace with `source`. See [CONFIGURATION.md](docs/CONFIGURATION.md#multi-source-mode), [TOOLS.md](docs/TOOLS.md#multi-source-mode), and deployment profiles in [CONFIGURATION.md](docs/CONFIGURATION.md#deployment-profiles). Migration: [MIGRATION.md § 0.4.0 multi-source](docs/MIGRATION.md#040-multi-source-pinecone-projects).

### Changed

- **Library:** `resolveConfig()` returns `CoreServerConfig`; `resolveAllianceConfig()` returns `AllianceServerConfig`. `setupCoreServer` / `setupAllianceServer` accept only their respective branded config and context types (`CoreServerContext` / `AllianceServerContext`). `ServerConfig` remains an alias for `ServerConfigBase` on read paths (`ctx.getConfig()`). See [MIGRATION.md](docs/MIGRATION.md#unreleased-branded-serverconfig-types).
- **Breaking (types):** `resolveConfig()` returns `CoreServerConfig`; `resolveAllianceConfig()` returns `AllianceServerConfig`. `setupCoreServer` / `setupAllianceServer` accept only their respective branded config and context types (`CoreServerContext` / `AllianceServerContext`). `ServerConfig` remains an alias for `ServerConfigBase` on read paths (`ctx.getConfig()`). See [MIGRATION.md § 0.4.0 branded ServerConfig](docs/MIGRATION.md#040-branded-serverconfig-types).
- **Library (internal):** Query and `keyword_search` response Zod schemas consolidated to a single canonical schema per type; permissive variants are derived via `.partial()` (no MCP payload shape change). See comment in `src/core/server/response-schemas.ts`.

## [0.3.0] - 2026-06-23

Expand Down Expand Up @@ -141,7 +144,8 @@ details. Newer shipped changes are recorded in this changelog by version.
- Environment variable support
- Full documentation and examples

[Unreleased]: https://github.com/cppalliance/pinecone-read-only-mcp-typescript/compare/v0.3.0...HEAD
[Unreleased]: https://github.com/cppalliance/pinecone-read-only-mcp-typescript/compare/v0.4.0...HEAD
[0.4.0]: https://github.com/cppalliance/pinecone-read-only-mcp-typescript/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/cppalliance/pinecone-read-only-mcp-typescript/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/cppalliance/pinecone-read-only-mcp-typescript/compare/v0.1.6...v0.2.0
[0.1.6]: https://github.com/cppalliance/pinecone-read-only-mcp-typescript/compare/v0.1.1...v0.1.6
Expand Down
26 changes: 15 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@

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

Current version: 0.3.0 (npm `latest` after publish). Pin `@0.3.0` in install and MCP config for reproducible upgrades.
Current version: 0.4.0 (npm `latest` after publish). Pin `@0.4.0` in install and MCP config for reproducible upgrades.

## Upgrading to 0.4.0

Version **0.4.0** adds **multi-source mode** (`PINECONE_SOURCES`, `list_sources`, optional `source` on query tools) and **breaking (types)** branded `CoreServerConfig` / `AllianceServerConfig` — `setupCoreServer` and `setupAllianceServer` now accept only matching config/context types. See [docs/MIGRATION.md](docs/MIGRATION.md#040-multi-source-pinecone-projects), [docs/MIGRATION.md § branded ServerConfig](docs/MIGRATION.md#040-branded-serverconfig-types), and the [CHANGELOG](CHANGELOG.md#040---2026-06-24).

## Upgrading to 0.3.0

Version **0.3.0** includes breaking MCP and library changes: experimental response fields nested under `experimental`, branded `CoreServerConfig` / `AllianceServerConfig`, legacy module-facade deprecations, and core `resolveConfig` requiring an index name with suggest-flow off by default. See [docs/MIGRATION.md](docs/MIGRATION.md) for before/after examples and the [CHANGELOG](CHANGELOG.md#030---2026-06-23) **Changed** section for the full list.
Version **0.3.0** includes breaking MCP and library changes: experimental response fields nested under `experimental`, legacy module-facade deprecations, and core `resolveConfig` requiring an index name with suggest-flow off by default. See [docs/MIGRATION.md](docs/MIGRATION.md) for before/after examples and the [CHANGELOG](CHANGELOG.md#030---2026-06-23) **Changed** section for the full list.

## Upgrading from 0.1.x

Expand Down Expand Up @@ -70,25 +74,25 @@ For successful `query`, `query_documents`, and `guided_query` payloads, **rerank
### As a Package

```bash
npm install @will-cppa/pinecone-read-only-mcp@0.3.0
npm install @will-cppa/pinecone-read-only-mcp@0.4.0
```

Or using yarn:

```bash
yarn add @will-cppa/pinecone-read-only-mcp@0.3.0
yarn add @will-cppa/pinecone-read-only-mcp@0.4.0
```

Or using pnpm:

```bash
pnpm add @will-cppa/pinecone-read-only-mcp@0.3.0
pnpm add @will-cppa/pinecone-read-only-mcp@0.4.0
```

### Global Installation

```bash
npm install -g @will-cppa/pinecone-read-only-mcp@0.3.0
npm install -g @will-cppa/pinecone-read-only-mcp@0.4.0
```

### From Source
Expand Down Expand Up @@ -256,7 +260,7 @@ Add to your `claude_desktop_config.json`:
"mcpServers": {
"pinecone-search": {
"command": "npx",
"args": ["-y", "@will-cppa/pinecone-read-only-mcp@0.3.0"],
"args": ["-y", "@will-cppa/pinecone-read-only-mcp@0.4.0"],
"env": {
"PINECONE_API_KEY": "your-api-key-here",
"PINECONE_INDEX_NAME": "your-index-name",
Expand All @@ -276,7 +280,7 @@ Or with explicit options:
"command": "npx",
"args": [
"-y",
"@will-cppa/pinecone-read-only-mcp@0.3.0",
"@will-cppa/pinecone-read-only-mcp@0.4.0",
"--api-key",
"your-api-key-here",
"--index-name",
Expand Down Expand Up @@ -309,7 +313,7 @@ For a global installation:
Run the server using npx (no installation required):

```bash
npx @will-cppa/pinecone-read-only-mcp@0.3.0 --api-key YOUR_API_KEY --index-name YOUR_INDEX
npx @will-cppa/pinecone-read-only-mcp@0.4.0 --api-key YOUR_API_KEY --index-name YOUR_INDEX
```

Or if installed globally:
Expand Down Expand Up @@ -349,10 +353,10 @@ Run `pinecone-read-only-mcp --help` for the full option list.

```bash
# install
npm i @will-cppa/pinecone-read-only-mcp@0.3.0
npm i @will-cppa/pinecone-read-only-mcp@0.4.0

# run
npx @will-cppa/pinecone-read-only-mcp@0.3.0 --api-key YOUR_API_KEY
npx @will-cppa/pinecone-read-only-mcp@0.4.0 --api-key YOUR_API_KEY
```

### Deploy with Docker
Expand Down
4 changes: 2 additions & 2 deletions docs/MIGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ See [deprecation-policy.md § Active deprecations](./deprecation-policy.md#activ

When `PINECONE_SOURCES` or a config file is active, legacy module facades (`getNamespacesWithCache`, `registerUrlGenerator`, `markSuggested`, `requireSuggested`, etc.) operate on the **default source only** (first inline source, or `defaultSource` from JSON). They do not aggregate across projects. Prefer an explicit `ServerContext` built with `sourceRegistry` from `buildSourceRegistry()` for multi-tenant or multi-project embedding.

## Unreleased: Multi-source Pinecone projects
## 0.4.0: Multi-source Pinecone projects

**Who is affected:** Operators running separate MCP entries per Pinecone project, or library embedders needing multiple indexes.

Expand Down Expand Up @@ -372,7 +372,7 @@ Core `resolveConfig` throws `Missing Pinecone index name: …` when the index is

---

## Unreleased: Branded ServerConfig types
## 0.4.0: Branded ServerConfig types

**Rationale:** `resolveConfig()` and `resolveAllianceConfig()` produced structurally identical configs. Passing Alliance-resolved config or context into `setupCoreServer()` compiled but silently changed suggest-flow gate behavior (and related defaults).

Expand Down
2 changes: 1 addition & 1 deletion docs/deprecation-policy.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ For step-by-step upgrades, see [MIGRATION.md](./MIGRATION.md). For publish mecha

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

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.3.0`) in `package.json`, MCP server config, and Docker tags.
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.

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.

Expand Down
Loading
Loading