The Dose Guy
Server Details
Read-only MCP connector for The Dose Guy source-linked peptide and compound database. Search 260+ compounds, compare vendors and prices, inspect ranking evidence, and retrieve canonical page links. No authentication required.
- Status
- Healthy
- Uptime
- 100.0% over 61 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: compound search vs. compound detail, vendor listing, and vendor offers for a specific compound. The boundaries are explicit in the descriptions, so an agent can reliably select the right tool.
All names are snake_case and mostly follow a verb_noun pattern (get_compound, list_vendors, search_compounds). best_vendors_for is a minor deviation in form and ordering, but remains understandable.
Four tools are well-scoped for a focused compound/vendor directory: search, detail lookup, vendor listing, and best offers per compound. Each tool earns its place without redundancy.
The surface covers the core read-only workflow of searching compounds, inspecting compound details, listing vendors, and finding best offers. A dedicated vendor-detail lookup or vendor search could be useful, but the vendor list already returns review URLs and key vendor attributes.
Available Tools
4 toolsbest_vendors_forBest vendors for a compoundARead-onlyIdempotentInspect
Live offers for one published compound, one best offer per vendor, sorted by price per mg ascending (blends and unpriceable products last). Prices are integer minor units plus display strings.
| Name | Required | Description | Default |
|---|---|---|---|
| compoundSlug | Yes | Compound slug, e.g. "retatrutide" |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| offers | Yes | |
| compound | Yes | |
| compoundUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds real value beyond them: deduplication to one best offer per vendor, sort order, the explicit tie-break that blends and unpriceable products sort last, and the price encoding as integer minor units plus display strings.
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, no waste, and the most decision-relevant facts (scope, dedup rule, sort order) are front-loaded before the price-format detail. Every clause carries information.
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 an output schema present and a single fully documented parameter, the description need not explain return fields. It covers ordering, dedup, and edge cases; the only gap is what happens for an unknown or unpublished slug, which is only hinted at by 'published'.
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% with an inline example ('retatrutide'), so the baseline is 3. The description nudges meaning by specifying the compound must be 'published', a constraint the schema does not express, which slightly raises the score.
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 (live offers for one published compound) and the exact shape of the result: one best offer per vendor, sorted by price per mg ascending. That level of specificity distinguishes it cleanly from get_compound, list_vendors, and search_compounds, which do not aggregate offers.
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 by 'for one published compound' – the agent infers it needs a compound slug and wants vendor pricing – but the description never says when to prefer this over list_vendors, nor any prerequisites or exclusions. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_compoundGet compoundARead-onlyIdempotentInspect
Full record for one published compound by slug: aliases, category, evidence tier, routes, typical protocol, half-life, status line, canonical URL.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Compound slug, e.g. "retatrutide" |
Output Schema
| Name | Required | Description |
|---|---|---|
| compound | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the safety profile is covered. The word 'published' is the only added behavioral signal, hinting that unpublished slugs may not resolve, but there is no mention of error behavior or missing records.
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 front-loaded sentence with no filler; the resource and scope come first and the field list follows compactly.
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 one-parameter read tool with full annotations and an output schema, the description is sufficient; the return-field enumeration is somewhat redundant given the output schema, leaving only error/not-found behavior 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% and the single slug parameter is documented with an example ('retatrutide'). The description adds only the phrase 'by slug', matching rather than extending the schema, so the 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 verb and resource ('Full record for one published compound by slug') and enumerates the contents. It implicitly separates itself from search_compounds by being a single-record lookup, but never names the sibling 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 it should call this when it has a slug and wants a single compound's details. There is no explicit statement of when to prefer this over search_compounds or what to do when the slug is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_vendorsList vendorsBRead-onlyIdempotentInspect
Every tracked vendor that is currently alive: DOSE SCORE (when reviewed), liveness status, last-verified date, trust chips, canonical review URL.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| vendors | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description does add one meaningful behavioral fact — that only currently alive vendors are returned, implying dead vendors are excluded — but says nothing about ordering, pagination, or volume, which matters for a list-everything tool.
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 compact sentence with the scope front-loaded and no filler. Some of the enumerated field names ('trust chips', 'DOSE SCORE') are jargon-y, but they are brief and informative rather than wasted.
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 an output schema present, the description needn't explain return values, and annotations cover the safety profile. What's missing is the routing context: when this beats best_vendors_for and whether the result set is bounded — the main things an agent needs beyond the schema for a zero-param list 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?
The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to compensate for. The description responsibly refrains from inventing filter semantics that don't exist.
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 states the resource and scope precisely — every tracked vendor that is currently alive — which lets an agent infer a full enumeration. It does not, however, distinguish itself from the sibling best_vendors_for, which is also a vendor-listing tool, leaving the agent to guess which one to pick.
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?
There is no when-to-use or when-not-to-use guidance, and no mention of the obvious alternative, best_vendors_for. The agent is left to infer that this is the unfiltered dump and the sibling is the ranked/filtered view.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_compoundsSearch compoundsARead-onlyIdempotentInspect
Case-insensitive search over published compound names and aliases (brand names, research codes, shorthand like "reta"). Returns the top 10 matches.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Name or alias fragment, e.g. "reta" or "Mounjaro" |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior. The description adds useful behavioral context beyond that: matching is case-insensitive and results are capped at the top 10 matches, which helps set expectations for result volume and matching semantics.
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 tightly written sentences with zero wasted words. The search scope and matching behavior are front-loaded, and the result limit is stated immediately after.
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?
An output schema exists, so the description need not explain return values, and the annotations carry the safety profile. For a one-parameter search tool, the description is nearly complete, though it could add a brief note on when to use this versus the exact-lookup sibling.
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 query parameter is well documented in the schema with examples. The description reinforces that fragments and aliases are accepted but does not add syntax or matching rules beyond what the schema already provides, so the baseline 3 is appropriate.
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 (compounds), and clarifies the searchable fields: published names and aliases including brand names, research codes, and shorthand. It does not explicitly differentiate this fuzzy search from the sibling get_compound lookup, so it falls short of a 5.
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 implies usage by explaining that this searches names and aliases, but it never states when to choose it over get_compound or how it differs from an exact lookup. No exclusions or alternative routing are provided.
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.
4 tool updates
- First observed
best_vendors_for - First observed
get_compound - First observed
list_vendors - First observed
search_compounds
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs115 npm58 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1623 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.