# Connect Your Data with Pinecone (/connect-your-data/pinecone)

Connect documents to your agents using Pinecone Assistant's MCP server



Pinecone is a vector database, and Pinecone Assistant helps you build production-grade chat and agent applications. Connect your documents and files to your agents using Pinecone Assistant's MCP server for semantic search and retrieval.

## Supported data sources

With Pinecone Assistant you can connect:

* **Documents**: DOCX (.docx), PDF (.pdf), Text (.txt)
* **Structured Data**: JSON (.json)
* **Documentation**: Markdown (.md)

## Getting started

### Step 1: Create a Pinecone account

[Sign up for Pinecone](https://app.pinecone.io/)

### Step 2: Create an Assistant

1. Log in to your [Pinecone dashboard](https://app.pinecone.io/)
2. Navigate to the **Assistant** tab
3. Click **"Create an Assistant"**
4. Give your assistant a name

### Step 3: Upload your files

1. In your assistant, navigate to the **Files** tab (located in the top right corner)
2. Upload your documents (DOCX, JSON, Markdown, PDF, or Text files)
3. Wait for Pinecone to process and index your content

<Tip>
  Test your assistant in the Assistant playground. Try uploading an Apple 10-K PDF file from [Apple's investor relations page](https://investor.apple.com/sec-filings/default.aspx) and ask it to summarize the document.
</Tip>

### Step 4: Get your MCP server URL

1. Navigate to the **Settings** tab in your assistant
2. Copy the MCP URL provided

### Step 5: Register the MCP server

Register the Pinecone MCP server as a tool in your agent configuration. Replace `<your-mcp-url>` with the MCP URL you copied in Step 4.

**Using TypeScript SDK:**

You can create your [credential](/typescript-sdk/credentials/overview) using keychain, nango, or environment variables, but in this example we use environment variables.

<CodeGroup>
  ```typescript title=".env"
  PINECONE_API_KEY=<your-pinecone-api-key>
  ```

  ```typescript title="agents/documentation-agent.ts"
  import { mcpTool, subAgent, credential } from "@inkeep/agents-sdk";

  const pineconeCredential = credential({
    id: 'pinecone-credential',
    name: 'Pinecone Credential',
    type: CredentialStoreType.memory,
    credentialStoreId: 'memory-default',
    retrievalParams: {
      "key": "PINECONE_API_KEY", // where PINECONE_API_KEY is the API key for your Pinecone project
    },
  });

  const pineconeTool = mcpTool({
    id: "pinecone-documents",
    name: "pinecone_search",
    description: "Search uploaded documents and files using semantic search",
    serverUrl: "<your-mcp-url>", // From Pinecone Settings tab
  });

  const docAgent = subAgent({
    id: "doc-agent",
    name: "Documentation Assistant",
    description: "Answers questions using uploaded documents",
    prompt: `You are a documentation assistant with access to company documents and files.`,
    canUse: () => [pineconeTool],
  });
  ```
</CodeGroup>

**Using Visual Builder:**

1. **Add a Pinecone credential:**
   * Go to the **Credentials** tab in the Visual Builder
   * Click **"New credential"**
   * Select **"Bearer authentication"**
   * Enter:
     * **Name**: `Pinecone API Key` (or your preferred name)
     * **API key**: Your Pinecone API key (found in your [Pinecone dashboard](https://app.pinecone.io/))
   * Click **"Create Credential"** to save

2. **Register the MCP server:**
   * Go to the **MCP Servers** tab in the Visual Builder
   * Click **"New MCP server"**
   * Select **"Custom Server"**
   * Enter:
     * **Name**: `Pinecone Documents`
     * **URL**: Your MCP URL from Pinecone Settings tab
     * **Transport Type**: `Streamable HTTP`
     * **Credential**: Select the Pinecone credential you created
   * Click **"Create"** to save the server

3. **Add the MCP tool to your sub agent:**
   * Drag the Pinecone Documents MCP tool onto your agent canvas and connect it to the sub agent

### Step 6: Use the Pinecone Assistant MCP server in your agent

Once you have registered your MCP server as a tool and connected it to your agent, your agent can use the Pinecone Assistant tool to search and retrieve relevant content from your uploaded documents.

The Pinecone tool provides a `get_context` function that retrieves relevant document snippets from your knowledge base. When your agent calls this tool, it will:

<Steps>
  <Step>
    **Search semantically**: Use vector similarity search to find the most relevant content based on the query
  </Step>

  <Step>
    **Return formatted snippets**: Each result includes:

    <ul>
      <li>
        <code>file_name</code>

        : The name of the file containing the snippet
      </li>

      <li>
        <code>pages</code>

        : The page numbers where the snippet appears (for PDFs and DOCX files)
      </li>

      <li>
        <code>content</code>

        : The actual text content of the snippet
      </li>
    </ul>
  </Step>
</Steps>

**Parameters:**

* `query` (required): The search query to retrieve context for
* `top_k` (optional): The number of context snippets to retrieve. Defaults to 15.