# SkimmerDB > Per-tenant retrieval for AI agents on object storage (S3): a namespace per customer, user, agent or task, made by its first write, and keys that reach only their own; exact and RE2 regex search with metadata filters and exact counts; vector search (IVF + RaBitQ), alone or hybrid with text and filters; SQL over the same documents; bulk import of CSV, NDJSON and Parquet. A REST API at https://api.skimmerdb.com/v1 and a remote MCP server with OAuth at https://api.skimmerdb.com/mcp. Idle namespaces cost only their storage. Every answer reports its latency, whether the namespace was warm or cold, and how many object-storage reads it made. Writes are acknowledged only once stored in object storage. Keys are scoped (read, write, admin), optionally to some namespaces or a prefix. ## Pages - [Agent memory](https://skimmerdb.com/agent-memory): Long-term memory for AI agents: a namespace per agent, user or task; exact, regex, filtered and vector recall; idle memories cost only their bytes. - [Support agents](https://skimmerdb.com/support-agents): Retrieval for help-center chatbots and AI support agents: a namespace per help center, exact search for error codes and order numbers, vectors for questions in the customer’s words, read-only keys per bot, stale articles replaced by id. - [Multi-tenant RAG](https://skimmerdb.com/multi-tenant-rag): Retrieval for SaaS copilots: each customer in its own namespace with a key that reaches only it, instead of one shared index behind a tenant_id filter. - [Namespaces vs metadata filters](https://skimmerdb.com/guides/namespaces-vs-metadata-filters): Namespace per tenant or one index with a tenant_id filter: who enforces the boundary, what one missing filter returns, what Pinecone, Qdrant, turbopuffer and Postgres recommend, and a test to run. - [Coding agents](https://skimmerdb.com/coding-agents): Code search for coding agents: a namespace per repository or branch, RE2 regex from a trigram index, exact counts, vectors optional, over MCP or REST. - [Agent analytics](https://skimmerdb.com/agent-analytics): SQL over agent traces, tool calls and events per customer: joins, windows and full-text predicates; imports of CSV, NDJSON and Parquet; measured on ClickBench. - [Vector search on S3](https://skimmerdb.com/vector-search): IVF + RaBitQ vector search on object storage, hybrid with exact text and metadata filters; recall and latency measured. - [MCP database](https://skimmerdb.com/mcp-server): The remote MCP server (OAuth 2.1) for Claude, ChatGPT, Cursor and Codex: tools, scopes and how to connect. - [Your S3, R2 or B2 bucket](https://skimmerdb.com/buckets): Import CSV, NDJSON and Parquet from your own AWS S3, Cloudflare R2, Backblaze B2, Wasabi or MinIO bucket, search it, and deliver SQL exports back into it; keys never stored. - [Search your DuckLake](https://skimmerdb.com/ducklake): Keep a DuckLake table searchable: each sync reads the catalog and Parquet where they are and writes only the rows that changed; exact, regex, filtered and vector search and SQL on top. - [SkimmerDB vs DuckDB and MotherDuck](https://skimmerdb.com/compare/duckdb): An embedded analytical engine vs a hosted search database with SQL: where each fits, what DuckDB’s FTS and VSS extensions do today, measured numbers both ways. - [SkimmerDB vs pgvector](https://skimmerdb.com/compare/pgvector): When Postgres with pgvector is enough and when a separate search database helps: indexes, filtering, hybrid search, and the tenant boundary with row-level security vs a namespace-limited key, both run. - [SkimmerDB vs turbopuffer](https://skimmerdb.com/compare/turbopuffer): Two object-storage search engines: namespace-limited keys, indexed substring and regex search, SQL, MCP, full-text options, SDKs, and one workload priced both ways, from turbopuffer’s docs. - [SkimmerDB vs Pinecone](https://skimmerdb.com/compare/pinecone): Both recommend a namespace per tenant; what an API key can be limited to, keyword and hybrid search, SQL, MCP, and read units vs a flat price a query, from Pinecone’s docs. - [Vector database pricing calculator](https://skimmerdb.com/vector-database-pricing): A month’s bill on SkimmerDB, turbopuffer and Pinecone for the same documents, vectors, namespaces and queries, from each one’s published prices and billing rules. - [Hybrid search](https://skimmerdb.com/guides/hybrid-search): Hybrid search with BM25 and vectors fused by reciprocal rank: when a query needs keywords, vectors or both, how RRF works, a worked example with the API’s real answers, and hybrid search in Postgres. - [Cold start retrieval](https://skimmerdb.com/guides/cold-start-retrieval): Warm, local and cold queries on a database in object storage: measured cold and warm latency on real S3, what a cold query reads and costs, how to warm a namespace, and how to test your own. - [Pricing](https://skimmerdb.com/pricing): Free plan, then pay as you go: storage, writes, queries and cold reads, with a small monthly minimum. - [Benchmarks](https://skimmerdb.com/benchmarks): Measured latency on real S3, vector recall, write throughput, scale to 10,000 namespaces, recovery and tenant isolation. ## API - [Documentation](https://docs.skimmerdb.com): guides (the data model, search, vectors, analytics with SQL, import, agent memory), reference and the API reference; every page also as Markdown (add .md), listed in https://docs.skimmerdb.com/llms.txt. - [Full documentation as one text file](https://skimmerdb.com/llms-full.txt): quick start, concepts, every endpoint, MCP tools, limits and plans. - [OpenAPI 3.1 document](https://api.skimmerdb.com/openapi.json): every operation, schema, example and error (also [YAML](https://skimmerdb.com/openapi.yaml)). - [Agent skill](https://skimmerdb.com/skills/skimmerdb/SKILL.md): a SKILL.md for Claude Code, Codex and claude.ai on modeling data in SkimmerDB, writing, searching and SQL (zipped: https://skimmerdb.com/skills/skimmerdb.zip). - [MCP endpoint](https://api.skimmerdb.com/mcp): Streamable HTTP, OAuth 2.1 with dynamic client registration and PKCE, or an API key as a bearer token. ## Connect an agent - Claude Code: `claude mcp add --transport http skimmerdb https://api.skimmerdb.com/mcp` - Claude, ChatGPT, Cursor, Codex: add a remote MCP server with the URL https://api.skimmerdb.com/mcp