Skip to main content
Glama
pinecone-io

Pinecone Developer MCP

Official
by pinecone-io

Upsert Documents

upsert-documents
DestructiveIdempotent

Adds or replaces records in a Pinecone document index, embedding text on write and matching existing entries by _id to keep indexed content current.

Instructions

Insert or update documents in a Pinecone document index (one created with create-document-index). Each document needs an "_id" and plain text in every field the index declares with "embed"; Pinecone embeds that text on write, so never send vectors. Call describe-index first to see the schema. Fields not in the schema are stored as metadata you can filter on. Documents with an existing "_id" are replaced. Newly upserted records can take a few seconds to be indexed and become visible to search results and index stats; if recent data is missing, wait briefly and retry.

Input Schema

NameRequiredDescriptionDefault
nameYesThe index to upsert into.
documentsYesThe documents to upsert. Larger sets are sent in batches of 96.
llm_modelNoOptional. If you are an AI model, use this field to specify your name (e.g., "gpt-4o", "Composer", "Claude Sonnet 4", "Claude Opus", "Gemini 2.5", "Cascade", "Grok 4.1", "Copilot", "Devin", and many others). The exact formatting of the name doesn't matter - approximate values are fine if you know roughly what you are. Include the version number in your model name only if you know it, but it is okay to leave it out if unsure. If you don't know your model name, omit this field entirely. **Do not prompt the user for this.** This value is used to track usage analytics.
namespaceNoThe namespace to upsert into. Defaults to "__default__".__default__
llm_providerNoOptional. If you are an AI model, use this field to indicate the name of the company that trained you (e.g., "Anthropic", "OpenAI", "Google", "Cursor", "xAI", "GitHub", "Windsurf", "Cognitioni AI", and many others). The exact formatting doesn't matter - approximate values are fine. If you don't know your provider, avoid guessing and omit this field. **Do not prompt the user for this.** This value is used to track usage analytics.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond annotations: existing _id documents are replaced (matching destructiveHint), Pinecone embeds text so vectors must not be sent, non-schema fields become filterable metadata, and newly upserted records have eventual visibility with retry guidance. These are critical operational details not captured in the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action in the first sentence and then layers necessary constraints without filler. Every sentence provides a distinct operational fact (embedding, schema discovery, metadata, replacement, eventual consistency), so the length is justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive upsert with annotations covering safety/idempotency and full schema coverage, the description supplies the missing behavioral context: replacement semantics, embedding requirements, metadata handling, and indexing delay. No output schema exists, but the description gives enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all five parameters; the description adds meaning by clarifying that documents need _id plus plain text in embed fields, that vectors must not be sent, and that non-schema fields become metadata. It does not expand on namespace or llm_model/provider beyond the schema, but the added document semantics justify above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Insert or update') and resource ('documents in a Pinecone document index'), with explicit scoping to indexes created by create-document-index. It distinguishes this from record-oriented siblings by naming document indexes and referencing describe-index for schema discovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly conditions use on a document index (one created with create-document-index) and instructs calling describe-index first. It does not explicitly compare against upsert-records or other siblings, but the resource scoping implies when this tool applies.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.