A2A Peptides
by A2A-Peptides · remote · no sign-in to list tools · v1.6.7 · published by GitHub user A2A-Peptides
Agent-to-Agent (A2A) + Model Context Protocol (MCP) hub for peptides.
20 tools: 6 change things and 14 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things6Claude Code: ask: see these tools
- Only reads14Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http a2a-peptides https://mcp.a2a-peptides.ai/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "get_label_and_indication" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_label_and_indication" says "get": a word for reading.
- Inforesolve_actor
The description mentions "credential".
What this check looks forMatched text
description: "...c, and agent (inherits the class of the credential it presents; none returns DENY_UNLICENS..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
20 tools
Changes things 6Claude Code: ask
a2a_handoffHand off over Agent-to-Agent (A2A).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Hand off over Agent-to-Agent (A2A). With an allow/require_rx decision: the order intent goes to the licensed counterparty's agent (envelope + card URL). With a deny for a patient, the public or an unauthorized actor: returns real licensed destinations from the provider directory (dispensers, prescribers) filtered by the decision's jurisdiction, state/province and practice scope — a referral, never a vial.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
- title: A2A Handoff
create_order_intentCreate an order intent for a cleared item after the gate; the intent carries reason_code + rule_set_version and settles by x402 on peptides-x402.ai.No findings
Why it is in this group
- The name "create_order_intent" says "create": a word for a change.
Description, as the server wrote it Create an order intent for a cleared item after the gate; the intent carries reason_code + rule_set_version and settles by x402 on peptides-x402.ai.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
- title: Create Order Intent
gate_transactionThe gate: allow, deny or require_rx for a substance (name, INN or unii:), a pathway (licensed_medicine · lawful_compounding · cosmetic · food_or_supplement · ruo_not_cleared), an a…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The gate: allow, deny or require_rx for a substance (name, INN or unii:), a pathway (licensed_medicine · lawful_compounding · cosmetic · food_or_supplement · ruo_not_cleared), an actor class, a channel and a ship-to. Returns a frozen reason code, the rule-set version, the source page and a decision_id for the downstream tools.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Gate Transaction
get_label_and_indicationLabel and indication pointers for a licensed presentation only (US package NDC, CA DIN, EU EMA number).1 finding
Why it is in this group
- The name "get_label_and_indication" says "get": a word for reading.
- The description's first verb is "label": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "get_label_and_indication" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_label_and_indication" says "get": a word for reading.
Description, as the server wrote it Label and indication pointers for a licensed presentation only (US package NDC, CA DIN, EU EMA number).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Label And Indication
log_auditWrite the audit line for a gate decision or an order intent (returns the line id).No findings
Why it is in this group
- The name "log_audit" says "log": a word for reading.
- The description's first verb is "write": a word for a change.
Description, as the server wrote it Write the audit line for a gate decision or an order intent (returns the line id).
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
- title: Log Audit
verify_serializationVerify a serialised pack (GTIN + serial + lot + expiry) against the serialisation regime of the jurisdiction (DSCSA · FMD · UK · KR; none-national elsewhere).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Verify a serialised pack (GTIN + serial + lot + expiry) against the serialisation regime of the jurisdiction (DSCSA · FMD · UK · KR; none-national elsewhere).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Verify Serialization
Only reads 14Claude Code: allow
compare_presentationsCompare two or more authorised presentations side by side (ids as for get_item).No findings
Why it is in this group
- The name "compare_presentations" says "compare": a word for reading.
Description, as the server wrote it Compare two or more authorised presentations side by side (ids as for get_item).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Compare Presentations
find_licensed_supplierLicensed parties for a presentation in a jurisdiction (tenant as a parameter).No findings
Why it is in this group
- The name "find_licensed_supplier" says "find": a word for reading.
Description, as the server wrote it Licensed parties for a presentation in a jurisdiction (tenant as a parameter). Takes the decision_id of an allow or require_rx decision from gate_transaction.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Find Licensed Supplier
get_availabilityAvailability of a presentation once gate_transaction has answered allow or require_rx (decision_id): the availability block — banners[] on the shelf of record with licence footnote…No findings
Why it is in this group
- The name "get_availability" says "get": a word for reading.
Description, as the server wrote it Availability of a presentation once gate_transaction has answered allow or require_rx (decision_id): the availability block — banners[] on the shelf of record with licence footnote, pos_count (chain points of sale from the CPG Knowledge Graph retailer registry, or licensed dispensers on the provider directory for medicines), product_urls[] (retailer product page, register page, holder page) — plus tenant offers.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Availability
get_compounding_eligibilityWhether a substance may be lawfully compounded in a jurisdiction and under which list or standard (503A/503B, provincial, magistral, Specials), from the register.No findings
Why it is in this group
- The name "get_compounding_eligibility" says "get": a word for reading.
Description, as the server wrote it Whether a substance may be lawfully compounded in a jurisdiction and under which list or standard (503A/503B, provincial, magistral, Specials), from the register.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Compounding Eligibility
get_enforcement_watchDated, URL'd enforcement events for a substance or jurisdiction: warning letters, import alerts, shortage-list changes, committee votes, proposed and final rules, seizures, state n…No findings
Why it is in this group
- The name "get_enforcement_watch" says "get": a word for reading.
Description, as the server wrote it Dated, URL'd enforcement events for a substance or jurisdiction: warning letters, import alerts, shortage-list changes, committee votes, proposed and final rules, seizures, state notices.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Enforcement Watch
get_itemProduct record from gtinfetch.ai (signed); hub layer: seat, market, claim, price, availability.No findings
Why it is in this group
- The name "get_item" says "get": a word for reading.
Description, as the server wrote it Product record from gtinfetch.ai (signed); hub layer: seat, market, claim, price, availability. One authorised presentation by id (US package NDC, CA DIN, EU EMA number, KR MFDS item seq, CH Swissmedic authorisation/pack code, JP approved-list entry, or the catalogue id): brand, strength, form, route, device, pack, holder, status, offers (tenant is a parameter).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Item
get_lot_coaCertificate of analysis for a lawful lot of a presentation, where the pathway permits (decision_id required).No findings
Why it is in this group
- The name "get_lot_coa" says "get": a word for reading.
Description, as the server wrote it Certificate of analysis for a lawful lot of a presentation, where the pathway permits (decision_id required).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Lot Coa
get_pathway_statusThe status of a substance on one pathway in one jurisdiction (frozen vocabulary), with effective date, rule-set version and source page.No findings
Why it is in this group
- The name "get_pathway_status" says "get": a word for reading.
Description, as the server wrote it The status of a substance on one pathway in one jurisdiction (frozen vocabulary), with effective date, rule-set version and source page.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Pathway Status
get_pricePrice basis (list · contract · reimbursement) from a licensed party, once gate_transaction has answered allow or require_rx (decision_id).No findings
Why it is in this group
- The name "get_price" says "get": a word for reading.
Description, as the server wrote it Price basis (list · contract · reimbursement) from a licensed party, once gate_transaction has answered allow or require_rx (decision_id).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Price
get_safety_labelSafety label pointers for licensed products (label page and the pharmacovigilance scheme of the jurisdiction).No findings
Why it is in this group
- The name "get_safety_label" says "get": a word for reading.
Description, as the server wrote it Safety label pointers for licensed products (label page and the pharmacovigilance scheme of the jurisdiction).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Safety Label
get_substance_recordOne molecule: identifiers (INN, UNII, CAS, sequence hash), sourced aliases, class, one pathway row per jurisdiction × pathway, enforcement events, safety references.No findings
Why it is in this group
- The name "get_substance_record" says "get": a word for reading.
Description, as the server wrote it One molecule: identifiers (INN, UNII, CAS, sequence hash), sourced aliases, class, one pathway row per jurisdiction × pathway, enforcement events, safety references. Every field carries its source page.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Get Substance Record
resolve_actorResolve the actor class and channel.1 finding
Why it is in this group
- The name "resolve_actor" says "resolve": a word for reading.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...c, and agent (inherits the class of the credential it presents; none returns DENY_UNLICENS..."
Description, as the server wrote it Resolve the actor class and channel. Classes: authorized_trading_partner and its members (manufacturer · repackager · wholesale_distributor · dispenser · third_party_logistics_provider; cosmetic_responsible_person · nhp_licence_holder on the non-drug pathways), prescriber, the referral classes patient and public, and agent (inherits the class of the credential it presents; none returns DENY_UNLICENSED_AGENT). Returns communication_class: trade_information or public.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Resolve Actor
resolve_jurisdictionResolve a ship-to (e.g.No findings
Why it is in this group
- The name "resolve_jurisdiction" says "resolve": a word for reading.
Description, as the server wrote it Resolve a ship-to (e.g. 'US-CA', 'CA-ON', 'MX', 'EU-DE', 'UK', 'KR', 'JP', 'SG', 'CH') to the gate's jurisdiction (US · CA · MX · EU · UK · KR · JP · SG · CH; UK is the jurisdiction name; the ISO 3166-1 code is accepted as input, machine fields carry the ISO code and jurisdiction_label carries UK), the EU member and any state, provincial or cantonal overlay.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Resolve Jurisdiction
search_cleared_itemsPresentations that passed the gate for a jurisdiction, pathway and actor class (a query by substance, brand or holder; optional banner filter on the shelf of record).No findings
Why it is in this group
- The name "search_cleared_items" says "search": a word for reading.
Description, as the server wrote it Presentations that passed the gate for a jurisdiction, pathway and actor class (a query by substance, brand or holder; optional banner filter on the shelf of record). Only cleared statuses are returned; every item carries its availability block (banners, pos_count, product_urls).
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
- title: Search Cleared Items
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.6.7. Values in angle brackets are yours to fill in.
claude mcp add --transport http a2a-peptides https://mcp.a2a-peptides.ai/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__a2a-peptides__resolve_jurisdiction",
"mcp__a2a-peptides__resolve_actor",
"mcp__a2a-peptides__get_substance_record",
"mcp__a2a-peptides__get_pathway_status",
"mcp__a2a-peptides__get_compounding_eligibility",
"mcp__a2a-peptides__get_enforcement_watch",
"mcp__a2a-peptides__search_cleared_items",
"mcp__a2a-peptides__get_item",
"mcp__a2a-peptides__compare_presentations",
"mcp__a2a-peptides__find_licensed_supplier",
"mcp__a2a-peptides__get_availability",
"mcp__a2a-peptides__get_price",
"mcp__a2a-peptides__get_lot_coa",
"mcp__a2a-peptides__get_safety_label"
],
"ask": [
"mcp__a2a-peptides__gate_transaction",
"mcp__a2a-peptides__get_label_and_indication",
"mcp__a2a-peptides__verify_serialization",
"mcp__a2a-peptides__create_order_intent",
"mcp__a2a-peptides__a2a_handoff",
"mcp__a2a-peptides__log_audit"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as a2a-peptides. Review it before you use it.
