$npx -y skills add mongodb/agent-skills --skill mongodb-atlas-stream-processingManages 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 wor
| 1 | # MongoDB Atlas Streams |
| 2 | |
| 3 | Build, operate, and debug Atlas Stream Processing (ASP) pipelines using four MCP tools from the MongoDB MCP Server. |
| 4 | |
| 5 | ## Prerequisites |
| 6 | |
| 7 | This skill requires the **MongoDB MCP Server** connected with: |
| 8 | - Atlas API credentials (`apiClientId` and `apiClientSecret`) |
| 9 | |
| 10 | The 4 tools: `atlas-streams-discover`, `atlas-streams-build`, `atlas-streams-manage`, `atlas-streams-teardown`. |
| 11 | |
| 12 | **All operations require an Atlas project ID.** If unknown, call `atlas-list-projects` first to find your project ID. |
| 13 | |
| 14 | ## If MCP tools are unavailable |
| 15 | |
| 16 | If the MongoDB MCP Server is not connected or the streams tools are missing, see [references/mcp-troubleshooting.md](references/mcp-troubleshooting.md) for diagnostic steps and fallback options. |
| 17 | |
| 18 | ## Tool Selection Matrix |
| 19 | |
| 20 | ### atlas-streams-discover — ALL read operations |
| 21 | | Action | Use when | |
| 22 | |--------|----------| |
| 23 | | `list-workspaces` | See all workspaces in a project | |
| 24 | | `inspect-workspace` | Review workspace config, state, region | |
| 25 | | `list-connections` | See all connections in a workspace | |
| 26 | | `inspect-connection` | Check connection state, config, health | |
| 27 | | `list-processors` | See all processors in a workspace | |
| 28 | | `inspect-processor` | Check processor state, pipeline, config | |
| 29 | | `diagnose-processor` | Full health report: state, stats, errors | |
| 30 | | `get-networking` | PrivateLink and VPC peering details. Optional: `cloudProvider` + `region` to get Atlas account details for PrivateLink setup | |
| 31 | |
| 32 | **Pagination** (all list actions): `limit` (1-100, default 20), `pageNum` (default 1). |
| 33 | **Response format**: `responseFormat` — `"concise"` (default for list actions) or `"detailed"` (default for inspect/diagnose). |
| 34 | |
| 35 | ### atlas-streams-build — ALL create operations |
| 36 | | Resource | Key parameters | |
| 37 | |----------|---------------| |
| 38 | | `workspace` | `cloudProvider`, `region`, `tier` (default SP10), `includeSampleData` | |
| 39 | | `connection` | `connectionName`, `connectionType` (Kafka/Cluster/S3/Https/Kinesis/Lambda/SchemaRegistry/Sample), `connectionConfig` | |
| 40 | | `processor` | `processorName`, `pipeline` (must start with `$source`, end with `$merge`/`$emit`), `dlq`, `autoStart` | |
| 41 | | `privatelink` | `privateLinkConfig` (project-level, not tied to a specific workspace) | |
| 42 | |
| 43 | **Field mapping — only fill fields for the selected resource type:** |
| 44 | |
| 45 | - **resource = "workspace":** Fill: `projectId`, `workspaceName`, `cloudProvider`, `region`, `tier`, `includeSampleData`. Leave empty: all connection and processor fields. |
| 46 | - **resource = "connection":** Fill: `projectId`, `workspaceName`, `connectionName`, `connectionType`, `connectionConfig`. Leave empty: all workspace and processor fields. (See [references/connection-configs.md](references/connection-configs.md) for type-specific schemas.) |
| 47 | - **resource = "processor":** Fill: `projectId`, `workspaceName`, `processorName`, `pipeline`, `dlq` (recommended), `autoStart` (optional). Leave empty: all workspace and connection fields. (See [references/pipeline-patterns.md](references/pipeline-patterns.md) for pipeline examples.) |
| 48 | - **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. |
| 49 | |
| 50 | ### atlas-streams-manage — ALL update/state operations |
| 51 | | Action | Notes | |
| 52 | |--------|-------| |
| 53 | | `start-processor` | Begins billing. Optional `tier` override, `resumeFromCheckpoint` | |
| 54 | | `stop-processor` | Stops billing. Retains state 45 days | |
| 55 | | `modify-processor` | Processor must be stopped first. Change pipeline, DLQ, or name | |
| 56 | | `update-workspace` | Change tier or region | |
| 57 | | `update-connection` | Update config (networking is immutable — must delete and recreate) | |
| 58 | | `accept-peering` / `reject-peering` | VPC peering management | |
| 59 | |
| 60 | **Field mapping** — always fill `projectId`, `workspaceName`, then by action: |
| 61 | |
| 62 | - `"start-processor"` → `resourceName`. Optional: `tier`, `resumeFromCheckpoint`, `startAtOperationTime` (ISO 8601 timestamp to resume from a specific point) |
| 63 | - `"stop-processor"` → `resourceName` |
| 64 | - `"modify-processor"` → `resourceName`. At least one of: `pipeline`, `dlq`, `newName` |
| 65 | - `"update-workspace"` → `newRegion` or `newTier` |
| 66 | - `"update-connection"` → `resourceName`, `connectionConfig`. **Exception: networking config (e.g., PrivateLink) cannot be modified after creation** — delete and recreate. |
| 67 | - `"accept-peering"` → `peeringId`, `requesterAccountId`, `requesterVpcId` |
| 68 | - |