DosePlot Agent API
PK serum simulation, reconstitution math and compound data for agents. Paid tools $0.01 via x402.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"agent-api": {
"url": "https://api.doseplot.com/mcp"
}
}
}Remote-Endpunkte
https://api.doseplot.com/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (5)
🟢list_compounds
List every published compound with its class, terminal half-life in days, administration routes and whether reconstitution math is available for it. Takes no arguments. Outputs are for relay to a human decision-maker; not for autonomous administration.
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"disclaimer": {
"type": "string",
"description": "Fixed disclaimer. Relay it with any output."
},
"intended_use": {
"type": "string",
"description": "Fixed intended-use statement. Relay it too."
},
"count": {
"type": "integer"
},
"compounds": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"slug",
"name",
"class",
"half_life_days",
"routes",
"reconstitutable"
],
"properties": {
"id": {
"type": "integer"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"class": {
"type": [
"string",
"null"
]
},
"half_life_days": {
"type": [
"number",
"null"
]
},
"routes": {
"type": "array",
"items": {
"type": "string"
}
},
"reconstitutable": {
"type": "boolean"
}
}
}
}
},
"required": [
"disclaimer",
"intended_use",
"count",
"compounds"
]
}🟢get_compound(compound)
Full published record for one compound, looked up by canon id, slug or alias (slug and alias matching is case-insensitive). Outputs are for relay to a human decision-maker; not for autonomous administration.
Eingabe-Schema
{
"type": "object",
"properties": {
"compound": {
"type": "string",
"description": "Canon id, slug, or alias."
}
},
"required": [
"compound"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"disclaimer": {
"type": "string",
"description": "Fixed disclaimer. Relay it with any output."
},
"intended_use": {
"type": "string",
"description": "Fixed intended-use statement. Relay it too."
},
"compound": {
"type": "object",
"description": "The published canon record, verbatim."
},
"reconstitutable": {
"type": "boolean"
},
"editorial": {
"type": [
"object",
"null"
]
}
},
"required": [
"disclaimer",
"intended_use",
"compound",
"reconstitutable",
"editorial"
]
}⚪simulate(compound, dose_mg, dose_mcg, dose_iu, injections_per_week, ...)
Paid: $0.01 USDC per call via x402 (payment in _meta["x402/payment"]). Pharmacokinetic serum curve for one compound at one dose and one cadence, over a requested horizon. Exactly one dose field must be present; unknown fields are rejected rather than ignored. Outputs are for relay to a human decision-maker; not for autonomous administration.
Eingabe-Schema
{
"type": "object",
"properties": {
"compound": {
"type": "string",
"description": "Canon id, slug, or alias."
},
"dose_mg": {
"type": "number",
"description": "Dose per injection, milligrams. Positive."
},
"dose_mcg": {
"type": "number",
"description": "Dose per injection, micrograms. Positive."
},
"dose_iu": {
"type": "number",
"description": "Dose per injection in the compound's activity unit. Positive. Requires a published conversion for that compound."
},
"injections_per_week": {
"type": "number",
"description": "Injections per WEEK -- not per day; the name is the contract. Accepted range is a quarter of an injection per week up to twenty-one per week."
},
"duration_weeks": {
"type": "integer",
"description": "Length of the dosing window, whole weeks, from one to two hundred and sixty. The model always adds a sixty-day washout tail."
},
"route": {
"type": "string",
"description": "One of the compound's published routes. Omitted, its primary route is used."
},
"samples_per_day": {
"type": "integer",
"description": "Sample resolution of the returned series, whole samples, from one to twenty-four. Defaults to twenty-four."
}
},
"required": [
"compound",
"injections_per_week",
"duration_weeks"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"disclaimer": {
"type": "string",
"description": "Fixed disclaimer. Relay it with any output."
},
"intended_use": {
"type": "string",
"description": "Fixed intended-use statement. Relay it too."
},
"compound": {
"type": "object",
"required": [
"id",
"slug",
"name"
],
"properties": {
"id": {
"type": "integer"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"series": {
"type": "array",
"items": {
"type": "object",
"required": [
"day",
"level"
],
"properties": {
"day": {
"type": "number",
"description": "Cycle day, 1-indexed."
},
"level": {
"type": "number",
"description": "Modelled serum level, in `units`."
}
}
}
},
"units": {
"type": "string",
"enum": [
"ng/dL",
"mcg",
"mg"
],
"description": "The ONLY correct label for the numbers in `level`."
},
"meta": {
"type": "object",
"required": [
"samples_per_day",
"duration_weeks",
"injections_per_week",
"more"
],
"properties": {
"samples_per_day": {
"type": "integer"
},
"duration_weeks": {
"type": "integer"
},
"injections_per_week": {
"type": "number",
"description": "Echoed back as REQUESTED, not as the walk quantized it."
},
"more": {
"type": "string"
},
"network_note": {
"type": "string"
}
}
}
},
"required": [
"disclaimer",
"intended_use",
"compound",
"series",
"units",
"meta"
]
}⚪recon_calc(vial_mg, draw_ml, target_dose_mg, target_dose_mcg, frequency_days, ...)
Paid: $0.01 USDC per call via x402 (payment in _meta["x402/payment"]). Reconstitution math for one vial and one target dose: the concentration to reconstitute to, the bacteriostatic water to add, what one dose reads on a U-100 syringe, and how many doses the vial yields. Exactly one target-dose field must be present; unknown fields are rejected. Outputs are for relay to a human decision-maker; not for autonomous administration.
Eingabe-Schema
{
"type": "object",
"properties": {
"vial_mg": {
"type": "number",
"description": "Total mass in the vial, mg. Positive."
},
"draw_ml": {
"type": "number",
"description": "The volume you want to DRAW for one dose, in mL -- not the vial fill. Accepted range is one hundredth of a mL up to ten mL. The fill needed to make that true comes back as bac_water_ml."
},
"target_dose_mg": {
"type": "number",
"description": "Target dose, mg. Positive."
},
"target_dose_mcg": {
"type": "number",
"description": "Target dose, mcg. Positive."
},
"frequency_days": {
"type": "number",
"description": "Days between doses, positive. Feeds days_per_vial only. Defaults to one."
},
"cost_usd": {
"type": "number",
"description": "Vial cost, zero or more. Omitted, cost_per_dose_usd is null."
}
},
"required": [
"vial_mg",
"draw_ml"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"disclaimer": {
"type": "string",
"description": "Fixed disclaimer. Relay it with any output."
},
"intended_use": {
"type": "string",
"description": "Fixed intended-use statement. Relay it too."
},
"concentration_mg_per_ml": {
"type": "number"
},
"bac_water_ml": {
"type": "number"
},
"units_per_dose": {
"type": "number"
},
"syringe_marks": {
"type": "object",
"required": [
"u100"
],
"properties": {
"u100": {
"type": "number"
}
}
},
"doses_per_vial": {
"type": "integer"
},
"residual_mg": {
"type": "number"
},
"days_per_vial": {
"type": "number"
},
"cost_per_dose_usd": {
"type": [
"number",
"null"
]
},
"meta": {
"type": "object",
"required": [
"frequency_days",
"more"
],
"properties": {
"frequency_days": {
"type": "number"
},
"more": {
"type": "string"
},
"network_note": {
"type": "string"
}
}
}
},
"required": [
"disclaimer",
"intended_use",
"concentration_mg_per_ml",
"bac_water_ml",
"units_per_dose",
"syringe_marks",
"doses_per_vial",
"residual_mg",
"days_per_vial",
"cost_per_dose_usd",
"meta"
]
}🟡recon_suggest(compound, vial_mg, vial_iu)
Paid: $0.01 USDC per call via x402 (payment in _meta["x402/payment"]). Ranked reconstitution suggestions for one published reconstitutable compound: bacteriostatic-water presets that put the published per-administration dose range's clean steps on whole U-100 syringe marks. Vial defaults to the compound's first published strength. Compounds whose published range is denominated per period are refused rather than guessed at. Unknown fields are rejected. Outputs are for relay to a human decision-maker; not for autonomous administration.
Eingabe-Schema
{
"type": "object",
"properties": {
"compound": {
"type": "string",
"description": "Canon id, slug, or alias. Must be a reconstitutable compound."
},
"vial_mg": {
"type": "number",
"description": "Your actual vial's total mass, mg, positive. Only for compounds whose published vials are mg-quantified. Omitted, the first published vial strength is used."
},
"vial_iu": {
"type": "number",
"description": "Your actual vial's total activity, IU, positive. Only for compounds whose published vials are IU-quantified. Omitted, the first published vial strength is used."
}
},
"required": [
"compound"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"disclaimer": {
"type": "string",
"description": "Fixed disclaimer. Relay it with any output."
},
"intended_use": {
"type": "string",
"description": "Fixed intended-use statement. Relay it too."
},
"compound": {
"type": "object",
"required": [
"id",
"slug",
"name"
],
"properties": {
"id": {
"type": "integer"
},
"slug": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"vial": {
"type": "object",
"required": [
"amount",
"unit",
"source"
],
"properties": {
"amount": {
"type": "number"
},
"unit": {
"type": "string",
"enum": [
"mg",
"IU"
],
"description": "What amount is denominated in, and what concentration_per_ml is per mL of."
},
"source": {
"type": "string",
"enum": [
"request",
"canon"
],
"description": "Whether the vial came from the request or from the published strengths."
}
}
},
"rows": {
"type": "array",
"description": "Ranked presets, best first, at most 3 rows. An empty array means no clean-graduation preset exists for this vial -- a real answer, not a refusal.",
"items": {
"type": "object",
"required": [
"bac_water_ml",
"concentration_per_ml",
"preset_doses"
],
"properties": {
"bac_water_ml": {
"type": "number"
},
"concentration_per_ml": {
"type": "number",
"description": "Denominated in vial.unit per mL."
},
"preset_doses": {
"type": "array",
"items": {
"type": "object",
"required": [
"dose",
"dose_unit",
"units_per_dose",
"syringe_marks",
"doses_per_vial"
],
"properties": {
"dose": {
"type": "number"
},
"dose_unit": {
"type": "string",
"enum": [
"mg",
"mcg",
"IU"
]
},
"units_per_dose": {
"type": "number"
},
"syringe_marks": {
"type": "object",
"required": [
"u100"
],
"properties": {
"u100": {
"type": "integer"
}
}
},
"doses_per_vial": {
"type": "integer"
}
}
}
}
}
}
},
"meta": {
"type": "object",
"required": [
"more"
],
"properties": {
"more": {
"type": "string"
},
"network_note": {
"type": "string"
}
}
}
},
"required": [
"disclaimer",
"intended_use",
"compound",
"vial",
"rows",
"meta"
]
}Community
Nachweis