mcp-pinecone

MCP.Pizza Chef: sirmews

mcp-pinecone is a Model Context Protocol (MCP) server designed to integrate Pinecone vector database capabilities into AI workflows. It allows MCP clients to perform read and write operations on Pinecone indexes, facilitating rudimentary retrieval-augmented generation (RAG) by enabling semantic search and document retrieval. This server acts as a bridge between LLM-powered applications and Pinecone, providing structured access to vector data for enhanced context and memory management. It supports multiple request handlers and tools such as semantic search, document reading, and listing resources, making it ideal for AI agents requiring real-time vector search and data interaction.

Use This MCP server To

Perform semantic search on Pinecone vector indexes Read documents stored in Pinecone for context retrieval Write new vectors and metadata to Pinecone indexes List available Pinecone resources and documents Integrate Pinecone-based RAG into AI workflows Enable real-time vector data access for LLM agents

README

Pinecone Model Context Protocol Server for Claude Desktop.

smithery badge

PyPI - Downloads

Read and write to a Pinecone index.

Components

flowchart TB
    subgraph Client["MCP Client (e.g., Claude Desktop)"]
        UI[User Interface]
    end

    subgraph MCPServer["MCP Server (pinecone-mcp)"]
        Server[Server Class]
        
        subgraph Handlers["Request Handlers"]
            ListRes[list_resources]
            ReadRes[read_resource]
            ListTools[list_tools]
            CallTool[call_tool]
            GetPrompt[get_prompt]
            ListPrompts[list_prompts]
        end
        
        subgraph Tools["Implemented Tools"]
            SemSearch[semantic-search]
            ReadDoc[read-document]
            ListDocs[list-documents]
            PineconeStats[pinecone-stats]
            ProcessDoc[process-document]
        end
    end

    subgraph PineconeService["Pinecone Service"]
        PC[Pinecone Client]
        subgraph PineconeFunctions["Pinecone Operations"]
            Search[search_records]
            Upsert[upsert_records]
            Fetch[fetch_records]
            List[list_records]
            Embed[generate_embeddings]
        end
        Index[(Pinecone Index)]
    end

    %% Connections
    UI --> Server
    Server --> Handlers
    
    ListTools --> Tools
    CallTool --> Tools
    
    Tools --> PC
    PC --> PineconeFunctions
    PineconeFunctions --> Index
    
    %% Data flow for semantic search
    SemSearch --> Search
    Search --> Embed
    Embed --> Index
    
    %% Data flow for document operations
    UpsertDoc --> Upsert
    ReadDoc --> Fetch
    ListRes --> List

    classDef primary fill:#2563eb,stroke:#1d4ed8,color:white
    classDef secondary fill:#4b5563,stroke:#374151,color:white
    classDef storage fill:#059669,stroke:#047857,color:white
    
    class Server,PC primary
    class Tools,Handlers secondary
    class Index storage
Loading

Resources

The server implements the ability to read and write to a Pinecone index.

Tools

  • semantic-search: Search for records in the Pinecone index.
  • read-document: Read a document from the Pinecone index.
  • list-documents: List all documents in the Pinecone index.
  • pinecone-stats: Get stats about the Pinecone index, including the number of records, dimensions, and namespaces.
  • process-document: Process a document into chunks and upsert them into the Pinecone index. This performs the overall steps of chunking, embedding, and upserting.

Note: embeddings are generated via Pinecone's inference API and chunking is done with a token-based chunker. Written by copying a lot from langchain and debugging with Claude.

Quickstart

Installing via Smithery

To install Pinecone MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install mcp-pinecone --client claude

Install the server

Recommend using uv to install the server locally for Claude.

uvx install mcp-pinecone

OR

uv pip install mcp-pinecone

Add your config as described below.

Claude Desktop

On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

Note: You might need to use the direct path to uv. Use which uv to find the path.

Development/Unpublished Servers Configuration

"mcpServers": {
  "mcp-pinecone": {
    "command": "uv",
    "args": [
      "--directory",
      "{project_dir}",
      "run",
      "mcp-pinecone"
    ]
  }
}

Published Servers Configuration

"mcpServers": {
  "mcp-pinecone": {
    "command": "uvx",
    "args": [
      "--index-name",
      "{your-index-name}",
      "--api-key",
      "{your-secret-api-key}",
      "mcp-pinecone"
    ]
  }
}

Sign up to Pinecone

You can sign up for a Pinecone account here.

Get an API key

Create a new index in Pinecone, replacing {your-index-name} and get an API key from the Pinecone dashboard, replacing {your-secret-api-key} in the config.

Development

Building and Publishing

To prepare the package for distribution:

  1. Sync dependencies and update lockfile:
uv sync
  1. Build package distributions:
uv build

This will create source and wheel distributions in the dist/ directory.

  1. Publish to PyPI:
uv publish

Note: You'll need to set PyPI credentials via environment variables or command flags:

  • Token: --token or UV_PUBLISH_TOKEN
  • Or username/password: --username/UV_PUBLISH_USERNAME and --password/UV_PUBLISH_PASSWORD

Debugging

Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.

You can launch the MCP Inspector via npm with this command:

npx @modelcontextprotocol/inspector uv --directory {project_dir} run mcp-pinecone

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Source Code

The source code is available on GitHub.

Contributing

Send your ideas and feedback to me on Bluesky or by opening an issue.

mcp-pinecone FAQ

How do I install the mcp-pinecone server?
You can install mcp-pinecone via PyPI using 'pip install mcp-pinecone'. It requires Python and network access to your Pinecone instance.
How does mcp-pinecone handle authentication with Pinecone?
mcp-pinecone uses your Pinecone API key configured in environment variables or configuration files to authenticate requests securely.
Can mcp-pinecone support multiple Pinecone indexes?
Yes, it can list and interact with multiple Pinecone indexes, allowing flexible management of vector data across projects.
What kind of operations does mcp-pinecone support?
It supports reading, writing, semantic search, listing documents, and retrieving Pinecone index metadata.
Is mcp-pinecone compatible with different LLM providers?
Yes, it is provider-agnostic and works with LLMs like OpenAI, Claude, and Gemini through the MCP client interface.
How do I integrate mcp-pinecone with an MCP client?
Configure the MCP client to connect to the mcp-pinecone server endpoint and use its exposed tools for vector search and document retrieval.
Does mcp-pinecone support real-time updates to Pinecone indexes?
Yes, it allows writing new vectors and metadata to Pinecone indexes in real time, enabling dynamic context updates.
What programming languages can interact with mcp-pinecone?
While mcp-pinecone is a Python server, any MCP client in any language can interact with it via the MCP protocol.