Skip to main content
Glama
280,565 tools. Last updated 2026-07-10 01:43

"namespace:io.pm-33" matching MCP tools:

  • Read-only preview: for each given printer, return the next queue item that would be started. Uses the same dedup matcher as create_print_job with next_queue_item=true, so the same queue item is never returned twice across printers in one call. Includes match failures per printer (issues) so you can explain why a printer has nothing to print. Does NOT start any job.
    Connector
  • Calculates the Expression (Destiny) number from the full name using Pythagorean letter values. Reduces each name part separately before summing — this is the Goodwin/Balliett per-part method which preserves the vibrational weight of compound numbers within each name segment. Master numbers 11, 22, 33 are preserved and not further reduced. SECTION: WHAT THIS TOOL COVERS The Expression number describes the natural talents, abilities, and shortcomings a person brought into this life — what they are capable of becoming. It differs from the Soul Urge (inner motivation) and Personality (outer mask). Uses all letters A–Z mapped to Pythagorean values 1–9. Not Chaldean (asterwise_get_chaldean_numerology). SECTION: WORKFLOW BEFORE: None — this tool is standalone. AFTER: asterwise_get_soul_urge_number — complete the core trinity (Expression, Soul Urge, Personality). SECTION: INPUT CONTRACT name — Full legal name as used at birth. Include all name parts separated by spaces. Example: 'Arjun Mehta', 'Sofia Rossi', 'James Carter' Format: string, any case (uppercase/lowercase both accepted) Constraint: at least one alphabetic character required SECTION: OUTPUT CONTRACT data.number (int — Expression number; may be 11, 22, or 33 for master numbers) data.is_master_number (bool — true when number is 11, 22, or 33) data.karmic_debt_number (int or null — the karmic debt root if present; null otherwise) SECTION: RESPONSE FORMAT response_format=json serialises the complete response as indented JSON — use this for programmatic parsing, typed clients, and downstream tool chaining. response_format=markdown renders the same data as a human-readable report. Both modes return identical underlying data — no fields are added, removed, or filtered by either mode. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): None — validation is upstream. INTERNAL_ERROR: — Any upstream API failure or timeout → MCP INTERNAL_ERROR SECTION: DO NOT CONFUSE WITH asterwise_get_soul_urge_number — vowels only, not all letters. asterwise_get_personality_number — consonants only, not all letters. asterwise_get_numerology_profile — returns Expression plus all other core numbers, pinnacles, challenges, and lucky numbers in one call. asterwise_get_chaldean_numerology — different letter-value system (Chaldean 1–8).
    Connector
  • Calculates the Personality number from consonants in the full name. All non-vowels (BCDFGHJKLMNPQRSTVWXYZ) contribute — Y is always a consonant. Reduces each name part separately, preserving master numbers 11, 22, 33. SECTION: WHAT THIS TOOL COVERS The Personality number is the outer mask — how others perceive you before they know you well. It governs first impressions, physical presentation, and the social interface between the private self (Soul Urge) and the world. SECTION: WORKFLOW BEFORE: None — standalone. AFTER: asterwise_get_numerology_profile — see all five core numbers together. SECTION: INPUT CONTRACT name — Full legal name as used at birth. Example: 'Arjun Mehta', 'Sofia Rossi' Y is always a consonant — not treated as a vowel. SECTION: OUTPUT CONTRACT data.number (int — Personality number; master numbers 11/22/33 preserved) data.is_master_number (bool) data.karmic_debt_number (int or null) SECTION: RESPONSE FORMAT response_format=json — structured JSON. response_format=markdown — human-readable. Both modes return identical underlying data. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (local): None. INTERNAL_ERROR: upstream failure → MCP INTERNAL_ERROR SECTION: DO NOT CONFUSE WITH asterwise_get_expression_number — all letters (Expression = Soul Urge + Personality). asterwise_get_soul_urge_number — vowels only.
    Connector
  • Calculates the Maturity number as the sum of Life Path and Expression numbers, reduced to a single digit or master number. Represents the underlying wish or true desire that becomes conscious around age 35 and fully emerges by midlife. SECTION: WHAT THIS TOOL COVERS The Maturity number is sometimes called the True Goal — the final attainment that Life Path and Expression together point toward. It becomes increasingly dominant after age 35 and is the most important number for understanding the second half of life. SECTION: WORKFLOW BEFORE: RECOMMENDED — asterwise_get_numerology_profile — confirm Life Path and Expression before interpreting their sum. AFTER: None. SECTION: INPUT CONTRACT name — Full legal name as used at birth. Example: 'Arjun Mehta' date — Birth date in YYYY-MM-DD format. Example: '1985-11-12' SECTION: OUTPUT CONTRACT data.maturity_number (int — LP + Expression, reduced; master numbers preserved) data.life_path_number (int — component) data.expression_number (int — component) data.is_master_number (bool — true if maturity is 11, 22, or 33) SECTION: RESPONSE FORMAT response_format=json — structured JSON. response_format=markdown — human-readable. Both modes return identical underlying data. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (local): None. INTERNAL_ERROR: upstream failure → MCP INTERNAL_ERROR SECTION: DO NOT CONFUSE WITH asterwise_get_numerology_profile — returns maturity_number as part of the full profile. asterwise_get_personal_cycles — temporal cycles that change annually, not a fixed number.
    Connector
  • Computes a personal angel number from a birth date using the Pythagorean Life Path as the base. Life Path 1-9 maps to the triple sequence (LP 4 → 444). Master numbers 11, 22, 33 map to 1111, 2222, 3333 respectively. SECTION: WHAT THIS TOOL COVERS The personal angel number is the individual's primary energetic signature in angel number tradition. Derived using the digit-fusing Life Path method (same as asterwise_get_numerology_profile): all digits of the birth date are summed and reduced to a single digit or master number, then mapped to the corresponding triple or quadruple sequence. Returns the Life Path number, the angel sequence, and the full angel number interpretation. SECTION: WORKFLOW BEFORE: RECOMMENDED — asterwise_get_numerology_profile — confirm Life Path before calling. AFTER: None. SECTION: INPUT CONTRACT date: Birth date in YYYY-MM-DD format. Example: '1994-03-31' name (optional): Person's name for personalisation. SECTION: OUTPUT CONTRACT data.birth_date (string) data.life_path (int — 1-9 or master 11/22/33) data.angel_number (string — e.g. '333' for LP 3) data.number (string) data.theme (string) data.message (string) data.guidance (string) data.areas[] (string array) data.name (string or null — if provided) SECTION: RESPONSE FORMAT response_format=json — structured JSON. response_format=markdown — human-readable. Both return identical data. SECTION: COMPUTE CLASS FAST_LOOKUP — pure digit math, no ephemeris. SECTION: ERROR CONTRACT INVALID_PARAMS (upstream): Invalid date format → 422. INTERNAL_ERROR: Any upstream API failure → MCP INTERNAL_ERROR SECTION: DO NOT CONFUSE WITH asterwise_get_angel_number_today — collective daily number from today's date, not birth date. asterwise_get_numerology_profile — full Pythagorean profile; this tool extracts only the Life Path → angel sequence mapping.
    Connector
  • Query the verified share of US manufacturing plants USING industrial robots — plus workers exposed and robotics capex — from the Census Industrial Robotic Equipment product (the first official federal robotics-adoption statistics). Use this for "are factories actually adopting robots" questions — the INSTALLED-BASE reading the import data cannot see. Serves the percent of plants with robots and the percent of employees at plants with robots (both published as FRACTIONS of 1: 0.121 = 12.1%), Census's demeaned variants, and capital expenditures for robotic equipment ($1000) — by manufacturing industry (`naics_code`, 2/3-digit), by `state`, and by `plant_size` band. Filter by `edition` ("asm_2018_2021" = the ASM annual series; "ec_2022" = the 2022 Economic Census), `table` (the workbook sheet — exactly one of: "Percent of... NAICS", "Percent of... Geo", "Percent of... Geo demean", "Robot adopters vs not", "Robot adoption and plant size", "CapEx... NAICS", "CapEx... Geo", "CapEx and plant size"), `data_year` (2018-2022), `naics_code`, `state`, `plant_size`, or `geo_area_name` ("United States" for the national row). Group by any of `edition`, `table`, `naics_code`, `naics_title`, `state`, `plant_size`, `data_year`. Pass each parameter as a top-level key of `params` (flat — not nested under a `filter`, `filters`, or `where` key). Example: `{"table": "Percent of... Geo", "data_year": 2022, "group_by": ["state"], "order_by": "avg_pct_plants_with_robots", "top_n": 10}` for the most-automated states; `{"table": "Percent of... NAICS", "edition": "asm_2018_2021", "naics_code": "336", "group_by": ["data_year"]}` for transportation-equipment adoption over the ASM years. Returns JSON aggregates with citations and optional row-level records when `include_records` is true — every value cites its exact workbook cell-group, re-verifiable via get_source_evidence_v1. THE ENGRAVED BOUNDARY: the two editions are NEVER spliced into one trend — the 2022 Economic Census reaches the small-plant universe the ASM sample does not (US plants-with-robots: 12.1% ASM-2021 vs 6.4% EC-2022 — a COVERAGE change, not a decline; every cross-edition scope carries an edition_scope note). Percents are INTENSIVE shares: avg/min/max over a scope, never summed. Capex sums UNDERSHOOT below the published totals wherever suppression bites (the published "United States" / "31-33" rows are the totals). Suppressed cells (D/S/A, decoded by the file's own footnotes) are null values with their verbatim letter — never zero; (s)-flagged estimates (standard error > 40%) carry their flag. Manufacturing plants only; adoption SHARES and capex, never robot counts (no official count of installed robots exists — the import unit-count series is query_robotics_trade_v1); an EXPERIMENTAL Census product (its own label); no edition after 2022 exists.
    Connector

Matching MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    MCP server for HubSpot CRM — 33 tools covering contacts, companies, deals, pipelines, lists, marketing emails, forms, workflows, and properties.
    Last updated
    30
    9
    MIT

Matching MCP Connectors

  • AI-powered product management: backlog optimization, scheduling, forecasting, and PRD generation.

  • Hex.pm MCP — package registry for the Elixir & Erlang ecosystems.

  • Issue a Chile electronic tax document (DTE) through OpenFactura (Haulmer): a boleta electrónica (consumer receipt, TipoDTE 39, default) or a factura electrónica (B2B invoice, TipoDTE 33), stamped against SII with the merchant's own CAF. Bring your own OpenFactura API key via header x-openfactura-key. Runs against the OpenFactura DEV sandbox by default (no fiscal effect); send header x-openfactura-mode: production to emit real SII documents. The Emisor (your company RUT, razón social, giro, address) is auto-derived from your account — you do not pass it. Amounts are in CLP (Chilean pesos: whole integers, no decimals). IMPORTANT price convention: for a boleta (39) each price is GROSS (IVA 19% already included, as shown to consumers); for a factura (33) each price is NET (IVA 19% is added on top).
    Connector
  • Fetch full AWS doc pages as markdown. `search_documentation` already returns verbatim page chunks, so don't re-read a URL whose chunk you already have to "confirm" or "round out" an answer -- the chunk is the real page text; treat it as authoritative. Reading the full page is justified ONLY when the chunks genuinely lack the content: - an enumeration or aggregation ("list all X", "how many X") needs the complete set and the chunks show only part of it; - no search result is on-topic after refining the query, and a known doc URL would have the answer. Otherwise, answer from the chunks. Use exact URLs from `search_documentation`; don't guess slugs. Input: `requests: [{url, max_length?, start_index?}]`. Batch 2-5. - `max_length` default 10000. - `start_index` default 0; use prior `end_index` to continue, TOC offset to jump. Allow-listed prefixes: docs.aws.amazon.com; aws.amazon.com (not /marketplace); repost.aws/knowledge-center; docs.amplify.aws; ui.docs.amplify.aws; github.com/{aws-cloudformation/aws-cloudformation-templates, aws-samples/{aws-cdk-examples, generative-ai-cdk-constructs-samples, serverless-patterns}, awsdocs/aws-cdk-guide, awslabs/aws-solutions-constructs, cdklabs/cdk-nag} (README on `main`); constructs.dev/packages/{@aws-cdk-containers, @aws-cdk, @cdk-cloudformation, aws-analytics-reference-architecture, aws-cdk-lib, cdk-amazon-chime-resources, cdk-aws-lambda-powertools-layer, cdk-ecr-deployment, cdk-lambda-powertools-python-layer, cdk-serverless-clamscan, cdk8s, cdk8s-plus-33}; strandsagents.com/latest/documentation/docs/. Output: SUCCESS -- markdown + `total_length, start_index, end_index, truncated, redirected_url?` (truncated includes TOC with char ranges). ERROR -- `error_code` in {not_found, invalid_url, throttled, downstream_error, validation_error}.
    Connector
  • Calculates the Soul Urge (Heart's Desire) number from vowels in the full name. Only A, E, I, O, U are treated as vowels — Y is always a consonant in this system. Reduces each name part separately before summing, preserving master numbers 11, 22, 33. SECTION: WHAT THIS TOOL COVERS The Soul Urge reveals the inner motivation — what the soul craves, what drives choices at the deepest level. It is the hidden engine beneath the Expression. This is the most private of the three core name numbers. SECTION: WORKFLOW BEFORE: None — standalone. AFTER: asterwise_get_personality_number — complete the name number trinity. SECTION: INPUT CONTRACT name — Full legal name as used at birth. Example: 'Arjun Mehta', 'Sofia Rossi' Y is always treated as a consonant — not a vowel. SECTION: OUTPUT CONTRACT data.number (int — Soul Urge number; 11/22/33 preserved as master) data.is_master_number (bool) data.karmic_debt_number (int or null) SECTION: RESPONSE FORMAT response_format=json serialises the complete response as indented JSON — use this for programmatic parsing, typed clients, and downstream tool chaining. response_format=markdown renders the same data as a human-readable report. Both modes return identical underlying data. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (local): None — validation is upstream. INTERNAL_ERROR: Any upstream API failure → MCP INTERNAL_ERROR SECTION: DO NOT CONFUSE WITH asterwise_get_expression_number — all letters, not vowels only. asterwise_get_personality_number — consonants only, not vowels.
    Connector
  • Découverte des nomenclatures de codes du serveur (tool unique paramétré par `referentiel`) — à appeler avant de filtrer un autre tool plutôt que deviner les codes. ⚠️ Les 3 nomenclatures sont DISTINCTES : un même nombre y désigne des choses différentes (ex '10' = Médecin côté ANS, Neurochirurgien côté Ameli). Ne JAMAIS passer un code d'un référentiel à un paramètre d'un autre — le filtre renverrait vide sans erreur. `referentiel` : - `ameli_specialites` — codes `specialite_code` Ameli (libéraux conventionnés Assurance Maladie / CNAM) : libellé natif, `type_ps_code` de rattachement, count, `libelle_clarifie` (désambigüise les libellés partagés, ex "Médecin généraliste" = 01/22/23 ; "Psychiatre" = 33/75), `is_libelle_partage`. Pour filtrer `professionnels_in_radius` / `professionnels_par_specialite_dept` (param `specialite_code(s)`). - `ameli_types_ps` — codes `type_ps` Ameli : `libelle_source`, `libelle_clarifie` (résout l'ambiguïté du code "2" fourre-tout), count, et `specialites_presentes` (spécialités regroupées). Payload léger via `include_specialites: false` (→ `nb_specialites`). - `rpps_savoir_faire` — spécialités médicales `savoir_faire_code` RPPS / Annuaire Santé ANS (ex 'SM04' Cardiologie). Pour filtrer `densite_sante` (cible professionnels) / `professionnels_rpps_*`. Filtre par `profession_code` (défaut '10' Médecin ; string vide ou 'null' = tous savoir_faire). Paginé : `limit` (défaut 50), réponse expose `total` et `truncated`. PÉRIMÈTRE : libéraux conventionnés UNIQUEMENT. HORS PÉRIMÈTRE : médecins exclusivement hospitaliers/salariés, biologistes médicaux salariés en LBM, anatomopathologistes hospitaliers, médecins du travail, médecine légale. Pour effectifs tous statuts, voir Annuaire Santé ANS (RPPS, esante.gouv.fr) — non couvert par ce serveur. Source : Annuaire santé Ameli (Assurance Maladie), MAJ hebdomadaire. Réutilisation soumise à l'art. L.1461-2 CSP — citer la source et la date de sync.
    Connector
  • Resolve a structured Apier compliance error code into a Norwegian-bokmål Explanation envelope sourced from the Apier Compliance Explainer (PR-049). The response carries a one-line summary, a 1–3 sentence why, an ordered list of fix_steps, an optional Apier / Altinn / Skatteetaten / Brønnøysund relevant documentation link, an optional Lovdata-style legal_basis citation when the error maps to a concrete regulatory provision, and an optional handover block (who / where / what / why) for errors a human must resolve (e.g. AUTH_INSUFFICIENT_ROLE, AUTH_NO_DELEGATION, SCOPE_MISSING). Errors agents can resolve themselves (VALIDATION_FAILED, RATE_LIMIT_EXCEEDED, NOT_FOUND, IDEMPOTENCY_KEY_MISMATCH, IDEMPOTENCY_IN_PROGRESS, UPSTREAM_UNAVAILABLE) ship `handover: null`. The full catalogue of supported error codes mirrors `EXPLAINER_ERROR_CODES` (33 codes today across auth, validation, scope, upstream, idempotency, action-execute, government, and reliability domains); pass any code an Apier endpoint returned in an error envelope. The optional `context` object carries placeholder values (org_number, role, scope, field, upstream_system) that the explainer interpolates into the bokmål text — missing values fall back to a Norwegian 'ukjent <noun>' rather than leaking placeholder syntax. Required scope: `read:rulebook`. For a company's live obligations rather than an error explanation, use get_company_obligations instead. No API key? Self-serve in the sandbox: authenticate tools/call with `Authorization: Bearer apier_sandbox_test_<suffix>` (ALWAYS append a unique random suffix, e.g. a fresh UUID, for session isolation) and this tool answers from deterministic synthetic fixtures with `_meta.is_sandbox: true` — use the reserved MOD-11-valid sandbox org numbers from GET /api/v1/sandbox/fixtures (e.g. 999660088).
    Connector
  • Find EV charging stations from the global Open Charge Map registry near a point or within a bounding box. Provide either a center (latitude + longitude + distance) or a boundingbox; optionally scope to a country with countrycode. This tool is coordinate-native and does not geocode place names — resolve a place like "Ballard, Seattle" to coordinates with openstreetmap_geocode first, then pass them here. Filter by connector type, minimum power (kW), operator/network, usage type (public/free/membership), charge level, operational status, and minimum charge points. Filter IDs are integers — resolve a connector or network name to its ID with openchargemap_lookup_reference (e.g. "CCS" -> 33). Each result includes title, address, distance from the search point, connections (type, power, count), operator, access rules, registry operational status, and the last-verified date.
    Connector
  • Calcula el impacto de jubilarse antes de la edad ordinaria: comprueba si es posible (según años cotizados y modalidad), aplica el coeficiente reductor trimestre a trimestre y devuelve la pensión reducida y la pérdida mensual/anual. Voluntaria: hasta 2 años antes, ≥35 años cotizados. Involuntaria (despido/ERTE): hasta 4 años antes, ≥33 años. Necesita la pensión ordinaria estimada (puedes obtenerla con "consulta_jubilacion").
    Connector
  • Validate & parse a phone number against the E.164 / ITU calling-code plan (keyless, offline). Detects the country, normalizes to E.164, and checks the national-number length is plausible. Pass an international number (e.g. "+33 1 23 45 67 89") OR a national number plus a `country` ISO code (e.g. phone="020 7946 0958", country="GB"). Does NOT determine carrier or mobile-vs-landline (that needs a keyed HLR lookup).
    Connector
  • Returns dictionary-style numerology copy for a single integer, including interpretation, keywords, and stubbed extended fields. SECTION: WHAT THIS TOOL COVERS Static reference for any whole number from one through thirty-three inclusive (includes master numbers eleven, twenty-two, thirty-three plus every intermediate value). No name or date. data.theme, data.advice, data.opportunities[], and data.challenges[] are stubs (null or empty). Not personalised profiling (asterwise_get_numerology_profile). SECTION: WORKFLOW BEFORE: None — standalone. AFTER: None. SECTION: INPUT CONTRACT number must pass local guard: inclusive range one through thirty-three; values outside that band raise MCP INVALID_PARAMS before the HTTP call. SECTION: OUTPUT CONTRACT data.number (int) data.context (string — 'general') data.interpretation (string) data.keywords[] (string array) data.theme (currently null — stub) data.opportunities[] (currently empty — stub) data.challenges[] (currently empty — stub) data.advice (currently null — stub) SECTION: RESPONSE FORMAT response_format=json serialises the complete response as indented JSON — use this for programmatic parsing, typed clients, and downstream tool chaining. response_format=markdown renders the same data as a human-readable report. Both modes return identical underlying data — no fields are added, removed, or filtered by either mode. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (local — caught before upstream call): — number less than 1 or greater than 33 → MCP INVALID_PARAMS INVALID_PARAMS (upstream): — None — further rejection surfaces as MCP INTERNAL_ERROR at the tool layer. INTERNAL_ERROR: — Any upstream API failure or timeout → MCP INTERNAL_ERROR Edge cases: — Accepts every integer in the inclusive one..thirty-three range, not only master numbers. SECTION: DO NOT CONFUSE WITH asterwise_get_numerology_profile — computes personal numbers from name and date, not a static dictionary row. asterwise_get_lucky_numbers — personalised lucky list, not reference meanings.
    Connector
  • Lookup the meaning of a specific angel number by its sequence. Supported: 000, 111–999 (single repeating digit), 911, 1010, 1111, 1122, 1212, 1234, 2222–9999 (double repeating digit). SECTION: WHAT THIS TOOL COVERS Returns the theme, primary message, actionable guidance, and associated life areas for a specific angel number sequence. Each sequence carries distinct meaning in modern numerological tradition. 111 = manifestation portal. 444 = angelic protection. 999 = cycle completion. 1111 = awakening gateway. 555 = transformation in progress. Pass the number as a string exactly as it appears (e.g. '444' not 444). SECTION: WORKFLOW BEFORE: None — standalone. AFTER: None. SECTION: INPUT CONTRACT number: string — the angel number sequence to look up. Examples: '111', '444', '1111', '911'. SECTION: OUTPUT CONTRACT data.number (string) data.theme (string) data.message (string) data.guidance (string) data.areas[] (string array) SECTION: RESPONSE FORMAT response_format=json — structured JSON. response_format=markdown — human-readable. Both return identical data. SECTION: COMPUTE CLASS FAST_LOOKUP SECTION: ERROR CONTRACT INVALID_PARAMS (upstream): Unsupported number → 404, surfaces as MCP INTERNAL_ERROR. INTERNAL_ERROR: Any upstream API failure → MCP INTERNAL_ERROR SECTION: DO NOT CONFUSE WITH asterwise_get_angel_number_today — today's collective daily angel number. asterwise_get_angel_number_personal — personal angel number from birth date. asterwise_get_number_meaning — Pythagorean numerology meaning for 1–33; different tradition.
    Connector
  • Create a professional, shareable PDF document — invoices, receipts, certificates, reports, resumes, letters. Returns a link that opens the document in the PDFMakerAPI editor to preview, edit any field, and download the PDF. Design a THOROUGH, realistic document (don't leave it sparse) that exactly follows this model, then pass it as `document`. DOCUMENT MODEL (PDFMakerAPI): Document: - id: string (short slug) - name: string - description: string (one short sentence) - pageSize: "letter" | "a4" | "legal" | "letter-landscape" | "a4-landscape" | "square" | "auto" (default "a4"; "auto" = letter width with the height growing to fit the content — use it for certificates/awards so there's no empty space below) - pageBackgroundColor: hex string (default "#ffffff") - margin: "none"|"sm"|"md"|"lg" // page margin (inset from the page edge); default "lg" - gap: "none"|"sm"|"md"|"lg" // vertical spacing between top-level sections; default to "lg" (most spacing) for an airy layout - variables: Variable[] // every {{placeholder}} you use MUST be declared here - children: Node[] // the document body, top to bottom Variable: { id, name (snake_case, used as {{name}}), label (human), type: "text"|"date"|"number"|"currency", defaultValue?: string } Node is one of (every node has: id, name, width: "full"|"1/2"|"1/3"|"1/4"|"2/3"|"3/4"|"auto", order: number, align?: "left"|"center"|"right", style?: NodeStyle): container: { type:"container", layout: { direction:"row"|"column", gap:"none"|"sm"|"md"|"lg", justify?:"start"|"center"|"end"|"between", alignItems?:"start"|"center"|"end"|"stretch" }, children: Node[] } text: { type:"text", content: string (supports \n, {{vars}}, and **inline bold** — wrap part of the text in double asterisks to bold just that part, e.g. "Total: **{{total}}**"), fontSize?:"xs"|"sm"|"base"|"lg"|"xl", fontWeight?:"normal"|"medium"|"semibold"|"bold" } table: { type:"table", columns: { id, name (data key), label (header), width?: "40%", align?: "left"|"center"|"right" }[], rowVariable: string (a variable holding the row array) } spacer: { type:"spacer", height: "sm"|"md"|"lg"|"xl" } divider: { type:"divider", lineStyle?: "solid"|"dashed"|"dotted" } NodeStyle: { backgroundColor?: hex, backgroundMode?: "none"|"solid"|"gradient", gradientTo?: hex, textColor?: hex, padding?: "none"|"sm"|"md"|"lg"|"xl", borderRadius?: "none"|"sm"|"md"|"lg", fullBleed?: boolean } VARIABLES — how data is inserted: - In text content, insert a value with double braces and the exact snake_case name, e.g. {{invoice_number}} — no spaces inside the braces. Every {{name}} you use MUST be declared in variables[]. - ALWAYS fill every variable's defaultValue — never leave one blank. If the user gave you specific data/values to use, put those exact values in the defaultValues; otherwise invent realistic dummy data. This is required: the Filled preview must show a complete, non-empty document. - TABLES do NOT use {{}}. A table auto-renders one row per item in its rowVariable array, pulling item[column.name] for each cell — so each column "name" must match the row object's key. The rowVariable variable's defaultValue must be a JSON-encoded string of the row array, i.e. equal to JSON.stringify([{ description: "Brand design", qty: "1", amount: "$2,400.00" }]). RULES: - Use containers (direction:"row") to place items side by side (e.g. logo left / details right). - ROW WIDTHS — a direction:"row" container lays ALL its children on ONE line; they never wrap. The children's widths must add up to AT MOST "full". Treat the fractions as: full=1, 3/4=.75, 2/3≈.67, 1/2=.5, 1/3≈.33, 1/4=.25. So 1/3+1/3+1/3, 1/2+1/2, and 2/3+1/3 fit (sum ≤ full); but 1/2+1/2+1/2 (=1.5) or 2/3+2/3 (≈1.33) overflow and break the layout. Do NOT add another child to a row if it would push the total past "full" — instead split the items into multiple row containers (stacked in a column), or narrow each child's width so the row's total stays ≤ full. - For label/value pairs (dates, totals, "Bill To", reference numbers), nest a direction:"row" container with two text children — a BOLD label (fontWeight:"bold") and the value as a {{variable}} — each with a width (e.g. label "1/3", value "2/3") so they align in columns. Stack such rows in a column container. - Put real, realistic content with {{variables}} for the data that changes; declare each variable. - Use a table node for any repeating rows (line items, attendees) and set rowVariable. - INLINE BOLD: to bold PART of any text, wrap it in **double asterisks** — e.g. a text node's content "Total: **{{total}}**". Bold is applied purely via the text string (there is NO per-run style flag and NO per-column weight); wrapping in ** ** is the ONLY way to bold part of a string. Only apply bold where the user actually asks for it — never add it on your own. It also works inside TABLES: to bold the values of a specific column the user named, wrap each of that column's values inside the rowVariable's row data with ** **; to bold a header, wrap that column's label in ** **. - Spacing between top-level sections comes from the document "gap" — set it to "lg" by default and do NOT insert spacer nodes between sections. Use a spacer only for fine spacing inside a container. - Table column alignment: left-align text columns, right-align money/number columns (price, amount, total, qty totals), center only short codes/status; a header's alignment matches its column. - CERTIFICATES / AWARDS / DIPLOMAS: set pageSize:"auto" so the page grows to fit the content (no empty space below). Center-align the text (align:"center"), make the recipient name large (fontSize "xl", bold), and place signature lines near the bottom. - Every id must be unique. Keep the design clean and professional. After the tool returns a url, share it and tell the user they can open it to preview, edit any field, and download the PDF.
    Connector
  • Get details, status, temps, current job, filament, notifications for ONE specific printer by id. Use this (not list_printers) whenever the user asks about a single printer they've already identified — "status of printer X", "what's printer 5 doing", "temperature on Creality K2". Cheaper and less noisy than listing all printers.
    Connector
  • Computes physical (23-day), emotional (28-day), and intellectual (33-day) biorhythm cycles for a birth date. SECTION: WHAT THIS TOOL COVERS Returns cycle values (-1.0 to +1.0), percentage, phase label (High/Rising/Falling/Low), and critical day flags for each cycle. Critical days occur when a cycle crosses the zero line — these represent instability and vulnerability to poor judgment or accidents. Supports single-day snapshot (days=1) and multi-day range (up to 90 days). Formula: sin(2π × t / cycle_length) where t = days since birth. Also returns composite_score (average of three cycles) and has_critical_day flag. Biorhythm is a Western concept — Vedic equivalents are Tarabala and Chandrabala (use asterwise_get_nakshatra_prediction for the Vedic equivalent). SECTION: WORKFLOW BEFORE: None — standalone. AFTER: asterwise_get_nakshatra_prediction — for the Vedic personalized daily prediction. SECTION: INPUT CONTRACT birth_date (required): Date of birth in YYYY-MM-DD format. target_date (optional): Date to compute for. Defaults to today. days (optional int 1-90): Number of consecutive days. Default 1. SECTION: OUTPUT CONTRACT (single day) data.birth_date, data.target_date, data.days_since_birth (int) data.cycles{}: physical, emotional, intellectual — each: value (float -1.0 to +1.0), percentage (float), phase (string), is_critical (bool), cycle_length_days (int), description (string) data.critical_today[] (string array of cycle names that are critical) data.has_critical_day (bool) data.composite_score (float — average of three cycles) data.note (string — explains Vedic equivalents) SECTION: OUTPUT CONTRACT (date range, days > 1) data.birth_date, data.start_date, data.end_date, data.days data.daily[] — array of day objects each with date, cycles{}, critical[], composite_score SECTION: COMPUTE CLASS FAST_LOOKUP — pure math, no ephemeris. SECTION: ERROR CONTRACT INVALID_PARAMS (upstream): birth_date after target_date → INTERNAL_ERROR INTERNAL_ERROR: Any upstream API failure → MCP INTERNAL_ERROR SECTION: DO NOT CONFUSE WITH asterwise_get_nakshatra_prediction — Vedic Tarabala/Chandrabala daily prediction. asterwise_get_panchanga — Vedic daily panchanga elements, not biorhythm cycles.
    Connector