Skip to content

Connectors · Accounting & finance

ezyVet MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to ezyVet and the rest of your systems. It gives your agent 239 ezyVet actions (129 reads, 88 writes and 22 that wait for a confirmation) and holds the ezyVet credential itself, so the agent never does. It paces ezyVet's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "ezyvet.contact_v4.list",  intent: "check which ezyVet account is connected"}# List all contacts · read · 1 upstream call
  • 239actionsin one signed file
  • 129readlook, never change
  • 88writecreate and update
  • 22wait for a yesdestructive, confirmed first

Set up

Connect ezyVet in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect ezyVet.

    Session login. actionlake opens the session and renews it when it expires. actionlake stores what you paste write-only, sealed under your tenant's key.

    • partner_idezyVet partner id: the integration's UUID, issued by ezyVet's Partnerships team when your API application is approved
    • client_idClient id from the client_credentials.txt file the clinic generates for your integration (ezyVet > Admin >…
    • client_secretClient secret from the same client_credentials.txt file
    • site_uidThe clinic site's UID (site_...), from the client credentials file or the site_uid claim of an existing token
    • scopeEvery scope enabled on the integration record, space-separated (e.g. read-animal read-contact write-appointment)
    • regionYour ezyVet region
    account { op: "connections.requirements", service: "ezyvet" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "ezyvet.contact_v4.list" }# list all contacts · read · 1 upstream callcheck { action: "ezyvet.user_v4.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

ezyVet at a glance

Sign-in
Session login. actionlake opens the session and renews it when it expires.
You provide
partner_idclient_idclient_secretsite_uidscope
Setup fields
region
Limits we pace to
180 calls a minute, per connection
API covered
EzyVet API v1-v4 (OpenAPI 3.0.1, 2026-10), at your region's ezyvet.com address, set when you connect
Built from
ezyVet's documentation, read 23 October 2026developers.ezyvet.comdevelopers.ezyvet.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
129 of 129 reads, for up to 5 minutes; a write clears what it affects
Shared entities
4, so ask can line ezyVet up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in ezyVet.

239 actions in 11 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 129readlook, never change
  • 88writecreate and update
  • 22destructivewait for a confirmation
  1. Clinical

    51

    26 read · 21 write · 4 destructive

    Get event groups · List eligibility rules for a care service · List exemptions for a care service · List linked products for a care service

  2. Inventory

    48

    24 read · 20 write · 4 destructive

    List products, or fetch products by id/code, with token pagination. · Fetch a list of Batches · Get inventory balances · Fetches the contents of a bundle - uses token pagination.

  3. Admin

    34

    20 read · 10 write · 4 destructive

    Fetches a list containing Hospital(s) - uses token pagination. · List all users · List all active role names · Fetch a Separation list

  4. Contacts

    27

    12 read · 12 write · 3 destructive

    List all contacts · Get a Communication · Fetch a ContactDetail list · Fetches a list containing Contacts

  5. Billing

    19

    13 read · 4 write · 2 destructive

    Fetches a list containing estimates. · Fetches the InvoiceLine(s) for a given Invoice. · Fetch an Invoice list · Get payments

  6. Appointments

    18

    14 read · 4 write · 0 destructive

    Fetches a list containing AppointmentTypes · Fetch an Appointment list (V2) · Get resource availability · Fetches a list of Resources

  7. Animals

    16

    13 read · 2 write · 1 destructive

    Fetches a list containing Animal(s) · Fetches a list containing Animal(s) - uses token pagination. · Fetches a list containing Breed(s) - uses token pagination. · Fetches a list containing Species - uses token pagination.

  8. Prescriptions

    12

    3 read · 6 write · 3 destructive

    Post an external prescription · Creates a PrescriptionItem · Fetches a list of PrescriptionItems · Creates a Prescription

3 more areas · 14 actions
  • Wellness 11
  • Diagnostics 2
  • Supplier integration 1

Top actions

The ezyVet API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems.

ActionWhat it doesEffectSame name in
ezyvet.user_v4.listList all usersList all users.readthis connector
ezyvet.contact_v4.listList all contactsList all contacts.readthis connector
ezyvet.product_v4.listList products, or fetch products by id/code, with token pagination.List products, or fetch products by id/code, with token pagination.readthis connector
ezyvet.hospital_v4.listFetches a list containing Hospital(s) - uses token pagination.Fetches a list containing Hospital(s) - uses token pagination.readthis connector
ezyvet.role_v4.listList all active role namesList all active role names.readthis connector
ezyvet.batch_v2.listFetch a list of BatchesFetch a list of Batches.readthis connector
ezyvet.breed_v4.listFetches a list containing Breed(s) - uses token pagination.Fetches a list containing Breed(s) - uses token pagination.readthis connector
ezyvet.animal_v2.listFetches a list containing Animal(s)Fetches a list containing Animal(s).readthis connector
ezyvet.user_v4.createCreate a single userCreate a single user.writethis connector
ezyvet.batch_v2.createCreates a BatchCreates a Batch.writethis connector
ezyvet.animal_v1.createCreates a single AnimalCreates a single Animal.writethis connector
ezyvet.user_v4.disableDisable a user by IDDisable a user by ID.destructivethis connector

Try it

Prompts to paste into Claude.

Each one names the ezyVet actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Find the ezyVet contacts with no email address, so we can clean them up.

    callsezyvet.contact_v4.list

  2. Writewrite

    Create a single user in ezyVet. Show me exactly what you will send before you save it.

    callsezyvet.user_v4.create

Governance for ezyVet

Destructive actions wait for a yes.

22 ezyVet actions are destructive. These are all of them:

  • Disable a user by IDezyvet.user_v4.disable
  • Delete an Animalezyvet.animal_v1.delete
  • Delete an Addressezyvet.address_v1.delete
  • Deletes a Consultezyvet.consult_v1.delete
  • Deletes a Contactezyvet.contact_v1.delete
  • Deletes an Invoiceezyvet.invoice_v2.delete
  • Delete a Webhookezyvet.webhook_v1.delete
  • Delete an Attachmentezyvet.attachment_v1.delete
  • Disable multiple users (bulk)ezyvet.user_bulk_v4.disable
  • Delete a single InvoiceLineezyvet.invoice_line_v2.delete
  • Delete a Prescriptionezyvet.prescription_v1.delete
  • Delete a Communicationezyvet.communication_v2.delete
  • Deletes a HealthStatusezyvet.health_status_v1.delete
  • Disable (deactivate) a batch of products.ezyvet.product_bulk_v4.disable
  • Deletes a Wellness Planezyvet.wellness_plan_v2.delete
  • Deletes a Product Pricingezyvet.product_pricing_v2.delete
  • Delete a Receive Invoiceezyvet.receive_invoice_v1.delete
  • Delete a Diagnostic Resultezyvet.diagnostic_result_v1.delete
  • Deletes a PrescriptionItemezyvet.prescription_item_v1.delete
  • Deletes a DiagnosticRequestezyvet.diagnostic_request_v1.delete
  • Delete a Receive Invoice Itemezyvet.receive_invoice_item_v1.delete
  • Delete an external prescriptionezyvet.external_prescription_v1.delete

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

doezyvet.animal_v1.deleteconfirm_policy: human

Delete an Animal?

intent: the user asked me to delete an Animal

run suspended · waiting for a named person · key ezyvet-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "ezyvet-agent",  allowed_actions: ["ezyvet.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "ezyvet.user_v4.disable", approver: "[email protected]" },    { match: "ezyvet.animal_v1.delete", approver: "[email protected]" },    { match: "ezyvet.address_v1.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to ezyVet only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What ezyVet costs on actionlake.

Every ezyVet action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call ezyVet refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 239 ezyVet actions
  • 239actions pageeach page of a long list is one call
  • 129reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every ezyVet action.

239 actions by area: the id your agent calls, what it does, and its effect.

Clinical51
  • ezyvet.assessment_v1.listFetch an Assessmentread
  • ezyvet.consult_v1.createCreates a single Consultwrite
  • ezyvet.consult_v1.deleteDeletes a Consultdestructive
  • ezyvet.consult_v1.listFetches a list of Consultsread
  • ezyvet.consult_v1.updateUpdate a Consultwrite
  • ezyvet.diagnostic_request_v1.createCreates a single DiagnosticRequestwrite
  • ezyvet.diagnostic_request_v1.deleteDeletes a DiagnosticRequestdestructive
  • ezyvet.diagnostic_request_v1.getFetch a DiagnosticRequestread
  • ezyvet.diagnostic_request_v1.updateUpdate a DiagnosticRequestwrite
  • ezyvet.diagnostic_result_item_v1.createCreates a single DiagnosticResultItemwrite
  • ezyvet.diagnostic_result_item_v1.listFetch a DiagnosticResultItem listread
  • ezyvet.diagnostic_result_v1.createCreate a Diagnostic Resultwrite
  • ezyvet.diagnostic_result_v1.deleteDelete a Diagnostic Resultdestructive
  • ezyvet.diagnostic_result_v1.listFetch a Diagnostic Result listread
  • ezyvet.diagnostic_result_v1.updateUpdate a Diagnostic Resultwrite
  • ezyvet.diagnostic_v1.listFetch a Diagnosticread
  • ezyvet.event_group_v2.listGet event groupsread
  • ezyvet.health_status_v1.createCreates a HealthStatuswrite
  • ezyvet.health_status_v1.deleteDeletes a HealthStatusdestructive
  • ezyvet.health_status_v1.listFetch a HealthStatus listread
  • ezyvet.health_status_v1.updateUpdates a Health Statuswrite
  • ezyvet.history_v1.listFetch a History listread
  • ezyvet.integrated_diagnostic_v1.listFetch an array of IntegratedDiagnostic objectsread
  • ezyvet.operation_v1.listFetches a list of Operationsread
  • ezyvet.physical_exam_v1.createCreates a single PhysicalExamwrite
  • ezyvet.physical_exam_v1.listFetch a PhysicalExam listread
  • ezyvet.physical_exam_v1.updateUpdate a PhysicalExamwrite
  • ezyvet.plan_v1.listFetch a Planread
  • ezyvet.presenting_problem_link_v1.listFetch a PresentingProblemLink listread
  • ezyvet.presenting_problem_v1.listFetch a PresentingProblem listread
  • ezyvet.soc_care_service_eligibility_rule_v4.createCreate an eligibility rulewrite
  • ezyvet.soc_care_service_eligibility_rule_v4.listList eligibility rules for a care serviceread
  • ezyvet.soc_care_service_exemption_v4.createCreate an exemptionwrite
  • ezyvet.soc_care_service_exemption_v4.listList exemptions for a care serviceread
  • ezyvet.soc_care_service_linked_product_v4.createCreate a linked productwrite
  • ezyvet.soc_care_service_linked_product_v4.listList linked products for a care serviceread
  • ezyvet.soc_care_service_v4.createCreate a care servicewrite
  • ezyvet.soc_care_service_v4.getGet a care service by IDread
  • ezyvet.soc_care_service_v4.listList all care servicesread
  • ezyvet.soc_care_service_v4.updateUpdate a care servicewrite
  • ezyvet.soc_eligibility_rule_v4.getGet an eligibility rule by IDread
  • ezyvet.soc_eligibility_rule_v4.updateUpdate an eligibility rulewrite
  • ezyvet.soc_exemption_v4.getGet an exemption by IDread
  • ezyvet.soc_exemption_v4.updateUpdate an exemptionwrite
  • ezyvet.soc_linked_product_v4.getGet a linked product by IDread
  • ezyvet.soc_linked_product_v4.updateUpdate a linked productwrite
  • ezyvet.standard_of_care_v2.listGet standard of care eventsread
  • ezyvet.standard_of_care_v2_1.listList standard of care recordsread
  • ezyvet.vaccination_v1.createCreate a new Vaccinationwrite
  • ezyvet.vaccination_v1.listFetch a list containing Vaccinationsread
  • ezyvet.vaccination_v1.updateUpdate a Vaccinationwrite
Inventory48
  • ezyvet.barcode_v1.listFetch a list of Barcodesread
  • ezyvet.batch_v2.createCreates a Batchwrite
  • ezyvet.batch_v2.listFetch a list of Batchesread
  • ezyvet.inventory_balance_v2.listGet inventory balancesread
  • ezyvet.inventory_requirement_v1.listGet inventory balance and requirementsread
  • ezyvet.inventory_supplied_v1.createSupply products to a locationwrite
  • ezyvet.inventory_tracked_product_v1.listGet inventory tracked productsread
  • ezyvet.product_bulk_v4.createBulk create products.write
  • ezyvet.product_bulk_v4.disableDisable (deactivate) a batch of products.destructive
  • ezyvet.product_bulk_v4.restoreRestore (reactivate) a batch of products.write
  • ezyvet.product_bulk_v4.updateBulk update products.write
  • ezyvet.product_bundle_item_v4.listFetches the contents of a bundle - uses token pagination.read
  • ezyvet.product_group_v1.listFetch a ProductGroup listread
  • ezyvet.product_minimum_stock_v2.listFetches Product Minimum Stockread
  • ezyvet.product_pricing_bulk_v4.updateBulk patch pricing details for multiple productswrite
  • ezyvet.product_pricing_v2.createCreate a Product Pricingwrite
  • ezyvet.product_pricing_v2.deleteDeletes a Product Pricingdestructive
  • ezyvet.product_pricing_v2.listFetch a Product Pricing by IDread
  • ezyvet.product_pricing_v2.updateUpdate a Product Pricingwrite
  • ezyvet.product_pricing_v4.listLists pricing with token pagination.read
  • ezyvet.product_service_fee_bulk_v2_1.updateBulk patch service fee associations for multiple productswrite
  • ezyvet.product_supplier_v2.listFetch Product Suppliersread
  • ezyvet.product_v1.listFetch a Product listread
  • ezyvet.product_v2.getFetch a Specific Productread
  • ezyvet.product_v4.createCreate a single product.write
  • ezyvet.product_v4.listList products, or fetch products by id/code, with token pagination.read
  • ezyvet.product_v4.updateUpdate a single product.write
  • ezyvet.purchase_order_item_v1.listFetches a list containing PurchaseOrderItem(s)read
  • ezyvet.purchase_order_v1.listFetch a PurchaseOrder listread
  • ezyvet.purchase_order_v4.createCreates one or more PurchaseOrders.write
  • ezyvet.receive_invoice_item_v1.createCreates a Receive Invoice Itemwrite
  • ezyvet.receive_invoice_item_v1.deleteDelete a Receive Invoice Itemdestructive
  • ezyvet.receive_invoice_item_v1.listFetch a list of Receive Invoice Itemsread
  • ezyvet.receive_invoice_item_v1.updateUpdates a Receive Invoice Itemwrite
  • ezyvet.receive_invoice_item_v2.createCreates a ReceiveInvoiceItemwrite
  • ezyvet.receive_invoice_item_v2.listFetches a list containing ReceiveInvoiceItemsread
  • ezyvet.receive_invoice_v1.createCreate a Receive Invoicewrite
  • ezyvet.receive_invoice_v1.deleteDelete a Receive Invoicedestructive
  • ezyvet.receive_invoice_v1.listFetch a list of Receive Invoicesread
  • ezyvet.receive_invoice_v1.updateUpdate a Receive Invoicewrite
  • ezyvet.receive_invoice_v2.createCreate a Receive Invoice (V2)write
  • ezyvet.receive_invoice_v2.listFetches a list containing Receive Invoices (up to 10), and their associated Receive Invoice Items.read
  • ezyvet.stock_adjustment_item_v2.createCreates a single StockAdjustmentItemwrite
  • ezyvet.stock_adjustment_item_v2.getFetch a Stock Adjustment Itemread
  • ezyvet.stock_adjustment_v2.createCreate a StockAdjustmentwrite
  • ezyvet.stock_adjustment_v2.getFetch stock adjustmentsread
  • ezyvet.stock_transaction_v2.listFetch stock transactionsread
  • ezyvet.stock_transaction_v2_1.listFetches a list containing Stock Transaction(s) — v2 format with token pagination.read
Admin34
  • ezyvet.attachment_v1.deleteDelete an Attachmentdestructive
  • ezyvet.attachment_v1.listFetch an Attachmentread
  • ezyvet.attachment_v1.updateUpdates an Attachmentwrite
  • ezyvet.file_v1.getFetch a Fileread
  • ezyvet.hospital_v4.getFetches a single Hospital by its ID (uid).read
  • ezyvet.hospital_v4.listFetches a list containing Hospital(s) - uses token pagination.read
  • ezyvet.role_v4.listList all active role namesread
  • ezyvet.separation_v1.listFetch a list of separationsread
  • ezyvet.separation_v2.listFetch a Separation listread
  • ezyvet.separation_with_primary_inventory_location_v2.listFetch a Separation listread
  • ezyvet.site_information_v3.getGet site informationread
  • ezyvet.system_setting_v1.listGet the SystemSettingsread
  • ezyvet.tag_category_v1.listFetch a list of Tag Categoriesread
  • ezyvet.tag_name_v1.listFetches a list containing Tag Namesread
  • ezyvet.tag_v1.listFetch a list of Tagsread
  • ezyvet.user_access_v4.getGet access for a userread
  • ezyvet.user_access_v4.updateSet access levels for a userwrite
  • ezyvet.user_bulk_v4.createCreate multiple users (bulk)write
  • ezyvet.user_bulk_v4.disableDisable multiple users (bulk)destructive
  • ezyvet.user_bulk_v4.restoreRestore multiple users (bulk)write
  • ezyvet.user_bulk_v4.updateUpdate multiple users (bulk)write
  • ezyvet.user_v1.listFetch a list of ezyVet usersread
  • ezyvet.user_v4.createCreate a single userwrite
  • ezyvet.user_v4.disableDisable a user by IDdestructive
  • ezyvet.user_v4.getGet a user by IDread
  • ezyvet.user_v4.listList all usersread
  • ezyvet.user_v4.restoreRestore a user by IDwrite
  • ezyvet.user_v4.searchSearch users by name, login email or mobileread
  • ezyvet.user_v4.updateUpdate a user by IDwrite
  • ezyvet.webhook_event_v1.listFetch a list of WebHookEventsread
  • ezyvet.webhook_v1.createCreate a Webhookwrite
  • ezyvet.webhook_v1.deleteDelete a Webhookdestructive
  • ezyvet.webhook_v1.listFetch a list of Webhooksread
  • ezyvet.webhook_v1.updateUpdate a Webhookwrite
Contacts27
  • ezyvet.address_v1.createCreates a single Addresswrite
  • ezyvet.address_v1.deleteDelete an Addressdestructive
  • ezyvet.address_v1.listFetches a list containing Address(es)read
  • ezyvet.address_v1.updateUpdate an Addresswrite
  • ezyvet.communication_v2.createCreate a Communicationwrite
  • ezyvet.communication_v2.deleteDelete a Communicationdestructive
  • ezyvet.communication_v2.listGet a Communicationread
  • ezyvet.communication_v2.updateUpdate a Communicationwrite
  • ezyvet.communication_v2_1.listFetches a list containing Communication(s) — v2 format with token pagination.read
  • ezyvet.contact_association_v1.listFetch a list of contact associationsread
  • ezyvet.contact_detail_type_v1.listFetch a ContactDetailType listread
  • ezyvet.contact_detail_v1.createCreates a single ContactDetail recordwrite
  • ezyvet.contact_detail_v1.listFetch a ContactDetail listread
  • ezyvet.contact_detail_v1.updateUpdates an existing ContactDetail recordwrite
  • ezyvet.contact_detail_v2.createCreates a single ContactDetail recordwrite
  • ezyvet.contact_detail_v2.listFetch a ContactDetail listread
  • ezyvet.contact_v1.createCreates a single Contactwrite
  • ezyvet.contact_v1.deleteDeletes a Contactdestructive
  • ezyvet.contact_v1.listFetches a list containing Contactsread
  • ezyvet.contact_v1.updateUpdate a Contactwrite
  • ezyvet.contact_v2.listFetches a list containing Contactsread
  • ezyvet.contact_v4.createCreate one or more contactswrite
  • ezyvet.contact_v4.getGet a specific contact by IDread
  • ezyvet.contact_v4.listList all contactsread
  • ezyvet.contact_v4.updatePartially update a contact (associations)write
  • ezyvet.country_v1.listFetch a Country listread
  • ezyvet.sent_communication_v4.createRecords one or more sent communication records in bulk.write
Billing19
  • ezyvet.billing_credit_v1.listFetch a BillingCreditread
  • ezyvet.estimate_v2.listFetches a list containing estimates.read
  • ezyvet.invoice_line_v1.listFetches the InvoiceLines for the given Invoice (id=9).read
  • ezyvet.invoice_line_v2.createCreates a single InvoiceLinewrite
  • ezyvet.invoice_line_v2.deleteDelete a single InvoiceLinedestructive
  • ezyvet.invoice_line_v2.listFetches the InvoiceLine(s) for a given Invoice.read
  • ezyvet.invoice_line_v2.updateUpdate an InvoiceLinewrite
  • ezyvet.invoice_v1.listFetches a list containing Invoice(s).read
  • ezyvet.invoice_v2.createCreate an Invoice (V2)write
  • ezyvet.invoice_v2.deleteDeletes an Invoicedestructive
  • ezyvet.invoice_v2.listFetch an Invoice listread
  • ezyvet.invoice_v2.updateUpdate an Invoicewrite
  • ezyvet.ledger_account_v2.getFetch a Ledger Account by IDread
  • ezyvet.payment_method_v1.listFetch a PaymentMethod listread
  • ezyvet.payment_v1.listFetch a Payment listread
  • ezyvet.payment_v2.listGet paymentsread
  • ezyvet.price_adjustment_v1.listFetches a list of Price Adjustmentsread
  • ezyvet.tax_rate_v2.listFetches a list containing Tax Rates.read
  • ezyvet.transaction_v2.listFetch a list of Transactionsread
Appointments18
  • ezyvet.appointment_status_v1.listFetch an Appointment Status listread
  • ezyvet.appointment_type_v1.listFetch an AppointmentType listread
  • ezyvet.appointment_type_v2.listFetches a list containing AppointmentTypesread
  • ezyvet.appointment_v1.listFetch an Appointment listread
  • ezyvet.appointment_v2.createCreates a single Appointmentwrite
  • ezyvet.appointment_v2.listFetch an Appointment list (V2)read
  • ezyvet.appointment_v2.updateUpdates an existing Appointmentwrite
  • ezyvet.calendar_appointment_v2_1.listFetch an appointment list (V2.1)read
  • ezyvet.calendar_availability_v4.listGet resource availabilityread
  • ezyvet.calendar_booking_v4.createCreate a new appointment bookingwrite
  • ezyvet.calendar_planning_guide_v2_1.listFetch a planning guide list (V2.1)read
  • ezyvet.ezycab_appointment_v2_1.listFetch an appointment list (V2.1) (Deprecated)read
  • ezyvet.ezycab_availability.listGet bookable appointment slots (Deprecated)read
  • ezyvet.ezycab_booking.createCreate a new appointment bookingwrite
  • ezyvet.ezycab_planning_guide_v2_1.listFetch a planning guide list (V2.1) (Deprecated)read
  • ezyvet.resource_v1.listFetch a Resource listread
  • ezyvet.resource_v2.listFetches a list of Resourcesread
  • ezyvet.shelter_animal_booking_v2.getFetch a Specific Shelter Animal Bookingread
Animals16
  • ezyvet.animal_colour_v1.listFetch an AnimalColour listread
  • ezyvet.animal_v1.createCreates a single Animalwrite
  • ezyvet.animal_v1.deleteDelete an Animaldestructive
  • ezyvet.animal_v1.listFetches a list containing Animal(s)read
  • ezyvet.animal_v1.updateUpdates a single Animalwrite
  • ezyvet.animal_v1_1.listFetches a list containing Animal(s) - uses token pagination.read
  • ezyvet.animal_v2.listFetches a list containing Animal(s)read
  • ezyvet.animal_v2_1.listFetches a list containing Animal(s) — v2 format with token pagination and UID fields.read
  • ezyvet.animal_v4.getFetches a single Animal by its ID (uid).read
  • ezyvet.animal_v4.listFetches a list containing Animal(s) - uses token pagination.read
  • ezyvet.breed_v1.listFetch a Breed listread
  • ezyvet.breed_v4.listFetches a list containing Breed(s) - uses token pagination.read
  • ezyvet.sex_v1.listFetch a Sex listread
  • ezyvet.species_v1.listFetch a Species listread
  • ezyvet.species_v4.getFetches a single Species by its ID (uid).read
  • ezyvet.species_v4.listFetches a list containing Species - uses token pagination.read
Prescriptions12
  • ezyvet.external_prescription_v1.createPost an external prescriptionwrite
  • ezyvet.external_prescription_v1.deleteDelete an external prescriptiondestructive
  • ezyvet.external_prescription_v1.updatePatch an external prescriptionwrite
  • ezyvet.prescription_item_v1.createCreates a PrescriptionItemwrite
  • ezyvet.prescription_item_v1.deleteDeletes a PrescriptionItemdestructive
  • ezyvet.prescription_item_v1.listFetches a list of PrescriptionItemsread
  • ezyvet.prescription_item_v1.updateUpdate a PrescriptionItemwrite
  • ezyvet.prescription_v1.createCreates a Prescriptionwrite
  • ezyvet.prescription_v1.deleteDelete a Prescriptiondestructive
  • ezyvet.prescription_v1.listFetch a list of Prescriptionsread
  • ezyvet.prescription_v1.updateUpdate a Prescriptionwrite
  • ezyvet.therapeutic_v1.listFetch a Therapeutic listread
Wellness11
  • ezyvet.wellness_plan_benefit_item_v2.listFetches a list of Wellness Plan Benefit Itemsread
  • ezyvet.wellness_plan_benefit_v2.createCreates a single Wellness Plan Benefitwrite
  • ezyvet.wellness_plan_benefit_v2.listFetch Wellness Plan Benefitread
  • ezyvet.wellness_plan_benefit_v2.updateUpdate a Wellness Plan Benefitwrite
  • ezyvet.wellness_plan_membership_v2.createCreate New Wellness Plan Membershipwrite
  • ezyvet.wellness_plan_membership_v2.listFetches a list containing Wellness Plan Membershipsread
  • ezyvet.wellness_plan_membership_v2.updateUpdate Wellness Plan Membershipwrite
  • ezyvet.wellness_plan_v2.createCreates a single Wellness Planwrite
  • ezyvet.wellness_plan_v2.deleteDeletes a Wellness Plandestructive
  • ezyvet.wellness_plan_v2.listFetches a list of Wellness Plansread
  • ezyvet.wellness_plan_v2.updateUpdates a single Wellness Planwrite
Diagnostics2
  • ezyvet.standard_diagnostic_lab_report.createMake a diagnostic resultwrite
  • ezyvet.standard_diagnostic_result.updateUpdate a diagnostic resultwrite
Supplier integration1
  • ezyvet.job_queue_v2.createCreates a JobQueue jobwrite

Questions

The ezyVet MCP server, answered.

Is there an ezyVet MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 239 ezyVet actions across clinical, inventory, admin and contacts, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by ezyVet.

What do I need to connect ezyVet?

EzyVet partner id: the integration's UUID, issued by ezyVet's Partnerships team when your API application is approved, Client id from the client_credentials.txt file the clinic generates for your integration (ezyVet > Admin >…, Client secret from the same client_credentials.txt file, The clinic site's UID (site_...), from the client credentials file or the site_uid claim of an existing token and Every scope enabled on the integration record, space-separated (e.g. read-animal read-contact write-appointment). Plus your region. The free call account { op: "connections.requirements", service: "ezyvet" } lists exactly what to paste.

Can an AI agent delete or change things in ezyVet?

Only if its key allows it, and only with an explicit confirmation. 22 ezyVet actions are destructive, including disable a user by ID, delete an Animal and delete an Address. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my ezyVet API limit?

actionlake paces every call to the limits in the ezyVet service file: 180 calls a minute per connection. Repeated reads are answered from cache (129 ezyVet actions can be), which never reaches ezyVet.

What does an ezyVet action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (239 ezyVet actions page). Cache hits, searches, dry runs and calls ezyVet refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which ezyVet API does it cover?

The ezyVet API v1-v4 (OpenAPI 3.0.1, 2026-10) at your region's ezyvet.com address, set when you connect. It is built from ezyVet's documentation as read on 23 October 2026. 239 actions in 11 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my ezyVet data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your ezyVet credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent ezyVet today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.