Helsama
Server Details
Hemp from Gotland: product catalog, knowledge base and open lab data per batch.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 8 tools
The get/search pairs for articles and products are clearly separated, and facts/FAQ/policies/labdata each target distinct content. However, get_facts, get_faq, and get_store_policies overlap around origin, legality, shipping, and returns, so an agent may occasionally hesitate.
All tools use snake_case with predictable get_/search_ prefixes and noun objects; get_faq/get_labdata are minor spelling/compound quirks but do not break the pattern.
Eight tools is well within the ideal range and each maps to a distinct public information need: article/product lookup and search, facts, FAQ, lab data, and store policies.
The read-only public surface covers product and article discovery/detail plus key informational resources, which is strong for this domain. Minor gaps remain: there is no explicit list-articles operation (only search), and locale/translation support is exposed only on search_articles, not on get_article/get_product.
Available Tools
8 toolsget_articleARead-onlyInspect
Read one knowledge article or blog post as clean markdown, by slug. Cite as https://helsama.se/kunskap// (or /blog//).
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| type | No | kunskap (default) or blog | |
| locale | No | sv (default), en, de, et, da, fi |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds genuinely new behavioral information: the return format ('clean markdown') and the required citation URL pattern, which matters because there is no output schema. It does not mention not-found behavior or locale fallback, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the core action front-loaded, followed by the citation pattern that an agent genuinely needs to reproduce. No filler, no restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter read tool with no output schema, the description covers the action, the lookup key, the return format, and the citation contract. Remaining gaps (locale behavior, missing-slug handling) are minor for a read-only fetch, and annotations already carry the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, so slug and locale are already documented in the schema and the description only needs to add value. It clarifies the slug's role by mapping it into the /kunskap/<slug>/ vs /blog/<slug>/ URL paths, which effectively explains the 'type' parameter, but says nothing about the locale parameter or its default/fallback semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Read'), a precise resource ('one knowledge article or blog post'), and the lookup key ('by slug'). It also implicitly distinguishes itself from the sibling search_articles by emphasizing single-item retrieval by slug, so an agent can pick correctly without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by slug' signals the prerequisite (a slug must already be known, presumably from search_articles), which is clear usage context. It stops short of explicitly naming search_articles as the way to obtain a slug or stating what to do when the slug is unknown, so it lacks a full when/when-not routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_factsARead-onlyInspect
Neutral, citable fact sheet about Helsama and Nordic hemp (company, products, origin, regulation) as markdown.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety and scope are covered structurally. The description adds genuinely new context: the response is neutral-toned, citable, and formatted as markdown. It stops short of describing granularity or whether the sheet is static or regenerated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the deliverable, then its scope, then the format. No filler and nothing redundant with the structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and full annotation coverage, the description only needs to convey what comes back and in what form, which it does. Minor gap: no sense of how comprehensive or current the fact sheet is relative to the article/FAQ siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. The description correctly implies a no-argument, fixed-scope retrieval.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete deliverable (a fact sheet) with named subject matter (Helsama, Nordic hemp: company, products, origin, regulation) plus output format (markdown). The topic enumeration gives real signal, though it never explicitly distinguishes itself from get_faq or get_article, which likely cover overlapping company content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to pick this over get_faq, get_article, or get_product; the topic list only weakly implies coverage. 'Citable' hints at a sourcing use case but no explicit condition or exclusion is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_faqARead-onlyInspect
Helsama's official FAQ (ordering, shipping, returns, quality, legality, origin) as question/answer pairs.
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | sv (default), en, de |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds modest value by disclosing the content is a static official Q/A corpus, but says nothing about whether the content is cached, versioned, or how large the result is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence that front-loads the resource and parenthetical topic list. No filler, though the parenthetical topic enumeration is dense and slightly list-heavy for the amount of actual guidance delivered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-param read tool with full schema coverage and annotations present, the definition is nearly sufficient. The only real gap is not flagging that results are locale-dependent, which matters for an agent answering a multilingual user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single optional `locale` param already documents allowed values (sv default, en, de) in the schema. The description doesn't mention that content is localized or what happens on unsupported locales, so it adds nothing beyond the schema — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Helsama's official FAQ) and enumerates the topics it covers (ordering, shipping, returns, quality, legality, origin), plus the return shape (question/answer pairs). It implicitly separates itself from article/search siblings by being the curated FAQ set, but never names a sibling to draw the line explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the right tool for general policy/ordering questions rather than `get_article` or `get_store_policies`, but the description never states when to prefer it over those siblings or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_labdataARead-onlyInspect
Helsama's open HPLC-UV cannabinoid dataset (CC BY 4.0): CBDA content of identical hemp seed grown on Gotland vs Italy (8.83 % vs 6.64 %). Returns the CSV plus the DOI to cite.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the description's job is to add context — and it does: it discloses the license (CC BY 4.0, implying attribution obligations) and that the response includes a DOI to cite. It does not mention payload size or format beyond 'CSV', which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the dataset identity, then gives the key figures, then the return payload and citation requirement. No filler and no redundancy with the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description still tells the agent exactly what comes back (CSV + DOI) and under what license, which is everything needed to call and correctly use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case; there is nothing to disambiguate. The description also makes clear the call is parameterless in effect by describing a fixed, single dataset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Helsama's open HPLC-UV cannabinoid dataset) and a specific action (returns the CSV plus DOI), plus the concrete content it covers (CBDA in Gotland vs Italy hemp seed). Nothing among the get_article/get_facts/get_product siblings overlaps with this dataset, so an agent can route to it unambiguously.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The dataset scope implicitly signals when to call it (questions about this specific CBDA comparison), but there is no explicit statement of when to use it versus alternatives or when not to. For a zero-parameter tool with a narrow, unique payload the implied usage is largely adequate, but no routing guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productARead-onlyInspect
Full public details for one product by handle (the slug in https://helsama.se/produkt//), including description, EAN, price, stock and images.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds that only public details are returned and lists the included fields, but it does not disclose not-found behavior or whether unpublished products are excluded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with no wasted wording. The core operation and scope appear before the field list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with no output schema, the description provides enough context: the identifier format and the fields returned. Minor gaps remain around not-found behavior and pagination/image limits, but they are not essential for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the meaning of the single parameter. It does this well by defining 'handle' as the slug in the product URL, which is more useful than the bare string schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('get_product' / 'Full public details for one product') and clearly scopes it to a single product by handle. It distinguishes the operation from sibling list/search tools like search_products by emphasizing one-product lookup and enumerating returned fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this to fetch one product when you have its handle. The description defines the handle as the URL slug, which is helpful, but it does not explicitly say when to use this versus search_products or get_article.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_store_policiesARead-onlyInspect
Shipping countries and prices, delivery times, returns and customer-service contact for orders from helsama.se.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds one useful piece of context the annotations do not: the policies are specifically for orders from helsama.se. It says nothing about freshness of the policies or whether shipping data is destination-specific.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with no filler, and the scoping constraint (helsama.se orders) is placed at the end after the content list. It reads as a noun-phrase content inventory rather than a front-loaded action statement, which is the only structural weakness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema, and annotations covering the safety profile, the description carries its share: it enumerates the policy categories an agent can expect back. Only the return shape (single object vs. sections) and currency/locale specifics are left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies a single fixed-scope lookup with no filtering options, and nothing in the schema needs further explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete content set – shipping countries/prices, delivery times, returns, and customer-service contact – scoped to helsama.se orders, which distinguishes it from the article/product/facts/faq siblings. It implies retrieval rather than stating a verb, but the resource and scope are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this tool answers shipping, delivery, returns, and contact questions. No explicit when-to-use framing, no exclusions, and no sibling alternatives are named (e.g. versus get_faq, which could plausibly cover similar questions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_articlesARead-onlyInspect
Search Helsama's knowledge base and blog about hemp, CBD, CBDA, Swedish/EU hemp regulation, hemp seed nutrition and Gotland cultivation. Returns slug, title, summary, category and URL. Swedish by default; pass locale (en, de, et, da, fi) for translations.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results, default 10 | |
| query | Yes | ||
| locale | No | sv (default), en, de, et, da, fi |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly=true, destructive=false and a closed world, so safety is covered. The description adds genuinely useful context beyond that: the exact return fields (slug, title, summary, category, URL) and the locale fallback behavior, which an agent would otherwise have to discover by calling it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The subject matter and the locale default are both front-loaded, and every clause carries information an agent would otherwise lack.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields, and it documents the locale default and options for all three parameters. It stops short of describing matching behavior (keyword vs semantic) or pagination, which would matter for a search tool with a limit parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the required 'query' parameter has no schema description at all, so the description is the only hint that queries should be about hemp, CBD, regulation, nutrition or Gotland cultivation. The locale guidance repeats the schema's own enum list, and 'limit' is left entirely to the schema, so value added over structured fields is modest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb ('Search') against a clearly named resource (Helsama's knowledge base and blog) and enumerates the topical domain, so an agent knows exactly what corpus is queried. It does not explicitly name sibling tools like search_products or get_article to draw the boundary, so differentiation is inferred from the resource rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is the locale default ('Swedish by default; pass locale for translations'), which is parameter-level rather than tool-selection guidance. Nothing says when to reach for this versus get_article, get_faq, get_facts, or search_products, leaving the choice to inference from names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsARead-onlyInspect
Search Helsama's product catalog (hemp seeds, Premium CBD hemp powder, hemp skincare). Returns name, handle, price in SEK, stock and product URL. Empty query lists everything.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Free-text search in product name/description (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the exact fields returned (name, handle, price in SEK, stock, URL) and the empty-query fallback. It omits result limits or pagination behavior, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: purpose and domain first, then return shape, then the empty-query edge case. No filler and the most decision-relevant facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one optional param and no output schema, the description does the right work by enumerating returned fields and the empty-query case. It is nearly complete; only result-set size/pagination behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter is already documented as free-text over name/description. The description adds meaning the schema does not: that omitting the query returns the full catalog, which is real semantic value for the one optional parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (Helsama's product catalog) with concrete domain scope (hemp seeds, CBD powder, skincare). An agent can tell it's a catalog search, though it does not explicitly distinguish itself from the sibling get_product for single-item lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Empty query lists everything' gives one concrete usage rule for the browse-all case. However, there is no guidance on when to use this versus get_product or the article/fact siblings, leaving the agent to infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Added
get_faq - Added
get_store_policies
6 tool updates
- First observed
get_article - First observed
get_facts - First observed
get_labdata - First observed
get_product - First observed
search_articles - First observed
search_products
Related MCP Connectors
Public directory of UK medical cannabis clinics, pharmacies, products and strains.
Public read-only catalog and knowledge of the Good Nature Vibe shop. No login.
Realtime CBD product catalog, prices, stock and FAQ from CalmActiva.
GRADE-rated clinical evidence on cannabis as medicine (DE/EN). Search and cite studies.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceSelf-hosted life OS (habits, SMART goals, Kanban tasks, finances, notes). A stdio MCP server that works with your real data through a token-protected API, with no database access and destructive tools marked.114MIT
- AlicenseNot gradedqualityDmaintenanceA local-first MCP server for tracking indoor horticulture metrics, enabling cold-stratification timelines, ericaceous soil pH validation, and transplant-shock recovery through a LangGraph agent with a local LLM.MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to answer peptide questions from PepBank study summaries with cited sources, and to look up catalog products with variants, prices, stock and per-lot lab reports (COAs). Also covers store policies and generates cart links for checkout on curo.you.7MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search products, inspect ingredients and nutrition facts, manage the shopping cart, and review order history on Vilgain.cz.3 npm3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.