{
  "markdown": "# Streamkap CLI & MCP Server\n\nCLI and MCP server for [Streamkap](https://streamkap.com) -- manage real-time data pipelines from the command line or through AI agents.\n\nStreamkap captures changes from databases (MySQL, PostgreSQL, MongoDB, SQL Server, DynamoDB, and more) and streams them to data warehouses, lakes, and other destinations in real time.\n\nRequires Node.js 22.12.0+. For full documentation, visit [docs.streamkap.com](https://docs.streamkap.com).\n\n---\n\n## Quick Start\n\n1. Log into your [Streamkap dashboard](https://app.streamkap.com)\n2. Go to **Settings > API Keys** and create a new API key\n3. Choose how you want to use it:\n\n**CLI:**\n```bash\nnpm install -g @streamkap/tools\nstreamkap auth login --client-id your-client-id --client-secret your-client-secret\nstreamkap doctor   # Verify everything works\n```\n\n**MCP -- Claude Code (one command):**\n```bash\nclaude mcp add --scope user \\\n  --header \"X-Streamkap-Client-ID: your-client-id\" \\\n  --header \"X-Streamkap-Client-Secret: your-client-secret\" \\\n  --transport http \\\n  streamkap https://mcp.streamkap.com/mcp\n```\n\n**MCP -- one-click install:**\n\n[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.png)](cursor://anysphere.cursor-deeplink/mcp/install?name=streamkap&config=eyJ1cmwiOiJodHRwczovL21jcC5zdHJlYW1rYXAuY29tL21jcCJ9)\n[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_streamkap-0098FF?style=flat-square&logo=visualstudiocode)](https://insiders.vscode.dev/redirect/mcp/install?name=streamkap&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.streamkap.com%2Fmcp%22%7D)\n\nBoth install the hosted server and sign you in through OAuth -- no credentials to paste.\n\n**MCP -- Cursor, Windsurf, VS Code Copilot (JSON config):**\n```json\n{\n  \"mcpServers\": {\n    \"streamkap\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.streamkap.com/mcp\",\n      \"headers\": {\n        \"X-Streamkap-Client-ID\": \"your-client-id\",\n        \"X-Streamkap-Client-Secret\": \"your-client-secret\"\n      }\n    }\n  }\n}\n```\n\n> **Claude Desktop users:** Claude Desktop requires a different setup using the absolute path to your Node.js binary. See the [Claude Desktop guide on docs.streamkap.com](https://docs.streamkap.com/mcp-server) for the full instructions.\n\n---\n\n## What's Included\n\n| Credentials | What you get |\n|-------------|--------------|\n| **API key only** | All REST tools -- pipelines, sources, destinations, transforms, topics, schemas, alerts, logs |\n| **+ Kafka user** | REST tools + direct Kafka produce / consume / subscribe + Schema Registry encode and decode |\n| **[Project Key](#project-keys)** | All of the above, bundled into a single base64 value with tool scoping |\n\nMost users only need an **API key**. For Kafka access plus pre-scoped tool access in a single credential, use a [Project Key](#project-keys).\n\n---\n\n## Project Keys\n\nA **Project Key** is one file that bundles API + Kafka + Schema Registry credentials and MCP tool scoping. Use it instead of setting each env var or header individually.\n\nCreate one at **Settings > Project Keys** in the [Streamkap dashboard](https://app.streamkap.com), then encode it:\n\n```bash\nstreamkap auth encode-key ~/Downloads/my-key-credentials.json\n```\n\n**CLI / stdio MCP:** set `STREAMKAP_PROJECT_KEY=<base64>`.\n**Remote MCP:**\n\n```json\n{\n  \"mcpServers\": {\n    \"streamkap\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.streamkap.com/mcp\",\n      \"headers\": { \"X-Streamkap-Project-Key\": \"<base64>\" }\n    }\n  }\n}\n```\n\nFull reference -- JSON shape, tool-scoping profiles, rotation, edit flow: [docs.streamkap.com/project-keys](https://docs.streamkap.com/project-keys).\n\n---\n\n## CLI\n\n### Install\n\n```bash\nnpm install -g @streamkap/tools\n```\n\n### Authenticate\n\n```bash\n# Environment variables (recommended for CI and scripts)\nexport STREAMKAP_CLIENT_ID=\"your-client-id\"\nexport STREAMKAP_CLIENT_SECRET=\"your-client-secret\"\n\n# Or save credentials to a config file\nstreamkap auth login --client-id your-client-id --client-secret your-client-secret\n\n# Or pass per command\nstreamkap pipelines list --client-id your-client-id --client-secret your-client-secret --json\n```\n\n### Common commands\n\n```bash\nstreamkap --help                          # List all commands\nstreamkap doctor                          # Validate API, Kafka, Schema Registry\nstreamkap pipelines list --json           # List pipelines\nstreamkap sources metrics <id> --json     # Source metrics\nstreamkap dashboard stats --json          # Organisation overview\n```\n\n**Direct Kafka commands** (require Kafka credentials -- see [Adding Kafka Access](#adding-kafka-access)):\n\n```bash\nstreamkap kafka produce <topic> --value '{\"key\":\"val\"}'   # Produce a single message\nstreamkap kafka consume <topic> --max-messages 10          # Consume a batch\nstreamkap kafka subscribe <topic> --timeout 30000          # Real-time subscribe\n```\n\n**Output format:** JSON when piped, text when interactive. Override with `--json` or `--format text`.\n\n**Destructive commands** (delete, stop, reset) require `--yes` in interactive terminals. Preview with `--dry-run`. When piped (scripts and agents), they run without confirmation.\n\n### Shell completions\n\n```bash\nstreamkap completions bash >> ~/.bashrc\nstreamkap completions zsh >> ~/.zshrc\nstreamkap completions fish > ~/.config/fish/completions/streamkap.fish\n```\n\nFor the full CLI reference see [docs.streamkap.com/cli](https://docs.streamkap.com/cli).\n\n---\n\n## MCP Server\n\nThe MCP server lets AI agents manage your Streamkap infrastructure through natural language. Detailed setup for every supported client is at [docs.streamkap.com/mcp-server](https://docs.streamkap.com/mcp-server).\n\n### Claude Code\n\n```bash\nclaude mcp add --scope user \\\n  --header \"X-Streamkap-Client-ID: your-client-id\" \\\n  --header \"X-Streamkap-Client-Secret: your-client-secret\" \\\n  --transport http \\\n  streamkap https://mcp.streamkap.com/mcp\n```\n\n### Cursor, Windsurf\n\nAdd to `.cursor/mcp.json` (Cursor) or `~/.codeium/windsurf/mcp_config.json` (Windsurf):\n\n```json\n{\n  \"mcpServers\": {\n    \"streamkap\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.streamkap.com/mcp\",\n      \"headers\": {\n        \"X-Streamkap-Client-ID\": \"your-client-id\",\n        \"X-Streamkap-Client-Secret\": \"your-client-secret\"\n      }\n    }\n  }\n}\n```\n\n### VS Code Copilot\n\nAdd to `.vscode/mcp.json` (note the different schema -- `servers` instead of `mcpServers`):\n\n```json\n{\n  \"servers\": {\n    \"streamkap\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.streamkap.com/mcp\",\n      \"headers\": {\n        \"X-Streamkap-Client-ID\": \"your-client-id\",\n        \"X-Streamkap-Client-Secret\": \"your-client-secret\"\n      }\n    }\n  }\n}\n```\n\n### Claude Desktop\n\nClaude Desktop requires the absolute path to your Node.js binary because it does not source your shell environment. See the [Claude Desktop setup guide on docs.streamkap.com](https://docs.streamkap.com/mcp-server) for the full configuration.\n\n### Example prompts\n\nOnce connected, ask your AI agent things like:\n\n- \"Give me an overview of my infrastructure\"\n- \"Are any of my pipelines broken? Show me the details\"\n- \"Check the logs for any errors in the last hour\"\n- \"Produce a test message to my-topic\"\n- \"Find all DLQ topics and check for errors\"\n\n---\n\n## Capabilities\n\n- **Pipelines** -- create, update, delete, monitor metrics and logs, bulk operations\n- **Sources** -- manage CDC connectors (MySQL, PostgreSQL, MongoDB, etc.), deploy, pause, resume, restart, stop, snapshots\n- **Destinations** -- manage sinks (Snowflake, BigQuery, ClickHouse, etc.), deploy, pause, resume, restart, stop, monitor lag\n- **Transforms** -- manage stream processors, deploy to preview or production, run unit tests, clone\n- **Topics** -- list, inspect, create Kafka topics, read sample messages\n- **Tags** -- organise and search resources by tag\n- **Schema Registry** -- browse subjects and schemas\n- **Consumer Groups** -- inspect lag, identify stuck consumers, reset offsets\n- **Dashboard & Logs** -- organisation statistics, data lineage, search and filter logs\n- **Alerts** -- manage notification subscribers and preferences\n- **Usage** -- query and export usage metrics\n- **Kafka Access** -- manage direct-Kafka users\n- **Cluster Scaling** -- inspect cluster status, scale up or down\n- **Direct Kafka** -- produce and consume messages with optional Schema Registry encoding (Avro, JSON Schema, Protobuf)\n\n---\n\n## Adding Kafka Access\n\n> Or use a [Project Key](#project-keys) -- one value instead of the individual env vars below.\n\nTo enable the direct Kafka tools and Schema Registry encoding, create a Kafka user from the **Kafka Access** page in your [Streamkap dashboard](https://app.streamkap.com). The dashboard gives you the bootstrap servers, username, and password. **All three are required together** — Streamkap's Kafka proxy always requires SASL/SSL, so partial credentials will fail at startup with a clear error.\n\nAdd them to your existing config:\n\n```json\n{\n  \"env\": {\n    \"STREAMKAP_CLIENT_ID\": \"your-client-id\",\n    \"STREAMKAP_CLIENT_SECRET\": \"your-client-secret\",\n    \"KAFKA_BOOTSTRAP_SERVERS\": \"your-kafka-proxy:9092\",\n    \"KAFKA_API_KEY\": \"your-kafka-username\",\n    \"KAFKA_API_SECRET\": \"your-kafka-password\",\n    \"SCHEMA_REGISTRY_URL\": \"https://your-schema-registry:8081\"\n  }\n}\n```\n\nFor the CLI, export the same values as environment variables in your shell.\n\n---\n\n## Environment Variables\n\n### Core\n\nSet a [Project Key](#project-keys) **or** a Client ID + Client Secret pair (individual vars win on conflict).\n\n| Variable | Description |\n|----------|-------------|\n| `STREAMKAP_PROJECT_KEY` | Base64-encoded Project Key (see [Project Keys](#project-keys)) |\n| `STREAMKAP_CLIENT_ID` | Streamkap API client ID |\n| `STREAMKAP_CLIENT_SECRET` | Streamkap API client secret |\n| `STREAMKAP_API_URL` | Override the API base URL (default `https://api.streamkap.com`) |\n\n### Kafka (optional)\n\nThe three Kafka variables below must be set together — bootstrap servers alone is not enough. Create a Kafka user from the **Kafka Access** page in your [Streamkap dashboard](https://app.streamkap.com) to get all three at once.\n\n| Variable | Description |\n|----------|-------------|\n| `KAFKA_BOOTSTRAP_SERVERS` | Kafka broker addresses (required when using direct Kafka tools) |\n| `KAFKA_API_KEY` | Kafka SASL username (required when using direct Kafka tools) |\n| `KAFKA_API_SECRET` | Kafka SASL password (required when using direct Kafka tools) |\n| `SCHEMA_REGISTRY_URL` | Schema Registry URL -- enables Avro / JSON Schema / Protobuf encode and decode |\n| `SCHEMA_REGISTRY_USERNAME` | Schema Registry basic auth username |\n| `SCHEMA_REGISTRY_PASSWORD` | Schema Registry basic auth password |\n\n### Tool filtering (optional)\n\nShrink the catalog an agent sees — useful for context-constrained clients (Flink Agents, small-context models) and for scoping what a key can do.\n\n| Variable | Description |\n|----------|-------------|\n| `MCP_TOOL_PROFILE` | `full` (default), `read-only`, `agent-operator`, `infra-admin`, or `directory-default` |\n| `MCP_ALLOW_TOOLS` | Comma-separated whitelist — when set, only these tools are authorized within the selected catalog |\n| `MCP_BLOCK_TOOLS` | Comma-separated blacklist — removed from the catalog |\n| `MCP_TOOLSETS` | Comma-separated feature groups such as `sources,topics,tags`; narrows the catalog before profile and allow/block rules |\n| `MCP_CATALOG` | `full` (default) or `compact`; compact keeps the core tools plus the four meta-tools visible |\n\nBlocked tools are hidden from `tools/list`, not just rejected at call time. In HTTP mode, use `X-Streamkap-Toolsets` or append `?toolsets=sources,tags` to narrow a session further. Environment, header, URL, and server-verified Project Key toolsets are intersected; unknown names or a disjoint intersection expose no tools. The available groups are `pipelines`, `sources`, `destinations`, `topics`, `transforms`, `observability`, `tags`, `schema-registry`, `consumer-groups`, `admin`, `kafka-access`, `alerts`, `usage`, `cluster`, `tenant`, `kafka`, and `meta` (`workflows` holds `diagnose_pipeline` and `health_overview`; `docs` holds `search_docs`).\n\nCompact mode changes catalog shape, not authorization. It is the default for OAuth sessions — Connector Directory users get it unless they ask for `?catalog=full` — and opt-in everywhere else. Hidden authorized reads remain reachable through `streamkap_search_tools`, `streamkap_describe_tool`, and `streamkap_invoke_read_tool`; hidden writes require a profile that exposes `streamkap_invoke_write_tool`, which excludes `read-only`, `agent-operator`, and `directory-default`. When using `MCP_TOOLSETS`, include `meta` (for example, `sources,meta`) to expose the discovery and dispatch tools. For HTTP, send `X-Streamkap-Catalog: compact` or append `?catalog=compact`; a request can narrow `full` to `compact` but cannot widen an operator-pinned compact catalog.\n\n[Project Keys](#project-keys) can carry profile, allow/block, and toolset scoping. The MCP server uses the backend's copy of that scoping in both stdio and HTTP modes; it refuses a Project Key whose server-side configuration cannot be verified.\n\n---\n\n## Telemetry\n\n**Nothing is sent anywhere by default.** A fresh `npx @streamkap/tools` install makes no telemetry calls of any kind — the package contains an optional usage beacon and optional error tracking, and both stay inert unless *you* configure an endpoint for them.\n\n| Layer | Sends data only when | Default |\n|----------|-------------|---------|\n| Anonymous usage beacon | `STREAMKAP_TELEMETRY_ENDPOINT` is set | off — no endpoint ships in the package |\n| Sentry error tracking | `SENTRY_DSN` is set **and** you install `@sentry/node` yourself (optional peer dep) | off |\n| OpenTelemetry traces | `STREAMKAP_OTEL_ENABLED=1` **and** you install the OTel peer deps yourself | off |\n| Prometheus `/metrics` | you run the server in HTTP mode and scrape it | not exposed in stdio mode |\n\nIf the beacon is ever enabled, it sends one event per tool call: the tool name, duration, success/failure, package version, OS/arch, and a salted sha256 hash of your client ID. It does **not** send tool arguments, response bodies, record contents, topic names, tenant IDs, raw credentials, or stack traces.\n\nTo turn it off even where an endpoint is configured, set either:\n\n```bash\nDO_NOT_TRACK=1          # https://consoledonottrack.com\nSTREAMKAP_TELEMETRY=0   # equivalent, Streamkap-specific\n```\n\nThe CLI (`streamkap`) never emits telemetry at all, regardless of configuration.\n\nFull disclosure, including the exact payload and the source lines that gate every outbound call, is in `docs/TELEMETRY.md` in the source tree.\n\n---\n\n\n## License\n\n[Elastic License 2.0](https://www.elastic.co/licensing/elastic-license). See [LICENSE](LICENSE).",
  "bytes": 14728,
  "sha": "a04e002149a34237571fd32719d00b56962d68c0e21871bbac6e3f1a48d1728e",
  "repo_slug": "",
  "fonte": "npm",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_streamkap_tools_9e941b96/readme"
}