MoeGo MCP by usefulapi

Read customers, pets, appointments, orders and reports; add customer notes in MoeGo.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
93%
Naming quality
79%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'moego_list_membership_subscriptions' name length outside 3-30 rangein moego_list_membership_subscriptions

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,636Tokens (tool definitions)
~1.2 KBTypical response size
Significant attention impact (3.62% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "moego": {
      "url": "https://moego.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://moego.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (31)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢moego_list_companies(page_size, page_token)

List the companies the API key can access. Call first: it returns the obfuscated company ids that every other tool needs. API: POST /v1/companies:list.

Input Schema

{
  "type": "object",
  "properties": {
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_get_company(company_id)

Get one company (name, country, time zone). API: GET /v1/companies/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_businesses(company_id, page_size, page_token)

List the business locations of a company, with address and contact data. API: POST /v1/businesses:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_get_business(business_id)

Get one business location by obfuscated id. API: GET /v1/businesses/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "business_id": {
      "type": "string",
      "description": "Obfuscated business id."
    }
  },
  "required": [
    "business_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_customers(company_id, phone_number, updated_after, updated_before, page_size, ...)

List pet-parent customers of a company. Filter by phone number or by last update time. API: POST /v1/customers:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "phone_number": {
      "description": "Only the customer with this main phone number.",
      "type": "string"
    },
    "updated_after": {
      "description": "RFC 3339 time: only customers updated at or after it.",
      "type": "string"
    },
    "updated_before": {
      "description": "RFC 3339 time: only customers updated before it.",
      "type": "string"
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_get_customer(customer_id)

Get one customer with contact data, addresses, notes, tags and preferences. API: GET /v1/customers/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Obfuscated customer id."
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_customer_notes(customer_id, page_size, page_token)

List the staff notes on a customer. API: POST /v1/customers/{id}/notes:list.

Input Schema

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string"
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_customer_tags(customer_id)

List the tags on a customer. API: POST /v1/customers/{id}/tags:list.

Input Schema

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string"
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_pets(company_id, customer_ids, updated_after, updated_before, page_size, ...)

List pets of a company. Filter by owner ids or last update time. API: POST /v1/pets:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "customer_ids": {
      "description": "Only pets of these customers.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "updated_after": {
      "description": "RFC 3339 time.",
      "type": "string"
    },
    "updated_before": {
      "description": "RFC 3339 time.",
      "type": "string"
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_customer_pets(customer_id)

List the pets of one customer. API: POST /v1/customers/{customerId}/pets:list.

Input Schema

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string"
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_get_pet(customer_id, pet_id)

Get one pet (breed, weight, vaccinations, vet, behavior, codes, notes). API: GET /v1/customers/{customerId}/pets/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string",
      "description": "Obfuscated id of the owner."
    },
    "pet_id": {
      "type": "string",
      "description": "Obfuscated pet id."
    }
  },
  "required": [
    "customer_id",
    "pet_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_appointments(company_id, business_ids, start_after, start_before, updated_after, ...)

List appointments of a company. Filter by start time range, status, customers, pets. Times are RFC 3339. API: POST /v1/appointments:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "business_ids": {
      "description": "Only these obfuscated business ids (from moego_list_businesses).",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "start_after": {
      "description": "RFC 3339: appointment starts at or after this time.",
      "type": "string"
    },
    "start_before": {
      "description": "RFC 3339: appointment starts before this time.",
      "type": "string"
    },
    "updated_after": {
      "description": "RFC 3339: last updated at or after this time.",
      "type": "string"
    },
    "statuses": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "UNCONFIRMED",
          "CONFIRMED",
          "CHECKED_IN",
          "READY",
          "FINISHED",
          "CANCELED"
        ]
      }
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "pet_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_get_appointment(appointment_id, business_id)

Get one appointment with its pets, services, staff, times and amounts. API: GET /v1/appointments/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "appointment_id": {
      "type": "string"
    },
    "business_id": {
      "description": "Obfuscated business id of the appointment.",
      "type": "string"
    }
  },
  "required": [
    "appointment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_appointment_notes(appointment_id)

List the notes of one appointment. API: POST /v1/appointments/notes:list.

Input Schema

{
  "type": "object",
  "properties": {
    "appointment_id": {
      "type": "string"
    }
  },
  "required": [
    "appointment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_blocks(company_id, business_ids, start_after, end_before, page_size, ...)

List blocked (not bookable) time slots such as staff days off. API: POST /v1/blocks:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "business_ids": {
      "description": "Only these obfuscated business ids (from moego_list_businesses).",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "start_after": {
      "description": "RFC 3339.",
      "type": "string"
    },
    "end_before": {
      "description": "RFC 3339.",
      "type": "string"
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_get_booking_availability(company_id, business_id, start_date, end_date, service_ids, ...)

Get the dates and times that clients can book online for a location. Read only: it books nothing. API: POST /v1/online_booking/availability.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "business_id": {
      "type": "string"
    },
    "start_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "yyyy-mm-dd"
    },
    "end_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "yyyy-mm-dd"
    },
    "service_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "staff_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "company_id",
    "business_id",
    "start_date",
    "end_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_orders(company_id, business_ids, statuses, updated_after, updated_before, ...)

List orders (invoices) with status and amounts. Filter by status or last update time. API: POST /v1/orders:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "business_ids": {
      "description": "Only these obfuscated business ids (from moego_list_businesses).",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "statuses": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "CREATED",
          "PROCESSING",
          "COMPLETED",
          "REMOVED"
        ]
      }
    },
    "updated_after": {
      "description": "RFC 3339.",
      "type": "string"
    },
    "updated_before": {
      "description": "RFC 3339.",
      "type": "string"
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_get_order(order_id)

Get one order with its totals, tips, tax and discounts. API: GET /v1/orders/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string"
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_payments(company_id, order_ids, page_size, page_token)

List payments of a company, optionally for given orders. API: POST /v1/payments:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "order_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_get_payment(payment_id)

Get one payment with method, status, fees and refunds. API: GET /v1/payment/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "payment_id": {
      "type": "string"
    }
  },
  "required": [
    "payment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_discounts(company_id, page_size, page_token)

List the discount codes of a company. API: POST /v1/discounts:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_retail_products(company_id, business_ids, page_size, page_token)

List retail products for sale. API: POST /v1/retail/products:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "business_ids": {
      "description": "Only these obfuscated business ids (from moego_list_businesses).",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_memberships(company_id, name_like, page_size, page_token)

List membership plans. Filter by name. API: POST /v1/memberships:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "name_like": {
      "type": "string"
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_membership_subscriptions(company_id, customer_ids, membership_ids, page_size, page_token)

List customer membership subscriptions. API: POST /v1/memberships/subscriptions:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "membership_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_packages(company_id, customer_ids, page_size, page_token)

List prepaid service packages and their usage, optionally for given customers. API: POST /v1/packages:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "customer_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_leads(company_id, phone_number, page_size, page_token)

List sales leads (potential customers). API: POST /v1/leads:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "phone_number": {
      "type": "string"
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_get_lead(lead_id)

Get one lead. API: GET /v1/leads/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "lead_id": {
      "type": "string"
    }
  },
  "required": [
    "lead_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_agreements(company_id, business_ids, page_size, page_token)

List agreement templates (contracts and waivers) of a company. API: POST /v1/agreements:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "business_ids": {
      "description": "Only these obfuscated business ids (from moego_list_businesses).",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_list_reports(company_id)

List the business reports that exist for a company (ids for moego_fetch_report_data). API: POST /v1/reports:list.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    }
  },
  "required": [
    "company_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢moego_fetch_report_data(company_id, business_ids, report_id, period_start, period_end, ...)

Fetch the table data of one report for a time period. API: POST /v1/reports/data:fetch.

Input Schema

{
  "type": "object",
  "properties": {
    "company_id": {
      "type": "string",
      "description": "Obfuscated company id (from moego_list_companies)."
    },
    "business_ids": {
      "description": "Only these obfuscated business ids (from moego_list_businesses).",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "report_id": {
      "type": "string",
      "description": "Report id from moego_list_reports."
    },
    "period_start": {
      "description": "RFC 3339.",
      "type": "string"
    },
    "period_end": {
      "description": "RFC 3339.",
      "type": "string"
    },
    "group_by_field_keys": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "page_size": {
      "description": "Results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 200
    },
    "page_token": {
      "description": "nextPageToken from the previous page.",
      "type": "string"
    }
  },
  "required": [
    "company_id",
    "report_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴moego_append_customer_note(customer_id, note)

WRITE: add one staff note to a customer profile. It adds a new note on every call and does not replace or delete notes. Do not retry after a timeout: check moego_list_customer_notes first. API: POST /v1/customers/{id}/notes.

Input Schema

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "string"
    },
    "note": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5000,
      "description": "Note text."
    }
  },
  "required": [
    "customer_id",
    "note"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded31 tools