Problem
Multi-source setups that need source descriptions and namespace schemas currently require a separate pinecone-sources.json file via PINECONE_CONFIG_FILE. That forces users to maintain two config files (MCP settings + Pinecone sources) and makes it harder to keep private corpus metadata in one place.
Proposed solution
Extend PINECONE_SOURCES (and --sources) to accept JSON in addition to the existing colon format (name:apiKey:indexName;...):
- Sources-map shape — embed config directly in MCP
env.PINECONE_SOURCES, matching data/cppa-pinecone-mcp-setting.json
- Full file shape —
{ defaultSource?, sources } as a JSON string
- Default
apiKey — when omitted, use ${sourceName} (resolved from a sibling env var with the same name)
Acceptance criteria
- JSON
PINECONE_SOURCES supports description and namespaces / metadata_schema
- Colon format continues to work unchanged
PINECONE_CONFIG_FILE still takes precedence when both are set
- Docs updated (
CONFIGURATION.md, SECURITY.md, CHANGELOG.md, CLI help)
- Tests cover JSON parsing, colon regression, precedence, and error cases
Problem
Multi-source setups that need source descriptions and namespace schemas currently require a separate
pinecone-sources.jsonfile viaPINECONE_CONFIG_FILE. That forces users to maintain two config files (MCP settings + Pinecone sources) and makes it harder to keep private corpus metadata in one place.Proposed solution
Extend
PINECONE_SOURCES(and--sources) to accept JSON in addition to the existing colon format (name:apiKey:indexName;...):env.PINECONE_SOURCES, matchingdata/cppa-pinecone-mcp-setting.json{ defaultSource?, sources }as a JSON stringapiKey— when omitted, use${sourceName}(resolved from a sibling env var with the same name)Acceptance criteria
PINECONE_SOURCESsupportsdescriptionandnamespaces/metadata_schemaPINECONE_CONFIG_FILEstill takes precedence when both are setCONFIGURATION.md,SECURITY.md,CHANGELOG.md, CLI help)