Koskamo

Liquid Cooling MCP

An MCP server that provides access to a directory of 154 liquid-cooling vendors for 30-150 kW AI data centers, allowing agents to find vendors by country, region, or specific facts.

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.

Liquid Cooling MCP logo, by Liquid CoolingCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by Liquid Cooling
MCP endpoint (Streamable HTTP)
https://liquidcooling.fyi/mcp
Vendor documentation

What its tools do

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

8 of 8 have a description · 8 of 8 declare behavior hints · 4 of 4 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

  • Find liquid-cooling vendors for 30-150 kW AI data centers
  • List vendors by country such as United States or United Kingdom
  • List vendors by region such as CA or TX in the United States

Source and maintenance

Community listingRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
liquidcooling 1
MCP protocol negotiated in check
2025-06-18
Tools
8 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Liquid Cooling lists vendors. Call list_places and list_categories first to learn the place and category slugs. Then call search_listings, and get_listing for one record. Every result has meta.attribution and meta.sources. Show the credit line, and keep the license of each source. A vendor is a record, not an endorsement. list_courses and get_course read the published academy courses. Exam questions and answers are never returned. With a service token in the Authorization header, tools/list also offers the write tools that the token's scopes allow.

Tools

8 advertised

search_listings
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search published vendors by text, place and category.

search_listings input schema
{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "Search text, with at least one letter or digit. Matches name, categories, attributes, description and place. Typos fall back to close matches."
    },
    "city": {
      "type": "string",
      "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
      "maxLength": 100,
      "minLength": 1,
      "description": "City slug, from /places."
    },
    "sort": {
      "enum": [
        "relevance",
        "name",
        "recent"
      ],
      "type": "string",
      "description": "`relevance` needs `q` and is the default with it. `name` is the default without `q`. `recent` is newest first."
    },
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "description": "Items per page."
    },
    "cursor": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "`page.nextCursor` from the previous response. Opaque. Send the same filters and `limit`."
    },
    "region": {
      "type": "string",
      "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
      "maxLength": 100,
      "minLength": 1,
      "description": "Region slug, from /places."
    },
    "country": {
      "type": "string",
      "pattern": "^[A-Za-z]{2}$",
      "description": "ISO 3166-1 alpha-2 country code, any case. A country the directory does not cover, as listed in /places, gives 400."
    },
    "category": {
      "type": "string",
      "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
      "maxLength": 100,
      "minLength": 1,
      "description": "Category slug, from /categories. A parent slug also matches its children."
    }
  },
  "additionalProperties": false
}
search_listings annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_listing
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get one published vendor by its slug.

get_listing input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
      "maxLength": 100,
      "minLength": 1,
      "description": "The listing slug."
    }
  },
  "additionalProperties": false
}
get_listing annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_places
Advertised by the server during the last successful anonymous check.
Advertised read-only

List countries, regions and cities that have vendors.

list_places input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_places annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_categories
Advertised by the server during the last successful anonymous check.
Advertised read-only

List categories with their vendor counts.

list_categories input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_categories annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_stats
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get the number of published vendors, places and categories, and when the data last changed.

get_stats input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
get_stats annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_sources
Advertised by the server during the last successful anonymous check.
Advertised read-only

List where the vendor data comes from, with the license and refresh of each source.

list_sources input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_sources annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_courses
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the published academy courses with their level, length, pass mark and certificate validity.

list_courses input schema
{
  "type": "object",
  "properties": {
    "level": {
      "enum": [
        "foundations",
        "practitioner",
        "specialist"
      ],
      "type": "string",
      "description": "Only courses of this level."
    },
    "limit": {
      "type": "integer",
      "default": 50,
      "maximum": 50,
      "minimum": 1,
      "description": "Most courses to return."
    }
  },
  "additionalProperties": false
}
list_courses annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_course
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get one published academy course by its slug, with its objectives, lessons and FAQ. Exam questions and answers are never returned.

get_course input schema
{
  "type": "object",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
      "maxLength": 100,
      "minLength": 1,
      "description": "The course slug."
    }
  },
  "additionalProperties": false
}
get_course annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

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 (1 of 1 answered).

  1. 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
5943 ms
95th percentile latency
5943 ms

Maintenance history

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

  • · probe · passed · 5943 ms · metadata changed · 8 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 liquid-cooling-mcp https://liquidcooling.fyi/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 liquid-cooling-mcp --url https://liquidcooling.fyi/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable liquid-cooling-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "liquid-cooling-mcp": {
      "url": "https://liquidcooling.fyi/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "liquid-cooling-mcp": {
      "type": "streamableHttp",
      "url": "https://liquidcooling.fyi/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start liquid-cooling-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "liquid-cooling-mcp": {
      "type": "http",
      "url": "https://liquidcooling.fyi/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 liquid-cooling-mcp https://liquidcooling.fyi/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://liquidcooling.fyi/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": {
    "liquid-cooling-mcp": {
      "serverUrl": "https://liquidcooling.fyi/mcp"
    }
  }
}

Let your agent find its tools

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