MCPInstall

cosmosdb-best-practices

Azure Cosmos DB performance optimization and best practices guidelines for NoSQL, partitioning, queries, SDK usage, and vector search. Use when writing, reviewing, or refactoring code that interacts with Azure Cosmos DB, designing data models, optimizing queries, or implementing high-performance database operations.

Installs
880
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/cline/skills --skill cosmosdb-best-practices
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads cosmosdb-best-practices automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Azure Cosmos DB Best Practices

Comprehensive performance optimization guide for Azure Cosmos DB applications, containing 73+ rules across 10 categories, prioritized by impact to guide automated refactoring and code generation.

73 individual rule files are in the rules/ directory, one file per rule, synced from the AzureCosmosDB/cosmosdb-agent-kit. Load only the relevant rule file(s) when answering a question — do NOT load all files at once.

When to Apply

Reference these guidelines when:

  • Designing data models for Cosmos DB
  • Choosing partition keys
  • Writing or optimizing queries
  • Implementing SDK patterns
  • Reviewing code for performance issues
  • Configuring throughput and scaling
  • Building globally distributed applications
  • Implementing vector search and RAG patterns

Rule Index

Rules are grouped by category prefix. For a given question, load files matching the relevant prefix (e.g., model-*.md for data modeling, sdk-*.md for SDK usage). See rules/_sections.md for category descriptions.

1. Data Modeling — CRITICAL (prefix: model-)

  • model-embed-related.md — Embed related data retrieved together
  • model-reference-large.md — Reference data when items grow large
  • model-avoid-2mb-limit.md — Keep items well under 2MB limit
  • model-id-constraints.md — Follow ID value length and character constraints
  • model-nesting-depth.md — Stay within 128-level nesting depth limit
  • model-numeric-precision.md — Understand IEEE 754 numeric precision limits
  • model-denormalize-reads.md — Denormalize for read-heavy workloads
  • model-schema-versioning.md — Version your document schemas
  • model-type-discriminator.md — Use type discriminators for polymorphic data
  • model-json-serialization.md — Handle JSON serialization correctly
  • model-relationship-references.md — Use ID references with transient hydration

2. Partition Key Design — CRITICAL (prefix: partition-)

  • partition-high-cardinality.md — Choose high-cardinality partition keys
  • partition-avoid-hotspots.md — Distribute writes evenly
  • partition-hierarchical.md — Use hierarchical partition keys for flexibility
  • partition-query-patterns.md — Align partition key with query patterns
  • partition-synthetic-keys.md — Create synthetic keys when needed
  • partition-key-length.md — Respect partition key value length limits
  • partition-20gb-limit.md — Plan for 20GB logical partition limit

3. Query Optimization — HIGH (prefix: query-)

  • query-avoid-cross-partition.md — Minimize cross-partition queries
  • query-use-projections.md — Project only needed fields
  • query-pagination.md — Use continuation tokens for pagination
  • query-avoid-scans.md — Avoid full container scans
  • query-parameterize.md — Use parameterized queries
  • query-order-filters.md — Order filters by selectivity

4. SDK Best Practices — HIGH (prefix: sdk-)

  • sdk-singleton-client.md — Reuse CosmosClient as singleton
  • sdk-async-api.md — Use async APIs for throughput
  • sdk-retry-429.md — Handle 429s with retry-after
  • sdk-connection-mode.md — Use Direct mode for production
  • sdk-preferred-regions.md — Configure preferred regions
  • sdk-excluded-regions.md — Exclude regions experiencing issues
  • sdk-availability-strategy.md — Configure availability strategy for resilience
  • sdk-circuit-breaker.md — Use circuit breaker for fault tolerance
  • sdk-diagnostics.md — Log diagnostics for troubleshooting
  • sdk-serialization-enums.md — Serialize enums as strings not integers
  • sdk-emulator-ssl.md — Configure SSL and connection mode for Cosmos DB Emulator
  • sdk-etag-concurrency.md — Use ETags for optimistic concurrency
  • sdk-java-content-response.md — Enable content response on write operations (Java)
  • sdk-java-cosmos-config.md — Configure Cosmos DB in Spring Boot with dependent beans
  • sdk-java-spring-boot-versions.md — Match Java version to Spring Boot requirements
  • sdk-local-dev-config.md — Configure local development to avoid cloud conflicts
  • sdk-newtonsoft-dependency.md — Explicitly reference Newtonsoft.Json package (.NET)
  • sdk-spring-data-annotations.md — Annotate entities for Spring Data Cosmos
  • sdk-spring-data-repository.md — Use CosmosRepository correctly

5. Indexing Strategies — MEDIUM-HIGH (prefix: index-)

  • index-exclude-unused.md — Exclude paths never queried
  • index-composite.md — Use composite indexes for ORDER BY
  • index-spatial.md — Add spatial indexes for geo queries
  • index-range-vs-hash.md — Choose appropriate index types
  • index-lazy-consistent.md — Understand indexing modes

6. Throughput & Scaling — MEDIUM (prefix: throughput-)

  • throughput-autoscale.md — Use autoscale for variable workloads
  • throughput-right-size.md — Right-size provisioned throughput
  • throughput-serverless.md — Consider serverless for dev/test
  • throughput-burst.md — Understand burst capacity
  • throughput-container-vs-database.md — Choose allocation level wisely

7. Global Distribution — MEDIUM (prefix: global-)

  • global-multi-region.md — Configure multi-region writes
  • global-consistency.md — Choose appropriate consistency level
  • global-conflict-resolution.md — Implement conflict resolution
  • global-failover.md — Configure automatic failover
  • global-read-regions.md — Add read regions near users
  • global-zone-redundancy.md — Enable zone redundancy for HA

8. Monitoring & Diagnostics — LOW-MEDIUM (prefix: monitoring-)

  • monitoring-ru-consumption.md — Track RU consumption
  • monitoring-latency.md — Monitor P99 latency
  • monitoring-throttling.md — Alert on throttling
  • monitoring-azure-monitor.md — Integrate Azure Monitor
  • monitoring-diagnostic-logs.md — Enable diagnostic logging

9. Design Patterns — HIGH (prefix: pattern-)

  • pattern-change-feed-materialized-views.md — Use Change Feed for materialized views
  • pattern-efficient-ranking.md — Use count-based or cached approaches for ranking
  • pattern-service-layer-relationships.md — Use a service layer to hydrate document references

10. Vector Search — HIGH (prefix: vector-)

  • vector-enable-feature.md — Enable vector search feature on account
  • vector-embedding-policy.md — Define vector embedding policy on container
  • vector-index-type.md — Configure vector indexes (QuantizedFlat or DiskANN)
  • vector-distance-query.md — Use VectorDistance() for similarity search
  • vector-normalize-embeddings.md — Normalize embeddings for cosine similarity
  • vector-repository-pattern.md — Implement repository pattern for vector search

How to Use

Each rule is a separate file under rules/. When answering a Cosmos DB question, read only the relevant rule file(s) based on the prefix matching the topic:

  • Data modeling question → read rules/model-*.md files
  • Partition key question → read rules/partition-*.md files
  • SDK/client question → read rules/sdk-*.md files
  • etc.

Each rule file contains:

  • Brief explanation of why it matters
  • Incorrect code example with explanation
  • Correct code example with explanation
  • Additional context and references

Source: AzureCosmosDB/cosmosdb-agent-kit

FAQ

What does the cosmosdb-best-practices skill do?

Azure Cosmos DB performance optimization and best practices guidelines for NoSQL, partitioning, queries, SDK usage, and vector search. Use when writing, reviewing, or refactoring code that interacts with Azure Cosmos DB, designing data models, optimizing queries, or implementing high-performance database operations.

How do I install cosmosdb-best-practices?

Run npx skills add https://github.com/cline/skills --skill cosmosdb-best-practices in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/cosmosdb-best-practices/ (personal) or .claude/skills/cosmosdb-best-practices/ (project).

Which AI agents can use cosmosdb-best-practices?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is cosmosdb-best-practices safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains cosmosdb-best-practices?

It is published by cline in cline/skills. It has 880 recorded installs.

More from cline/skills

View all →

frontend-design

cline/skills

Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.

Frontend & Design7.4K installs

skill-creator

cline/skills

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

AI & Agents4.5K installs

review-team

cline/skills

Use when the user asks for a code review by a fleet of specialized reviewer agents, wants multiple independent reviewer perspectives, or asks to run reviewers in single-pass or iterative fix-until-clean mode. Launches focused subagents for correctness, security, architecture, conventions, simplicity, UX, reliability, telemetry, testing, compatibility, and documentation review.

playground

cline/skills

Creates interactive HTML playgrounds — self-contained single-file explorers that let users configure something visually through controls, see a live preview, and copy out a prompt. Use when the user asks to make a playground, explorer, or interactive tool for a topic.

Frontend & Design2.6K installs

Use these skills when you need to discover and explore data assets in the Knowledge Catalog. It allows you to search for entries, lookup specific metadata, and explore aspect types to understand your data platform's assets.

2.5K installs

Use for Desktop Commander MCP capabilities — persistent shells and REPLs, long-running processes, filesystem beyond the workspace, structured files (.xlsx, .docx, .pdf, images) and large local data files such as CSVs, ripgrep search at scale, SSH, or cross-turn state.

Docs & Writing2.5K installs

Popular code quality & workflow skills

View category →

grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

handoff

mattpocock/skills

Compact the current conversation into a handoff document for another agent to pick up.

domain-modeling

mattpocock/skills

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

codebase-design

mattpocock/skills

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

diagnosing-bugs

mattpocock/skills

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.