MCP servers › com.quailos › quailos
MCP server · registry snapshot 2026-10-23 · last tested 2026-10-23
com.quailos/quailos
Farm management for poultry, quail & egg farms: flocks, eggs, hatches, orders, tasks, calendar. — the publisher's description
Summary
com.quailos/quailos is a remote MCP server listed in the official MCP registry at version 1.0.0. On 2026-10-23 ProtocolProbe connected to it in read-only mode and read its inventory: 93 tools, 1 resource and 5 prompts.
Record checks
1 of 2 record checks met · 7 do not apply
- met: Registry entry is active and says how to run it
- not met: Source repository link opens
- not applicable: Repository is not archived
- not applicable: Code pushed to the repository in the 90 days before our check
- not applicable: Repository publishes a security policy (SECURITY.md)
- not applicable: Package names its licence with a standard (SPDX) identifier
- not applicable: The version the registry lists can be installed and is not withdrawn
- not applicable: npm package carries build provenance (attestation)
- not applicable: No known critical or high advisory in the package or its dependencies
- Not ranked by downloads: a remote server publishes no download figure
- Not ranked by stars: no public GitHub repository
From public records, not a safety rating. Each check with its reason · Is it safe to install?
Key facts
- Runs
- remote (hosted by the publisher)
- Transport
- streamable HTTP
- Sign-in
- none needed to open a session
- Tools
- 93
- Described as changing data
- 42 of 93 toolsAI-classified
- Mainly works on
- files and code on the machine it runs onAI-classified
- Pricing
- freemiumAI-classified
- Last tested
- 2026-10-23
Observed fact
This server accepted a session without any credential and lists 24 tools whose name or declaration suggests they change data (update_order_notes, create_support_ticket, create_feature_request, log_hatch_set, update_queen_status and 19 more). That is our reading of the names; we did not call them. Source: our connection, 2026-10-23.
Worth knowing before you connect it
- 42 tools are described as changing something (start_signup, update_order_notes, create_support_ticket, …): our AI model's reading of the descriptions, not something we tested, and the server opened a session without any credential. We did not call them.
Each line comes from a section below, with its source and date.
How fresh this is
- Live-tested
- yes, a real session (not a text-only review)
- Last tested
- 2026-10-23
- Mode
- read-only (no tool calls)
- Latest version
- 1.0.0, published 2026-10-04 (registry, as of the 2026-10-23 snapshot)
- First listed version
- 2026-10-04 (earliest version still in the registry; older removed versions would be earlier)
- Registry data
- snapshot 2026-10-23
- Package and repository
- checked 2026-10-22
- Engine
- mcp-runtime-engine@0.1.0 · sdk@1.32.0
Changes since the last refresh
New in the registry: not in the list of 2026-10-04, listed on 2026-10-23 with version 1.0.0 (published 2026-10-04).
Source: the official MCP Registry list on 2026-10-04 and on 2026-10-23.
What it is
What does this server offer?
Observed inventoryWhat it mainly works on, as our AI model read its tool descriptions: files and code on the machine it runs on.
42 of 93 tools are described as changing something (creating, editing, deleting, sending or running).
- plan_flockcalculates or converts
“Calculate chicken/quail flock sizing, incubation guidelines, weekly feed, spaces, and costs for any of the 310 avian breeds.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
11 inputs
modestring“Mode to size by: "household" (by people size) or "target" (by targeted eggs per week).”householdSizenumber“Household size (range 1-50, used when mode="household").”targetEggsnumber“Target eggs per week (used when mode="target").”eggUnitstring“Unit of target eggs: "chicken" or "quail".”speciesstring“Desired species: "chicken", "quail", or "mix".”quailSharenumber“Quail percentage of the flock: 0 to 1 (e.g.”purposestring“Flock purpose: "eggs", "meat", or "both".”experiencestring“Owner poultry experience level: "beginner", "some", or "experienced".”spaceAvailableSqFtnumber“Optional available square feet to validate if flock plan fits”climatestring“Optional climate winters: "mild", "cold", or "hot"”meatBirdsPerMonthnumber“Optional meat birds to raise/process per month”
“Start a QuailOS signup from chat: returns a personal prefilled signup link for the farmer (name, email, optional farm name/state/phone/species).”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
6 inputs, 2 required
namestringrequired“The farmer's full name.”emailstringrequired“The farmer's contact email address.”farmNamestring“Optional name of the farm.”statestring“Optional state/location of the farm (accepts 2-letter code e.g.”phonestring“Optional contact phone number.”speciesstring“Optional poultry species focused on (e.g.”
- update_order_notescreates or changes datadescribed as changing data
“Appends a timestamped 'via AI' note by default”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
7 inputs, 3 required
farmIdstringrequired“The unique farm ID”orderIdstringrequired“The order document ID to update”notesstringrequired“The internal notes text content”confirmboolean“Set to true to commit writes, false to preview”modestring“Mode to edit notes: "append" (timestamped suffix) or "replace" (overwrite).”confirmReplaceboolean“Must be set to true if mode is "replace" to confirm overriding existing notes.”idempotencyKeystring“Optional unique key to prevent duplicate edits”
“Retrieve registered farm vehicles for mileage logging.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input, 1 required
farmIdstringrequired“The unique farm ID”
- get_support_ticketsreads or searches
“List support tickets created by this farm.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
6 inputs, 1 required
farmIdstringrequired“The unique farm ID”statusstring“Optional status filter (e.g.”startDatestring“Optional start date filter (YYYY-MM-DD)”endDatestring“Optional end date filter (YYYY-MM-DD)”limitnumber“Optional pagination limit (default 25)”cursorstring“Optional pagination cursor”
“Create a new support ticket.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 5 required
farmIdstringrequired“The unique farm ID”subjectstringrequired“The subject of the support ticket (max 200 chars)”descriptionstringrequired“Detailed explanation of the issue (max 5000 chars)”categorystringrequired“Ticket category”prioritystringrequired“Low, Normal, or High priority”relatedRecordIdstring“Optional related order or record ID”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
“Add a reply message to an open support ticket.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
5 inputs, 3 required
farmIdstringrequired“The unique farm ID”ticketIdstringrequired“The unique support ticket ID”messagestringrequired“Reply message text (max 5000 chars)”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- get_feature_requestsreads or searches
“List feature requests submitted by this farm.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
6 inputs, 1 required
farmIdstringrequired“The unique farm ID”statusstring“Optional status filter (e.g.”startDatestring“Optional start date filter (YYYY-MM-DD)”endDatestring“Optional end date filter (YYYY-MM-DD)”limitnumber“Optional pagination limit (default 25)”cursorstring“Optional pagination cursor”
- create_feature_requestcreates or changes datadescribed as changing data
“Submit a new feature request or upvote an existing matching request.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
6 inputs, 4 required
farmIdstringrequired“The unique farm ID”titlestringrequired“The brief title of the requested feature (max 200 chars)”descriptionstringrequired“Detailed explanation of the feature (max 5000 chars)”areastringrequired“System area of request”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- get_ticket_threadreads or searches
“Retrieve full reply history and messages thread of a support ticket.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs, 2 required
farmIdstringrequired“The unique farm ID”ticketIdstringrequired“The unique support ticket ID”
- get_hatchesreads or searches
“Retrieve incubation and hatch batches.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
8 inputs, 1 required
farmIdstringrequired“The unique farm ID”statusstring“Optional status filter”startDatestring“Optional start setDate filter (YYYY-MM-DD)”endDatestring“Optional end setDate filter (YYYY-MM-DD)”varietystring“Optional variety breed name filter”incubatorstring“Optional incubator identifier filter”limitnumber“Optional pagination limit (default 50)”cursorstring“Optional pagination cursor”
- log_hatch_setcreates or changes datadescribed as changing data
“Start a new incubation batch, auto-calculating lockdown/hatch dates.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
9 inputs, 3 required
farmIdstringrequired“The unique farm ID”varietystringrequired“The poultry/gamebird breed name (e.g.”eggsSetnumberrequired“Number of eggs set (positive finite integer)”setDatestring“Optional set date (YYYY-MM-DD, defaults to today, cannot be in future)”incubatorstring“Optional incubator name/identifier”sourcestring“Optional source flock or vendor”notesstring“Optional notes”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
Show 81 more tools
- log_candlingcreates or changes datadescribed as changing data
“Log egg candling fertility results for an active batch.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 3 required
farmIdstringrequired“The unique farm ID”hatchIdstringrequired“The unique hatch batch ID”fertileCountnumberrequired“Number of fertile/developing eggs (positive integer <= eggsSet)”candleDatestring“Optional candling date (YYYY-MM-DD)”clearsnumber“Optional count of clear/infertile eggs”quittersnumber“Optional count of early quitters/dead germs”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- log_hatch_resultcreates or changes datadescribed as changing data
“Complete a batch by logging final hatch count, calculating stats, and optionally creating a bird batch.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 3 required
farmIdstringrequired“The unique farm ID”hatchIdstringrequired“The unique hatch batch ID”hatchedCountnumberrequired“Number of successfully hatched chicks (positive integer <= eggsSet)”hatchDatestring“Optional hatch date (YYYY-MM-DD)”createBirdBatchboolean“Automatically log as an active bird batch census (defaults to false)”locationstring“Optional location for bird batch (Brooder, etc.”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- log_hive_inspectioncreates or changes datadescribed as changing data
“Log a detailed beekeeping hive inspection.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
13 inputs, 2 required
farmIdstringrequired“The unique farm ID”hiveIdstringrequired“The unique hive ID”datestring“Optional inspection date (YYYY-MM-DD)”queenSeenstring“Was the queen seen?”eggsSeenboolean“Are eggs/fresh brood present?”larvaeSeenboolean“Are larvae present?”cappedSeenboolean“Is capped brood present?”feedStatusstring“Food stores status”actionsTakenstring“Optional details of actions taken”varroaCountnumber“Optional mite count”honeyHarvestedOznumber“Optional honey harvested in ounces”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- log_varroa_treatmentcreates or changes datadescribed as changing data
“Record a mite treatment chemical or acid application.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 4 required
farmIdstringrequired“The unique farm ID”hiveIdstringrequired“The unique hive ID”productstringrequired“Treatment product name (e.g.”dosestringrequired“Treatment dose or instructions”datestring“Optional treatment start date (YYYY-MM-DD)”withdrawalDatestring“Optional honey withdrawal end date (YYYY-MM-DD)”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- log_honey_harvestcreates or changes datadescribed as changing data
“Log honey extracted and optionally add directly to stock inventory.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
10 inputs, 2 required
farmIdstringrequired“The unique farm ID”hiveIdstring“The unique hive ID (optional if yardId is provided)”yardIdstring“The apiary yard ID (optional if hiveId is provided)”weightnumberrequired“Harvested honey weight in lbs (positive number)”supersPullednumber“Optional count of honey supers pulled (integer)”framesPullednumber“Optional count of frames pulled (integer)”datestring“Optional harvest date (YYYY-MM-DD)”addToInventoryboolean“Automatically add honey weight to inventory stock (defaults to false)”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- update_queen_statuscreates or changes datadescribed as changing data
“Update the live queenright and breeder metadata settings of a hive.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 3 required
farmIdstringrequired“The unique farm ID”hiveIdstringrequired“The unique hive ID”statusstringrequired“The queen status”datestring“Optional status change date (YYYY-MM-DD)”queenMarkingstring“Optional queen marking/label”queenSourcestring“Optional queen breed/source”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- create_hivecreates or changes datadescribed as changing data
“Register a new beehive in an apiary yard.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 4 required
farmIdstringrequired“The unique farm ID”yardIdstringrequired“The unique apiary yard ID”namestringrequired“The name or identifier of the hive (e.g.”dateEstablishedstring“Optional date established (YYYY-MM-DD)”sourcestringrequired“Source origin of the colony”colorCodestring“Optional color marker hex code”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
“Verify server connectivity, handshake responsiveness, and platform status.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
Takes no inputs.
- get_npip_stock_codesreads or searches
“Resolve biological poultry and game-bird varieties to regulatory federal NPIP stock numbers.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
4 inputs
categorystring“Optional filter: game-birds, waterfowl, or commercial.”querystring“Optional keyword search for variety name or code.”limitnumber“Optional pagination limit (default 50, max 200)”cursorstring“Optional pagination cursor”
- get_public_farmsreads or searches
“Search the QuailOS public farm directory.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs
statestring“Optional 2-letter state code filter (e.g.”querystring“Optional keyword search for farm name, bio, or specialties.”
- get_public_wiki_pagesreads or searches
“Search published public QuailOS poultry, game-bird, and hatchery guide articles and walkthroughs.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs
querystring“Optional search keyword for article title or content.”limitnumber“Optional limit (default 15)”cursorstring“Optional cursor”
- list_quail_varietiesreads or searches
“List all registered Coturnix quail varieties with their display names, unique IDs, description, and exact genotype mappings.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
Takes no inputs.
- predict_quail_crosscalculates or converts
“Calculate offspring plumage color probability distributions and percentages when crossing a specific sire and dam variety.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs, 2 required
sirestringrequired“The sire variety name or unique ID (case-insensitive, e.g.”damstringrequired“The dam variety name or unique ID (case-insensitive)”
- find_quail_pairingsreads or searches
“Perform a reverse genetic lookup to find all possible parent pairings (sire and dam) that can produce a targeted plumage color variety.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs, 1 required
target_varietystringrequired“The target offspring variety name or unique ID (case-insensitive, e.g.”limitnumber“Optional max pairings limit to return (default 10)”
“Retrieve active/pending farm management tasks.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs, 1 required
farmIdstringrequired“The unique farm ID”statusstring“Optional task status filter: Pending, In Progress”
“Retrieve calendar events for the farm including hatches, local events, rentals, and task due dates.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
farmIdstringrequired“The unique farm ID”startDatestring“Optional start date filter (ISO string or YYYY-MM-DD)”endDatestring“Optional end date filter (ISO string or YYYY-MM-DD)”
“Retrieve the farm's sales orders (manual, connected stores and incoming dropships), newest first.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
11 inputs, 1 required
farmIdstringrequired“The unique farm ID”statusstring“Optional filter: pending, partially_fulfilled, fulfilled, unfulfilled, shipped, etc.”salesChannelstring“Optional.”shippingStatestring“Optional.”unfulfilledOnlyboolean“Optional.”olderThanDaysnumber“Optional.”createdBeforestring“Optional.”limitnumber“Optional max number of orders to return (default 50, max 100)”cursorstring“Optional pagination cursor: the nextCursor string from the previous get_orders response, passed verbatim with the same filters.”startDatestring“YYYY-MM-DD = that whole day in the farm's local time zone (default America/New_York), inclusive; or ISO 8601 datetime”endDatestring“YYYY-MM-DD = that whole day in the farm's local time zone (default America/New_York), inclusive; or ISO 8601 datetime”
- get_order_feedbackreads or searches
“List customer feedback left on online orders (the Online Orders > Feedback tab): hatch-rate reports with eggs set/hatched, star rating and comments, plus shipping damage reports.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
12 inputs, 1 required
farmIdstringrequired“The unique farm ID”typestring“Optional report type filter”startDatestring“Optional start date (YYYY-MM-DD in farm time or ISO datetime)”endDatestring“Optional end date (YYYY-MM-DD in farm time or ISO datetime)”minRatingnumber“Optional minimum star rating 1-5 (hatch reports only)”maxRatingnumber“Optional maximum star rating 1-5 (hatch reports only)”orderIdstring“Optional order ID to match feedback for a single order”isPublicboolean“Optional filter: true = shown in Farm Directory, false = private”limitnumber“Optional max results (default 25, max 100)”cursorstring“Optional pagination cursor (nextCursor from a previous call)”feedbackIdstring“Optional feedback report ID to fetch a single report (other filters are ignored).”includeContactboolean“Optional, default false.”
- get_customer_detailsreads or searches
“Retrieve detailed profile of a specific customer in your CRM by email or name.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
4 inputs, 2 required
farmIdstringrequired“The unique farm ID”emailOrNamestringrequired“The customer email or full name to search (min 2 chars)”limitnumber“Optional max number of customers to return (default 25)”cursorstring“Optional pagination cursor”
- get_meat_inventoryreads or searches
“Retrieve meat processing logs and cold storage/freezer inventory.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input, 1 required
farmIdstringrequired“The unique farm ID”
- get_beekeeping_apiaryreads or searches
“Retrieve active yards, hives, queen statuses, and varroa inspections.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input, 1 required
farmIdstringrequired“The unique farm ID”
- get_financial_pnlreads or searches
“Retrieve summarized expenses, income, cash flow, and profit-and-loss details.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs, 1 required
farmIdstringrequired“The unique farm ID”monthstring“Optional month filter (e.g.”
- get_feed_inventoryreads or searches
“Retrieve active feed inventory, feed purchases, and feed mill logs.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input, 1 required
farmIdstringrequired“The unique farm ID”
- get_vendors_and_posreads or searches
“Retrieve purchase orders and vendor profiles.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input, 1 required
farmIdstringrequired“The unique farm ID”
- get_egg_collectionsreads or searches
“Retrieve daily egg production logs and collection counts.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
5 inputs, 1 required
farmIdstringrequired“The unique farm ID”startDatestring“Optional start date filter (YYYY-MM-DD or ISO.”endDatestring“Optional end date filter (YYYY-MM-DD or ISO, interpreted in farm timezone).”limitnumber“Optional pagination limit (default 50, max 500)”cursorstring“Optional pagination cursor”
- get_mileage_logsreads or searches
“Retrieve registered vehicle mileage logs for tax and expense auditing.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
5 inputs, 1 required
farmIdstringrequired“The unique farm ID”limitnumber“Optional pagination limit”cursorstring“Optional cursor”startDatestring“Optional start date YYYY-MM-DD in farm time or ISO”endDatestring“Optional end date YYYY-MM-DD in farm time or ISO”
- get_bird_batchesreads or searches
“Retrieve active and archived poultry census batches from the flock inventory.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
farmIdstringrequired“The unique farm ID”limitnumber“Optional pagination limit”cursorstring“Optional cursor”
- get_time_logsreads or searches
“Retrieve registered worker time clocks and logged task labor hours.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
farmIdstringrequired“The unique farm ID”limitnumber“Optional pagination limit”cursorstring“Optional cursor”
“Retrieve manual general ledger expense, income, and equity transactions.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
farmIdstringrequired“The unique farm ID”limitnumber“Optional pagination limit”cursorstring“Optional cursor”
“Create a new farm management task.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 2 required
farmIdstringrequired“The unique farm ID”titlestringrequired“The title of the task (e.g.”descriptionstring“Optional description”prioritystring“Low, Medium, or High priority”dueDatestring“Optional due date (YYYY-MM-DD)”assignedToNamestring“Optional name of the assigned worker”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
“Mark a task as Completed and update recurrence.”
Publisher declares: read-only no · destructive yes · idempotent no · open-world no
6 inputs, 3 required
farmIdstringrequired“The unique farm ID”taskIdstringrequired“The unique task ID to complete”notesstring“Optional completion notes”hoursLoggednumber“Optional labor hours to log”confirmbooleanrequired“Must be set to true to commit this destructive completion write”idempotencyKeystring“Unique request idempotency key”
“Update properties of an existing task.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
12 inputs, 2 required
farmIdstringrequired“The unique farm ID”taskIdstringrequired“The unique task ID to update”titlestring“Optional updated task title”descriptionstring“Optional updated description”dueDatestring“Optional updated due date (YYYY-MM-DD, or null/"" to clear)”prioritystring“Optional updated priority (Low, Medium, or High)”assignedToNamestring“Optional updated assigned worker name”assignedToUserIdstring“Optional updated assigned worker user ID”isRecurringboolean“Optional flag indicating if the task recurs”recurrencePatternstring“Optional recurrence pattern”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
“Log labor time for farm work or tasks.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 3 required
farmIdstringrequired“The unique farm ID”minutesnumberrequired“Labor time spent in minutes (integer from 1 to 1440)”categorystringrequired“Work category (e.g.”taskIdstring“Optional associated task ID”notestring“Optional notes (max 1000 chars)”datestring“Optional log date (YYYY-MM-DD, defaults to today in farm time zone)”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- log_eggscreates or changes datadescribed as changing data
“Log a new daily egg collection count.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 2 required
farmIdstringrequired“The unique farm ID”quantitynumberrequired“The number of eggs collected (positive finite number <= 100000)”typestring“Optional variety (e.g.”speciesstring“Optional alias for type (variety/species).”notesstring“Optional notes”datestring“Optional log date (YYYY-MM-DD)”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
“Add a new customer to the CRM with deduping.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
9 inputs, 2 required
farmIdstringrequired“The unique farm ID”namestringrequired“The full name of the customer”emailstring“Optional email (checked for deduping)”phonestring“Optional phone number (checked for deduping)”addressstring“Optional street address”tagsarray“Optional search tags”marketingOptInboolean“Marketing and Plunk opt-in (defaults to false)”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
“Create a new calendar event on the farm’s timeline.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
7 inputs, 3 required
farmIdstringrequired“The unique farm ID”titlestringrequired“The event title”startstringrequired“Start date/time (ISO string or YYYY-MM-DD)”endstring“End date/time (ISO string or YYYY-MM-DD, must be >= start, max 365 days length)”descriptionstring“Optional description”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- log_mileagecreates or changes datadescribed as changing data
“Log a vehicle travel trip with automatic trip-date IRS rate calculations.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
11 inputs, 4 required
farmIdstringrequired“The unique farm ID”distancenumberrequired“The travel distance in miles (positive finite number <= 5000)”purposestringrequired“The business purpose of the trip”destinationstringrequired“The trip destination location”categorystring“Tax category (defaults to BUSINESS)”vehicleIdstring“Optional ID of the vehicle used”vehicleNamestring“Optional name of the vehicle”notesstring“Optional notes”datestring“Optional trip date (YYYY-MM-DD)”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- log_feed_purchasecreates or changes datadescribed as changing data
“Log a feed purchase and automatically increment feed assets inventory.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
9 inputs, 4 required
farmIdstringrequired“The unique farm ID”feedTypestringrequired“The feed formulation or label (e.g.”bagsnumberrequired“Number of bags purchased (positive finite integer <= 10000)”lbsPerBagnumber“Weight per bag in pounds (defaults to 50, <= 5000)”pricePerBagnumberrequired“Price per bag (positive finite number <= 10000)”sourcestring“Optional merchant or mill source”datestring“Optional purchase date (YYYY-MM-DD)”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- log_manual_transactioncreates or changes datadescribed as changing data
“Log a manual income, expense, or equity transaction.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 4 required
farmIdstringrequired“The unique farm ID”typestringrequired“Income, Expense, or Equity”amountnumberrequired“The absolute transaction amount (positive finite number <= 10000000)”categorystringrequired“Ledger category (e.g.”descriptionstring“Optional descriptive note”datestring“Optional transaction date (YYYY-MM-DD)”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- log_bird_batchcreates or changes datadescribed as changing data
“Log a new bird inventory census batch.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
8 inputs, 5 required
farmIdstringrequired“The unique farm ID”varietystringrequired“The quail or poultry variety”quantitynumberrequired“The number of birds in the batch (positive finite integer <= 50000)”hatchDatestringrequired“The hatch date (YYYY-MM-DD, cannot be in the future)”locationstringrequired“Current location (Brooder, Grow-out, Layer, Breeder, Other)”notesstring“Optional notes”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystring“Unique request idempotency key”
- get_production_ordersreads or searches
“Retrieve manufacturing production orders for farm inventory.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
4 inputs, 1 required
farmIdstringrequired“The unique farm ID”statusstring“Optional status filter”skustring“Optional product SKU filter”limitnumber“Optional pagination limit (default 50, max 100)”
- create_production_ordercreates or changes datadescribed as changing data
“Create a new Draft manufacturing production order for a product with a valid BOM recipe.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
7 inputs, 4 required
farmIdstringrequired“The unique farm ID”skustringrequired“SKU of the finished product with a valid BOM recipe”qtynumberrequired“Quantity to produce (positive whole integer <= 100000)”dueDatestring“Optional due date (YYYY-MM-DD)”notesstring“Optional notes”confirmboolean“Set to true to commit, false for dry-run preview”idempotencyKeystringrequired“Unique request idempotency key (REQUIRED)”
“Permanently delete a task in this farm.”
Publisher declares: read-only no · destructive yes · idempotent yes · open-world no
3 inputs, 3 required
farmIdstringrequired“The unique farm ID”taskIdstringrequired“The unique task ID to delete”confirmbooleanrequired“Must be set to true to permanently delete this task”
“Permanently delete a calendar event in this farm.”
Publisher declares: read-only no · destructive yes · idempotent yes · open-world no
3 inputs, 3 required
farmIdstringrequired“The unique farm ID”eventIdstringrequired“The unique event ID to delete”confirmbooleanrequired“Must be set to true to permanently delete this calendar event”
- log_meatcreates or changes datadescribed as changing data
“Log a new meat processing batch and record the resulting cuts to freezer inventory.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
12 inputs, 5 required
farmIdstringrequired“The unique farm ID”datestring“Date processed in YYYY-MM-DD format (defaults to today)”varietystringrequired“The species or breed variety processed (e.g., Jumbo Coturnix)”partstringrequired“The cut/part type (e.g., Whole Bird, Breast, Leg).”quantitynumberrequired“Positive integer quantity of units processed”unitsstringrequired“Measurement units for quantity”weightPerUnitnumber“Optional average weight per processed unit”totalWeightnumber“Optional total weight of the batch (used to calculate average weight)”batchIdstring“Optional unique batch/hatch ID associated with these birds”notesstring“Optional notes”confirmboolean“Set to true to persist the write, otherwise returns a dry-run preview”idempotencyKeystring“Optional unique client-provided key to prevent duplicate processing”
“List messages in this farm's QuailOS Email Assistant inbox (the mailbox the farm connected in Office > Email Assistant: Forwarding Bridge and/or IMAP accounts).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
8 inputs, 1 required
farmIdstringrequired“The unique farm ID”folderstring“Folder to list (default INBOX).”unreadOnlyboolean“Only unread messages”querystring“Optional case-insensitive text match on subject, sender, recipients and snippet (max 200 chars)”sincestring“Optional ISO date/datetime: only messages on/after this time”untilstring“Optional ISO date/datetime: only messages on/before this time (a bare YYYY-MM-DD includes that whole day, UTC)”limitnumber“Max messages to return (1-50, default 20)”cursorstring“Optional: the nextCursor string from the previous list_emails response, passed verbatim with the same filters”
“Read one Email Assistant message as sanitized plain text, plus its conversation thread and any open AI drafts for that thread.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
5 inputs, 2 required
farmIdstringrequired“The unique farm ID”emailIdstringrequired“Message id from list_emails”includeThreadboolean“Include the other messages in the conversation (default true, max 20)”maxBodyCharsnumber“Max characters per message body (200-50000, default 8000)”fetchFullboolean“If the cached copy was truncated and the message came from an IMAP account, fetch the full body from the mail server (read-only)”
- draft_email_replycreates or changes datadescribed as changing data
“Create a reply DRAFT for an Email Assistant conversation.”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
7 inputs, 3 required
farmIdstringrequired“The unique farm ID”emailIdstringrequired“The message being replied to (from list_emails/get_email)”bodystringrequired“Plain-text reply body (1-20000 chars)”subjectstring“Optional subject (default "Re: <original subject>")”tostring“Optional recipient address; must already be a participant of this conversation (default: the original sender)”showInAppboolean“Pre-fill the QuailOS reply box for this thread with the draft (default true; replaces any auto Magic Draft suggestion shown there)”idempotencyKeystring“Optional unique client key; repeating it returns the same draft”
“Archive, move (INBOX/ARCHIVE/TRASH/SPAM) or mark read/unread Email Assistant messages, exactly like the Email Assistant buttons (updates QuailOS and mirrors to the IMAP mailbox when the message came …”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
5 inputs, 2 required
farmIdstringrequired“The unique farm ID”emailIdsarray“Message ids (1-50).”emailIdstring“Single message id”actionstringrequired“archive | move (needs folder) | mark_read | mark_unread”folderstring“Target folder for action "move"”
“Send an existing reply draft (from draft_email_reply) from the farm's Email Assistant mailbox.”
Publisher declares: read-only no · destructive yes · idempotent no · open-world yes
3 inputs, 2 required
farmIdstringrequired“The unique farm ID”draftIdstringrequired“Draft id returned by draft_email_reply”confirmboolean“Must be true to actually send.”
- list_supplier_opportunitiesreads or searches
“List Active Supply Opportunities (what QuailOS/Undique is currently buying from member farms, e.g.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
1 input
farmIdstring“Optional farm ID when calling with an AI key (not required for public use)”
- get_make_money_with_quail_guidereads or searches
“Signup-oriented guide for making money via Supply Opportunities (Undique buying product from farms).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
Takes no inputs.
- express_supplier_interestcreates or changes datadescribed as changing data
“Show interest in a DIRECT_SHIP (or any Active) Supply Opportunity for this farm.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
5 inputs, 2 required
farmIdstringrequired“The unique farm ID”campaignIdstringrequired“Active buyingCampaign id”notestring“Optional note for the support ticket”confirmboolean“Set true to persist; otherwise dry-run preview”idempotencyKeystring“Optional client key to prevent duplicate interest”
- create_supplier_shipmentcreates or changes datadescribed as changing data
“Create a Draft Bulk-Supply farm shipment (Sell Parts) for this farm.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
7 inputs, 5 required
farmIdstringrequired“The unique farm ID”campaignIdstringrequired“Active BULK_SUPPLY buyingCampaign id”quantitynumberrequired“Units to reserve; must be >= campaign.minQuantity”paymentMethodstringrequired“e.g.”paymentDetailsstringrequired“Payment destination details (stored on shipment; never logged)”confirmboolean“Set true to persist; otherwise dry-run preview”idempotencyKeystring“Optional client key to prevent duplicate shipment”
- update_supplier_shipment_trackingcreates or changes datadescribed as changing data
“Add carrier/tracking to this farm's Draft supplier shipment and mark it Shipped (same as SupplierPage).”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
6 inputs, 4 required
farmIdstringrequired“The unique farm ID”shipmentIdstringrequired“farmShipments document id owned by this farm”carrierstringrequired“Carrier name e.g.”trackingNumberstringrequired“Tracking number (stored; never written to mcp_logs)”shippingCostnumber“Optional shipping cost”confirmboolean“Set true to persist; otherwise dry-run preview”
- list_my_supplier_shipmentsreads or searches
“List this farm's Supply Opportunity shipments only (Financial Dashboard equivalent).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
farmIdstringrequired“The unique farm ID”limitnumber“Max rows (1-100, default 25)”cursorstring“Optional shipment id cursor from previous page”
- list_rentahatch_vendorsreads or searches
“List Rent-a-Hatch vendors (farms with rentalSettings).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
farmIdstringrequired“Ops farm ID for the SuperAdmin AI key”listingActiveboolean“Optional filter: true=live, false=hidden; omit=any with rentalSettings”limitnumber“Max vendors (1-200, default 50)”
- get_rentahatch_vendorreads or searches
“Get one Rent-a-Hatch vendor by farmId or slug.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
farmIdstringrequired“Ops farm ID for the SuperAdmin AI key”vendorFarmIdstring“Target farm id”slugstring“rentalSettings.slug (alternative to vendorFarmId)”
- list_rentahatch_waitlistreads or searches
“List rent_a_hatch_waitlist customer prospects (NOT vendor applications).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
5 inputs, 1 required
farmIdstringrequired“Ops farm ID for the SuperAdmin AI key”statusstring“Optional status filter”zipstring“Optional ZIP filter”limitnumber“1-100, default 50”cursorstring“Entry id cursor”
- update_rentahatch_waitlist_statuscreates or changes datadescribed as changing data
“Update a waitlist prospect status (pending|contacted|recruited|closed) or delete:true.”
Publisher declares: read-only no · destructive yes · idempotent no · open-world no
5 inputs, 2 required
farmIdstringrequiredentryIdstringrequiredstatusstringdeleteboolean“If true, delete the entry”confirmboolean
- list_rentahatch_bookingsreads or searches
“List rentals bookings.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
6 inputs, 1 required
farmIdstringrequiredvendorFarmIdstring“Optional filter by rental farmId”statusstring“Optional rental status filter”includeContactboolean“Include customer email/phone (audited)”limitnumbercursorstring
- list_rentahatch_payoutsreads or searches
“List payout_ledger rows.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
4 inputs, 1 required
farmIdstringrequiredstatusstringvendorFarmIdstringlimitnumber
- set_rentahatch_listing_activecreates or changes datadescribed as changing data
“Set a vendor listingActive true/false (Live/Hidden).”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 3 required
farmIdstringrequiredvendorFarmIdstringrequiredlistingActivebooleanrequiredconfirmboolean
- update_rentahatch_payout_statuscreates or changes datadescribed as changing data
“Mark a payout_ledger row paid with paymentReference (Rent Admin Mark as Paid).”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
5 inputs, 4 required
farmIdstringrequiredledgerIdstringrequiredstatusstringrequiredpaymentReferencestringrequiredconfirmboolean
- activate_rentahatch_bookingcreates or changes datadescribed as changing data
“Manually mark a rental paid/active (pending_payment → active).”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
3 inputs, 2 required
farmIdstringrequiredbookingIdstringrequiredconfirmboolean
- list_farm_notesreads or searches
“List Farm Notes for this farm (Office > Farm Notes).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
3 inputs, 1 required
farmIdstringrequiredlimitnumbercursorstring
- get_farm_notereads or searches
“Get one Farm Note by noteId.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs, 2 required
farmIdstringrequirednoteIdstringrequired
- create_farm_notecreates or changes datadescribed as changing data
“Create a Farm Note (content + optional date YYYY-MM-DD).”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
4 inputs, 2 required
farmIdstringrequiredcontentstringrequireddatestringconfirmboolean
- update_farm_notecreates or changes datadescribed as changing data
“Update a Farm Note content and/or date.”
Publisher declares: read-only no · destructive no · idempotent no · open-world no
5 inputs, 2 required
farmIdstringrequirednoteIdstringrequiredcontentstringdatestringconfirmboolean
- delete_farm_notedeletesdescribed as changing data
“Delete a Farm Note.”
Publisher declares: read-only no · destructive yes · idempotent no · open-world no
3 inputs, 2 required
farmIdstringrequirednoteIdstringrequiredconfirmboolean
- list_farm_times_headlinesreads or searches
“List active The Farm Times headlines (system community news).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
Takes no inputs.
- list_farm_times_articlesreads or searches
“List published Farm Times / community_news articles.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
2 inputs
limitnumbercursorstring
- get_farm_times_articlereads or searches
“Get one Farm Times article by id or slug.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
2 inputs
articleIdstringslugstring
- list_quailos_tvreads or searches
“List QuailOS TV videos.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
2 inputs
statusstring“Default approved.”limitnumber
- get_quailos_tvreads or searches
“Get one QuailOS TV video by doc id or YouTube videoId.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
2 inputs
idstringvideoIdstring
- list_academy_coursesreads or searches
“List published QuailOS Academy courses (excludes Rent-a-Hatch category).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
2 inputs
farmIdstring“Optional: when provided, annotate free access for this farm tier”limitnumber
- get_academy_coursereads or searches
“Get one published Academy course with modules/lessons metadata.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world yes
2 inputs, 1 required
courseIdstringrequiredfarmIdstring
- list_my_academy_enrollmentsreads or searches
“List this farm's Academy enrollments/progress (read-only).”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
1 input, 1 required
farmIdstringrequired
- enroll_academy_coursecreates or changes datadescribed as changing data
“Enroll this farm in a free QuailOS Academy course (or preview free eligibility for plan tier).”
Publisher declares: read-only no · destructive no · idempotent yes · open-world no
4 inputs, 2 required
farmIdstring“Optional farmId (must match key farmId)”courseIdstringrequiredconfirmboolean“Set to true to confirm enrollment”idempotencyKeystringrequired
“List QuailOS Library items.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs, 1 required
farmIdstringrequiredlimitnumber
“Get one Library item.”
Publisher declares: read-only yes · destructive no · idempotent yes · open-world no
2 inputs, 2 required
farmIdstringrequireditemIdstringrequired
Each quoted sentence is the first sentence of the publisher’s own description. The kind of tool and the “changes data” mark are our AI model’s reading of that description, not something we tested: two differently worded runs had to agree, otherwise no label is shown, and nobody has checked them by hand. A tool without the “changes data” mark is described as only reading, searching or calculating, or the two runs did not agree. No tool was called. Read the publisher’s full description before relying on it. “Publisher declares” lists the hints the server itself sends with the tool (MCP annotations: read-only, destructive, idempotent, open-world); they are the publisher's claims, not checked by us. Inputs are the parameters in the tool's own input schema: name, declared type, whether it is required, and the first sentence of its description. Read 2026-10-23.
How well are its tools described?
Features #4 and #5
How clearly this server's own tool descriptions say what a tool does, and how consistent its tool list is. The first part is an AI model's yes/no reading of each description; the second part is counted. We do not turn it into a grade.
Descriptions
AI reading of each description
- Says what the tool does
- 100% of 93 tools
- Says what it returns
- 58% of 92 tools
- States limits, defaults or errors
- 48% of 64 tools
- Says when to use it
- 9% of 81 tools
- Items covered per tool
- 2.2 of 4 on average
Counted from the listing
- Parameters with a description
- 88% of 457
- Tools with a description
- 100% of 93
- Typical description length
- 138 characters
The tool set
Counted from the listing
- Tools
- 93
- Size of the list
- about 18,897 tokens for an agent to load (characters ÷ 4)
- Naming
- 92 of 93 names use snake_case
AI reading: easy to mix up
No pair found.
The AI items cover 93 of 93 tools: for a tool where two differently worded runs disagreed, that item is left out. They were not checked by hand, and no tool was called. “Easy to mix up” means two tools whose names or descriptions overlap without saying how they differ; the AI found none, comparing tools within groups of 40. We do not rate whether the tool set is complete or whether side effects are spelled out, because our AI reading of those was not reliable enough.
How do I add it to my client?
Config from the registry entry
From the remote endpoint (Streamable HTTP)
We connected to this URL on 2026-10-23 (a read-only session: no tool was called).
Add to CursorAn install link in the format Cursor documents, holding the Cursor config below.
Claude Desktop or claude.ai
Settings → Connectors → Add custom connector, then paste: https://www.quailos.com/api/mcp/message
Cursor · .cursor/mcp.json in a project, or ~/.cursor/mcp.json
{
"mcpServers": {
"quailos": {
"url": "https://www.quailos.com/api/mcp/message"
}
}
}VS Code · .vscode/mcp.json
{
"servers": {
"quailos": {
"type": "http",
"url": "https://www.quailos.com/api/mcp/message"
}
}
}VS Code (command line) · Bash or zsh terminal (macOS, Linux)
code --add-mcp '{"name":"quailos","type":"http","url":"https://www.quailos.com/api/mcp/message"}'Claude Code
claude mcp add --transport http quailos https://www.quailos.com/api/mcp/message
Try it in the MCP Inspector · runs on your machine, opens in your browser · Node 22.19+
npx @modelcontextprotocol/inspector@2.11.0 --server-url https://www.quailos.com/api/mcp/message --transport http
- Optional settings the entry also lists (left out above): X-Api-Key, X-Farm-Id.
- The server runs on the operator's infrastructure; it may ask you to sign in when you first connect.
- The MCP Inspector lists the server's tools, resources and prompts; a tool you call there runs for real.
Built from the server's registry entry with each client's documented format (checked 2026-10-14; the Cursor link and the VS Code command 2026-10-19; the MCP Inspector command 2026-10-21). Values in < > are yours to fill in; this page never contains a key. Where the server needs a setting the entry does not declare, it can still fail to start.
Does the registry listing match what we found?
Feature #6The registry verifies a package once, when it is published, and does not re-check it. A difference below is about the listing, not a judgement of the publisher.
| Registry says | We found | Result | Source · date |
|---|---|---|---|
| Remote endpoint www.quailos.com/api/mcp/message | Session opened | matches | our test · 2026-10-23 |
| No credential declared as required | Opened a session without any credential | matches | our test · 2026-10-23 |
Choosing
Record checks
Public records · not a safety rating1 of 2 record checks met · 7 do not apply
- Not ranked by downloads: a remote server publishes no download figure
- Not ranked by stars: no public GitHub repository
- MetRegistry entry is active and says how to run itActive, with a package or a remote address.
- Not metSource repository link opensThe registry entry gives no repository link.
- Does not applyRepository is not archivedNo public GitHub repository to read.
- Does not applyCode pushed to the repository in the 90 days before our checkNo public GitHub repository to read.
- Does not applyRepository publishes a security policy (SECURITY.md)No public GitHub repository to read.
- Does not applyPackage names its licence with a standard (SPDX) identifierRemote server: it ships no package.
- Does not applyThe version the registry lists can be installed and is not withdrawnRemote server: it ships no package.
- Does not applynpm package carries build provenance (attestation)Remote server: it ships no package.
- Does not applyNo known critical or high advisory in the package or its dependenciesRemote server: it ships no package.
Read from public records only: the registry entry, npm/PyPI, GitHub and advisory databases, checked 2026-10-22. No tool was called. Only “met” and “not met” are counted, so the total differs between servers; a check that does not apply or that we could not run is listed, never counted against it. It is not a safety rating. How each check works · Leaderboards
Common questions about com.quailos/quailos
Answered from the data aboveIs com.quailos/quailos safe to install?
We do not rate servers as safe or unsafe. 1 of its 2 applicable record checks are met (facts from public records, each listed on this page). What the records show: 42 of its tools describe changing data (our AI model's reading of the descriptions). These are facts with their sources on this page, not a safety guarantee, and we did not run its tools.
Is com.quailos/quailos free to use?
Its website (www.quailos.com/llms.txt) describes a freemium pricing model. This is an AI-classified reading of the page on 2026-10-23, so check the page itself before relying on it.
Does com.quailos/quailos need an API key or sign-in?
It opened a session without any credential on 2026-10-23. The registry entry declares no required credential; no declaration is not a guarantee.
Has com.quailos/quailos been security tested?
Partly. 4 of the 15 checks that apply to it were exercised. It accepted a session without any credential and lists tools whose names suggest they change data. We did not call them. No security verdict is published before verification.
What can com.quailos/quailos do?
It lists 93 tools. In our AI model's reading of their descriptions (two runs had to agree, nobody checked it by hand), they include tools that read or search, create or change data, delete, send messages and calculate or convert. We did not call any tool, so this describes the text, not the behaviour.
Can com.quailos/quailos change or delete data?
42 of its tools say in their description that they create, edit, delete, send or run something (our AI model's reading). We did not call any tool, so we cannot say what actually happens.
Found this page useful?
Anonymous · no sign-inA quick, anonymous reaction — no account, no email. One per kind from your browser. The tally updates when the page is next refreshed, and it is only a rough count, never a safety rating or a measured number of people.
Compare with another server
Side by side: registry entry, our read-only session, the tools and the 18 classification fields. Same values as each page; no score.
Security testing
What did we test, and what did we leave out?
18 checks · features #1, #2
Open without sign-in
It accepted a session without any credential and lists tools whose names suggest they change data. We did not call them. No security score is given; a check we did not run is never counted as passed.
- Inventory: exercised
- Hidden instructions: exercised
- Real execution: not run · our policy
- Secret leak: not run · nothing to check it against
- Internal addresses: not run · our policy
- Unconfirmed changes: not run · our policy
- Bad input: not run · our policy
- Model requests: not run · nothing to check it against
- Sensitive questions: not run · nothing to check it against
- Folder boundary: not run · our policy
- Log leaks: not run · nothing to check it against
- Hidden content: exercised
- Fake assistant turns: exercised
- Token passthrough: not applicable
- Token audience: not applicable
- Sign-in redirect: not run · our policy
- Consent handling: not testable from outside
- Sign-in metadata: not applicable
4 exercised11 not run (reason given)3 not applicable
Each check ends in exactly one state: exercised, not run (with the reason), or not applicable (with the reason). 4 of the 15 checks that apply to it were exercised. We do not publish security-check outcomes for named servers.
- 1Inventory
tool-listReads the declared tools, resources and prompts.exercised - 2Hidden instructions
description-poisoningLooks for hidden instructions in tool descriptions.exercised - 12Hidden content
audience-hidingChecks resources that hide content from the user.exercised - 13Fake assistant turns
fake-assistant-turnChecks prompts that pose as the assistant's own words.exercised
- 3Real execution
real-executionCalls a tool and checks what really happens.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 4Secret leak
canary-leakPlants a fake secret and checks whether it leaks.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 5Internal addresses
ssrfChecks whether a tool can be steered to internal addresses.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 6Unconfirmed changes
write-without-confirmationChecks whether tools that change data act without asking.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 7Bad input
error-handlingSends bad input and watches how the server answers.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 8Model requests
samplingChecks whether the server asks the client's model to act for it.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 9Sensitive questions
elicitation-sensitive-dataChecks whether the server asks users for sensitive data.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 10Folder boundary
root-boundaryChecks whether the server reaches outside the folders it was given.This check calls the server's tools. ProtocolProbe calls no server's tools for anything it publishes; an operator can run this check on their own server with our self-test command.not run · our policy - 11Log leaks
logging-side-channelChecks whether log messages carry data they should not.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against - 16Sign-in redirect
open-redirectChecks the sign-in redirect for abuse.Testing the sign-in redirect means sending probes to the operator's sign-in service, which we do not do.not run · our policy - 17Consent handling
confused-deputyChecks consent handling when one service acts for another.Depends on the operator's own consent screen, which differs per server and cannot be tested from outside.not testable from outside
- 14Token passthrough
token-passthroughChecks whether the server forwards a user's token to other services.The server opened a session without sign-in, so there is no token flow to check.not applicable - 15Token audience
token-audience-validationChecks whether tokens meant for another service are accepted.The server opened a session without sign-in, so there is no token flow to check.not applicable - 18Sign-in metadata
oauth-url-schemeChecks the published sign-in metadata for unsafe URLs.No sign-in (OAuth) metadata is published, so there are no sign-in addresses to check.not applicable
Source: our own test, 2026-10-23, mcp-runtime-engine@0.1.0. Which checks count and why follows our published scoring model.
What happened during the test?
Feature #8
The steps in order, as the test record holds them.
- 0 msStarted a read-only session with the server's remote endpoint
- 1,252 msConnected after 0 redirects. No credential was sent or needed.
- Read the inventory: 93 tools, 1 resource, 5 prompts.
- 9,900 msFinished: 4 checks exercised.
Reference
How is it classified?
18 fields
One value per field, each with its source. Fields written by AI models are marked. A field with no value says why.
“Bronze (Free Forever)”
“Not stated” means the source did not state it; “does not apply” means it does not apply to this kind of server; “our limit” means our own lookup failed. A linked value opens the directory filtered to the same value.
Cite or correct this page
Sources and corrections
Suggested citation
ProtocolProbe. “com.quailos/quailos: MCP server record.” Data checked 2026-10-23. https://protocolprobe.com/mcp/servers/com.quailos/quailos
Figures are valid for the date shown. Our facts on this page are CC BY 4.0: reuse them with a link and the check date. Quoted text (the publisher’s descriptions, website quotes, tool names) is not ours to license.
As JSON: this record in the API · API documentation.
Badge for your README
[](https://protocolprobe.com/mcp/servers/com.quailos/quailos)
It shows this server's record-check count: facts from public records, no tool called. It is not a security rating or a pass. It links here and updates after each data reload.
Something wrong, or is this yours?
If a fact here is wrong, tell us and we will re-check it. If you operate this server, you can run our checks on it yourself with the free self-test command; we call no server’s tools ourselves for anything shown here.
Write to hello@protocolprobe.com · corrections log · methodology