Koskamo

Verateca MCP

A read-only MCP server providing access to Verateca's independent register of dietary supplements. It allows AI agents to search products, retrieve detailed composition and pricing data, check ingredient stacks against country-specific upper limits, and compare products. The server returns JSON responses with source citations, verification levels, and disclaimers, supporting fact-checking and selection tasks without requiring user sign-in.

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.

Verateca MCP logo, by VeratecaCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Verateca
MCP endpoint (Streamable HTTP)
https://verateca.com/mcp
Vendor documentation

What you can do with it

  • Search for dietary supplements by name or ingredient
  • Retrieve product composition, price, and verification details
  • Check if a stack of supplements exceeds country-specific limits
  • Compare multiple products to find suitable options

Source and maintenance

Community listingRegistry 0.1.0

Protocol and capabilities

Server
verateca 0.1.0
MCP protocol
2025-06-18
Tools
6 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Tools

6 advertised

search_products — Search products
Advertised by the server during the last successful anonymous check.
Advertised read-only

Searches the Verateca register of dietary supplements by product name, brand, ingredient or barcode. Returns up to 10 published products with id, brand, form, page address, lowest price per day where prices are published, number of offers and the date the record was checked. Results are ordered by match, never by payment.

search_products input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 5,
      "maximum": 10,
      "minimum": 1,
      "description": "Number of results, 1–10."
    },
    "query": {
      "type": "string",
      "description": "Product name, brand, ingredient or barcode (UPC/EAN)."
    },
    "country": {
      "type": "string",
      "default": "US",
      "description": "Two-letter country code (ISO 3166-1 alpha-2) of the person. Limits of this country come first. Default US."
    }
  },
  "additionalProperties": false
}
search_products annotations
{
  "title": "Search products",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_product — Get product
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns one published product record: composition as the label states it, daily amounts, the applicable upper limit of the country for each ingredient with its share, limits of other countries, the status in the country, prices per day where published, and the dates of each part.

get_product input schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Verateca product id, e.g. \"US:302778\", as returned by search_products."
    },
    "url": {
      "type": "string",
      "description": "Verateca product page address, as an alternative to id."
    },
    "country": {
      "type": "string",
      "description": "Two-letter country for limits, status and published local prices. Defaults to the product URL country when supplied, otherwise the label market. Viewing a record does not confirm local sale or delivery."
    }
  },
  "additionalProperties": false
}
get_product annotations
{
  "title": "Get product",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_ingredient — Get ingredient
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns one substance of the register: its forms with the share of the element where known, the upper limit of the country first, then the limits of other countries with type, source and the date checked, reference sources, and the number of published products that contain it.

get_ingredient input schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Substance id, e.g. \"magnesium\", \"vit_d\"."
    },
    "name": {
      "type": "string",
      "description": "Substance name, e.g. \"Vitamin D\", as an alternative to id."
    },
    "country": {
      "type": "string",
      "default": "US",
      "description": "Two-letter country code (ISO 3166-1 alpha-2) of the person. Limits of this country come first. Default US."
    }
  },
  "additionalProperties": false
}
get_ingredient annotations
{
  "title": "Get ingredient",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_stack — Check a set of supplements
Advertised by the server during the last successful anonymous check.
Advertised read-only

Adds up each ingredient across several products taken together (up to 12) and compares each daily total with the adult upper limit of the country, with the same rules engine as the Verateca site. For every ingredient: total per day, applicable limit, share of the limit, status ("within the upper limit", "over the upper limit", "no upper limit set" or "not compared"), the products that contribute, and duplicates across products. Limits of other countries follow. Interactions with medicines are not checked.

check_stack input schema
{
  "type": "object",
  "required": [
    "items"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "product_id"
        ],
        "properties": {
          "product_id": {
            "type": "string",
            "description": "Verateca product id, e.g. \"US:302778\", as returned by search_products."
          },
          "servings_per_day": {
            "type": "number",
            "maximum": 20,
            "description": "Servings a day the person takes. Default: the label dose.",
            "exclusiveMinimum": 0
          }
        },
        "additionalProperties": false
      },
      "maxItems": 12,
      "minItems": 1,
      "description": "Products taken together."
    },
    "country": {
      "type": "string",
      "default": "US",
      "description": "Two-letter country code (ISO 3166-1 alpha-2) of the person. Limits of this country come first. Default US."
    }
  },
  "additionalProperties": false
}
check_stack annotations
{
  "title": "Check a set of supplements",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
compare_products — Compare products
Advertised by the server during the last successful anonymous check.
Advertised read-only

Puts 2 to 6 published products side by side: daily dose, price per day where published, and for each ingredient the daily amount and its share of the applicable upper limit of the country.

compare_products input schema
{
  "type": "object",
  "required": [
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 6,
      "minItems": 2,
      "description": "Product ids, e.g. [\"US:302778\", \"US:217710\"]."
    },
    "country": {
      "type": "string",
      "default": "US",
      "description": "Two-letter country code (ISO 3166-1 alpha-2) of the person. Limits of this country come first. Default US."
    }
  },
  "additionalProperties": false
}
compare_products annotations
{
  "title": "Compare products",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_selection_link — Get the order page address
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the address of the Verateca order page for one of its three paid services (quick, full, review), with the price and currency the site shows for the country and a one-line description. The tool takes no payment and creates no order; the order page asks its own questions and takes payment there.

get_selection_link input schema
{
  "type": "object",
  "required": [
    "service"
  ],
  "properties": {
    "goals": {
      "type": "array",
      "items": {
        "enum": [
          "stress",
          "energy",
          "digestion",
          "sleep",
          "immunity",
          "bones",
          "skin",
          "sport",
          "eyes"
        ],
        "type": "string"
      },
      "maxItems": 3,
      "description": "Optional goals to preselect on the order page (quick: 1, full: up to 3; ignored for review). They travel sealed, not in plain words."
    },
    "country": {
      "type": "string",
      "default": "US",
      "description": "Two-letter country code (ISO 3166-1 alpha-2) of the person. Limits of this country come first. Default US."
    },
    "service": {
      "enum": [
        "quick",
        "full",
        "review"
      ],
      "type": "string",
      "description": "quick: up to three products for one goal; full: one set for up to three goals; review: a written review by a Verateca specialist."
    }
  },
  "additionalProperties": false
}
get_selection_link annotations
{
  "title": "Get the order page address",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

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
762 ms
95th percentile latency
762 ms

Maintenance history

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

  • · probe · passed · 762 ms · metadata changed · 6 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 verateca-mcp https://verateca.com/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 verateca-mcp --url https://verateca.com/mcp

Cursor

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

Cline

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

VS Code

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

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "verateca-mcp": {
      "url": "https://verateca.com/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": {
    "verateca-mcp": {
      "serverUrl": "https://verateca.com/mcp"
    }
  }
}

Let your agent find its tools

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