DosePlot Agent API
PK serum simulation, reconstitution math and compound data for agents. Paid tools $0.01 via x402.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"agent-api": {
"url": "https://api.doseplot.com/mcp"
}
}
}リモートエンドポイント
https://api.doseplot.com/mcpstreamable-httpできること
ツール一覧
ツール(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.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {
"compound": {
"type": "string",
"description": "Canon id, slug, or alias."
}
},
"required": [
"compound"
],
"additionalProperties": false
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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"
]
}コミュニティ
エビデンス