Pinecone Developer MCP
OfficialPinecone 开发者 MCP 服务器
模型上下文协议(MCP) 是一项标准,允许编码助手和其他 AI 工具与 Pinecone 等平台进行交互。Pinecone 开发者 MCP 服务器允许您将这些工具与 Pinecone 项目和文档连接起来。
一旦连接,AI 工具可以:
搜索Pinecone 文档以准确回答问题。
帮助您根据应用程序的需求配置索引。
根据您的索引配置和数据以及 Pinecone 文档和示例生成代码。
在索引中插入和搜索数据,允许您在开发环境中测试查询和评估结果。
请参阅文档以获取更多详细信息。
此 MCP 服务器致力于提升开发者使用 Pinecone 作为其技术栈一部分的体验。它旨在与编码助手配合使用。Pinecone 还提供Assistant MCP ,旨在为 AI 助手提供来自您知识库的相关上下文。
设置
要配置 MCP 服务器以访问您的 Pinecone 项目,您需要使用控制台生成 API 密钥。即使没有 API 密钥,您的 AI 工具仍然可以搜索文档。但是,它将无法管理或查询您的索引。
MCP 服务器需要Node.js 。请确保node和npx在你的PATH中可用。
接下来,您需要配置您的 AI 助手以使用 MCP 服务器。
配置光标
要将 Pinecone MCP 服务器添加到项目,请在项目根目录中创建一个.cursor/mcp.json文件(如果它尚不存在)并添加以下配置:
{
"mcpServers": {
"pinecone": {
"command": "npx",
"args": [
"-y", "@pinecone-database/mcp"
],
"env": {
"PINECONE_API_KEY": "<your pinecone api key>"
}
}
}
}您可以在**“光标设置”>“MCP”**中检查服务器的状态。
要全局启用服务器,请将配置添加到主目录中的.cursor/mcp.json 。
建议使用规则来指导 Cursor 正确使用 MCP 服务器。请查看文档以获取一些建议。
配置 Claude 桌面
使用 Claude 桌面,通过导航至Settings > Developer > Edit Config找到claude_desktop_config.json文件。添加以下配置:
{
"mcpServers": {
"pinecone": {
"command": "npx",
"args": [
"-y", "@pinecone-database/mcp"
],
"env": {
"PINECONE_API_KEY": "<your pinecone api key>"
}
}
}
}重启 Claude 桌面。在新的聊天屏幕上,您应该会看到一个锤子 (MCP) 图标,其中包含可用的新 MCP 工具。
Related MCP server: Pinecone MCP Server
用法
配置完成后,您的 AI 工具将自动使用 MCP 与 Pinecone 交互。使用工具前,系统可能会提示您授予权限。您可以尝试让您的 AI 助手设置示例索引、上传示例数据或为您进行搜索!
工具
Pinecone Developer MCP Server 为 AI 助手提供了以下工具:
search-docs:搜索官方 Pinecone 文档。list-indexes:列出所有 Pinecone 索引。describe-index:描述索引的配置。describe-index-stats:提供有关索引中数据的统计信息,包括记录数和可用的命名空间。create-index-for-model:创建一个新索引,使用集成推理模型将文本嵌入为向量。upsert-records:使用集成推理在索引中插入或更新记录。search-records:基于文本查询在索引中搜索记录,并使用集成推理进行嵌入。提供元数据过滤和重新排序选项。cascading-search:跨多个索引搜索记录,对结果进行重复数据删除和重新排序。rerank-documents:使用专门的重新排名模型对记录集合或文本文档进行重新排名。
限制
仅支持集成推理的索引。不支持助手、未集成推理的索引、独立嵌入和向量搜索。
贡献
我们欢迎您携手改进 MCP 开发者体验。请在GitHub 问题跟踪器中提交问题。有关贡献的信息请参阅CONTRIBUTING.md 。
Available Tools
12 toolscascading-searchCascading SearchARead-only
Search across multiple indexes for records that are similar to the query text, then deduplicate and rerank the combined results. Reranking is required for this tool. Only works with integrated-inference indexes. To search a single index, use search-records instead.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A query to search for records. | |
| rerank | Yes | Specifies how the results should be reranked. Use a "query" with a "topK" that returns more results than you need; then use "rerank" to select the most relevant "topN" results. | |
| indexes | Yes | The indexes to search across. Records in each index should share a common schema. | |
| llm_model | No | Optional. 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. | |
| llm_provider | No | Optional. 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already covers the safety profile, so credit goes to the extra constraints the description supplies: rerank is mandatory and indexes must be integrated-inference. It stops short of noting that reranking adds latency/cost or that topK must exceed topN for the reranker to have candidates — the latter is only in the nested schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with what the tool does, then constraints, then the alternative. Nothing is redundant with the title and no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter nested tool with no output schema, the description covers the multi-index scope, the mandatory rerank stage, and the index-type constraint. Remaining gaps (what the response looks like, pagination, handling when indexes lack a common schema) are secondary but not fully covered elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the nested query/rerank objects carry detailed per-field documentation (topK sizing, filter syntax, rerank model trade-offs), so the schema does the heavy lifting. The description adds only the meta-point that reranking is mandatory, not field-level meaning. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('search across multiple indexes for records'), plus the pipeline behavior (deduplicate, rerank combined results). It explicitly names the sibling it is not ('To search a single index, use search-records instead'), so an agent can pick between the two without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives both the selection condition (multiple indexes) and its inverse (single index → search-records), plus two hard prerequisites: reranking is required and only integrated-inference indexes work. That is the when/when-not/alternative triad.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-document-indexCreate Document IndexAIdempotent
Create a Pinecone document index: an index defined by a schema of searchable "string" fields. Each field can declare "fullTextSearch" (indexed for keyword search with BM25), "embed" (Pinecone embeds the text with a hosted dense model for semantic search), "sparseEmbed" (a hosted sparse model), or a combination. A good default is one field with both, for example {"chunk_text": {"fullTextSearch": {"language": "en"}, "embed": {}}}, which supports search by meaning and by exact terms on the same text. Fields you only need to filter on are not declared here; send them as document metadata. Use upsert-documents and search-document-index with the new index. This call blocks until the index is ready. If an index with the same name already exists, it is returned unchanged instead of erroring.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | A unique name to identify the new index. | |
| cloud | No | The cloud provider for the index. Defaults to aws. | aws |
| fields | Yes | The searchable string fields of the index, keyed by field name. | |
| region | No | The region for the index. Common regions: aws (us-east-1, us-west-2, eu-west-1), gcp (us-central1, europe-west1), azure (eastus, westeurope). Defaults to us-east-1. | us-east-1 |
| llm_model | No | Optional. 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. | |
| llm_provider | No | Optional. 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a non-read-only, idempotent, non-destructive operation. The description adds important behavior beyond that: the call blocks until the index is ready, and duplicate names return the existing index unchanged instead of erroring.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, then moves through field modes, defaults, metadata handling, related tools, and blocking/idempotency behavior. Despite being detailed, every sentence carries useful information for correctly calling this complex creation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested schema and annotations, the description covers the critical creation semantics well. The main remaining gap is that there is no output schema and the description does not explain the normal return shape of a newly created index, only the duplicate-name case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 six parameters in detail. The description still adds useful semantic guidance beyond the schema, especially the recommended default field configuration and the distinction between searchable fields and filter-only document metadata.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: create a Pinecone document index defined by searchable string fields. It explains the field modes and default configuration, but it does not explicitly differentiate this from sibling create-index-for-model, so an agent still has to infer that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives implied workflow guidance by saying to use upsert-documents and search-document-index with the new index, and it explains that filter-only fields belong in metadata. However, it does not state when to choose this tool over alternatives such as create-index-for-model or list-indexes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-index-for-modelCreate IndexAIdempotent
Create a Pinecone index with integrated inference, which automatically embeds the text field named in "fieldMap". Supports AWS, GCP, and Azure cloud providers. This call blocks until the index is ready to accept upserts and queries, so no readiness polling is needed afterwards. If an index with the same name already exists, it is returned unchanged instead of erroring. For a new index, prefer create-document-index, which supports full-text search and integrated embedding on the same field.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | A unique name to identify the new index. | |
| cloud | No | The cloud provider for the index. Defaults to aws. | aws |
| embed | Yes | Configure an embedding model that converts text into a vector. | |
| region | No | The region for the index. Common regions: aws (us-east-1, us-west-2, eu-west-1), gcp (us-central1, europe-west1), azure (eastus, westeurope). Defaults to us-east-1. | us-east-1 |
| llm_model | No | Optional. 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. | |
| llm_provider | No | Optional. 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses that the call blocks until the index is ready for upserts and queries, removing the need for readiness polling, and that an existing index of the same name is returned unchanged instead of erroring – which is concrete confirmation of the idempotentHint and a real operational constraint. These are exactly the facts an agent needs and cannot get from the annotation block alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Specific purpose and blocking behavior are front-loaded, and the sibling pointer comes last where a routing note belongs. The only mildly expendable sentence is the AWS/GCP/Azure cloud mention, which the cloud enum already carries, but it costs little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a blocking, mutating create operation with no output schema, the description covers the essentials: what gets created, the embedding requirement, latency/readiness implications, idempotent behavior on name collision, and the sibling alternative. Nothing an agent needs in order to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: name, cloud, region, embed, model, and fieldMap all carry their own documentation, including the cloud enum and per-model explanations. The description adds only the framing that embedding targets the fieldMap 'text' field, which the schema largely states already. The analytics-only llm_model/llm_provider parameters are not touched on at all, so nothing is compensated beyond baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The definition states a specific verb and resource ('Create a Pinecone index with integrated inference'), explains the defining mechanism (auto-embedding the text field named in fieldMap), and explicitly contrasts itself with the sibling create-document-index. An agent can distinguish it from list-indexes, describe-index, and upsert-records without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names an alternative (create-document-index) and the condition that favors it (full-text search plus integrated embedding on the same field), which is exactly the kind of routing signal an agent needs. However, 'For a new index, prefer create-document-index' leaves this tool's own best-fit scenario undefined – an agent may wonder whether this tool is legacy-only, which weakens the when-to-use picture rather than completing it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe-indexDescribe IndexARead-only
Describe the configuration of a Pinecone index, including its embedding model and the "fieldMap" that names the record field holding the text to embed. Call this before upsert-records to learn the required field name. Check "status.ready" in the response to confirm the index can accept upserts and queries.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The index to describe. | |
| llm_model | No | Optional. 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. | |
| llm_provider | No | Optional. 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Consistent with readOnlyHint=true and adds behavior beyond the annotation: it discloses what the response contains (embedding model, fieldMap, status.ready) and that the call is a prerequisite gate for upserts. Missing only edge behavior such as what happens for an unknown index name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler, and the core purpose plus the key follow-up action (check status.ready) are front-loaded. Minor verbosity from quoting the field names, but each sentence carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of naming the returned configuration pieces and the readiness flag, which is enough to invoke and interpret the tool. It stops short of covering failure/not-found behavior or index-name validity, leaving a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents name and the two analytics-only llm fields. The description adds nothing about parameter meaning, which is acceptable given the high coverage — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Describe the configuration of a Pinecone index') and names the actual payload fields returned (embedding model, fieldMap). It does not differentiate itself from the closely named sibling describe-index-stats, which an agent could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use guidance: 'Call this before upsert-records to learn the required field name' and 'Check status.ready ... to confirm the index can accept upserts and queries.' It provides no when-not-to-use or explicit statement about how it differs from describe-index-stats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe-index-statsDescribe Index StatsARead-only
Describe the statistics of a Pinecone index, including record counts per namespace. Use this to discover which namespaces exist in an index. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The index to describe. | |
| llm_model | No | Optional. 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. | |
| llm_provider | No | Optional. 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation. The description adds valuable behavioral context beyond the annotation: newly upserted records may not appear immediately, and callers should retry after a brief wait. It does not cover authentication or rate-limit behavior, but those are less central for a read-only stats call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences with no wasted language. The core purpose is front-loaded, the namespace-discovery use case follows, and the eventual-consistency caveat is appropriately placed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with full parameter schema coverage and no output schema, the description provides enough context to call it correctly. It explains the key return content at a high level and the indexing-delay caveat. It could be slightly richer about what statistics are returned, but the essential information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented in the schema. The description does not add meaning beyond the schema for name, llm_model, or llm_provider. With the schema doing the heavy lifting, this lands at the baseline for high-coverage parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Describe the statistics of a Pinecone index') and adds useful scope ('including record counts per namespace'), which helps distinguish it from generic index metadata tools. It does not explicitly name sibling tools such as describe-index, so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states a use case: 'Use this to discover which namespaces exist in an index.' It also gives practical guidance for eventual-consistency behavior ('wait briefly and retry'). It stops short of naming when to use alternatives such as describe-index or list-indexes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-indexesList IndexesARead-only
List all Pinecone indexes in the project, including each index's configuration and readiness status. Use this to discover valid index names before calling other tools.
| Name | Required | Description | Default |
|---|---|---|---|
| llm_model | No | Optional. 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. | |
| llm_provider | No | Optional. 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered; the description adds value by disclosing that the response includes per-index configuration and readiness status. It doesn't mention pagination or result limits, which is a minor gap for a listing operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, with the core action front-loaded and the usage hint following. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-required-param read-only listing with no output schema, the description covers action, payload contents, and usage context adequately. Missing only edge behavior such as what an empty project returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the two parameters (llm_model, llm_provider) are fully documented in the schema, and the description need not repeat them. At baseline 3 since the description adds no parameter meaning. Note the parameters are analytics-only and unrelated to filtering the listing, which the description never clarifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("List all Pinecone indexes in the project") and adds the scope of the payload (configuration and readiness status). The word "all" implicitly separates it from describe-index, which fetches one index, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this to discover valid index names before calling other tools" gives a concrete trigger and sequencing guidance relative to the rest of the toolset. It stops short of naming which alternatives to prefer for other needs (e.g., describe-index for detail on one index).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rerank-documentsRerank DocumentsARead-only
Rerank a set of provided documents by relevance to a query. Use this for documents that did not come from a Pinecone search (e.g. externally sourced text). To rerank the results of a single-index search, prefer the "rerank" parameter of search-records instead of calling this tool separately.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Choose a reranking model: - "cohere-rerank-3.5" is Cohere's leading reranking model, balancing performance and latency for a wide range of enterprise search applications. - "bge-reranker-v2-m3" is a high-performance, multilingual reranking model that works well on messy data and short queries expected to return medium-length passages of text (1-2 paragraphs). - "pinecone-rerank-v0" is a state of the art reranking model that out-performs competitors on widely accepted benchmarks. It can handle chunks up to 512 tokens (1-2 paragraphs). | |
| query | Yes | The query to rerank documents against. | |
| options | No | ||
| documents | Yes | A set of documents to rerank. Can either be an array of text documents (strings) or an array of records. Record field values must be strings; records with number, boolean, or array fields are not accepted. | |
| llm_model | No | Optional. 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. | |
| llm_provider | No | Optional. 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a non-mutating operation, so the safety profile is covered by annotations. The description adds a genuine scoping constraint (only for documents not already retrieved from an index), but says nothing about result behavior — how the reranked output is ordered, whether scores are returned, or what happens if topN exceeds the document count.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action, followed by the input constraint and then the routing alternative. Every sentence carries decision-relevant information; nothing is redundant with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter read-only tool with a nested options object, the description covers purpose and correct tool selection well, and the schema handles parameter detail. The one material gap is the return format, which matters because there is no output schema — the agent is not told that documents come back reordered or with relevance scores.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83%, so the schema already explains model enum trade-offs, rankFields constraints, and the llm_model/llm_provider analytics fields. The description adds no additional parameter meaning beyond that, which is the expected baseline 3 when structured fields carry the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Rerank a set of provided documents by relevance to a query") and immediately bounds the input domain to documents that did not come from a Pinecone search. An agent can distinguish it from search-records and the other index-scoped siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit use case (externally sourced text) and an explicit alternative with the condition that selects it: for single-index search results, use the "rerank" parameter of search-records instead. This is exactly the when/when-not/alternative structure the dimension asks for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-docsSearch Pinecone DocumentationARead-only
Search the official Pinecone documentation for relevant information. Use this before writing Pinecone code or explaining Pinecone behavior, rather than relying on assumptions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The text to search for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, so the description only needs to add context. It adds that the source is the official documentation (implying authoritative, current results), but says nothing about result format, number of hits, or freshness. Adequate but thin beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with what it does and followed by when to call it. Every sentence earns its place, though it is slightly under-specified rather than maximally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with no output schema, the definition covers purpose and timing well. The only gap is that it doesn't hint at what comes back (snippets, links), which would help an agent plan follow-up calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single required parameter 'query' with 100% schema coverage, so the schema already fully documents it. The description adds no guidance on query phrasing, natural-language vs keyword, or scoping. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (official Pinecone documentation), which cleanly separates it from every sibling (indexes, records, documents, reranking). An agent can tell this is the documentation-lookup tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit timing guidance: use it before writing Pinecone code or explaining Pinecone behavior, and explicitly warns against relying on assumptions. It stops short of naming when NOT to use it or which sibling to prefer for data queries, but the exclusion is largely implicit given the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-document-indexSearch Document IndexARead-only
Search a Pinecone document index (one created with create-document-index). Call describe-index first to see which fields declare "embed", "sparseEmbed", or "fullTextSearch". Rank with one or more "scoreBy" clauses:
"embed": search by meaning on a field with "embed". Pass the query as plain text; Pinecone embeds it with the field's model.
"sparse_embed": search a field with "sparseEmbed" the same way.
"text": keyword (BM25) search on one or more full-text fields. Good for exact terms like IDs, error codes, and names.
"query_string": Lucene-style query syntax. Don't pass "fields" (the API rejects it); target fields with qualifiers inside the query, for example 'chunk_text:"exact phrase"', or omit qualifiers to search every full-text field. An "embed" or "sparse_embed" clause must be the only clause; "text" and "query_string" clauses can be combined. To rank by meaning and by exact terms, run two separate searches: their scores are on different scales, so don't compare them across searches. Returns matches with "_id", "_score", and the fields named in "includeFields". 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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The index to search. | |
| topK | No | The number of matches to return. Defaults to 10. | |
| filter | No | An optional filter, such as {"category": {"$eq": "policy"}}. On a full-text field, "$match_phrase", "$match_all", and "$match_any" require terms, for example {"chunk_text": {"$match_all": "refund"}}. | |
| scoreBy | Yes | The clauses that rank the documents. | |
| llm_model | No | Optional. 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. | |
| namespace | No | The namespace to search. Defaults to "__default__". | __default__ |
| llm_provider | No | Optional. 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. | |
| includeFields | No | The fields to return with each match. Defaults to ["*"] (all stored fields). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses non-obvious behavior: embed/sparse_embed clauses must be the only clause, query_string rejects 'fields', scores from different clauses are on incomparable scales, and newly upserted records are delayed in indexing. It also states the return shape (_id, _score, includeFields).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then organized as a bulleted breakdown of clause types followed by a constraints/returns note. Every sentence carries information, though the bullet list makes it longer than strictly necessary and the clause-validity rules appear after the type definitions rather than before.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with nested scoreBy objects and no output schema, the description covers the hard parts: clause composition rules, query_string field handling, and return fields. It does not mention the analytics-only llm_model/llm_provider parameters, though the schema documents them adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even with 100% schema coverage, the description adds real semantic meaning: it explains what each scoreBy type actually does (Pinecone embeds plain text via the field's model, BM25 keyword scoring, Lucene-style syntax with inline field qualifiers). It also ties includeFields to the returned match objects rather than just restating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search a Pinecone document index') and immediately scopes it to indexes created with create-document-index, which separates it from sibling tools like search-records and search-docs. The prerequisite pointer to describe-index further pins down the exact object being operated on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear conditional guidance: call describe-index first, use 'text' for exact terms like IDs and error codes, use two separate searches when combining semantic and keyword ranking, and wait/retry for recently upserted data. It never explicitly contrasts itself with siblings such as cascading-search or rerank-documents, so the when-not guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-recordsSearch RecordsARead-only
Search an index for records that are semantically similar to the query text. Only works with integrated-inference indexes (e.g. created with create-index-for-model), which embed the query automatically; it fails on standard indexes and document indexes (use search-document-index for those) — use describe-index to check the index type. Returns hits with "_id", "_score", and the record's stored "fields". 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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The index to search. | |
| query | Yes | A query to search for records. | |
| rerank | No | Reranking can help determine which of the returned records are most relevant. When reranking, use a "query" with a "topK" that returns more results than you need; then use "rerank" to select the most relevant "topN" results. | |
| llm_model | No | Optional. 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. | |
| namespace | Yes | The namespace to search. | |
| llm_provider | No | Optional. 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=true; the description adds real value beyond that by naming a hard failure mode (wrong index type) and eventual-consistency lag on newly upserted records, plus the hit shape (_id, _score, fields). That is useful operational context, but it doesn't discuss limits such as topK cost, filter-field pitfalls, or rerank interaction, which the schema carries instead.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then prerequisites, alternatives, return shape, and the consistency caveat in a logical order. It runs long and packs four distinct clauses into one sentence with em dashes, which slightly hurts scannability, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does describe the returned hits, and it covers the two biggest failure risks (index type and indexing lag). Remaining gaps, such as topK/latency tradeoffs and rerank usage, are covered by the schema, so an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested query/rerank/filter objects are thoroughly documented there (including filter operator syntax and rerank model choice). The description adds no parameter-level guidance of its own, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('search an index for records that are semantically similar to the query text') and scopes it to integrated-inference indexes. It explicitly names the sibling it is not (search-document-index) and the sibling used to verify applicability (describe-index), so an agent can route without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition (only works on integrated-inference indexes), the failure mode on standard/document indexes, the alternative tool to use instead, and the diagnostic tool to check index type. Also covers the retry case for freshly upserted records. This is about as complete as when/when-not guidance gets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upsert-documentsUpsert DocumentsADestructiveIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The index to upsert into. | |
| documents | Yes | The documents to upsert. Larger sets are sent in batches of 96. | |
| llm_model | No | Optional. 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. | |
| namespace | No | The namespace to upsert into. Defaults to "__default__". | __default__ |
| llm_provider | No | Optional. 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. |
TDQS
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.
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.
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.
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.
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.
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.
upsert-recordsUpsert RecordsADestructiveIdempotent
Insert or update records in an integrated Pinecone index. For a document index, use upsert-documents instead. Text in the field named by the index's "fieldMap" is embedded automatically — call describe-index first to confirm that field name. Records with an existing "id" are overwritten. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The index to upsert into. | |
| records | Yes | A set of records to upsert into the index. Use a consistent schema for all records in the index. | |
| llm_model | No | Optional. 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. | |
| namespace | Yes | The namespace to upsert into. | |
| llm_provider | No | Optional. 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose that this is a destructive but idempotent write. The description adds material behavior beyond annotations: text in the fieldMap field is embedded automatically, existing ids are overwritten, and newly upserted records may not be immediately visible to search or stats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and alternative, then moves through prerequisite, overwrite behavior, and indexing latency. Every sentence adds operational value without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive upsert tool with no output schema, the definition covers the key prerequisites, replacement semantics, automatic embedding behavior, and eventual consistency concerns. An agent has enough context to invoke it correctly and understand likely side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description nevertheless adds useful meaning by explaining the fieldMap embedding behavior associated with records and the overwrite semantics for existing ids.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource: inserting or updating records in a Pinecone index. It also distinguishes the tool from the sibling upsert-documents, so an agent can route between record and document indexes without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names the alternative for document indexes and gives a prerequisite: call describe-index first to confirm the fieldMap field. It also gives operational guidance for eventual indexing visibility, including waiting and retrying.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v0.4.0- Added
cascading-search - Added
create-document-index - Added
create-index-for-model - Added
describe-index - Added
describe-index-stats - Added
list-indexes - Added
rerank-documents - Added
search-document-index - Added
search-records - Added
upsert-documents - Added
upsert-records
1 tool update
v0.2.1- Changed
search-docs1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
1 tool update
v1.0.0- First observed
search-docs
TDQS
Scored across 12 tools
Most tools are clearly separated by index type and operation, especially the record-vs-document index pairs. The two create-index tools and three search tools could initially be confused, but the descriptions explicitly explain when to use each.
Names are consistently kebab-case and mostly follow a verb_noun pattern such as list-indexes, describe-index, and upsert-documents. Minor deviations like cascading-search and the abbreviation search-docs keep it from being perfect.
Twelve tools is well within a reasonable range for an MCP server covering Pinecone index management, search, and reranking. Each tool has a distinct role and the set does not feel bloated.
The surface covers documentation search, index creation/listing/description/stats, document and record upserts, searching, reranking, and cascading search. Some lifecycle operations like deleting indexes or records are missing, but core developer workflows are covered.
Maintenance
Related MCP Connectors
Connect Claude, Cursor, or ChatGPT to your business data. Ask questions, get answers.
Persistent memory for AI agents: one brain shared across Claude, Cursor, Codex and more.
Connect your team's living knowledge base — docs, data, issues, CRM — to Claude and ChatGPT.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Related MCP Servers
- AlicenseNot gradedqualityFmaintenancePinecone integration with vector search capabilities150MIT
- AlicenseNot gradedqualityNot gradedmaintenanceEnables interaction with Pinecone vector databases for storing and searching embeddings. Supports similarity search, metadata filtering, and vector operations for semantic search and RAG applications.-
- AlicenseAqualityDmaintenanceHybrid semantic + keyword memory across all your projects. Works with Cursor, Claude Code, and your team.111MIT
- AlicenseAqualityAmaintenanceHosted memory for AI agents that learns from outcomes, with shared rooms. One key across Claude, Cursor & ChatGPT.111,313 npm27MIT