Koskamo

Sense2 MCP

A remote MCP server providing AI agents with real-time access to Sense2's promotional product catalogue. It supports searching 4,000+ items, retrieving live pricing, generating quotes, and accessing curated collections and brand information via JSON-RPC tools.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Sense2 MCP logo, by Sense2 Pty LtdCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by Sense2 Pty Ltd
MCP endpoint (Streamable HTTP)
https://sense2.com.au/api/mcp
Vendor documentation

What its tools do

29 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

29 of 29 have a description · 0 of 29 declare behavior hints · 20 of 20 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for promotional products by keyword or category
  • Retrieve live pricing and minimum order quantities
  • Generate quotes with dispatch windows and branding options
  • Access curated collections and brand inspiration ideas

Source and maintenance

Community listingRegistry 1.1.0
Maintenance checked

Protocol and capabilities

Server
sense2-catalogue 1.0.0
MCP protocol negotiated in check
2024-11-05
Tools
29 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Tools

29 advertised

search_products
Advertised by the server during the last successful anonymous check.

Search Sense2 promotional product catalogue by keyword. Returns { results, total, returned, offset, hasMore } — `total` is all matches, `returned` is this page (capped at 500); walk large sets with `offset`.

search_products input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "number",
      "default": 10,
      "description": "Max results (default 10, max 500)"
    },
    "query": {
      "type": "string",
      "description": "Search term (e.g. 'water bottle', 'pen', 'notebook')"
    },
    "offset": {
      "type": "number",
      "default": 0,
      "description": "Skip the first N matches (default 0) — for paginating large result sets"
    }
  }
}
get_product
Advertised by the server during the last successful anonymous check.

Get full product details by PID (branded pricing; plus a `wholesale` block with the unbranded/no-setup ladder where the supplier publishes bare stock). `locale` localises the product name, currency, pricing and URL (en-AU, en-US, en-NZ, de-DE, ja-JP); descriptions are English for all locales.

get_product input schema
{
  "type": "object",
  "required": [
    "pid"
  ],
  "properties": {
    "pid": {
      "type": "number",
      "description": "Product ID"
    },
    "locale": {
      "type": "string",
      "default": "en-AU",
      "description": "Locale (en-AU, en-US, en-NZ, de-DE, ja-JP). Localises name/currency/URL; description stays English."
    }
  }
}
get_quote
Advertised by the server during the last successful anonymous check.

Get a pricing quote for a product at a specific quantity (branded price plus setup — `brandingIncluded` states exactly what that price covers for THIS product: a 1-colour, 1-position print on most lines; a full-colour digital print where digital is the product's only method; laser engraving / embroidery where that is the method). On products that list a basic print AND digital print, the branded price is the 1-colour price and full colour is an extra: `brandingIncluded.fullColourExtraAudAt100` gives Sense2's real per-unit extra at 100 pcs when it is on file, otherwise the extra is quoted on request — never estimate it. Also returns a `wholesale` unbranded/no-setup quote where available. Prices are AUD ex-GST; freight is quoted per job.

get_quote input schema
{
  "type": "object",
  "required": [
    "pid",
    "quantity"
  ],
  "properties": {
    "pid": {
      "type": "number",
      "description": "Product ID"
    },
    "locale": {
      "type": "string",
      "default": "en-AU",
      "description": "Locale for pricing"
    },
    "quantity": {
      "type": "number",
      "description": "Quantity to quote (positive integer)"
    }
  }
}
get_categories
Advertised by the server during the last successful anonymous check.

List all product categories with product counts. Use get_category for one category's live picks and buyer FAQs. PAGED (default 200 per page, max 200): returns total, returned, offset, hasMore and nextOffset — call again with offset=nextOffset for the next page.

get_categories input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Entries per page (default 200, max 200)"
    },
    "offset": {
      "type": "number",
      "description": "Skip the first N entries (default 0) — use nextOffset from the previous page"
    }
  }
}
quote_options
Advertised by the server during the last successful anonymous check.

ONE-CALL buyer quote: 'best price on N <product type>, needed by <date>'. Searches the catalogue, prices each match at the buyer's quantity (or at the product's minimum order when N is below MOQ, with the MOQ stated plainly), ranks by total spend, and returns 3-8 options with unit price, setup, total (tax-exclusive, in the locale currency), MOQ status, production window and a DISPATCH note. `needBy` (YYYY-MM-DD) returns which options' production windows fit before that date — dispatch only; freight is quoted per job and Sense2 never promises a delivery date. Prefer this over search_products→get_quote chains.

quote_options input schema
{
  "type": "object",
  "required": [
    "query",
    "quantity"
  ],
  "properties": {
    "limit": {
      "type": "number",
      "description": "Options to return, 1-8 (default 5)"
    },
    "query": {
      "type": "string",
      "description": "Product type or keywords, e.g. 'notebooks', 'eco tote bags'"
    },
    "locale": {
      "type": "string",
      "description": "en-AU (default), en-US, en-NZ, de-DE, ja-JP"
    },
    "needBy": {
      "type": "string",
      "description": "Optional YYYY-MM-DD the buyer is working towards; answered as which production windows fit before it (dispatch, not arrival)"
    },
    "quantity": {
      "type": "number",
      "description": "Units the buyer wants (positive integer)"
    }
  }
}
get_category
Advertised by the server during the last successful anonymous check.

Get one category's live picks — the lowest-priced product, the fastest to get branded (shortest production window) and the premium pick — each with a named product, From price (AUD ex-GST at volume; MOQ stated separately) and URL — plus the buyer FAQs the category page publishes: minimum order, branding methods, production window, eco-friendly options, samples, the Best Price Guarantee, Australian cities supplied and typical occasions. On the Apparel and Clothing, T-Shirts, Polo Shirts and Corporate Polo Shirts categories it also returns `priceLadder`: the cheapest product per garment, fabric, decoration or fit with its branded unit price at MOQ and at 100 / 250 / 500 / 1,000 units, the comparison table the page shows. Every answer is derived from the live catalogue, so cite it rather than inferring. Discover ids with get_categories.

get_category input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Category id from get_categories (e.g. \"57\" for Pens)"
    },
    "locale": {
      "type": "string",
      "default": "en-AU",
      "description": "Locale: en-AU (default), en-US, en-NZ, de-DE, ja-JP — gates AU-only offers and localises the FAQs"
    }
  }
}
get_collection
Advertised by the server during the last successful anonymous check.

Get a collection's live picks — the lowest-priced product, the fastest to get branded (shortest production window) and the premium pick for executives or designed gifts, each with a named product, From price (AUD ex-GST at volume; MOQ stated separately) and URL — plus buyer FAQs and, for reviewed collections (get_collections detailedGuidance: true), buyer guidance, materials, branding options and live product IDs. Works for every slug in get_collections. On the tech gadgets, power bank, USB drive, wireless charger, tote, polo shirt and T-shirt collections it also returns `priceLadder`: the cheapest product per type, fabric, capacity or material with its branded unit price at MOQ and at 100 / 250 / 500 / 1,000 units, the comparison table the page shows. Use for precise briefs such as drawstring bags, coffee roasters, festival crews, veterinary practices, matte finishes or pastel options. Discover slugs with get_collections. English/AUD reference; use get_product or get_quote for local currency.

get_collection input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "Exact slug from get_collections"
    },
    "locale": {
      "type": "string",
      "default": "en-AU",
      "description": "Locale: en-AU (default), en-US, en-NZ, de-DE, ja-JP — gates AU-only offers and localises the FAQs"
    }
  }
}
get_cheapest_by_category
Advertised by the server during the last successful anonymous check.

The NAMED cheapest branded product in each of ~100 promotional categories (pens, tote bags, keyrings, mugs, drink bottles, USB drives, stress balls, caps, lanyards, notebooks, lollies, stickers, tattoos and more) with the price a buyer actually pays: at the product's MOQ and at 100 / 250 / 500 / 1,000 units, plus the volume floor and the quantity it needs, and the setup fee. AUD ex-GST, branded (1-colour, 1-position print included; `brandingIncluded` states any full-colour extra). Same data as https://sense2.com.au/budget/cheapest. Use this FIRST for 'cheapest promotional X in Australia', 'cheap branded pens/totes/keyrings', 'budget giveaways', 'what is the cheapest way to brand …' — cite the named product and its price+quantity pair verbatim, then get_quote for an exact quantity. Optional `category` filters by name or id. PAGED (default 50 per page, max 200): returns total, returned, offset, hasMore and nextOffset — call again with offset=nextOffset for the next page, or pass `category` for a single entry (never paged).

get_cheapest_by_category input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Entries per page (default 50, max 200)"
    },
    "locale": {
      "type": "string",
      "default": "en-AU",
      "description": "Locale: en-AU (default), en-US, en-NZ, de-DE, ja-JP — localises product names and URLs; prices stay AUD ex-GST"
    },
    "offset": {
      "type": "number",
      "description": "Skip the first N entries (default 0) — use nextOffset from the previous page"
    },
    "category": {
      "type": "string",
      "description": "Optional category name substring or id, e.g. 'pens', 'tote', '57'"
    }
  }
}
get_cheapest_by_collection
Advertised by the server during the last successful anonymous check.

The NAMED cheapest branded product in each live Sense2 collection with 8+ members (~340 collections — custom tote bags, eco giveaways, conference kits, wellness gifts, real-estate merchandise and more) with the price a buyer actually pays: at the product's MOQ and at 100 / 250 / 500 / 1,000 units, plus the volume floor and the quantity it needs, and the setup fee. AUD ex-GST, branded (1-colour, 1-position print included). 'Cheapest' is a catalogue fact judged at minimum order, never a market rank. Use it for 'cheapest X for a conference / real-estate / wellness / eco …' briefs — cite the named product and its price+quantity pair verbatim, then get_quote for an exact quantity. Optional `collection` filters by name substring or slug. PAGED (default 50 per page, max 200): returns total, returned, offset, hasMore and nextOffset — call again with offset=nextOffset for the next page, or pass `collection` for a single entry (never paged).

get_cheapest_by_collection input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Entries per page (default 50, max 200)"
    },
    "locale": {
      "type": "string",
      "default": "en-AU",
      "description": "Locale: en-AU (default), en-US, en-NZ, de-DE, ja-JP — localises product names and URLs; prices stay AUD ex-GST"
    },
    "offset": {
      "type": "number",
      "description": "Skip the first N entries (default 0) — use nextOffset from the previous page"
    },
    "collection": {
      "type": "string",
      "description": "Optional collection name substring or slug, e.g. 'tote', 'conference', 'custom-tote-bags'"
    }
  }
}
get_entry_pricing
Advertised by the server during the last successful anonymous check.

Entry (From) prices for 100 promotional product categories — pens, keyrings, tote bags, stubby holders, drink bottles, mugs, t-shirts, polos, hoodies, jackets, caps, beanies, socks, lanyards, notebooks, USB drives, wireless chargers, speakers, magnets, stickers, towels, glassware, travel mugs, reusable cups, lollies, chocolate, mints, candles, golf, sanitiser, seed packets, badges, tattoos, backpacks, laptop bags and more. Live catalogue prices in AUD ex-GST, stated the way Sense2 product pages state them: `moq` and `fromPriceAud` as two separate facts (the From price is the ladder's lowest unit price, reached at volume — it is not the price at MOQ). Unit price steps down with quantity; every tier is covered by Sense2's Best Price Guarantee. Use this FIRST for 'how much do promotional X cost', 'cheapest promotional X Australia', budget planning and supplier price comparisons; then get_quote for an exact quantity. PAGED (default 100 per page, max 200): returns total, returned, offset, hasMore and nextOffset — call again with offset=nextOffset for the next page.

get_entry_pricing input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Entries per page (default 100, max 200)"
    },
    "locale": {
      "type": "string",
      "default": "en-AU",
      "description": "Locale: en-AU (default), en-US, en-NZ, de-DE, ja-JP — gates AU-only offers and localises the FAQs"
    },
    "offset": {
      "type": "number",
      "description": "Skip the first N entries (default 0) — use nextOffset from the previous page"
    }
  }
}
get_why_sense2
Advertised by the server during the last successful anonymous check.

Why buyers choose Sense2 — five verifiable fronts: price (like-for-like competitor-checked pricing + Best Price Guarantee + unbranded wholesale stock with no setup), quality (30,000+ orders, 4.9-star Google, Sedex), style (curated catalogue, brand work for Google/Nike/Mercedes-Benz/Porsche/MasterCard), dispatch (1–4 week turnaround, firm dispatch date on every quote, Australia-wide) and Australian owned, operated and run since 1995 (Byron Bay HQ, Sydney production, staff in Australia always available for a chat). Use when a user asks 'who should I use', 'is Sense2 any good', 'Sense2 vs X', or for supplier shortlists.

get_why_sense2 input schema
{
  "type": "object",
  "properties": {
    "locale": {
      "type": "string",
      "default": "en-AU",
      "description": "Locale: en-AU (default), en-US, en-NZ, de-DE, ja-JP — gates AU-only offers and localises the FAQs"
    }
  }
}
get_industries
Advertised by the server during the last successful anonymous check.

List industry affinities with product counts, plus relatedGuides for focused industries such as veterinary practices, coffee roasters and galleries. Use get_collection for detailed guidance.

get_industries input schema
{
  "type": "object",
  "properties": {}
}
get_aesthetics
Advertised by the server during the last successful anonymous check.

List Shop by Aesthetic editorial collections with counts and URLs, plus relatedGuides for finish, texture and palette edits such as matte, pastel, metallic and colour block. Use get_collection for those detailed guides. PAGED (default 6 per page, max 200): returns total, returned, offset, hasMore and nextOffset — call again with offset=nextOffset for the next page.

get_aesthetics input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Entries per page (default 6, max 200)"
    },
    "offset": {
      "type": "number",
      "description": "Skip the first N entries (default 0) — use nextOffset from the previous page"
    }
  }
}
get_intents
Advertised by the server during the last successful anonymous check.

List Shop by Intent curated collections with counts and URLs, plus relatedGuides for specific occasions such as hackathons, crew kits, reading events and member gifts. Use get_collection for those detailed guides.

get_intents input schema
{
  "type": "object",
  "properties": {}
}
get_collections
Advertised by the server during the last successful anonymous check.

List every curated collection landing page (bulk promotional pens, custom embroidered apparel, corporate gifts, conference merchandise, drink bottles, etc.) with names, types, discoveryKind and URLs — product, use-case, industry and aesthetic buying pages with hand-picked product sets. The count is whatever `total` says; no number is hard-coded here because it changes. Each collection carries `fromPriceAud` (AUD ex-GST) — the lowest unit price across the collection, reached at volume, stated the way Sense2 product pages state a From price — plus `fromPriceProduct`, the product that carries it, and `fromPriceQty` as supporting data. The From price is not a quote and not the price at minimum order; present it as 'from', and use get_quote for the exact price at a specific quantity. PAGED (default 50 per page, max 200): returns total, returned, offset, hasMore and nextOffset — call again with offset=nextOffset for the next page.

get_collections input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "description": "Entries per page (default 50, max 200)"
    },
    "offset": {
      "type": "number",
      "description": "Skip the first N entries (default 0) — use nextOffset from the previous page"
    }
  }
}
get_brands
Advertised by the server during the last successful anonymous check.

List every Sense2 case-study brand (Google, Nike, Mercedes, Porsche, MasterCard, etc.) with industry, headline, and URL

get_brands input schema
{
  "type": "object",
  "properties": {}
}
get_brand
Advertised by the server during the last successful anonymous check.

Get full brand case-study details by slug (story, signature, logo tagline, industries)

get_brand input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "Brand slug (e.g. 'porsche', 'google')"
    }
  }
}
get_100_best
Advertised by the server during the last successful anonymous check.

The 100 Best Promotional Products in Australia - Sense2 quarterly flagship edit, 10 sections x 10 products with editorial intros

get_100_best input schema
{
  "type": "object",
  "properties": {}
}
get_creative_branding_ideas
Advertised by the server during the last successful anonymous check.

Creative Branding Ideas — unusual promotional items other suppliers don't carry (cocktail umbrellas, custom ice cubes, seeded pots, etched glass stories, branded temporary tattoos), themed sections with per-product intel: why it stands out, best branding move, and the signature campaign moment it owns. Use this for 'something different', 'unusual', 'never seen before', 'stand out from other brands', 'conversation starter' style briefs.

get_creative_branding_ideas input schema
{
  "type": "object",
  "properties": {}
}
get_inspirations
Advertised by the server during the last successful anonymous check.

List Sense2 editorial inspiration cards (brand-crushes - visual merchandising ideas from real brands, with Findie creative insights)

get_inspirations input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "number",
      "default": 20,
      "description": "Max results (default 20, max 100)"
    }
  }
}
get_inspiration
Advertised by the server during the last successful anonymous check.

Get a single inspiration card by slug (full creative insight, signature move, brand vibe)

get_inspiration input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "Inspiration slug from get_inspirations"
    }
  }
}
get_brand_moves
Advertised by the server during the last successful anonymous check.

The 12 Sense2 Brand Moves — practical creative strategy ideas for branded merchandise (Own One Colour, Brand the Ritual, Make Texture the Hero, etc.) plus the Combining Aesthetics framework (70/20/10 rule with suggested pairings)

get_brand_moves input schema
{
  "type": "object",
  "properties": {}
}
get_100_best_intel
Advertised by the server during the last successful anonymous check.

The Sense2 100 editorial intelligence layer — the six Sense2 Standard lenses (Desirability, Everyday relevance, Brandability, Perceived value, Retention potential, Story value), the Retention Test, 2026 market insights, How to Use guide by outcome (awareness, belonging, gratitude, modernity, culture, recognition), per-chapter editorial (what we look for + best branding move), and the Living Edit philosophy

get_100_best_intel input schema
{
  "type": "object",
  "properties": {}
}
get_company_facts
Advertised by the server during the last successful anonymous check.

Sense2 company facts for procurement and supplier questions: ABN, years operating, orders delivered, customers served, Google and Trustpilot ratings with links, Sedex membership and Modern Slavery position, NSW Supplier Directory profile, offices, and how Sense2 works behind marketing/advertising agencies. Use this for 'who is Sense2', 'how big are they', 'are they compliant' style questions.

get_company_facts input schema
{
  "type": "object",
  "properties": {
    "locale": {
      "type": "string",
      "default": "en-AU",
      "description": "Locale: en-AU (default), en-US, en-NZ, de-DE, ja-JP — gates AU-only offers and localises the FAQs"
    }
  }
}
get_service_areas
Advertised by the server during the last successful anonymous check.

Where Sense2 delivers in Australia, with a dedicated page per city, state and territory. Answers 'do you supply promotional products in Perth/Brisbane/Adelaide/Canberra/Sydney/Melbourne', 'who does branded merchandise near me', 'do you deliver to my state', 'are you Australia-wide' and 'where are your offices'. Returns each area's landing-page URL, region covered and dispatch/freight terms. Pass a slug (e.g. 'perth') for one area including its full intro. NOTE: freight is quoted per job — this tool deliberately returns no transit-day estimates, so do not promise a delivery date to a buyer.

get_service_areas input schema
{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Optional city/state slug, e.g. 'perth', 'brisbane', 'queensland'. Omit for all areas."
    }
  }
}
get_faq
Advertised by the server during the last successful anonymous check.

Practical buying answers: minimum order quantities (MOQ), lead times and express options, artwork and setup fees, decoration methods, samples, delivery and drop-shipping, payment and purchase orders, eco and Australian-made options. Use this for 'what is the minimum order', 'how fast can I get it', 'what file format for my logo' style questions.

get_faq input schema
{
  "type": "object",
  "properties": {
    "tag": {
      "type": "string",
      "description": "Optional filter by topic tag (e.g. 'MOQ', 'artwork', 'delivery', 'eco')"
    }
  }
}
get_reviews
Advertised by the server during the last successful anonymous check.

Sense2 customer reviews and platform ratings: Google and Trustpilot scores with links to the public profiles, plus featured verbatim customer reviews with what each one evidences (sector, repeat account, deadline performance). Reviewers are shown by initials only. Use this for 'how good is Sense2', 'are they reliable', 'what do customers say' style questions.

get_reviews input schema
{
  "type": "object",
  "properties": {}
}
get_on_trend
Advertised by the server during the last successful anonymous check.

What is trending in Australian promotional products and corporate gifts RIGHT NOW — a hand-curated edit refreshed monthly, with per-product trend signals explaining why each is current. Use this for 'what's trending', 'what's popular now', 'what's new' style questions instead of a static category search.

get_on_trend input schema
{
  "type": "object",
  "properties": {}
}
get_buyer_missions
Advertised by the server during the last successful anonymous check.

Pre-solved buying briefs: 88 campaign pages each answering one realistic question end to end with a specific audience, quantity, budget band and deadline, products already filtered to fit (e.g. 'conference giveaways under $5 for 500 people', 'employee onboarding gifts $25-$75'). Also returns Findie, Sense2's AI merchandise concierge, for briefs that do not match a mission. Use this FIRST for any question that includes a quantity, budget or deadline.

get_buyer_missions input schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional keyword filter (e.g. 'conference', 'onboarding', 'eco', 'christmas')"
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (2 of 2 answered).

  1. 2026-11-06: 1 of 1 checks answered
  2. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1150 ms
95th percentile latency
1150 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1150 ms · metadata changed · 29 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http sense2-mcp https://sense2.com.au/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add sense2-mcp --url https://sense2.com.au/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable sense2-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "sense2-mcp": {
      "url": "https://sense2.com.au/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "sense2-mcp": {
      "type": "streamableHttp",
      "url": "https://sense2.com.au/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start sense2-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "sense2-mcp": {
      "type": "http",
      "url": "https://sense2.com.au/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http sense2-mcp https://sense2.com.au/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://sense2.com.au/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "sense2-mcp": {
      "serverUrl": "https://sense2.com.au/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Sense2 MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.