Skip to main content
Glama
270,522 tools. Last updated 2026-07-07 21:14

"namespace:io.github.sarduine13-star" matching MCP tools:

  • Search and filter the current VeryChic offers by destination, country, price, discount, stars, flights, theme, or proximity — with optional sorting. When to use: when you already know roughly what the user wants — a place, a country, a budget, a minimum discount or star rating, flights vs hotel-only, a theme (e.g. pool, spa, romantic, last_minute), or hotels near a point (near_lat/near_lng, with an optional radius_km). To inspect one specific offer in depth use `verychic_offer_details`. All filters are optional and combine with AND; call it with no filter to browse the full current catalogue in catalogue order. Behaviour: read-only and anonymous; rate-limited to about 1 request per second. Filtering is done client-side over the live catalogue: `destination` is a case-insensitive substring (matched on destination or name), `country` is an exact case-insensitive match, `max_price`/`min_discount`/`min_stars` are numeric bounds, `flights_included` toggles flight-bearing vs hotel-only, and `theme` matches a curated label decoded from the catalogue's thematics tags. Use `sort_by` to order results (`discount`, `price`, `rating`, `stars`, or `distance`). Prices are in EUR and text is in French; there is no pagination. Returns the first `limit` matches after filtering and sorting. "Current" means live offers at call time; the catalogue changes over time. Returns a list of offer objects (same `source` + `external_id` pair for use with `verychic_offer_details`). Each offer also carries `discount` (percent off, may be null), `stars` (1-5, may be null), `price_label` (human-readable price unit, e.g. "à partir de par pers. pour 3 nuits" vs "par chambre" — read this before comparing prices), `price_with_flights` (EUR, null when not applicable), `flights_included` (bool), `rating` (hotel grade, often null in the catalogue), and `themes` (curated theme labels decoded from the catalogue's thematics tags, e.g. ["pool", "luxury"]). An empty list means no offer matched the filters. Proximity search: pass `near_lat` and `near_lng` (decimal degrees, together) to compute each offer's `distance_km` from that point; add `radius_km` to keep only offers within that distance, and/or `sort_by="distance"` for nearest-first. `distance_km` is null when no center is given.
    Connector
  • Multi-operator accommodation comparator for a geographic area against the user's stay parameters — dates, guest count, optional filters. Returns a ranked list of properties together with the booking sources that offer each one and, when dates are passed, their live availability and per-operator price for the requested window. Natural-language date references — "tonight", "this weekend", "next weekend", "the weekend of July 4", "Memorial Day weekend", "long weekend in May" — translate to concrete check_in / check_out values at the call site; concrete ISO dates also work. `user_country`, `currency`, and `language` carry the **user's** locale, not the destination's. IMPORTANT — currency: prices are returned in `currency` if you set it, otherwise in the currency derived from `user_country` (US→USD, CA→CAD, GB→GBP, euro-area→EUR); if you set NEITHER, prices default to **USD**, which may not be the user's currency. So whenever you know where the user is (or what currency they want), pass `user_country` and/or `currency` — do not rely on the default. Prices are never converted client-side; each offer is quoted by the operator in that currency. `user_country` and `language` also localize the booking link (`web_url`). The user's own residence/billing country is the right `user_country` (not the destination's), and their interface language the right `language`. Each result is shaped for downstream presentation without extra calls: - `location.lat` and `location.lon` carry per-property coordinates, suitable for plotting all results on a single map so the user can compare spatial alternatives at a glance. The map widget reads these fields directly from this response — no separate lookup needed for visualization. - `thumbnail_url` carries the property's first photo URL when available (null when no image is on file); useful for embedding inline or showing on the map alongside the pin. - `images` on search results is capped to the first photo to keep the comparison payload compact; each item has a `url` field, and `thumbnail_url` mirrors `images[0].url`. Call `get_property_details` for a single property to retrieve its full photo gallery. - `web_url` is a ready-to-open booking link for the property, already encoded with the user's check-in/check-out, language, currency, and guest count. Pass it to the user verbatim when they ask for a booking link — never reconstruct the URL from individual parameters, the query-string format is not guaranteed to match generic booking-URL conventions. - Price is **live and date-specific only**. There is no date-agnostic "from" figure: a meaningful price only exists for a concrete query (property + dates + occupancy). - `price` and `offers[]` — the **live quote for the requested dates**, populated only when dates were passed and the comparator confirmed availability. `offers[0]` is the curated best; each offer carries `amount` (total stay), `amount_per_night` (per-night), `currency`, `breakfast_included`, `refundable`, `rooms_left`, and `deeplink_url`. `price` mirrors `offers[0]`. - With no dates (or when nothing is available) `price` is null and `offers` is empty — surface the property without a price rather than inventing a starting figure. - `availability_status` per result encodes the live state: - `available` — bookable rooms confirmed at the operator level. `offers` and `price` carry the live date-specific quotes. Quote the rate via `offers[i].amount_per_night` (per-night) and `offers[i].amount` (total stay) and use the deeplinks for the booking handoff. - `unavailable` — no rooms reported for those dates. `offers` is empty and `price` is null (no price for these dates). Useful to decide whether to suggest alternate dates, drop the property from the recommendation, or offer it as a backup. - `unknown` — no dates were considered (request had no dates). `offers` is empty and `price` is null — no price signal without a dated query. Per-night vs total — never confuse them in the user-facing prose. `amount_per_night` is per-night; `amount` on each offer is the total stay (sum across nights, in `currency`). When quoting to the user, prefer phrasings like *"€X/night via Booking, breakfast included, €Y total for the stay"* over bare numbers — bare numbers without a unit get misread. - When dates are present and `available` properties are in the results, the rate can be quoted and `rooms_left` surfaces scarcity (low values like 1-3 are useful signals — "1 room left at $X on Booking" reads well). - When dates are present and ALL results are `unavailable`, that's the signal to say so explicitly to the user and offer to widen the dates, location, or filters. - `offers[]` is the per-operator breakdown for the requested dates: each entry includes `ota`, `amount`, `amount_per_night`, `currency`, `breakfast_included`, `refundable`, and a `deeplink_url`. The deeplink is a **BluePillow tracked-redirect URL** (bluepillow.com/…) that records the click for attribution and then forwards the user to the operator's booking page. Pass it to the user verbatim — never reconstruct it or replace it with a raw operator URL; our APIs never emit direct OTA links. `price` mirrors the curated best offer. When no dates were passed (or nothing is available) `offers` is an empty list and `price` is null — there is no price to show. - Free cancellation is a meaningful decision factor and surfaces proactively in the user-facing summary. When a property has `price.refundable=true` (or any `offers[i].refundable=true`), it reads naturally as a property feature: "Hotel X — $120/night, free cancellation available", or "Booking offers a refundable rate at $130 (vs $110 non-refundable)". Refundable rates let the user lock in a price now and adjust the booking later, which is often the differentiator between otherwise-similar properties. The same proactive surfacing applies to `breakfast_included` when it's true for some offers but not all. - Prices in `offers`/`price` reflect the requested dates and guests; with no dates there is no price. For a final bookable confirmation, the corresponding `deeplink_url` (or the property's `web_url`) is the canonical handoff — booking URLs are not reconstructed by hand. - All rating-like fields are on a 0-5 scale (Google Places-compatible): `rating`, `reviews_aggregate.score_0_5`, the per-OTA scores under `distribution_by_ota`, each `reviews_sample[*].score`, and the `filters.min_rating` input. A user asking "rating at least 8 out of 10" maps to `min_rating: 4.0`; "at least 4 stars on Google" maps to `min_rating: 4.0`. Note: `rating`, `stars`, and `rating_count` come from the comparator's list payload and **may be 0 or absent for some properties** even when the property has reviews or a star classification — this is a comparator list-payload limitation, not a data error. When those fields are 0/absent, or when the per-OTA review breakdown (`distribution_by_ota`) is needed, call `get_property_details` to get the fuller `reviews_aggregate`. On the search path, `reviews_aggregate` carries the top-line `score_0_5`, `rating_count` (reviews backing the score) and `comment_count` (readable review TEXTS available) when the comparator returned a non-zero review count; `distribution_by_ota` is always empty on this path (per-OTA breakdown requires `get_property_details`). `rating_count` and `comment_count` are DIFFERENT magnitudes — most guests leave a rating, far fewer write text. Quote `rating_count` for "how many reviewed it" and `comment_count` for "how many opinions you can actually read". - Pass `include=["reviews_sample"]` to attach a sample of up to 5 recent guest review texts per property. Useful when the user's question involves qualitative criteria that don't map to structured filters ("a place with excellent breakfast", "quiet area", "family-friendly atmosphere"); review texts can be searched textually to corroborate or rule out matches. For a DEEPER read on ONE specific property — more review texts (up to 20) or the per-OTA breakdown — call `get_property_details` with `include=["reviews_extended"]` (and/or `reviews_aggregate`). `comment_count` on each result tells you how many review texts exist, so you can decide whether escalating to the detail call is worth it. `filters.property_types`, `filters.amenities`, `filters.min_rating`, and `filters.price_max_eur` narrow on structured criteria first; review-based reasoning is one extra round-trip per page and is typically reserved for fallback. Location modes: - `coordinates`: when lat/lon is already known from world knowledge or a prior call in this session (default radius 5 km; widen up to 50 km for broader queries; beyond that `bbox` or a parent destination is the right shape). - `destination_id`: opaque id obtained from `resolve_destination`, passed verbatim — values are not constructed or guessed. - `bbox`: explicit map rectangle. Property type tokens (canonical): hotel, apartment, house, villa, bb, hostel, farmstay, holiday-home. Common multi-language synonyms map server-side to the canonical set. Amenities filter is set-AND — each result has ALL listed codes. Common codes: wi-fi, parking, pool, air-conditioning, kitchen, garden, pets-allowed, for-families, facilities-for-disabled, non-smoking-only. Results are cursor-paginated; the `next_cursor` from a previous response goes into `page.cursor` for the next page. `location.type=property_id` is not accepted here — `get_property_details` is the path for a known property.
    Connector
  • "Find NBA player [name]" / "search NBA roster for [X]" / "is [player] in the NBA" — search NBA players by name on BallDontLie. Returns position, height, weight, college, country, draft info, and current team. NOTE: per-season averages (PPG/RPG/APG) and career stats are NOT in this response — those require BallDontLie's ALL-STAR tier ($9.99/mo at https://www.balldontlie.io/) via the /season_averages endpoint, which is not currently exposed by Pipeworx. Free-tier _apiKey works for this tool.
    Connector
  • Report a customer review of a business you manage into Loppee's moderation queue for a claimed policy violation (spam, harassment, off_topic, fake, or other). IMPORTANT: reporting NEVER removes the review — the review stays published, moderation is HUMAN and REACTIVE, and a moderator removes a review only for a recorded policy violation, never for being negative. Do not use this tool to suppress honest criticism; use respond_to_review to answer it publicly. Filing a report never changes the trust score, the review's weighting, or ranking. Requires a scoped management key (allowed_actions include report_review) — works on any plan tier including Free (management actions are rate-limited per plan; management_rate_limited when the hourly allowance is used up); call get_agent_identity first. Reportability rules: only a NEGATIVE review (rating 3 stars and below) can be reported at all — a 4-5 star review returns review_report_not_negative; only ONE report may be open at a time — while a prior report is being reviewed a new one returns review_report_already_open; and a review accepts at most 3 reports in its LIFETIME — past that the call returns review_report_limit_reached. Returns review_not_found when the review does not belong to this business and invalid_report_reason for an unknown category.
    Connector
  • Get customer testimonials tied to a specific project (by slug or keyword) from the testimonials table. Returns star rating, customer name, project name, and quote text. Use to source social proof or case-study quotes for a particular job. For unfiltered reviews, use list_reviews.
    Connector
  • Direct lookup of a single NBA player by BallDontLie ID. ⚠️ TIER-GATED: the /players/{id} endpoint requires the ALL-STAR tier ($9.99/mo) or higher; free-tier _apiKey gets a 403 with "No approval received". search_players covers the same player metadata (name/position/height/weight/team) on the free tier, so prefer that unless you already have a paid BallDontLie key.
    Connector

Matching MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A comprehensive Model Context Protocol service providing zodiac information queries, horoscope analysis, and compatibility testing between star signs.
    Last updated
    7
    30
    2
    MIT

Matching MCP Connectors

  • GitHub MCP — wraps the GitHub public REST API (no auth required for public endpoints)

  • ENERGY STAR Open Data (data.energystar.gov) Socrata MCP.

  • Returns full structured data for a single card identified by its slug ID. Useful for card detail pages, single-card lookups, and displaying a specific card after the user selects one by name. SECTION: WHAT THIS TOOL COVERS Returns one card object from the 78-card Rider-Waite-Smith deck. The slug is the card's unique identifier in lowercase-hyphenated format. All fields are identical to what asterwise_get_tarot_cards returns per card. SECTION: WORKFLOW BEFORE: None — standalone. AFTER: None. SECTION: INPUT CONTRACT card_id — Slug identifier for the card. Must be exact. Major Arcana examples: 'the-fool', 'the-magician', 'the-high-priestess', 'the-empress', 'the-emperor', 'the-hierophant', 'the-lovers', 'the-chariot', 'strength', 'the-hermit', 'wheel-of-fortune', 'justice', 'the-hanged-man', 'death', 'temperance', 'the-devil', 'the-tower', 'the-star', 'the-moon', 'the-sun', 'judgement', 'the-world' Minor Arcana pattern: '{rank}-of-{suit}' Examples: 'ace-of-wands', 'two-of-cups', 'ten-of-swords', 'page-of-pentacles', 'knight-of-wands', 'queen-of-cups', 'king-of-swords' SECTION: OUTPUT CONTRACT data — single card object: id (string — slug), name (string), arcana_type ('major'|'minor'), suit (string|null) number (int — 0=Fool, 1–21=Major; 1=Ace, 11=Page, 12=Knight, 13=Queen, 14=King) element (string), astrology_correspondence (string) keywords_upright[] (string array), keywords_reversed[] (string array) upright_meaning (string), reversed_meaning (string) yes_no ('yes'|'no'|'maybe'), description (string — visual imagery) SECTION: RESPONSE FORMAT response_format=json — single card object as JSON. response_format=markdown — human-readable card detail. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (local): None. INTERNAL_ERROR: Unknown card_id returns 404 upstream → MCP INTERNAL_ERROR If the card is not found, check slug format: lowercase, hyphens, no spaces. SECTION: DO NOT CONFUSE WITH asterwise_get_tarot_cards — returns all 78 cards in one call. asterwise_draw_tarot_cards — random draw, not a specific card.
    Connector
  • Add a named, priced offering to your worker menu. Customers see name + description + creditsCharged + estDurationHr and pick directly. Worker earns 75% of credits charged (floor-rounded); TMV keeps 25%. Price must be a whole number of credits, ≥ 15. Until your account is uncapped (3 quality-scored jobs, OR 1 four-star+ customer review, OR $100 cleared earnings), the per-offering ceiling is 50 credits.
    Connector
  • Single-call orchestrated trip planner — stitches top hotels + recommended activities + estimated spend into one response, so the agent skips the manual "search hotels → search activities → stitch" fan-out. Pass destination + dates (plus optional budget, interests, star rating, no-resort-fees). For a HOTEL + SHOW/CONCERT/GAME trip, set includeTickets=true (plus ticketQuery for a specific performer, team, or show) — the plan then carries an eventTickets[] block of live-event tickets matched to the destination and stay window. Tickets are affiliate inventory: each carries a checkout link the user opens on the ticket seller, and ticket prices are NOT included in estimatedTotalUsd. Set groupByDay=true for a daily itinerary with rest-day placeholders on trips longer than 5 nights and 4h+ activity conflict avoidance. Pass includeTransfer to attach the best-value ground transfer (airport / port / station ↔ hotel) to the plan — it carries a rateToken you can hand to pricetik_transfer_get_booking_url; an uncovered or same-type terminal route returns a non-fatal transferUnavailable note and the hotel + activity plan still comes back. Free at every tier. Stricter rate limit than single-surface tools (10/min) because it fans out parallel searches. Direct REST callers can append ?stream=ndjson (or send Accept: application/x-ndjson) for incremental frames. Use this for a single-call hotel + activity (+ event ticket) stitch; for hotels only, use pricetik_hotel_search; for tickets only, use pricetik_ticket_search.
    Connector
  • Save-the-sale tool — call when the customer signals dissatisfaction with the current options ("too expensive", "let me think", "what else do you have", "is this the best you can do", "I'll check elsewhere", "can you do better"). Some carriers (Foremost STAR, etc.) run slower than the initial set and may have come back with a better rate while the customer was deliberating. This tool: 1. Pulls a fresh read of all rated carriers. 2. Compares the current cheapest bundle/LOB price to the original first-quoted best. 3. Returns has_improvement=true ONLY if a late carrier beats the original by >= $100/yr OR >= 5% — a threshold meaningful enough to justify interrupting the customer. CALL THIS ONLY WHEN: - check_quote_status has returned 'quoted' at least once (there's a baseline to compare). - The customer just expressed price resistance or hesitation (not a closed positive). - You have NOT called check_late_arrivals in the last 2 turns (don't spam). DO NOT CALL WHEN: - The customer is actively committing ("yeah let's go with A") — that's a close moment, not a wavering moment. - The customer hasn't seen the initial options yet. WHAT TO DO WITH THE RESULT: - has_improvement=true → narrate the improvement naturally ("Quick update — one more carrier just came in $X/yr cheaper. Want me to refresh your options?") and the iframe auto-updates with the new state. - has_improvement=false → acknowledge the customer's concern, pivot to value positioning against the options on the table. Don't bluff a "better one is coming" if it isn't. Use the carriers_still_pending count if relevant ("a couple more carriers are still finalizing in the background — I'll flag if anything comes in lower").
    Connector
  • Create a new Clipform (interactive video-style form). Returns a viewer URL and form ID. When connected via an authenticated MCP client (e.g. claude.ai), the form lands directly in the user's workspace. Anonymous sessions get a claim URL to transfer ownership later. Node types (omit config to use defaults where shown): - choice: Single or multiple choice node with predefined options (supports options array). Config: choice ({enable_branching, show_answer_feedback, record_scores}), selection_mode ("single"|"multiple", default: "single"), allow_text_response (boolean, default: false), randomise_options (boolean, default: false), show_option_count (boolean, default: false), option_display ("list"|"letters", default: "list"). Defaults: {"selection_mode":"single","choice":{"enable_branching":false,"record_scores":false},"randomise_options":false,"show_option_count":false,"option_display":"list"} - open: Free-form text responses from users. Config: formats (array of {format, order}). Defaults: {"formats":[{"order":0,"format":"text"},{"order":1,"format":"audio"},{"order":2,"format":"video"}]} - contact: Collect standardized contact information (name, email, phone, company). Config: title (string), fields (array of {id, type, label, order, required, is_custom}), description (string), consent_items (array of {id, name, label, order, type}), Available field IDs: first_name, last_name, email, phone. Defaults: {"fields":[{"id":"first_name","type":"first_name","label":"First Name","enabled":true,"required":true},{"id":"email","type":"email","label":"Email","enabled":true,"required":true}],"consent_items":[{"id":"default-consent","name":"Privacy policy","label":"I agree to the privacy policy and terms of service","order":0,"type":"consent"}]} - draw: Drawing canvas; respondents draw and it is saved as a PNG image. Config: paper_color (string, default: "#FAF9F6"). Defaults: {"paper_color":"#FAF9F6","stroke_colors":["#1F2937","#EF4444","#3B82F6","#22C55E","#FACC15"],"stroke_widths":[3,6,12]} - button: Simple button for acknowledgment or navigation (supports options array). Config: button_text (string, default: "Continue"), button_style ("primary"|"secondary"|"outline", default: "primary") - redirect: Redirect users to an external URL. Config: url (string), auto_redirect (boolean, default: true). Defaults: {"url":"","auto_redirect":true} - end_screen: Final screen shown when form is completed. Config: title (string, default: "Thank you!"), message (string, default: "Your response has been submitted."), show_score (boolean, default: false), icon ("tick"|"trophy"|"star"|"crown"|"party"|"none", default: "tick"), show_share_button (boolean, default: false), cta_type ("none"|"restart"|"external_link", default: "none"), cta_text (string, default: "Continue"), cta_url (string), score_ranges (array of {min, max, title, message}), scoring_results (array of {category, title, message, cta_url, cta_text}) All type definitions and config schemas are derived from @vid-master/config (node-types). Refer to the config descriptions above for the correct keys and shapes. AI-PROTECTED parameters have restrictions noted in their descriptions. Example: A form that asks a question, collects contact info, then finishes: { title: "Quick Survey", nodes: [ { type: "open", prompt: "What's your biggest challenge?" }, { type: "contact", prompt: "Leave your details", config: { fields: [{ id: "first_name", required: true }, { id: "email", required: true }] } }, { type: "end_screen", prompt: "Thanks for your response!" } ] }
    Connector
  • Evaluate a single ASIN for FBA sourcing. Returns composite sourcing score (0-100), 5-dimension breakdown (velocity, gating, friction, margin, brand_posture), estimated 30-day demand (units_30d_final + est_revenue_30d) with its source/badge_band/confidence, a data_coverage flag (full vs velocity_only — so a null demand reads as a coverage gap, not zero sales), star rating + review count (with a rating_coverage flag), brand-level FBA/Amazon dominance, and a red-flag list. Also returns the product brand, title, and price (or price range) plus the ASIN's fulfillment (FBA/FBM/AMZ + amz/fba pct). Use when the user asks 'should I buy this?', 'how fast does this sell?', or shares an ASIN and wants a sourcing recommendation.
    Connector
  • Save-the-sale tool — call when the customer signals dissatisfaction with the current options ("too expensive", "let me think", "what else do you have", "is this the best you can do", "I'll check elsewhere", "can you do better"). Some carriers (Foremost STAR, etc.) run slower than the initial set and may have come back with a better rate while the customer was deliberating. This tool: 1. Pulls a fresh read of all rated carriers. 2. Compares the current cheapest bundle/LOB price to the original first-quoted best. 3. Returns has_improvement=true ONLY if a late carrier beats the original by >= $100/yr OR >= 5% — a threshold meaningful enough to justify interrupting the customer. CALL THIS ONLY WHEN: - check_quote_status has returned 'quoted' at least once (there's a baseline to compare). - The customer just expressed price resistance or hesitation (not a closed positive). - You have NOT called check_late_arrivals in the last 2 turns (don't spam). DO NOT CALL WHEN: - The customer is actively committing ("yeah let's go with A") — that's a close moment, not a wavering moment. - The customer hasn't seen the initial options yet. WHAT TO DO WITH THE RESULT: - has_improvement=true → narrate the improvement naturally ("Quick update — one more carrier just came in $X/yr cheaper. Want me to refresh your options?") and the iframe auto-updates with the new state. - has_improvement=false → acknowledge the customer's concern, pivot to value positioning against the options on the table. Don't bluff a "better one is coming" if it isn't. Use the carriers_still_pending count if relevant ("a couple more carriers are still finalizing in the background — I'll flag if anything comes in lower").
    Connector
  • Read the published customer reviews of one business, server-paginated and filterable by star rating — the SAME data and controls a human gets on the profile's Reviews section (also served as GET /v1/businesses/{business_id}/reviews.json with ?page=&limit=&rating=). Page through with page (1-based, default 1) and limit (1-50, default 5; pagination.has_more/next_page say when to keep going), and pass ratings (e.g. [1] for only 1-star, [4,5] for 4-and-5-star) to read chosen star levels; summary.rating_counts gives the per-star totals so you can decide which levels to read. Reviews are DISPLAY-ONLY social proof: reading, paging, or filtering them NEVER changes the business's trust score, search ranking, reach, or share-of-voice, and the newest-first order carries no ranking meaning. Reviewer names are masked (first name + last initial) — no PII. The Trust Card embeds only the newest slice of reviews; use this tool to read the full set. Returns business_reviews_not_found for unpublished or unknown ids and invalid_rating_filter for a malformed ratings value.
    Connector
  • Get a behavioral commitment profile for any PyPI (Python) package. Returns real signals: package age, download volume and trend, release consistency, publisher/owner count, and linked GitHub activity. Supply chain attacks target Python packages — LiteLLM (97M downloads/mo) was compromised via stolen PyPI token in March 2026. Behavioral signals reveal what star counts hide. Useful for: vetting Python dependencies, identifying abandonware, supply chain risk due diligence. Examples: "langchain", "litellm", "openai", "anthropic", "requests", "fastapi", "pydantic"
    Connector
  • Get full details for one MCP server by its exact serverKey (as returned by search_servers). Returns the full description, GitHub repo, star count, rank, version count, the registries that list it, and its mcptoplist.com page in the `mcptoplistUrl` field — always cite that URL when recommending the server.
    Connector
  • [starwars-intel] Search Star Wars starships by name or model keyword (e.g. 'Millennium Falcon', 'Star Destroyer'). Returns crew capacity, cargo capacity, cost, speed, hyperdrive rating, manufacturer, and linked films/pilots.
    Connector
  • [starwars-intel] Look up a Star Wars film by title keyword (e.g. 'A New Hope') or numeric swapi.tech id (e.g. '4'). Returns episode number, director, producer, release date, and the full opening crawl text, plus linked characters/planets/starships.
    Connector
  • Submit (or edit) a first-party customer/service-agent review (rating 1-5) for a business. The review is from a REGISTERED identity and is published immediately — there is no anonymous review and no pre-moderation. There is at most ONE review per (account, business): submitting again EDITS the existing review (idempotent on that pair). Star reviews are DISPLAY-ONLY social proof: they NEVER change the business's trust score, search ranking, reach, or share-of-voice, and payment never changes how a review is displayed. A review backed by a Loppee-verified transaction between this account and the business carries a 'Verified transaction' badge (authenticity display only); sending messages through Loppee does NOT earn that badge. A review is removed only by a human moderator for a recorded policy violation, never for being negative. Requires a valid scoped agent API key whose account_id matches the account_id argument and whose allowed_actions include submit_review_for_moderation (call get_agent_identity first). Returns a machine-readable auth error when the key is absent or out of scope.
    Connector
  • Render Hyades source to Unicode/ASCII text art. Hyades uses LaTeX-like syntax but outputs multi-line plain text instead of PDF. It supports math (fractions, integrals, matrices, Greek letters), tables with box-drawing frames, lists, flex-like layout (hbox/vbox), user-defined macros, and computation. IMPORTANT: Always display the rendered output to the user directly in your response. The output is pre-formatted multi-line text art that depends on exact character alignment. You MUST use a fenced code block (triple backticks) or equivalent monospace/preformatted element to preserve spacing. Never display the output as regular prose text — column alignment, box-drawing characters, and fraction bars will break without a monospace font. Input is a complete Hyades document. Plain text outside math delimiters is rendered as prose paragraphs. Use `$...$` for inline math and `$$...$$` for display math (centered on its own line). --- ## Math Supports ~95% of LaTeX math syntax. ### Inline vs Display ``` Inline math: $a^2 + b^2 = c^2$ flows with text. Display math gets its own block: $$ a^2 + b^2 = c^2 $$ ``` Use `$...$` for inline, `$$...$$` for display. Display math is centered. ### Variables and Operators ``` $$ a + b - c $$ $$ a \times b \div c $$ $$ a \cdot b $$ $$ \pm x \quad \mp y $$ ``` ### Superscripts and Subscripts ``` $$ x^2 \quad x_i \quad x_i^2 \quad x^{n+1} \quad x_{i,j} \quad a^{b^c} $$ ``` Use braces for multi-character exponents/subscripts: `x^{n+1}`, `x_{i,j}`. **Bracing rules:** Use braces for multi-token expressions: `x^{n+1}`, `x_{i,j}`. Commands that take arguments (like `\mathbf{v}`) work without extra braces: `x_\mathbf{v}` is equivalent to `x_{\mathbf{v}}`, matching TeX behavior. ### Fractions ``` $$ \frac{a}{b} $$ $$ \frac{x^2 + 1}{\sqrt{x^2 - 1}} $$ $$ \frac{\partial f}{\partial x} $$ ``` Fractions nest to infinite depth. `\dfrac` and `\tfrac` are accepted as aliases for `\frac`. ### Roots ``` $$ \sqrt{x} $$ $$ \sqrt[3]{x} $$ $$ \sqrt[n]{x^2 + y^2} $$ ``` Optional argument gives the nth root: `\sqrt[3]{x}`. ### Parentheses and Grouping ``` $$ (a + b) \quad [a + b] \quad \{a + b\} \quad |x| \quad \Vert x \Vert $$ ``` Curly braces need escaping: `\{` and `\}`. ### Auto-Scaling Delimiters (\left/\right) `\left` and `\right` make delimiters grow to match their contents: ``` $$ \left( \frac{a}{b} \right) \quad \left[ \frac{a}{b} \right] \quad \left| \frac{a}{b} \right| $$ ``` Works with all delimiter types: `( ) [ ] \{ \} | \| \lfloor \rfloor \lceil \rceil \langle \rangle`. Use `\left.` or `\right.` for invisible (null) delimiters — essential for evaluation bars: ``` $$ \left.\frac{df}{dx}\right|_{x=0} $$ ``` Use `\middle` inside `\left...\right` for scaled interior delimiters: ``` $$ \left( \frac{a}{b} \middle| \frac{c}{d} \right) $$ ``` ### Explicit Delimiter Sizing (\big through \Bigg) `\big`, `\Big`, `\bigg`, `\Bigg` set delimiter sizes explicitly. `\bigl`/`\bigr`, `\Bigl`/`\Bigr`, `\biggl`/`\biggr`, `\Biggl`/`\Biggr` produce standalone one-sided delimiters: ``` $$ f(x)\bigr|_{x=0} $$ ``` ### Floor and Ceiling ``` $$ \lfloor x \rfloor $$ $$ \lceil x \rceil $$ $$ \left\lfloor \frac{x}{2} \right\rfloor $$ ``` ### Greek Letters Lowercase: `\alpha \beta \gamma \delta \epsilon \zeta \eta \theta \lambda \mu \nu \xi \pi \rho \sigma \tau \phi \varphi \chi \psi \omega` Uppercase (only where different from Latin): `\Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Phi \Psi \Omega` ### Relations ``` $$ a \neq b \quad a \leq b \quad a \geq b $$ $$ a \ll b \quad a \gg b $$ $$ a \approx b \quad a \equiv b \quad a \sim b \quad a \propto b $$ $$ a \prec b \quad a \succ b \quad a \preceq b \quad a \succeq b $$ ``` Definition symbols: `\coloneqq` (≔), `\eqqcolon` (≕), and `:=` (parsed as a single relation ≔): ``` $$ \Phi := S $$ $$ f \coloneqq x^2 + 1 $$ ``` Colon alone is treated as punctuation (no space before, space after), useful in set-builder notation: ``` $$ \{x : x > 0\} $$ ``` The `\not` prefix negates a relation: `\not=` → ≠, `\not\in` → ∉, `\not\leq` → ≰, `\not\equiv` → ≢, `\not\subset` → ⊄, `\not\exists` → ∄ ### Set Theory ``` $$ x \in A \quad x \notin A $$ $$ A \subset B \quad A \subseteq B \quad A \cup B \quad A \cap B \quad \emptyset $$ $$ A \setminus B $$ ``` ### Logic ``` $$ \forall x \in \mathbb{R} \quad \exists x $$ $$ p \implies q \quad p \iff q $$ $$ \neg p \quad p \land q \quad p \lor q $$ $$ \therefore \quad \because \quad \top \quad \bot $$ ``` ### Arrows `\rightarrow`, `\Rightarrow`, `\mapsto`, `\longmapsto`, `\hookrightarrow`, `\hookleftarrow`, `\leftarrow`, `\leftrightarrow`, `\Leftarrow`, `\Leftrightarrow`, `\uparrow`, `\downarrow`, `\updownarrow`, `\nearrow`, `\searrow`, `\nwarrow`, `\swarrow`. Extensible arrows with text labels: ``` $$ A \xrightarrow{f} B \xleftarrow{g} C $$ ``` ### Standard Functions Standard functions are set in upright type: ``` $$ \sin x \quad \cos(x) \quad \tan x $$ $$ \log x \quad \log_2 x \quad \ln x \quad \exp(x) $$ $$ \sin^2 x + \cos^2 x = 1 $$ ``` Also: `\arcsin`, `\arccos`, `\arctan`, `\sinh`, `\cosh`, `\tanh`, `\det`, `\dim`, `\ker`, `\deg`, `\gcd`, `\sup`, `\inf`, `\max`, `\min`, `\argmax`, `\argmin`, `\limsup`, `\liminf`. ### Custom Function Names (\fn / \operatorname) `\fn{name}` or `\operatorname{name}` produces an upright function name for functions Hyades doesn't know: ``` $$ \fn{softmax}\left(x_i\right) = \frac{e^{x_i}}{\sum_j e^{x_j}} $$ $$ \operatorname{Tr}(A) $$ ``` ### Text in Math (\text) `\text{words}` inserts upright text inside math mode: ``` $$ x = 0 \text{ if } y > 0 $$ ``` ### Accents and Decorations Single-character: `\hat{x}`, `\bar{x}`, `\tilde{x}`, `\vec{x}`, `\dot{x}`, `\ddot{x}`, `\acute{x}`, `\grave{x}`, `\breve{x}`, `\check{x}` Wide accents: `\overline{AB}`, `\underline{text}`, `\overrightarrow{AB}`, `\overleftarrow{AB}`, `\widehat{xyz}`, `\widetilde{xyz}` ### Overset and Underset ``` $$ \overset{n}{=} $$ $$ \underset{x}{y} $$ $$ \stackrel{\text{def}}{=} $$ ``` `\overset{top}{base}` places annotation above base; `\underset{bot}{base}` below. `\stackrel` is an alias for `\overset`. ### Overbrace and Underbrace ``` $$ \overbrace{a + b + c}^{3 \text{ terms}} $$ $$ \underbrace{x + y + z}_{n \text{ terms}} $$ ``` ### Primes ``` $$ f'(x) \quad f''(x) \quad f'''(x) \quad f^{(n)}(x) $$ ``` ### Math Fonts `\mathbf{v}` → bold, `\mathbb{R}` → blackboard bold (ℕℤℚℝℂ), `\mathcal{L}` → calligraphic, `\mathfrak{R}` → Fraktur (𝔄𝔅ℭ), `\mathsf{A}` → sans-serif (𝖠𝖡𝖢), `\mathscr{A}` → script (same as \mathcal), `\boldsymbol{\alpha}` → bold (works with Greek: 𝛂𝛃, and symbols: `\boldsymbol{\nabla}` → 𝛁, `\boldsymbol{\partial}` → 𝛛) ### Dots and Ellipses `\ldots` (low dots, for commas), `\cdots` (centered, for operators), `\vdots` (vertical), `\ddots` (diagonal, for matrices) ### Summation ``` $$ \sum_{i=1}^{n} x_i $$ ``` `\Sum` and `\SUM` give progressively larger variants. ### Products ``` $$ \prod_{i=1}^{n} x_i $$ ``` `\Prod` and `\PROD` give larger variants. ### Integrals ``` $$ \int_a^b f(x) \, dx $$ $$ \iint f(x,y) \, dx\,dy $$ $$ \oint_C f(z) \, dz $$ ``` Also: `\iiint`, `\oiint`. Larger variants: `\Int`, `\INT`, etc. ### Limits `\lim` places its subscript directly below: ``` $$ \lim_{x \to 0} \frac{\sin x}{x} = 1 $$ $$ \max_{x \in [0,1]} f(x) $$ $$ \argmax_{\theta} L(\theta) $$ ``` ### Calculus Operators ``` $$ \frac{dy}{dx} \quad \frac{d^2y}{dx^2} \quad \frac{\partial f}{\partial x} $$ $$ \nabla f \quad \nabla \cdot \mathbf{F} \quad \nabla \times \mathbf{F} \quad \nabla^2 f $$ ``` ### Matrices Six types with different delimiters. `&` separates columns, `\\` or `;` separates rows. LaTeX-style `\begin{pmatrix}...\end{pmatrix}` also works for all matrix types. ``` $$ \pmatrix{a & b \\ c & d} $$ % (parentheses) $$ \bmatrix{a & b \\ c & d} $$ % [brackets] $$ \Bmatrix{a & b \\ c & d} $$ % {braces} $$ \vmatrix{a & b \\ c & d} $$ % |bars| (determinants) $$ \Vmatrix{a & b \\ c & d} $$ % ‖double bars‖ (norms) $$ \matrix{a & b \\ c & d} $$ % no delimiters ``` ### Cases (Piecewise Functions) ``` $$f(x) = \cases{ x & \text{if } x > 0 \\ 0 & \text{if } x = 0 \\ -x & \text{if } x < 0 }$$ ``` ### Aligned Equations `&` marks the alignment point: ``` $$\aligned{ f(x) &= x^2 + 2x + 1 \\ &= (x + 1)^2 }$$ ``` Use `\intertext{...}` inside aligned to insert prose between rows. Intertext is left-aligned at the document margin while equations remain centered: ``` $$\aligned{ x &= a \\ \intertext{where} a &= b + c }$$ ``` `\tag` works on aligned blocks — the tag is right-justified and vertically centered: ``` $$\aligned{ f(x) &= x^2 + 2x + 1 \\ &= (x + 1)^2 } \tag{7}$$ ``` ### Boxed ``` $$ \boxed{E = mc^2} $$ ``` Draws a box-drawing frame around the content. ### Phantom ``` $$ a + \phantom{bbb} + c $$ ``` Invisible placeholder — renders as whitespace with the same dimensions as the content. ### Smash ``` $$ \sqrt{\smash{y^3}} $$ ``` `\smash{content}` renders content but collapses its height to a single line (the baseline row). Used to prevent tall content from affecting surrounding constructs like roots or delimiters. ### Substack ``` $$ \sum_{\substack{i=1 \\ j>0}} x_{ij} $$ ``` Stacks multiple lines vertically (for multi-line subscripts/superscripts). ### Tag ``` $$ E = mc^2 \tag{1} $$ ``` Equation tag rendered as `(text)`. ### Number Theory ``` $$ a \equiv b \pmod{n} $$ $$ a \bmod n \quad a \mid b $$ $$ \binom{n}{k} $$ ``` ### Style Commands (No-ops) `\displaystyle`, `\textstyle`, `\scriptstyle`, `\scriptscriptstyle` are accepted but transparent (Hyades has no math size concept). `\notag` and `\nonumber` are also silently ignored. This allows pasting LaTeX source that uses these commands without errors. ### Math Spacing `\!` (negative thin), `\,` (thin), `\:` (medium), `\;` (thick), `\quad` (1em), `\qquad` (2em) ### Atom-Type Overrides (\mathord, \mathbin, \mathrel) Override the default spacing category of a symbol. Analogous to TeX's `{=}` idiom for suppressing operator spacing, but explicit and readable: ``` $a \mathord{=} b$ %% "a=b" — = treated as ordinary symbol (no spacing) $a = b$ %% "a = b" — default relation spacing $f \mathrel{:} A \to B$ %% "f : A → B" — : treated as relation (symmetric spacing) $a : b$ %% "a: b" — default punctuation spacing $a \mathbin{\triangle} b$ %% "a △ b" — triangle with binary operator spacing ``` - `\mathord{X}`: Suppress spacing — X renders as an ordinary symbol with no surrounding gaps. Use this instead of TeX's `{=}` or `{}=` idiom which does not work in Hyades. - `\mathbin{X}`: Force binary operator spacing (gap on both sides). - `\mathrel{X}`: Force relation spacing (gap on both sides). ### Binary Operators `\oplus`, `\otimes`, `\odot`, `\circ`, `\bullet`, `\star`, `\dagger`, `\ddagger` ### Geometry `\angle`, `\triangle`, `\perp`, `\parallel` ### Famous Equations (all valid input) ``` $$ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$ %% Quadratic formula $$ e^{i\pi} + 1 = 0 $$ %% Euler's identity $$ f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\sigma^2}} $$ %% Normal distribution $$ \fn{Attention}(Q, K, V) = \fn{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right) V $$ %% Attention mechanism $$ e^x = \sum_{n=0}^{\infty} \frac{x^n}{n!} $$ %% Taylor series $$ \int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi} $$ %% Gaussian integral $$ P(A|B) = \frac{P(B|A) P(A)}{P(B)} $$ %% Bayes' theorem $$ \nabla \times \mathbf{E} = -\frac{\partial \mathbf{B}}{\partial t} $$ %% Maxwell's equation $$ i\hbar \frac{\partial}{\partial t} \Psi = \hat{H} \Psi $$ %% Schrodinger equation $$ \fn{softmax}(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}} $$ %% Softmax ``` --- ## Text Formatting ``` \textbf{bold text} \textit{italic text} \texttt{monospace text} \textbf{\textit{bold italic}} ``` Nesting `\textbf` and `\textit` produces bold-italic text. Inline math `$...$` inside `\textit` or `\textbf` is rendered as math (not styled as text): ``` \textit{Let $f(x) = x^2$ be a function} ``` ### Verbatim (No Processing) ``` \verb|raw \commands { } are preserved| ``` ### Special Characters `\textbackslash` → \, `\textdollar` → $, `\textpercent` → %, `\textampersand` → &, `\texthash` → # ### Text Spacing Commands `\ ` (backslash-space) — explicit inter-word space. Useful after abbreviations: `i.e.\ $f$` renders without extra sentence spacing. `\@` — marks the next period as sentence-ending (silently consumed). `\,` — thin space (works in both text and math mode). --- ## Paragraphs and Line Breaking Text flows into paragraphs automatically. A single newline is a space; a blank line starts a new paragraph. ### Line-Breaking Modes ``` \linebreaker{greedy} % Default. Fast, good results. \linebreaker{knuth} % TeX-style optimal. Minimizes ugliness. \linebreaker{raggedright} % Left-aligned, no justification. ``` ### Hyphenation `\sethyphenate{true}` / `\sethyphenate{false}` --- ## Tables Tables use `\table` with nested `\row` and `\col`: ``` \table[width:40, frame:single, pad:{l:1,r:1}]{ \row[frame:{b:double}]{ \col{Name} \col{Value} } \row{ \col{Alpha} \col{0.05} } \row{ \col{Beta} \col{0.95} } } ``` ### Table Properties | Property | Values | Default | |----------|--------|---------| | `width` / `w` | number, `auto` | parent width | | `frame` / `f` | `none`, `dotted`, `single`, `rounded`, `double`, `bold` | `single` | | `border` | same as frame (outer edges only) | unset | | `pad` / `p` | number or `{t:N, b:N, l:N, r:N}` | 0 | | `align` / `a` | `l`/`left`, `c`/`center`, `r`/`right` | `l` | | `valign` / `va` | `t`/`top`, `m`/`middle`, `b`/`bottom` | `t` | Row properties: `frame`, `pad`, `align`, `valign`, `height`. Column properties: `width`, `align`, `valign`, `frame`, `pad`, `span`, `reset`. Frame styles: `none` (space), `dotted` (┄┆), `single` (─│), `rounded` (╭╮╰╯ corners), `double` (═║), `bold` (━┃) Compound edges: `frame:{t:double, b:single, l:none, r:none}`, `pad:{l:1, r:1}` Properties cascade: table → column (down rows) → row → cell. IMPORTANT: When a row overrides a property (e.g. `frame:{b:double}`), that override is inherited by ALL subsequent rows. To stop it, the next row must explicitly reset it (e.g. `frame:{b:single}`). The `border` property on the table level controls the outer edges and cannot be overridden by row or column `frame`. --- ## Lists ``` \fancylist{ - First item - Second item with longer text that wraps to the next line - Third item - Nested child - Grandchild } ``` Three nesting levels supported. Uses ●/○ bullets in Unicode, - in ASCII. --- ## Layout Primitives Flex-like box model for spatial control. ### Box Types ``` \begin[width]{hbox} % horizontal (side by side) \child[width][align]{content} \end{hbox} \begin[top|middle|bottom]{hbox} % hbox with vertical alignment \child[width][align]{content} \end{hbox} \begin[width]{vbox} % vertical (stacked) \child[width][align]{content} \end{vbox} ``` Child width: fixed number, `auto` (fill remaining), `intrinsic` (natural width), or omitted (equal share). When multiple children omit width, they split the remaining space equally (after fixed-width children). Horizontal alignment: `left`, `center`, `right`. Vertical alignment for hbox: set on `\begin` bracket — `top` (default), `middle`, `bottom`. Width inheritance: boxes without an explicit width inherit their parent's width. `\setwidth{N}` sets the document-level width. ### Rules ``` \hrule[width]{left_cap}{fill_char}{right_cap} \vrule[height]{top}{fill}{bottom} \intersect_rules{...} % fix junction characters at rule crossings ``` Width/height can be a number or `auto`. An `auto`-width `\hrule` in a vbox stretches to the box width. An `auto`-height `\vrule` in an hbox stretches to match the tallest sibling. `\intersect_rules` scans all cells, checks neighboring line arms, and replaces with correct junction glyphs (┌ ┬ ┐ ├ ┼ ┤ └ ┴ ┘). Handles single, double, bold, and mixed styles. ### Measuring Content ``` \measure<content_name,width_var,height_var>{content to measure} ``` Renders content invisibly, stores it under `content_name` (retrieve with `\recall<content_name>`), and stores the measured width and height into integer variables. ### Spacing `\vskip{N}` (N blank lines), `\hskip{N}` (N spaces) ### Common Layout Patterns Two-column with gutter: ``` \begin{hbox} \child{Left column} \child[2]{} \child{Right column} \end{hbox} ``` Centering via auto spacers: ``` \begin{hbox} \child[auto]{} \child[intrinsic]{Centered content} \child[auto]{} \end{hbox} ``` Indentation: ``` \begin{hbox} \child[4]{} \child[auto]{Indented content} \end{hbox} ``` --- ## User-Defined Macros ``` \macro<\greet{name}>{Hello, ${name}!} \greet{World} % → Hello, World! \macro<\fullname{first}{last}>{${first} ${last}} \fullname{John}{Doe} % → John Doe % Optional parameters with defaults \macro<\heading[char=-]{title}>{ ${title} \hrule[20]{}{${char}}{} } \heading{Default} % uses - \heading[char:=]{Custom} % uses = ``` --- ## Document Settings ``` \setwidth{80} % Output width in columns (default: 80) \setunicode{true} % Use Unicode symbols (default: true) \setmathitalic{true} % Italicize math variables (default: true) \linebreaker{greedy} % Line-breaking algorithm \sethyphenate{true} % Enable hyphenation \setparskip{1} % Blank lines between paragraphs \setmathabove{1} % Blank lines above display math (default: 0) \setmathbelow{1} % Blank lines below display math (default: 0) ``` --- ## Computation Variables, loops, and conditionals are available. ### Variables and Arithmetic ``` \let<x>{10} \let<y>{20} \let<sum>{\add{\valueof<x>,\valueof<y>}} Result: \valueof<sum> % → Result: 30 ``` ### Conditionals ``` \let<n>{42} \if{\gt{\valueof<n>,0}}{positive}\else{non-positive} ``` ### Loops ``` \let<i>{1} \begin{loop} \exit_when{\gt{\valueof<i>,5}} \valueof<i>\hskip{1} \inc<i> \end{loop} % Output: 1 2 3 4 5 ``` ### Content Storage `\assign<name>{content}` stores text, `\recall<name>` retrieves it. `\let`/`\valueof` is for integers; `\assign`/`\recall` is for text. ### Lambdas ``` \lambda<double>[x]{\mul{\recall<x>,2}} \recall<double>[5] % → 10 ``` ### Arrays ``` \let<nums[]>{[10, 20, 30]} \valueof<nums>[0] % → 10 \len<nums> % → 3 \push<nums>{40} % append ``` --- ## Quick Reference ### Math Mode | Input | Output | |-------|--------| | `$x^2$` | x² | | `$x_i$` | xᵢ | | `$\frac{a}{b}$` | a/b (stacked) | | `$\sqrt{x}$` | √x | | `$\sum_{i=1}^n$` | Σ with limits | | `$\int_a^b$` | ∫ with limits | | `$\prod_{i=1}^n$` | ∏ with limits | | `$\lim_{x \to 0}$` | lim with subscript below | | `$\limsup_{n}$` | lim sup with subscript below | | `$\liminf_{n}$` | lim inf with subscript below | | `$\alpha, \beta, \gamma$` | α, β, γ | | `$\mathbb{R}$` | ℝ | | `$\mathbf{v}$` | 𝐯 | | `$\leq, \geq, \neq$` | ≤, ≥, ≠ | | `$\in, \forall, \exists$` | ∈, ∀, ∃ | | `$\rightarrow, \Rightarrow$` | →, ⇒ | | `$\infty, \partial, \nabla$` | ∞, ∂, ∇ | | `$f'(x)$` | 𝑓′(𝑥) | | `$\binom{n}{k}$` | binomial coefficient | | `$\lfloor x \rfloor$` | ⌊x⌋ | | `$\fn{name}$` | custom function name | | `$\operatorname{name}$` | same as \fn | | `$\text{words}$` | upright text in math | | `$\ll, \gg$` | ≪, ≫ | | `$\mathord{=}$` | suppress operator spacing | | `$\mathbin{:}$` | force binary operator spacing | | `$\mathrel{:}$` | force relation spacing | | `$\prec, \succ$` | ≺, ≻ | | `$\neg, \land, \lor$` | ¬, ∧, ∨ | | `$\subseteq, \setminus$` | ⊆, ∖ | | `$\mid$` | ∣ (divides) | | `$\therefore, \because$` | ∴, ∵ | | `$\wp, \imath, \jmath$` | ℘, ı, ȷ | | `$\Box$` | □ | | `$\not=$` | ≠ (\not prefix negates relations) | | `$\left.\right\|$` | invisible delimiter (evaluation bar) | | `$\overset{n}{=}$` | annotation above base | | `$\underset{x}{y}$` | annotation below base | | `$\boxed{x}$` | framed box around content | | `$\phantom{x}$` | invisible spacer | | `$\smash{x}$` | collapse height to baseline | | `$\xrightarrow{f}$` | extensible arrow with label | | `$\substack{a \\ b}$` | stacked lines | | `$\mathfrak{R}$` | Fraktur (𝔄𝔅ℭ) | | `$\mathsf{A}$` | sans-serif (𝖠𝖡𝖢) | | `$\boldsymbol{\alpha}$` | bold Greek (𝛂𝛃) | | `$\coloneqq$` | ≔ (definition) | | `$\eqqcolon$` | ≕ (reverse definition) | | `$a := b$` | ≔ (combined relation) | ### Text Commands | Command | Effect | |---------|--------| | `\textbf{x}` | **bold** | | `\textit{x}` | *italic* | | `\texttt{x}` | monospace | | `\verb\|x\|` | verbatim | | `\hrule` | horizontal line | | `\vskip{N}` | N blank lines | | `\hskip{N}` | N spaces | ### Table Syntax ``` \table[width:W, frame:STYLE, pad:{l:L,r:R}, border:STYLE, align:A]{ \row[frame:{b:STYLE}]{ \col[width:N, align:A]{content} } } ``` ### Layout Syntax ``` \begin[width]{vbox} \child[width][h_align]{content} \end{vbox} \begin[top|middle|bottom]{hbox} \child[width][h_align]{content} \end{hbox} ``` ### Settings ``` \setwidth{N} \setunicode{true|false} \setmathitalic{true} \linebreaker{greedy|knuth|raggedright} \sethyphenate{true} \setparskip{N} \setmathabove{N} \setmathbelow{N} ```
    Connector