MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Other

Ascora MCP by usefulapi

Read customers, quotes, jobs, bookings and price list; create quotes, jobs and bookings in Ascora.

Checks passed
14 / 22

0 failed · 8 not measured

Median response
131 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
28

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Outdated check

Last connection measurement is over 24 hours old. Current availability is unknown.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 131 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name ascora-mcp.

  • Pass
    Lists tools

    tools/list returned 28 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 131 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 131 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    131 of 162 parameters have a description (81%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-10T23:35:04.651527Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using Ascora MCP by usefulapi

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http ascora-mcp-by-usefulapi https://ascora.usefulapi.io/mcp

Capabilities

Tools 28

ascora_add_note

WRITE: add a note to an enquiry, job, quote, invoice or customer (the entity must already exist). Notes cannot be edited or removed through this server, and every call adds another note. POST /Notes/Note.

Discovered
ascora_convert_quote_to_job

WRITE: convert a quote into a Job (what Convert to Job does in Ascora): supplies, labour, notes, bookings and attachments carry over and the quote is marked converted. Never forces a new job: a variation quote is added onto its original job, a quote whose job still exists is reconnected to it, and a quote already converted is refused with a message naming the existing job. Specify the parent quote number, not a section. POST /Quotes/ConvertToJob.

Discovered
ascora_create_booking

WRITE: schedule staff on a job or a quote (give exactly one of job_number / quote_number). One booking is created per staff member and the job or quote moves to Booked; the bookings show on the Scheduler and the staff mobile apps, and Ascora's own reminder settings may notify the customer or staff. Repeating the identical request returns the existing booking. By default a clash with another booking or leave refuses the whole request (reject_conflicts). POST /Bookings/Booking.

Discovered
ascora_create_customer

WRITE: create a new customer (site or billing) in Ascora. Always creates a new record (it never updates an existing customer), so search with ascora_list_customers first to avoid duplicates. A customer type or lead source name that does not exist is created. POST /Customers/Customer.

Discovered
ascora_create_enquiry

WRITE: create a new enquiry (lead) in Ascora. Every call creates another enquiry (not idempotent; Ascora allows 500 enquiries an hour per company), so do not repeat it. Needs at least a name, company, email, phone or mobile. POST /Enquiry.

Discovered
ascora_create_job

WRITE: create a new job for a site customer (it never updates an existing job). Every call creates another job; add work with a quote or in Ascora. The job is not booked and nothing is sent to the customer. POST /Jobs/Job.

Discovered
ascora_create_quote

WRITE: create a new quote (status In Progress; it is NOT sent to the customer) for a site customer, optionally with supplies, kits and labour from the price list. Ids that Ascora cannot find are skipped silently when creating, so check the totals in the reply. Every call creates another quote. POST /Quotes/Quote.

Discovered
ascora_get_booking

One booking by id: type, times (local and UTC), staff member, job/quote/activity, customers, address, notes, arrival window, rates and reminder flags. GET /Bookings/Booking/{bookingId}.

Discovered
ascora_get_customer

One Ascora customer by id (GUID from ascora_list_customers), including custom fields. GET /Customers/Customer/{id}.

Discovered
ascora_get_job

One job by its full number (e.g. J112): status, dates, totals, pricing method, job type, customers, secondary status and pipeline phase. A deleted job reads as not found. GET /Jobs/Job/{jobNumber}.

Discovered
ascora_get_job_labour

Labour lines on a job: role, hours, hourly rate, totals, staff member, chargeable and invoiced flags. GET /Jobs/JobLabour/{jobNumber}.

Discovered
ascora_get_job_timesheets

Timesheet entries on a job: staff member, start/end, hours, meal break and payroll-sent flag (pay and cost rates are not returned). GET /Jobs/JobTimesheets/{jobNumber}.

Discovered
ascora_get_quote

One quote by its full number (e.g. Q57): status, dates, totals, pricing method, addresses, job type, customers and custom fields. GET /Quotes/Quote/{quoteNumber}.

Discovered
ascora_list_activity_types

Activity types that non-job bookings (training, leave-style activities, etc.) can be made with. GET /Bookings/ActivityTypes.

Discovered
ascora_list_bookings

Search the schedule: bookings of jobs, quotes and activities with staff member, start/end, notes, arrival window and the job or quote they belong to. Archived bookings are excluded unless include_archived. GET /Bookings/Bookings.

Discovered
ascora_list_categories

Inventory categories (Category 1 or 2, top-level or sub-categories) used to filter supplies and kits. GET /Inventory/Categories.

Discovered
ascora_list_contacts

Search contacts across all customers by name, email or phone. GET /Customers/Contacts.

Discovered
ascora_list_customer_contacts

All contacts of one customer, with role and default-contact flag. GET /Customers/GetContactsForCustomer/{customerId}.

Discovered
ascora_list_customers

Search Ascora customers (sites and billing customers): id, number, name, contact, email, phone, addresses, on-hold flags, customer type, lead source, billing customer and assigned user. GET /Customers/Customers.

Discovered
ascora_list_jobs

Search jobs: number, name, status, totals, pricing method, job type, site/billing customer, secondary status and pipeline phase. Status defaults to OPEN when omitted. GET /Jobs/Jobs.

Discovered
ascora_list_kits

Search kits (bundles of supplies and labour) with part number, description, markup, sell price and pricing method. GET /Inventory/Kits.

Discovered
ascora_list_labour_roles

Labour roles with their hourly rate ex tax, ordered by name. Use the role id to add labour to a quote. GET /Quotes/LabourRoles.

Discovered
ascora_list_quotes

Search quotes: number, name, status, date, totals ex/inc tax, pricing method, job type and site/billing customer. Status defaults to OPEN (in progress or sent) when omitted. GET /Quotes/Quotes.

Discovered
ascora_list_supplier_invoices

Search supplier invoices and credit notes: supplier, dates, tracking number, lines and totals. GET /SupplierInvoices/SupplierInvoices.

Discovered
ascora_list_suppliers

Search suppliers by name, supplier number or exact business number (ABN). GET /Suppliers/Suppliers.

Discovered
ascora_list_supplies

Search the inventory price list: materials and services with part number, description, cost, sell price ex/inc tax, supplier, categories and reorder flags. Use the supply id to add items to quotes. GET /Inventory/Supplies.

Discovered
ascora_list_users

Staff users of the Ascora company (archived users excluded): id, name, email, mobile, job title, team, scheduler group, licence and access flags. Pay rates are not returned. GET /Users/Users.

Discovered
ascora_update_quote_status

WRITE: change a quote's status to IN-PROGRESS, SENT-TO-CUSTOMER, LOST or WON. WON converts the quote into a new Job (the same as ascora_convert_quote_to_job; a second WON returns the existing job). Ascora's reference documents only a status change, not an email to the customer. POST /Quotes/UpdateStatus.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected131 ms28