Source profileQuality 86/100

fcakyon/claude-codex-settings/plugins/mongodb-skills/skills/mongodb-atlas-stream-processing/SKILL.md

mongodb-atlas-stream-processing

Manages MongoDB Atlas Stream Processing (ASP) workflows. Handles workspace provisioning, data source/sink connections, processor lifecycle operations, debugging diagnostics, and tier sizing. Supports Kafka, Atlas clusters, S3, HTTPS, and Lambda integrations for streaming data workloads and event processing. NOT for general MongoDB queries or Atlas cluster management. Requires MongoDB MCP Server with Atlas API credentials.

Source repository stars
961
Declared platforms
0
Static risk flags
0
Last source update
2026-08-04
Source checked
2026-08-04

Decision brief

What it does—and where it fits

Build, operate, and debug Atlas Stream Processing (ASP) pipelines using four MCP tools from the MongoDB MCP Server.

Best for

    Not for

    • See references/development-workflow.md for the complete troubleshooting table covering processor failures, API errors, configuration issues, and performance problems.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/fcakyon/claude-codex-settings --skill "plugins/mongodb-skills/skills/mongodb-atlas-stream-processing"
    Safe inspection promptEditorial

    Inspect the Agent Skill "mongodb-atlas-stream-processing" from https://github.com/fcakyon/claude-codex-settings/blob/ccd2e764cc57ba1e8de4833615a04d540ba1295a/plugins/mongodb-skills/skills/mongodb-atlas-stream-processing/SKILL.md at commit ccd2e764cc57ba1e8de4833615a04d540ba1295a. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Setup from scratch

      1. atlas-streams-discover → list-workspaces (check existing) 2. atlas-streams-build → resource: "workspace" (region near data, SP10 for dev) 3. atlas-streams-build → resource: "connection" (for each source/sink/enrichment) 4. Validate connections: atlas-streams-discover → list-c…

      atlas-streams-discover → list-workspaces (check existing)atlas-streams-build → resource: "workspace" (region near data, SP10 for dev)atlas-streams-build → resource: "connection" (for each source/sink/enrichment)
    2. 02

      Workflow Patterns

      Incremental pipeline development (recommended): See references/development-workflow.md for the full 5-phase lifecycle. 1. Start with basic $source → $merge pipeline (validate connectivity) 2. Add $match stages (validate filtering) 3. Add $addFields / $project transforms (validat…

      Start with basic $source → $merge pipeline (validate connectivity)Add $match stages (validate filtering)Add $addFields / $project transforms (validate reshaping)
    3. 03

      Prerequisites

      This skill requires the MongoDB MCP Server connected with: - Atlas API credentials (apiClientId and apiClientSecret)

      Atlas API credentials (apiClientId and apiClientSecret)This skill requires the MongoDB MCP Server connected with: - Atlas API credentials (apiClientId and apiClientSecret)The 4 tools: atlas-streams-discover, atlas-streams-build, atlas-streams-manage, atlas-streams-teardown.
    4. 04

      If MCP tools are unavailable

      If the MongoDB MCP Server is not connected or the streams tools are missing, see references/mcp-troubleshooting.md for diagnostic steps and fallback options.

      If the MongoDB MCP Server is not connected or the streams tools are missing, see references/mcp-troubleshooting.md for diagnostic steps and fallback options.
    5. 05

      Tool Selection Matrix

      Pagination (all list actions): limit (1-100, default 20), pageNum (default 1). Response format: responseFormat — "concise" (default for list actions) or "detailed" (default for inspect/diagnose).

      resource = "workspace": Fill: projectId, workspaceName, cloudProvider, region, tier, includeSampleData. Leave empty: all connection and processor fields.resource = "connection": Fill: projectId, workspaceName, connectionName, connectionType, connectionConfig. Leave empty: all workspace and processor fields. (See references/connection-configs.md for type-specific schemas…resource = "processor": Fill: projectId, workspaceName, processorName, pipeline, dlq (recommended), autoStart (optional). Leave empty: all workspace and connection fields. (See references/pipeline-patterns.md for pipeli…

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score86/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars961SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    fcakyon/claude-codex-settings
    Skill path
    plugins/mongodb-skills/skills/mongodb-atlas-stream-processing/SKILL.md
    Commit
    ccd2e764cc57ba1e8de4833615a04d540ba1295a
    License
    Apache-2.0
    Collected
    2026-08-04
    Default branch
    main
    View the original SKILL.md

    MongoDB Atlas Streams

    Build, operate, and debug Atlas Stream Processing (ASP) pipelines using four MCP tools from the MongoDB MCP Server.

    Prerequisites

    This skill requires the MongoDB MCP Server connected with:

    • Atlas API credentials (apiClientId and apiClientSecret)

    The 4 tools: atlas-streams-discover, atlas-streams-build, atlas-streams-manage, atlas-streams-teardown.

    All operations require an Atlas project ID. If unknown, call atlas-list-projects first to find your project ID.

    If MCP tools are unavailable

    If the MongoDB MCP Server is not connected or the streams tools are missing, see references/mcp-troubleshooting.md for diagnostic steps and fallback options.

    Tool Selection Matrix

    atlas-streams-discover — ALL read operations

    ActionUse when
    list-workspacesSee all workspaces in a project
    inspect-workspaceReview workspace config, state, region
    list-connectionsSee all connections in a workspace
    inspect-connectionCheck connection state, config, health
    list-processorsSee all processors in a workspace
    inspect-processorCheck processor state, pipeline, config
    diagnose-processorFull health report: state, stats, errors
    get-networkingPrivateLink and VPC peering details. Optional: cloudProvider + region to get Atlas account details for PrivateLink setup

    Pagination (all list actions): limit (1-100, default 20), pageNum (default 1). Response format: responseFormat"concise" (default for list actions) or "detailed" (default for inspect/diagnose).

    atlas-streams-build — ALL create operations

    ResourceKey parameters
    workspacecloudProvider, region, tier (default SP10), includeSampleData
    connectionconnectionName, connectionType (Kafka/Cluster/S3/Https/Kinesis/Lambda/SchemaRegistry/Sample), connectionConfig
    processorprocessorName, pipeline (must start with $source, end with $merge/$emit), dlq, autoStart
    privatelinkprivateLinkConfig (project-level, not tied to a specific workspace)

    Field mapping — only fill fields for the selected resource type:

    • resource = "workspace": Fill: projectId, workspaceName, cloudProvider, region, tier, includeSampleData. Leave empty: all connection and processor fields.
    • resource = "connection": Fill: projectId, workspaceName, connectionName, connectionType, connectionConfig. Leave empty: all workspace and processor fields. (See references/connection-configs.md for type-specific schemas.)
    • resource = "processor": Fill: projectId, workspaceName, processorName, pipeline, dlq (recommended), autoStart (optional). Leave empty: all workspace and connection fields. (See references/pipeline-patterns.md for pipeline examples.)
    • resource = "privatelink": Fill: projectId, privateLinkConfig. Note: PrivateLink is project-level, not workspace-level. workspaceName is not required — omit it. Leave empty: all connection and processor fields.

    atlas-streams-manage — ALL update/state operations

    ActionNotes
    start-processorBegins billing. Optional tier override, resumeFromCheckpoint
    stop-processorStops billing. Retains state 45 days
    modify-processorProcessor must be stopped first. Change pipeline, DLQ, or name
    update-workspaceChange tier or region
    update-connectionUpdate config (networking is immutable — must delete and recreate)
    accept-peering / reject-peeringVPC peering management

    Field mapping — always fill projectId, workspaceName, then by action:

    • "start-processor"resourceName. Optional: tier, resumeFromCheckpoint, startAtOperationTime (ISO 8601 timestamp to resume from a specific point)
    • "stop-processor"resourceName
    • "modify-processor"resourceName. At least one of: pipeline, dlq, newName
    • "update-workspace"newRegion or newTier
    • "update-connection"resourceName, connectionConfig. Exception: networking config (e.g., PrivateLink) cannot be modified after creation — delete and recreate.
    • "accept-peering"peeringId, requesterAccountId, requesterVpcId
    • "reject-peering"peeringId

    State pre-checks:

    • start-processor → errors if processor is already STARTED
    • stop-processor → no-ops if already STOPPED or CREATED (not an error)
    • modify-processor → errors if processor is STARTED (must stop first)

    Processor states: CREATEDSTARTED (via start) → STOPPED (via stop). Can also enter FAILED on runtime errors. Modify requires STOPPED or CREATED state.

    Teardown safety checks:

    • Processor deletion → auto-stops before deleting (no need to stop manually first)
    • Connection deletion → blocks if any running processor references it. Stop/delete referencing processors first.
    • Workspace deletion → See detailed workflow below (lines 108-111).

    atlas-streams-teardown — ALL delete operations

    ResourceSafety behavior
    processorAuto-stops before deleting
    connectionBlocks if referenced by running processor
    workspaceCascading delete of all connections and processors
    privatelink / peeringRemove networking resources

    Field mapping — always fill projectId, resource, then:

    • resource: "workspace"workspaceName
    • resource: "connection" or "processor"workspaceName, resourceName
    • resource: "privatelink" or "peering"resourceName (the ID). These are project-level resources, not tied to a specific workspace.

    Before deleting a workspace, inspect it first:

    1. atlas-streams-discoverinspect-workspace — get connection/processor counts
    2. Present to user: "Workspace X contains N connections and M processors. Deleting permanently removes all. Proceed?"
    3. Wait for confirmation before calling atlas-streams-teardown

    CRITICAL: Validate Before Creating Processors

    You MUST call search-knowledge before composing any processor pipeline. This is not optional.

    • Field validation: Query with the sink/source type, e.g. "Atlas Stream Processing $emit S3 fields" or "Atlas Stream Processing Kafka $source configuration". This catches errors like prefix vs path for S3 $emit.
    • Pattern examples: Query with dataSources: [{"name": "devcenter"}] for working pipelines, e.g. "Atlas Stream Processing tumbling window example".

    Also fetch examples from the official ASP examples repo when building non-trivial processors: https://github.com/mongodb/ASP_example (quickstarts, example processors, Terraform examples). Start with example_processors/README.md for the full pattern catalog.

    Key quickstarts:

    QuickstartPattern
    00_hello_world.jsonInline $source.documents with $match (zero infra, ephemeral)
    01_changestream_basic.jsonChange stream → tumbling window → $merge to Atlas
    03_kafka_to_mongo.jsonKafka source → tumbling window rollup → $merge to Atlas
    04_mongo_to_mongo.jsonChained processors: rollup → archive to separate collection
    05_kafka_tail.jsonReal-time Kafka topic monitoring (sinkless, like tail -f)

    Pipeline Rules & Warnings

    Invalid constructs — these are NOT valid in streaming pipelines:

    • $$NOW, $$ROOT, $$CURRENT — NOT available in stream processing. NEVER use these. Use the document's own timestamp field or _stream_meta metadata for event time instead of $$NOW.
    • HTTPS connections as $source — HTTPS is for $https enrichment or sink only, NOT as a data source
    • Kafka $source without topic — topic field is required
    • Pipelines without a sink — terminal stage ($merge, $emit, $https, or $externalFunction async) required for deployed processors (sinkless only works via sp.process())
    • Lambda as $emit target — Lambda uses $externalFunction (mid-pipeline enrichment), not $emit
    • $validate with validationAction: "error" — crashes processor; use "dlq" instead

    Required fields by stage:

    • $source (change stream): include fullDocument: "updateLookup" to get the full document content
    • $source (Kinesis): use stream (NOT streamName or topic)
    • $emit (Kinesis): MUST include partitionKey
    • $emit (S3): use path (NOT prefix)
    • $https: must include connectionName, path, method, as, onError: "dlq"
    • $externalFunction: must include connectionName, functionName, execution, as, onError: "dlq"
    • $validate: must include validator with $jsonSchema and validationAction: "dlq"
    • $lookup: include parallelism setting (e.g., parallelism: 2) for concurrent I/O
    • AWS connections (S3, Kinesis, Lambda): IAM role ARN must be registered via Atlas Cloud Provider Access first. Always confirm this with user. See references/connection-configs.md for details.

    See references/pipeline-patterns.md for stage field examples with JSON syntax.

    SchemaRegistry connection: connectionType must be "SchemaRegistry" (not "Kafka"). Schema type values are case-sensitive (use lowercase avro, not AVRO). See references/connection-configs.md for required fields and auth types.

    MCP Tool Behaviors

    Elicitation: When creating connections, the build tool auto-collects missing sensitive fields (passwords, bootstrap servers) via MCP elicitation. Do NOT ask the user for these — let the tool collect them.

    Auto-normalization:

    • bootstrapServers array → auto-converted to comma-separated string
    • schemaRegistryUrls string → auto-wrapped in array
    • dbRoleToExecute → defaults to {role: "readWriteAnyDatabase", type: "BUILT_IN"} for Cluster connections

    Workspace creation: includeSampleData defaults to true, which auto-creates the sample_stream_solar connection.

    Region naming: The region field uses Atlas-specific names that differ by cloud provider. Using the wrong format returns a cryptic dataProcessRegion error.

    ProviderCloud RegionStreams region Value
    AWSus-east-1VIRGINIA_USA
    AWSus-east-2OHIO_USA
    AWSeu-west-1DUBLIN_IRL
    GCPus-central1US_CENTRAL1
    GCPeurope-west1EUROPE_WEST1
    Azureeastuseastus
    Azurewesteuropewesteurope

    See references/connection-configs.md for the full region mapping table. If unsure, inspect an existing workspace with atlas-streams-discoverinspect-workspace and check dataProcessRegion.region.

    Connection Capabilities — Source/Sink Reference

    Know what each connection type can do before creating pipelines:

    Connection TypeAs Source ($source)As Sink ($merge / $emit)Mid-PipelineNotes
    Cluster✅ Change streams✅ $merge to collections✅ $lookupChange streams monitor insert/update/delete/replace operations
    Kafka✅ Topic consumer✅ $emit to topicsSource MUST include topic field
    Sample Stream✅ Sample data❌ Not validTesting/demo only
    S3❌ Not valid✅ $emit to bucketsSink only - use path, format, compression. Supports AWS PrivateLink.
    Https❌ Not valid✅ $https as sink✅ $https enrichmentCan be used mid-pipeline for enrichment OR as final sink stage
    AWSLambda❌ Not valid✅ $externalFunction (async only)✅ $externalFunction (sync or async)Sink: execution: "async" required. Mid-pipeline: execution: "sync" or "async"
    AWS Kinesis✅ Stream consumer✅ $emit to streamsSimilar to Kafka pattern
    SchemaRegistry❌ Not valid❌ Not valid✅ Schema resolutionMetadata only - used by Kafka connections for Avro schemas

    Common connection usage mistakes to avoid:

    • ❌ Using $externalFunction as sink with execution: "sync" → Must use execution: "async" for sink stage
    • ❌ Forgetting change streams exist → Atlas Cluster is a powerful source, not just a sink
    • ❌ Using $merge with Kafka → Use $emit for Kafka sinks

    See references/connection-configs.md for detailed connection configuration schemas by type.

    Core Workflows

    Setup from scratch

    1. atlas-streams-discoverlist-workspaces (check existing)
    2. atlas-streams-buildresource: "workspace" (region near data, SP10 for dev)
    3. atlas-streams-buildresource: "connection" (for each source/sink/enrichment)
    4. Validate connections: atlas-streams-discoverlist-connections + inspect-connection for each — verify names match targets, present summary to user
    5. Call search-knowledge to validate field names. Fetch relevant examples from https://github.com/mongodb/ASP_example
    6. atlas-streams-buildresource: "processor" (with DLQ configured)
    7. atlas-streams-managestart-processor (warn about billing)

    Workflow Patterns

    Incremental pipeline development (recommended): See references/development-workflow.md for the full 5-phase lifecycle.

    1. Start with basic $source$merge pipeline (validate connectivity)
    2. Add $match stages (validate filtering)
    3. Add $addFields / $project transforms (validate reshaping)
    4. Add windowing or enrichment (validate aggregation logic)
    5. Add error handling / DLQ configuration

    Modify a processor pipeline:

    1. atlas-streams-manageaction: "stop-processor"processor MUST be stopped first
    2. atlas-streams-manageaction: "modify-processor" — provide new pipeline
    3. atlas-streams-manageaction: "start-processor" — restart

    Debug a failing processor:

    1. atlas-streams-discoverdiagnose-processor — one-shot health report. Always call this first.
    2. Commit to a specific root cause. Match symptoms to diagnostic patterns:
      • Error 419 + "no partitions found" → Kafka topic doesn't exist or is misspelled
      • State: FAILED + multiple restarts → connection-level error (bypasses DLQ), check connection config
      • State: STARTED + zero output + windowed pipeline → likely idle Kafka partitions blocking window closure; add partitionIdleTimeout to Kafka $source (e.g., {"size": 30, "unit": "second"})
      • State: STARTED + zero output + non-windowed → check if source has data; inspect Kafka offset lag
      • High memoryUsageBytes approaching tier limit → OOM risk; recommend higher tier
      • DLQ count increasing → per-document errors; use MongoDB find on DLQ collection See references/output-diagnostics.md for the full pattern table.
    3. Classify processor type before interpreting output volume (alert vs transformation vs filter).
    4. Provide concrete, ordered fix steps specific to the diagnosed root cause. Do NOT present a list of hypothetical scenarios.
    5. If detailed logs are needed, direct the user to the Atlas UI: Atlas → Stream Processing → Workspace → Processor → Logs tab.

    Chained processors (multi-sink pattern)

    CRITICAL: A single pipeline can only have ONE terminal sink ($merge or $emit). When users request multiple output destinations (e.g., "write to Atlas AND emit to Kafka"), you MUST acknowledge the single-sink constraint and propose chained processors using an intermediate destination. See references/pipeline-patterns.md for the full pattern with examples.

    Pre-Deploy & Post-Deploy Checklists

    See references/development-workflow.md for the complete pre-deploy quality checklist (connection validation, pipeline validation) and post-deploy verification workflow.

    Tier Sizing & Performance

    See references/sizing-and-parallelism.md for tier specifications, parallelism formulas, complexity scoring, and performance optimization strategies.

    Troubleshooting

    See references/development-workflow.md for the complete troubleshooting table covering processor failures, API errors, configuration issues, and performance problems.

    Billing & Cost

    Atlas Stream Processing has no free tier. All deployed processors incur continuous charges while running.

    • Charges are per-hour, calculated per-second, only while the processor is running
    • stop-processor stops billing; stopped processors retain state for 45 days at no charge
    • For prototyping without billing: Use sp.process() in mongosh — runs pipelines ephemerally without deploying a processor
    • See references/sizing-and-parallelism.md for tier pricing and cost optimization strategies

    Safety Rules

    • atlas-streams-teardown and atlas-streams-manage require user confirmation — do not bypass
    • BEFORE calling atlas-streams-teardown for a workspace, you MUST first inspect the workspace with atlas-streams-discover to count connections and processors, then present this information to the user before requesting confirmation
    • BEFORE creating any processor, you MUST validate all connections per the "Pre-Deployment Validation" section in references/development-workflow.md
    • Deleting a workspace removes ALL connections and processors permanently
    • After stopping a processor, state is preserved 45 days — then checkpoints are discarded
    • resumeFromCheckpoint: false drops all window state — warn user first
    • Moving processors between workspaces is not supported (must recreate)
    • Dry-run / simulation is not supported — explain what you would do and ask for confirmation
    • Always warn users about billing before starting processors
    • Store API authentication credentials in connection settings, never hardcode in processor pipelines

    Reference Files

    FileRead when...
    references/pipeline-patterns.mdBuilding or modifying processor pipelines
    references/connection-configs.mdCreating connections (type-specific schemas)
    references/development-workflow.mdFollowing lifecycle management or debugging decision trees
    references/output-diagnostics.mdProcessor output is unexpected (zero, low, or wrong)
    references/sizing-and-parallelism.mdChoosing tiers, tuning parallelism, or optimizing cost

    Alternatives

    Compare before choosing

    Computed 10023,781

    alirezarezvani/claude-skills

    app-store-optimization

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

    Computed 1004,922

    dotnet/skills

    migrate-vstest-to-mtp

    Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing

    Computed 9929,558

    HKUDS/Vibe-Trading

    strategy-generate

    Create, modify, and optimize quantitative trading strategies, then backtest and evaluate them.

    Computed 9832,606

    K-Dense-AI/scientific-agent-skills

    dask

    Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.