Verified conversions across 205 color spaces: CSS strings, gamut checks, .cube LUTs
Streamline is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Search and download icons, illustrations, elements and emojis in PNG or SVG formats.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http streamlinehq-streamline-mcp https://public-api.streamlinehq.com/mcp --header 'X-API-Key: ${X_API_KEY}'
# 2 — ask your agent for something these tools do
# get_user_context, search_assets, search_families and 10 more
It needs X_API_KEY (API key for authentication): this sends it in the X-API-Key header from your environment, so export it first — its endpoint answers 401 without it.
Streamline costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it. Claude Code reads X_API_KEY (API key for authentication) from your environment each time it connects and sends it in the X-API-Key header — its endpoint answers 401 without it — so the key stays out of its config: export it in your shell profile (macOS, Linux), or run setx X_API_KEY … and open a new terminal (Windows).
claude mcp add --scope user --transport http streamlinehq-streamline-mcp https://public-api.streamlinehq.com/mcp --header 'X-API-Key: ${X_API_KEY}'Reconnect, or start a new session, and the tools appear in the model’s tool list.
It reaches a system of yours, so it needs your own credential rather than the publisher’s: X-API-Key header — API key for authentication. You set it in your own client’s config, on your machine — this marketplace never holds it.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
13 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Returns userContext (signed-in email and Streamline plan) and llmInstructions (how to present catalog results for this user). Call this before searching or recommending assets.
No parameter schema on file.
Search icons, illustrations, or elements. With a non-empty setSlug, search within that Set. Else with a non-empty familySlug, search within that Family (bundle). Otherwise global search — requires productType. Answer from results, never from memory: asset names, slugs and hashes cannot be recalled, so any icon you name without calling this tool is invented. For a multi-icon request ("save, e
| Parameter | Type | Required | Notes |
|---|---|---|---|
| userContext | string | yes | User context from the "get user profile" tool (get_user_context). Always call that tool first if you do not have userContext yet. Do not guess. |
| query | string | yes | Search term. Translate abstract concepts into concrete visual nouns when searching globally. NEVER mix different concepts in the same query. At most 100 characters, or 2000 with exactNames. |
| exactNames | boolean | no | When true, query is a comma-separated list of exact asset names (e.g. "House 3, Hyperloop"), matched case-insensitively, up to 50 names. Requires setSlug or familySlug. Use when the user names s |
| language | string | no | Optional source language of query. Options: en (English), fr (French), de (German), es (Spanish Spain), es-MX (Spanish Latin America), pt (Portuguese Brazil). |
| setSlug | string | no | Set slug from search_sets, find_sets_by_name, or get_all_sets_from_family. When set (non-empty), search is scoped to this Set (takes precedence over familySlug). |
| familySlug | string | no | Family (bundle) slug from search_families or get_all_families. When set (non-empty) and setSlug is omitted, search is scoped to this Family. |
| productType | string | no | Required for global search only (when both setSlug and familySlug are omitted). Asset type: icons, illustrations, or elements. |
| offset | number | no | Specifies the number of items to skip before starting to return results (default: 0). |
| limit | number | no | Specifies the maximum number of items to return in the response (default: 20, max: 100). |
| productTier | string | no | Filter for the price tier of the products. Used for global search and Family (bundle) search. E.g., if "free", results will only be from free Sets. |
| style | string | no | Filter for the style of the Sets. Global search only; applies when productType is "icons". |
Choose a Family (bundle) for any "which icons should I use" ask: pairing icons with a font or typeface, matching a visual style, tone or brand, or picking between packs. Users say "icon set", "pack" or "bundle" for what this catalog calls a Family — when the level is ambiguous, start here. Answer from results, never from memory: the catalog changes and Family names and slugs cannot be recalled, so
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Plain-language user intent. Prefer their full question or sentence (use case, audience, tone, exclusions). Keep negatives and framing (e.g. "Which families should I avoid for a B2B SaaS product?"). Do |
| limit | number | no | Maximum number of Families to return (default: 2, max: 10). |
Semantic search for Sets by natural-language query: discovers Sets by meaning, not by substring on the stored name. Optionally scoped with familySlug to narrow results to a specific Family. For substring / partial name match on stored names, use find_sets_by_name instead — these do different things and must not be confused. Use get_all_sets_from_family when you already know the Family and wa
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Natural-language search term to find Sets. Preserve full intent (questions, negatives); do not compress into comma-separated keyword stacks unless the user only gave keywords. Do not append tastes or |
| familySlug | string | no | When set, only return Sets belonging to this Family. Use the Family slug from search_families (familySlug) or get_all_families (slug). |
| limit | number | no | Maximum number of Sets to return (default: 20, max: 100). |
Case-insensitive substring match on stored Set names (minimum 3 characters). Use for exact or partial name lookup when the user types a name string. For semantic / intent-based discovery, use search_sets instead — these do different things and must not be confused.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Search string to match against Set names (case-insensitive). Must be at least 3 characters. |
Returns full semantic text for a family (bundle) in four sections: fit & recommendations, brand & cultural identity, visual & technical specs, and pairing & compatibility. Also returns the family license. Use when you need richer metadata to choose between family groups after search_families or get_all_families or when comparing multiple families. Pass the exact familySlug from those results;
| Parameter | Type | Required | Notes |
|---|---|---|---|
| familySlug | string | yes | slug of the family from search_families or get_all_families. |
Retrieves detailed information about an icon (Set, variants, preview URLs, tags). Use this when you need full icon metadata before downloading. Obtain the iconHash from search_assets results.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| iconHash | string | yes | The icon ID (hash). Obtain it from search_assets results. |
Returns all available Families. Each entry includes the Family hash and slug needed for other tools. Use this to present the full catalog or when the user wants to browse all available Families.
No parameter schema on file.
Returns all Sets belonging to a specific Family. Paginated with offset (default 0) and limit (default 100, max 100). Call this after choosing a Family with search_families and before recommending it: it is what surfaces the Family's actual Sets to the user, and recommending a visual style they cannot see is a failed answer however good the prose. Also use it to list a Family's Sets when the user
| Parameter | Type | Required | Notes |
|---|---|---|---|
| familySlug | string | no | The slug of the Family (top-level bundle). Preferred over familyHash. Use slug from search_families or get_all_families. |
| familyHash | string | no | The hash of the Family (top-level bundle). Legacy alternative to familySlug; use familyHash from find_sets_by_name when that is all you have. |
| offset | number | no | Number of items to skip before returning results (default: 0). |
| limit | number | no | Maximum number of Sets to return (default: 100, max: 100). |
Export an icon as PNG or SVG. Returns JSON with a short-lived downloadUrl, expiresAt, expiresInSeconds, mimeType, and fileName. Give the user downloadUrl as a clickable link labelled with fileName, and tell them it expires in two hours; do not report a failure because you cannot fetch it yourself. Clients that can fetch files may GET downloadUrl directly (no API key needed). SVG-on
| Parameter | Type | Required | Notes |
|---|---|---|---|
| format | string | yes | Export format: "png" or "svg". |
| iconHash | string | yes | The icon ID (hash). Obtain it from search_assets results. |
| size | number | yes | Image size in pixels (square). |
| colors | array | no | Array of HEX codes or CSS named colors. |
| backgroundColor | string | no | Background color (default: transparent). |
| strokeWidth | number | no | Thickness of vector paths. |
| responsive | boolean | no | SVG only. Scales with container (viewBox, no fixed size). |
| strokeToFill | boolean | no | SVG only. Convert strokes to fills (strokeWidth ignored). |
Export multiple icons (up to 50) as PNG or SVG, bundled into one .zip. Returns JSON with a single short-lived downloadUrl, expiresAt, expiresInSeconds, mimeType ("application/zip"), fileName, and the iconHashes it contains. All icons share the same render options. Give the user downloadUrl as a clickable link labelled with fileName, and tell them it expires in 2 hours; do not repor
| Parameter | Type | Required | Notes |
|---|---|---|---|
| format | string | yes | Export format: "png" or "svg". |
| iconHashes | array | yes | Icon IDs (hashes) from search_assets results, one per array element (max 50). |
| size | number | yes | Image size in pixels (square). |
| colors | array | no | Array of HEX codes or CSS named colors. |
| backgroundColor | string | no | Background color (default: transparent). |
| strokeWidth | number | no | Thickness of vector paths. |
| responsive | boolean | no | SVG only. Scales with container (viewBox, no fixed size). |
| strokeToFill | boolean | no | SVG only. Convert strokes to fills (strokeWidth ignored). |
Fetch another page of asset results for the app.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | — |
| offset | number | no | — |
| limit | number | no | — |
| setSlug | string | no | — |
| familySlug | string | no | — |
| productType | string | no | — |
Export up to a dozen assets and return them base64-encoded for the app.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| iconHashes | array | yes | — |
| format | string | yes | — |
| size | number | no | — |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Streamline or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | minimal | capability blast radius (minimal) — client exposure if the model is manipulated | −0 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. minimal is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| get_user_context | no tags | |
| search_assets | no tags | |
| search_families | no tags | |
| search_sets | no tags | |
| find_sets_by_name | no tags | |
| get_family_extra_details | no tags | |
| get_icon_by_hash | no tags | |
| get_all_families | untrusted-input | untrusted-input: keyword "browse" |
| get_all_sets_from_family | no tags | |
| download_asset | untrusted-input | untrusted-input: keyword "fetch" |
| download_multiple_assets | untrusted-input | untrusted-input: keyword "fetch" |
| search_assets_page | untrusted-input | untrusted-input: keyword "fetch" |
| get_asset_files | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 2.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Streamline can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.