Database
Pinecone
API integration
Ship Database features without building the integration. Full Pinecone API access via Proxy and 40+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Talk to usUse Cases
Why integrate with Pinecone
Common scenarios for SaaS companies building Pinecone integrations for their customers.
Embed RAG into your SaaS product
Let your customers connect their own Pinecone account so your AI features (chatbots, copilots, smart search) retrieve context from their proprietary data without you hosting their vectors.
Offer a Pinecone destination for data sync
If you run an ETL, CMS, helpdesk, or CRM, let users automatically push their content into Pinecone as vectors so it becomes searchable by their AI stack.
Multi-tenant vector isolation for your users
Provision a dedicated Pinecone namespace or index per end-customer directly from your app, giving each tenant isolated vector storage without manual setup.
Compliance-ready data lifecycle management
Automatically delete vectors, records, or chunks from a customer's Pinecone index when they remove the source document in your app, keeping GDPR and audit workflows clean.
No-code AI workflow building blocks
Expose Pinecone as a step in your visual workflow or automation builder so non-technical users can embed text, upsert vectors, and run semantic searches without writing code.
What You Can Build
Ship these features with Truto + Pinecone
Concrete product features your team can ship faster by leveraging Truto’s Pinecone integration instead of building from scratch.
Index picker for end-user onboarding
Use list_all_pinecone_indexes and get_single_pinecone_index_by_id to let users pick or auto-provision the index your app should read from and write to.
Continuous knowledge sync to Pinecone
Push incremental updates from your app into the user's index using pinecone_vectors_bulk_create or pinecone_documents_bulk_create whenever source content changes.
In-app semantic search and RAG retrieval
Power AI responses by calling pinecone_vectors_search, pinecone_documents_search, or pinecone_records_search with metadata filters scoped to the active user or workspace.
Native embedding and reranking pipeline
Use create_a_pinecone_embedding to vectorize text on the fly and create_a_pinecone_rerank to reorder retrieved results before passing them to your LLM.
Namespace-per-tenant provisioning
Automatically call create_a_pinecone_namespace when a new workspace, project, or customer is created, and clean up with delete_a_pinecone_namespace_by_id on offboarding.
Bulk historical import from object storage
Trigger create_a_pinecone_import for large initial syncs from S3/GCS and monitor progress via list_all_pinecone_imports and get_single_pinecone_import_by_id.
SuperAI
Pinecone AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
get_single_pinecone_index_by_id
Get a specific Pinecone index by id. Returns the full index object including name, host, metric, dimension, spec, deletion_protection, and status. Required: id.
create_a_pinecone_index
Create a new Pinecone index for dense vectors, sparse vectors, or full-text search documents. Returns the created index object including name, host, and status. Required: name and spec (with cloud and region). Dense vector indexes also require dimension and metric; sparse vector indexes require metric set to dotproduct.
list_all_pinecone_indexes
List all Pinecone indexes in the current project. Returns an array of index objects including name, dimension, metric, host, and status for each.
update_a_pinecone_index_by_id
Update configuration for a Pinecone index by id. Supports updating deletion_protection and tags. Required: id.
delete_a_pinecone_index_by_id
Delete a Pinecone index by id. Returns an empty response on success. Required: id.
pinecone_indexes_create_for_model
Create a Pinecone index with integrated embedding that automatically converts source text to dense or sparse vectors using a hosted model. Returns the created index object. Required: name, cloud, region, and embed (with model and field_map).
pinecone_indexes_describe_index_stats
Get statistics for a Pinecone index including dimension, index fullness, total vector count, and per-namespace vector counts. Required: index_host.
update_a_pinecone_vector_by_id
Update a Pinecone vector's dense values and/or metadata by id. Returns an empty response on success.
delete_a_pinecone_vector_by_id
Delete Pinecone vectors by id list, metadata filter, or by deleting all vectors in a namespace. Returns an empty response on success. Provide at least one of ids, filter, or deleteAll.
pinecone_vectors_bulk_create
Upsert (insert or update) vectors into a Pinecone index namespace. Existing records with the same id are fully overwritten. Returns upsertedCount. Required: vectors.
get_single_pinecone_vector_by_id
Fetch Pinecone vectors by their ids. Returns vector objects including id, values, and metadata. Required: ids.
list_all_pinecone_vectors
List vector ids in a Pinecone index namespace. Returns vector id objects. Optionally filter by id prefix.
pinecone_vectors_search
Query a Pinecone index for the most similar vectors to a given query vector or vector id. Returns matches including id, score, values, and metadata. Required: topK.
create_a_pinecone_import
Start an asynchronous bulk import of vectors from object storage (Amazon S3, Google Cloud Storage, or Azure Blob Storage) into a Pinecone serverless index. Returns the import `id` for tracking progress. Required: `uri`.
delete_a_pinecone_import_by_id
Cancel a Pinecone bulk import operation by id if it has not yet finished. Has no effect if the import is already complete. Returns an empty response on success.
get_single_pinecone_import_by_id
Get details of a specific Pinecone bulk import by id. Returns: id, uri, status, percent_complete, records_imported, created_at, finished_at, and an error message if the import failed.
list_all_pinecone_imports
List all recent and ongoing Pinecone bulk imports for an index. Returns an array of import objects each including id, uri, status, percent_complete, and records_imported.
create_a_pinecone_collection
Create a Pinecone collection (a static backup of a pod-based index). Returns the created collection object including its name. Required: name, source. Collections are a pod-only feature and are not supported for serverless indexes.
list_all_pinecone_collections
List all Pinecone collections in the current project. Returns: name, status, environment, size, vector_count, and dimension for each collection. Serverless indexes do not support collections.
get_single_pinecone_collection_by_id
Get details about a specific collection in Pinecone. Requires id. Returns name, status, environment, size, vector_count, and dimension of the collection. Serverless indexes do not support collections.
delete_a_pinecone_collection_by_id
Delete a collection in Pinecone. Requires id as collection_name. Returns a 202 status on successful deletion. Serverless indexes do not support collections.
delete_a_pinecone_record_by_id
Delete Pinecone records from a namespace by record IDs, a metadata filter expression, or delete all records at once. Returns an empty response on success. Required: namespace. Max 1000 IDs per request when deleting by ID.
list_all_pinecone_records
List record IDs stored in a Pinecone namespace. Returns an array of record id values. Required: namespace.
pinecone_records_search
Search a Pinecone namespace for semantically similar records using a query text or vector. Returns hits including _id, _score, and requested fields. Required: namespace, query (with top_k and inputs).
create_a_pinecone_record
Upsert records into a Pinecone namespace using NDJSON format, inserting new records or updating existing ones matched by id. Required: namespace.
create_a_pinecone_backup
Create a backup of a Pinecone index. Returns the new backup object including backup_id, status, source_index_name, cloud, region, and created_at. Required: index_name.
delete_a_pinecone_backup_by_id
Delete a Pinecone backup by id. Returns an empty response on success. Required: id.
get_single_pinecone_backup_by_id
Get the description of a Pinecone backup by id. Returns: backup_id, source_index_name, status, name, description, cloud, region, dimension, record_count, and created_at. Required: id.
list_all_pinecone_backups
List all Pinecone backups for a project. Returns an array of backup objects each including backup_id, source_index_name, status, name, cloud, region, and created_at.
pinecone_backups_index
Create an index from a specific backup in Pinecone. Requires backup_id. Returns restore_job_id (the created restore job’s identifier) and index_id (the newly created index identifier).
get_single_pinecone_restore_job_by_id
Get a description of a Pinecone restore job by id. Returns: restore_job_id, backup_id, target_index_name, status, percent_complete, created_at, completed_at. Required: id.
list_all_pinecone_restore_jobs
List all Pinecone restore jobs for a project. Returns an array of restore job objects including restore_job_id, backup_id, target_index_name, status, and percent_complete.
list_all_pinecone_index_backups
List all backups for a Pinecone index. Returns: backup_id, source_index_name, status, cloud, region, created_at. Required: index_name.
create_a_pinecone_namespace
Create a namespace in a Pinecone serverless index. Returns the created namespace including name, record_count, and schema. Required: name. Not supported for pod-based indexes.
delete_a_pinecone_namespace_by_id
Delete a namespace from a Pinecone serverless index by id. Permanently removes all data in the namespace — this action is irreversible. Returns an empty response on success. Required: id. Not supported for pod-based indexes.
get_single_pinecone_namespace_by_id
Get details of a Pinecone namespace by id. Returns: name, record_count. Required: id. Not supported for pod-based indexes.
list_all_pinecone_namespaces
List all namespaces in a Pinecone serverless index. Returns each namespace's name and record_count. Not supported for pod-based indexes.
get_single_pinecone_model_by_id
Get a description of a specific Pinecone hosted model by id. Returns: model name, type, vector_type, default_dimension, modality, provider_name, and supported_parameters. Required: id.
list_all_pinecone_models
List all embedding and reranking models hosted by Pinecone. Returns an array of models, each including model name, type, vector_type, default_dimension, modality, provider_name, and supported_parameters.
create_a_pinecone_embedding
Generate vector embeddings for input data using Pinecone's hosted embedding models. Returns: data (array of embedding value arrays), model name, and usage (total_tokens). Required: model and inputs.
create_a_pinecone_rerank
Rerank a list of documents by relevance to a query using Pinecone's inference API. Returns a ranked `data` array of results each containing `index`, `document`, and `score`, plus `usage.rerank_units`. Required: `model`, `query`, and `documents`.
list_all_pinecone_vector_records
List vector records from a Pinecone index by fetching vectors matched against metadata. Returns a collection of vectors from the specified index. Required: index_host.
list_all_pinecone_backup_schedules
List all backup_schedules for a specific index in Pinecone. Requires index_name. Returns schedule_id, name, index_id, project_id, schedule_type, frequency, retention_expire_after_days, enabled, next_scheduled_run, and created_at in the response.
get_single_pinecone_backup_schedule_by_id
Get details of a specific backup schedule in Pinecone. Requires id. Returns schedule_id, name, index_id, project_id, schedule_type, frequency, retention_expire_after_days, enabled, next_scheduled_run, and created_at.
update_a_pinecone_backup_schedule_by_id
Update a backup schedule in Pinecone. Requires id. Returns schedule_id, name, index_id, project_id, schedule_type, frequency, retention_expire_after_days, enabled, next_scheduled_run, and created_at in the response.
delete_a_pinecone_backup_schedule_by_id
Delete a backup schedule in Pinecone using id. This operation removes the schedule but does not delete backups created by it. Returns a 204 status code upon successful deletion.
list_all_pinecone_backup_schedule_history
List backup schedule history in Pinecone for a specific schedule_id. Returns details including backup_id, status, scheduled_execution_at, cloud, region, and created_at for each backup entry.
Why Truto
Why use Truto’s MCP server for Pinecone
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Pinecone in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Pinecone account
Use Truto’s frontend SDK to connect your customer’s Pinecone account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Pinecone
Truto’s Proxy API is a 1-to-1 mapping of the Pinecone API. You call us, we call Pinecone, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Pinecone’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Pinecone on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How do end users authenticate their Pinecone account?
Pinecone uses API key authentication. Through Truto, your users provide their Pinecone API key during the connect flow, and Truto securely stores and injects it into every request — you never have to handle the credential yourself.
Can we provision isolated storage per end-customer?
Yes. You can either create a dedicated index per tenant with create_a_pinecone_index, or use a shared index and isolate tenants via create_a_pinecone_namespace. Truto exposes both lifecycle operations including delete and list endpoints.
Does Truto support Pinecone's serverless inference for embeddings and reranking?
Yes. create_a_pinecone_embedding generates vectors from raw text using Pinecone's hosted models, and create_a_pinecone_rerank reorders search results by relevance — both are accessible through the same unified connection.
How do we keep vectors in sync when source data changes or is deleted?
Use pinecone_vectors_bulk_create or pinecone_documents_bulk_create for upserts, and delete_a_pinecone_vector_by_id, delete_a_pinecone_record_by_id, or delete_a_pinecone_chunk_by_id to remove stale data — typically triggered from your app's own create/update/delete webhooks.
Can we run hybrid search combining keyword and vector queries?
Yes. pinecone_documents_search supports Pinecone's document schema which combines BM25 keyword scoring with vector similarity, and pinecone_vectors_search supports dense, sparse, and metadata-filtered queries.
How do we handle very large initial data loads for a new customer?
Use create_a_pinecone_import to ingest large datasets directly from object storage (S3/GCS) asynchronously, then poll get_single_pinecone_import_by_id or list_all_pinecone_imports to track completion before switching to incremental bulk upserts.
From the Blog
Pinecone integration guides
Deep dives, architecture guides, and practical tutorials for building Pinecone integrations.
Pinecone
Get Pinecone integrated into your app
Our team understands what it takes to make a Pinecone integration successful. A short, crisp 30 minute call with folks who understand the problem.