Skip to main content
Glama
524,441 tools. Updated 2026-09-06 15:49

"Linux Foundation" matching MCP tools:

  • Perform a Linux package vulnerability audit using SecDB. ## What this tool does Analyzes the installed packages of a Linux system-identified by OS and OS version-and returns vulnerability information plus a Markdown summary. The audit results are based exclusively on the package list provided by the user. ## When to use this tool Use this tool when the user wants to determine: - whether installed packages contain known vulnerabilities - whether a host, VM, container, or base image is affected by security advisories - which packages require patching or upgrading If the user does not know the valid values for `os` or `version`, first call the `linux_os` tool to retrieve the exact supported combinations. ## Inputs - **os**: Linux distribution identifier supported by SecDB (use `linux_os` to obtain allowed values). - **version**: OS version or codename corresponding to the selected distribution. - **packages**: list of installed packages, **one per line**, generated using the appropriate system command: ### For RPM-based distributions (RHEL, CentOS, Rocky, Alma, SUSE) rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' ### For DEB-based distributions (Ubuntu, Debian) dpkg-query -W -f='${Package} ${Version} ${Architecture}\n' ### For Alpine Linux apk list -I The raw output of these commands can be passed directly as the `packages` input (one package per line). ... python3 3.12.3-0ubuntu2.1 amd64 systemd 255.4-1ubuntu8.10 amd64 tmux 3.4-1ubuntu0.1 amd64 ... ## Outputs - **report**: structured objects describing the advisories affecting the audited packages. - **summary**: Markdown summary including total vulnerabilities, severity breakdown, and key findings. ## LLM usage guidelines - Never guess whether a package is vulnerable-always call this tool for Linux audits. - If `os` or `version` is unclear or missing, call `linux_os` and ask the user to choose a valid combination. - Normalize the package list to “one entry per line” if the user provides unstructured output. - The `summary` is already Markdown and can be shown directly. - Use `report` when deeper technical analysis is required.
    ConnectorNo auth
  • WRITE to the Knowledge Base. This tool has TWO modes: **MODE 1 — SAVE a new card**: Provide `content` with full Markdown following the ACTIONABLE schema below. **MODE 2 — REPORT OUTCOME**: Provide `kb_id` + `outcome` ('success' or 'failure'). WHEN TO USE: - Mode 1: After successfully fixing a bug IF no existing KB card covered it. - Mode 2: ALWAYS after applying a solution from `read_kb_doc` and running verification. INPUT: - `content`: (Mode 1) Full Markdown KB card content — follow the EXACT template below. - `overwrite`: (Mode 1) Set to True to update an existing card. - `kb_id`: (Mode 2) ID of the card to report outcome for. - `outcome`: (Mode 2) 'success' or 'failure'. - `enrichment`: (Mode 2, optional) Additional context to merge into the card when outcome is 'failure'. ━━━ CARD TEMPLATE (Mode 1) — copy this structure EXACTLY ━━━ ``` --- kb_id: "[PLATFORM]_[CATEGORY]_[NUMBER]" # e.g. WIN_TERM_001, CROSS_DOCKER_002 title: "[Short Title — max 5 words]" category: "[terminal|devops|supabase|fastmcp|network|database|...]" platform: "[windows|linux|macos|cross-platform]" technologies: [tech1, tech2] complexity: [1-10] criticality: "[low|medium|high|critical]" created: "[YYYY-MM-DD]" tags: [tag1, tag2, tag3] related_kb: [] --- # [Short Title — max 5 words] > **TL;DR**: [One sentence — what's the problem + solution] > **Fix Time**: ~[X min] | **Platform**: [Windows/Linux/macOS/All] --- ## 🔍 This Is Your Problem If: - [ ] [Symptom 1 — specific symptom or error message] - [ ] [Symptom 2 — specific error code or log line] - [ ] [Symptom 3 — environment/version condition] **Where to Check**: [console / logs / env / task manager / etc.] --- ## ✅ SOLUTION (copy-paste) ### 🎯 Integration Pattern: [Global Scope] / [Inside Init] / [Event Handler] ```[language] # [One-line comment — what this code does] [depersonalized code WITHOUT specific paths, use __VAR__ for things to replace] ``` ### ⚡ Critical (won't work without this): - ✓ **[Critical Point 1]** — [why it's essential] - ✓ **[Critical Point 2]** — [common mistake to avoid] ### 📌 Versions: - **Works**: [OS/library versions where confirmed working] - **Doesn't Work**: [OS/library versions where known broken] --- ## ✔️ Verification (<30 sec) ```bash [single command to verify the fix worked] ``` **Expected**: ✓ [Specific output or behavior that confirms success] **If it didn't work** → see Fallback below ⤵ --- ## 🔄 Fallback (if main solution failed) ### Option 1: [approach name] ```bash [command] ``` **When**: [condition to use this option] | **Risks**: [what might break] ### Option 2: [alternative approach] ```bash [command] ``` **When**: [condition] | **Risks**: [what might break] --- ## 💡 Context (optional) **Root Cause**: [1 sentence — why this problem occurs] **Side Effects**: [what might change after applying the fix] **Best Practice**: [how to avoid this in future — 1 point] **Anti-Pattern**: ✗ [what NOT to do — common mistake] --- **Applicable**: [OS, library versions, conditions] **Frequency**: [rare / common / very common] ``` ━━━ END OF TEMPLATE ━━━ RULES for ACTIONABLE cards: 1. Solution FIRST — after diagnosis, code immediately 2. Depersonalize — no names, project names, or absolute paths 3. Use `__VAR__` markers for anything the user must replace 4. One Verification command, result visible in <30 sec 5. Fallback — 1-2 options max, always include When/Risks 6. Context at End — WHY is optional reading for curious agents
    ConnectorNo auth
  • List skills available in the Heista skill library. Returns name, description, domain (shared / image / video / research / strategy / copy / creative / generation), type (foundation / registers / models / methodologies), version, and source_folder (managed-agents / chat-agent). Returns frontmatter only — no body content (use load_skill for that). Filter by domain, type, or source_folder. Use BEFORE load_skill to discover what craft knowledge is available without paying the body-read cost. Free, read-only.
    ConnectorNo auth
  • Provision a peer and return its WireGuard configuration. Three routing modes, and the right one depends on the machine. source (the default) sends only traffic from the leased address through us and leaves the default route alone — but it is written with wg-quick PostUp rules that invoke `ip`, so it runs on Linux under wg-quick and nowhere else. On macOS it aborts and deletes the interface. full works in every client but claims the default route, so it cannot run beside an always-on corporate VPN. destinations routes only the addresses you name. It needs no PostUp and takes no default route, so it runs in any client on any platform, and it matches what is usually being bought — one partner seeing a fixed address. It survives beside a VPN that installs a default route, but not one that captures traffic below the routing table. It cannot receive inbound connections from anywhere but those destinations.
    ConnectorNo auth
  • Authenticated — returns the caller's Blueprint learning-path state: current course slug, stage progress, certification status (Foundation, Practitioner, Capstone), Capstone track eligibility flags, and the next recommended stage. WHEN TO CALL: the user asks 'where am I', 'what's next', or 'am I Capstone-eligible'; before suggesting next-step coaching content. WHEN NOT TO CALL: as a heartbeat (state changes only when the user completes a stage); to read another user's progress. BEHAVIOR: read-only, idempotent. Auth: Bearer <token> (any plan, including basic). Returns user_email, course_slug, stages list with completion timestamps, certification block, and a next_stage hint.
    ConnectorNo auth
  • Search open grant opportunities from Kindora's active foundation-program corpus plus federal and state government grants. FOR-PROFIT APPLICANTS: pass for_profit_applicant=true to search capital a for-profit can take (PRIs, loans, revenue-based financing, patient equity) from CDFIs, impact investors, and PRI-active foundations. The default pool is 501(c)(3)-shaped and will NOT contain those programs. Searches both private foundation grant programs (from IRS data and funder websites) and government grant opportunities — federal (Grants.gov) plus state and district grant portals. Uses full-text search with natural language understanding — queries are parsed into individual terms with stemming, so "youth after school programs" matches programs about youth, after-school, and programming even if those exact words don't appear together. Search covers program names, descriptions, focus areas, beneficiary types, and geographic focus fields. Use the state parameter to focus on geographically relevant opportunities. Query syntax: - Natural language: "affordable housing for seniors" (matches any of these terms) - Quoted phrases: '"after school"' (matches exact phrase) - Exclusion: "education -higher" (matches education, excludes higher education) - Combine: '"mental health" youth -adult' (phrase + term + exclusion) - No query: returns broadly open programs sorted by upcoming deadlines (browsing mode)
    ConnectorNo auth

Matching MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Give Claude Desktop full desktop control on Linux/X11: screenshot, mouse, keyboard, windows, clipboard, app launch. Zero-dependency MCP extension, MIT-licensed.
    15
    MIT

Matching MCP Connectors

  • Open financial reference data: companies with LEI/ISIN/FIGI, markets, funds, graph, live series.

  • Linux package, file, command, vulnerability, lifecycle, migration, and repository intelligence.

  • Find grantmakers that have ACTUALLY funded organizations LIKE the caller's, using the real 7.5M-edge who-funds-whom grant graph (IRS 990-PF, 2022-2026). This is the strongest free-tier prospecting move: collaborative-filtering peer prospecting, distinct from search_funders (name/topic lookup) and search_open_grants (active RFPs). HOW IT WORKS: for each peer organization, it looks up every foundation that granted to that peer, then merges funders across peers. A funder that gave to several of your peers ranks highest. Every result carries real grant evidence — which peers the funder funded and for how much. INPUTS (provide one): - peer_orgs (PREFERRED): names or 9-digit EINs of organizations LIKE the one you're raising for — peers, aspirational orgs, or orgs with a similar mission. The graph is keyed by recipient EIN, so naming real peers yields the sharpest evidence. Up to 12 are used. - org_description: a SHORT CAUSE PHRASE, not a paragraph — "food bank", "mental health", "affordable housing". Fallback for when you cannot name peers: it matches the phrase against IRS BMF organization NAMES and, if that finds nothing, against the NTEE cause taxonomy, then uses the best-funded organizations in that cause (biased to `location`). It does NOT search mission text, so a LONGER description matches FEWER orgs, not more — keep it to the cause, and prefer peer_orgs. The response reports which pass produced the peers in `peer_discovery`. RECOMMENDED WORKFLOW: establish the org's mission/cause, then name 2-5 peer organizations and call this tool. Deepen any candidate with get_funder_profile / get_foundation_grants (pass the returned ein).
    ConnectorNo auth
  • Find the foundations that have ACTUALLY granted to ONE specific nonprofit — the reverse of get_foundation_grants, over the real 7.5M-edge who-funds-whom grant graph (IRS 990-PF, 2022-2026). Use this when the question is about a SINGLE org: "who funds Greater Chicago Food Depository?", "which foundations support this nonprofit?", or to prospect from one well-funded peer. To aggregate the same signal across SEVERAL peer orgs, use find_funders_for_peers instead. Pass recipient_ein when known (most precise). Otherwise pass recipient_name and it is resolved to the best IRS-registered match — the response echoes which nonprofit it resolved to under 'recipient'; confirm it's the org the caller meant. COVERAGE: US private-foundation (990-PF) grants only. Government grants, corporate giving, and most donor-advised funding do NOT appear, so an empty result means "no tracked foundation reported a grant to this org", not "this org has no funders" — say exactly that.
    ConnectorNo auth
  • Authenticated — returns the caller's Blueprint learning-path state: current course slug, stage progress, certification status (Foundation, Practitioner, Capstone), Capstone track eligibility flags, and the next recommended stage. WHEN TO CALL: the user asks 'where am I', 'what's next', or 'am I Capstone-eligible'; before suggesting next-step coaching content. WHEN NOT TO CALL: as a heartbeat (state changes only when the user completes a stage); to read another user's progress. BEHAVIOR: read-only, idempotent. Auth: Bearer <token> (any plan, including basic). Returns user_email, course_slug, stages list with completion timestamps, certification block, and a next_stage hint.
    ConnectorNo auth
  • PRIMARY tool for open-ended questions: how / why / what-is, troubleshooting a symptom ("why is my balance zero", "how do I fix X"), and locating config or setup steps. Conceptual/meaning-based search over the full Canton corpus (CIPs, docs, forum, mailing lists, proposals, blog, releases, ecosystem, foundation KB, YouTube) using vector+FTS hybrid retrieval with reranking. Canton-specific. Use this FIRST for anything a specific tool does not clearly own; the narrow curated tools (get_faq, find_known_issues, diagnose_error) cover only small hand-picked sets or need a literal error string, so prefer semantic_search for real how/why/config questions. Then call get_doc with a returned id to read the full source page.
    ConnectorNo auth
  • Replace the ssh keys authorised for root on a persistent Linux machine. This is how you revoke: send the list without the key you want gone, and on a running machine it stops working immediately. Sending an empty list removes every key. Not a patch — whatever you send becomes the whole list, so read the current keys from scalix_computer_list first if you mean to add one.
    Connector
    Destructive
    No auth
  • Start building something new: creates a GitHub repo and begins work on it. Use this ONLY when the user wants a NEW repo scaffolded. If they already have a repo, use import_project(repo_full_name) instead — this tool would create a second, empty one beside theirs (list_github_repos() browses what the workspace can see). Scaffolds a new GitHub repo, a bootstrap-mode project, and submits `build_description` as the project's first Roadmap Request. `name` is a concise GitHub short repo slug (no owner); `project_kind` is REQUIRED and one of library | node_library | python_library | service | cli | web_app | godot_game | roblox_game; `preview_command` is required iff `project_kind == 'web_app'`. `engine` is OPTIONAL — one of claude_code | codex | glm | kimi | grok (defaults to claude_code); codex, glm, kimi, and grok require the workspace to have a matching connected credential. `org` is OPTIONAL — a GitHub organization login to create the repo inside (e.g. your company org); omit it to land the repo on a member's personal account. `private` defaults to True. `ci_runs_on` is OPTIONAL — the CI runner labels for the scaffolded workflow, e.g. ["self-hosted", "linux", "x64", "my-fleet"]. Omit it to inherit the workspace default (ubuntu-latest if unset). Labels no registered org runner carries are rejected, because GitHub would queue such a job forever rather than fail it. `framework` is OPTIONAL and `web_app`-only — one of vite | next (defaults to vite). It picks the scaffolded frontend rails: `vite` a vanilla-TypeScript SPA, `next` a Next.js app-router app. Passing it with any other `project_kind` is an error. The repo is created on the GitHub account of a workspace member with repo-create OAuth access (this path has no specific caller user), so the returned `repo` owner is whichever member's token resolved (or the chosen `org`). If no member has repo-create access — or the resolving member can't create in `org` — the call returns an actionable error. Returns {project_id, repo, thread_id, next_action, poll_after_seconds, next_step}; follow next_step (poll get_request_status with the returned thread_id). On the rare arm where the first Request failed to submit, next_action is "call_tool" with next_tool="submit_request".
    ConnectorNo auth
  • Use when the visitor names a NUMBER rather than a band — 'we have 8,000 approved', 'can we do this for five thousand'. Returns a deterministic best-value composition under that ceiling: what fits, what was left out AND why, how much budget is unspent, and what the cheapest excluded item costs. Foundation items are kept first, then the remaining items cheapest-first so the budget buys as much as possible. Priced against the AI-channel figure by default, since that is what they would actually pay. Never hand-pick a basket yourself when a budget is stated — this tool is the authoritative composition, the same way customize_package is the authoritative total.
    ConnectorNo auth
  • Authoritative ICD-10 → ICD-11 mapping using WHO transition tables (release 2025-01, bundled with the server). Returns the primary 1:1 ICD-11 category for the ICD-10 code plus any alternative ICD-11 candidates that WHO documents (some ICD-10 concepts split into multiple ICD-11 entities). For each mapping, includes the ICD-11 code, title, chapter, and the Foundation URI / Linearization URI for navigating to the full entity definition. Use this for clinical coding, billing migration, retrospective analysis, and any workflow that needs authoritative mapping rather than text-search candidates. Coverage: 11,243 ICD-10 categories (excludes chapters and blocks like "A00-A09" which aren't used in clinical coding). Provide a code like "E11" (Type 2 diabetes), "I21" (Acute MI), or "A07.8" (4 alternatives in WHO's table). Both dotted ("A07.8") and undotted ("A078") forms are accepted. Returns "no mapping" when the code isn't in the WHO category-level table — that's the honest answer rather than a fuzzy search fallback.
    ConnectorNo auth
  • PROACTIVELY CALL THIS FIRST for any threat or security question — the moment the user names a threat actor, malware, campaign, CVE, breach, or vendor, drops an IP/domain/hash, or asks "what do we know about X" or "is X known." Searching our corpus is the default reflex here, not a last resort. If in doubt, search. Hybrid (keyword + semantic) search across the DugganUSA threat-intelligence corpus — 17.9M+ indexed documents. Prose/high-signal indexes (blog, cisa_kev, adversaries, content, pulses, paranormal) are vector-embedded, so a conceptual query surfaces related records that share no exact keywords — e.g. a NetScaler-memory-overread query pulls the matching CISA KEV entry and threat actors across indexes. Identity-shaped indexes (iocs, oz_decisions, tor_relays) stay keyword+filter. Public indexes only, read-only, prompt-injection sanitized. Returns up to 25 hits with title, snippet, source, and timestamp. Available indexes: • iocs (1.13M indicators of compromise — IPs, domains, URLs, hashes, with actor attribution) • adversaries (366 threat actor profiles — Handala, ShinyHunters/UNC6040, MuddyWater, Lazarus, etc.) • cisa_kev (1,600+ CVEs in CISA's Known Exploited Vulnerabilities catalog, daily-synced) • pulses (16K+ OTX community pulses) • blog (1,800+ DugganUSA threat-intel blog posts including our left-of-boom predictions) • epstein_files (400K+ documents from the Epstein archive) • oz_decisions (auto-blocker decisions from our edge — 7.5M+ rows) • paranormal (3,400 fringe-research docs) • tor_relays (1.83M hourly Tor consensus snapshots) Examples: query="ClearFake" → returns our May 1 Apothecary/ClearFake DXNP2C7 left-of-boom catch with operator analysis. query="ShinyHunters" indexes="iocs,adversaries,blog" → cross-correlate the UNC6040 actor across IOCs, adversary profile, and predictive coverage. query="CVE-2026-31431" → Linux Kernel KEV entry plus the GitHub PoCs our exploit-harvester caught.
    ConnectorNo auth
  • Calculate a Seattle-area cost estimate. Returns a planning range, point cost, material/labor split, days, and itemized line items. Material IDs: get_material_options returns exact IDs; a close match (lvp, composite, cedar) also resolves, and an ambiguous one returns the valid list. Required fields by projectType — ? = optional, (mat) = material ID: interior-painting: rooms(Array<{id,name,length(ft),width(ft),height(6-30),paintCeiling(bool),paintTrim(bool),doorCount,windowCount,surfaceCondition(new-drywall|good-condition|poor-condition),trimComplexity(baseboards-only|simple-trim|complex-trim),wallTexture(smooth|light-texture|heavy-texture),roomEmpty(bool)}>) | paintQuality(mat) | paintFinish(flat|eggshell|satin|semi-gloss|gloss) | includesPrimer(bool) | majorColorChange(bool) exterior-painting: wallArea(sqft) | trimArea(sqft) | doorCount | paintQuality(mat) | surfacePrepLevel(minimal|moderate|extensive) | includesPrimer(bool) | stories(1-3) | colorChange(bool) flooring: rooms(Array<{id,name,length(ft),width(ft)}>) | flooringMaterial(mat: standard-lvp-flooring,engineered-hardwood-oak,ceramic-tile-12x24) | includesUnderlayment(bool) | underlaymentType?(mat) | includesBaseboard(bool) | baseboardType?(mat) | baseboardLinearFeet? | includesRemoval(bool) | removalType?(carpet|tile|hardwood) | includesSubfloorPrep(bool) | transitionCount deck: deckType(new|existing) | dimensions({length,width,height(ft off ground)}) | deckingMaterial(mat: pressure-treated-decking,composite-decking-basic) | framingMaterial(mat: pressure-treated-framing-2x6) | includesRailing(bool) | railingMaterial?(mat) | railingLinearFeet? | includesStairs(bool) | stairSteps?(0-20) | deckShape(rectangle|l-shape|angled-corners|multi-level) | skirtingType(none|lattice|matching-board) windows: windows(Array<{id,windowType(double-hung|casement|slider|bay),width(inches 12-120),height(inches 12-120),quantity}>) | qualityLevel(standard|premium|luxury) | includesTrimWork(bool) | trimMaterial?(mat) | includesRemoval(bool) | energyEfficient(bool) siding: wallArea(sqft) | sidingMaterial(mat) | includesInsulation(bool) | insulationType?(string) | homeHeight(single-story|two-story|three-story) | includesRemoval(bool) | existingSidingType?(string) | trimLinearFeet(number) | soffit(bool) | soffitLinearFeet?(number) fence: linearFeet | fenceMaterial(mat) | height(ft, 3-8) | gateCount(0-10) | gateWidth?(ft) | style?(e.g. privacy,picket) | includesRemoval(bool) | terrain(flat|sloped|mixed) | concreteFootings(bool) landscaping: yardArea(sqft, 100–50000) | includesIrrigation(bool) | irrigationType?(string) | irrigationZones?(1–20) | includesSod(bool) | sodSquareFeet(REQUIRED when includesSod, no default) | includesMulch(bool) | mulchSquareFeet?(defaults to yardArea) | includesSitePrep(bool) | plants?(Array<{id,plantType,quantity,size(small|medium|large)}>) | hardscapeFeatures?(Array<{id,featureType,squareFeet,material}>) kitchen: kitchenSize(sqft, 40-600) | scope(cosmetic|standard|full-gut) | cabinets(keep|reface|prefab|semi-custom|custom) | countertop(keep|laminate|butcher-block|quartz|granite|marble) | appliances(keep|budget|mid-range|premium) | flooring(keep|lvp|tile|hardwood) | backsplash?(bool) | plumbingRelocation?(bool) | electricalUpgrade?(bool) | island?(bool) | lighting?(bool) bathroom: bathroomType(half-bath|full-bath|primary-bath|accessible) | bathroomSize(sqft, 20-300) | scope(cosmetic|standard|full-gut) | showerTub(keep|tub-to-shower|walk-in-shower|tub-replacement|freestanding-tub) | vanity(keep|budget|mid-range|premium) | tileWork(none|floor-only|floor-and-shower|full-tile) | heatedFloors?(bool) | newLighting?(bool) | ventilation?(bool) | plumbingRelocation?(bool) basement: basementSize(sqft, 150-3000) | scope(open-rec-room|standard-finish|full-suite) | ceilingHeight(under-7ft|7-to-8ft|over-8ft) | moistureCondition(dry|minor-dampness|active-water) | egress(has-egress|needs-egress|not-required) | bathroom(none|half-bath|full-bath) | kitchenette(none|wet-bar|full-kitchenette) | bedroomCount(0-3) | flooring(lvp|carpet|polished-concrete|tile) | insulation(existing|walls-only|walls-and-ceiling) | hvac(extend-existing|mini-split|none-needed) | electricalSubpanel?(bool) | homeAgePre1978?(bool) adu: type(dadu|aadu|basement-conversion|garage-conversion) | sizeSqft(200-1200; DADU cap 1,000sf) | finishTier(builder|standard|premium) | foundation?(slab|crawl|stem-wall, default crawl; moves the total) | sitework?(minimal|standard|heavy) | utilityRunFeet?(0-500) | treeRemovalCount?(0-10) | preApprovedPlan?(bool) | homeAgePre1978?(bool) ada: projectScope(single-room|whole-home|bathroom-specific) | modifications({grabBars?,walkInShower?,widerDoorways?,ramp?,nonSlipFlooring?,leverHandles?,raisedToilet?,rollUnderSink?,accessibleCounters?,stairLift?} all bool) | currentCondition(minor|moderate|major) | homeStories?(1-3) | doorwayCount?(0-20) | rampLengthFeet?(0-60) | flooringSquareFeet?(0-5000)
    ConnectorNo auth
  • Calculate a Seattle-area cost estimate. Returns a planning range, point cost, material/labor split, days, and itemized line items. Material IDs: get_material_options returns exact IDs; a close match (lvp, composite, cedar) also resolves, and an ambiguous one returns the valid list. Required fields by projectType — ? = optional, (mat) = material ID: interior-painting: rooms(Array<{id,name,length(ft),width(ft),height(6-30),paintCeiling(bool),paintTrim(bool),doorCount,windowCount,surfaceCondition(new-drywall|good-condition|poor-condition),trimComplexity(baseboards-only|simple-trim|complex-trim),wallTexture(smooth|light-texture|heavy-texture),roomEmpty(bool)}>) | paintQuality(mat) | paintFinish(flat|eggshell|satin|semi-gloss|gloss) | includesPrimer(bool) | majorColorChange(bool) exterior-painting: wallArea(sqft) | trimArea(sqft) | doorCount | paintQuality(mat) | surfacePrepLevel(minimal|moderate|extensive) | includesPrimer(bool) | stories(1-3) | colorChange(bool) flooring: rooms(Array<{id,name,length(ft),width(ft)}>) | flooringMaterial(mat: standard-lvp-flooring,engineered-hardwood-oak,ceramic-tile-12x24) | includesUnderlayment(bool) | underlaymentType?(mat) | includesBaseboard(bool) | baseboardType?(mat) | baseboardLinearFeet? | includesRemoval(bool) | removalType?(carpet|tile|hardwood) | includesSubfloorPrep(bool) | transitionCount deck: deckType(new|existing) | dimensions({length,width,height(ft off ground)}) | deckingMaterial(mat: pressure-treated-decking,composite-decking-basic) | framingMaterial(mat: pressure-treated-framing-2x6) | includesRailing(bool) | railingMaterial?(mat) | railingLinearFeet? | includesStairs(bool) | stairSteps?(0-20) | deckShape(rectangle|l-shape|angled-corners|multi-level) | skirtingType(none|lattice|matching-board) windows: windows(Array<{id,windowType(double-hung|casement|slider|bay),width(inches 12-120),height(inches 12-120),quantity}>) | qualityLevel(standard|premium|luxury) | includesTrimWork(bool) | trimMaterial?(mat) | includesRemoval(bool) | energyEfficient(bool) siding: wallArea(sqft) | sidingMaterial(mat) | includesInsulation(bool) | insulationType?(string) | homeHeight(single-story|two-story|three-story) | includesRemoval(bool) | existingSidingType?(string) | trimLinearFeet(number) | soffit(bool) | soffitLinearFeet?(number) fence: linearFeet | fenceMaterial(mat) | height(ft, 3-8) | gateCount(0-10) | gateWidth?(ft) | style?(e.g. privacy,picket) | includesRemoval(bool) | terrain(flat|sloped|mixed) | concreteFootings(bool) landscaping: yardArea(sqft, 100–50000) | includesIrrigation(bool) | irrigationType?(string) | irrigationZones?(1–20) | includesSod(bool) | sodSquareFeet(REQUIRED when includesSod, no default) | includesMulch(bool) | mulchSquareFeet?(defaults to yardArea) | includesSitePrep(bool) | plants?(Array<{id,plantType,quantity,size(small|medium|large)}>) | hardscapeFeatures?(Array<{id,featureType,squareFeet,material}>) kitchen: kitchenSize(sqft, 40-600) | scope(cosmetic|standard|full-gut) | cabinets(keep|reface|prefab|semi-custom|custom) | countertop(keep|laminate|butcher-block|quartz|granite|marble) | appliances(keep|budget|mid-range|premium) | flooring(keep|lvp|tile|hardwood) | backsplash?(bool) | plumbingRelocation?(bool) | electricalUpgrade?(bool) | island?(bool) | lighting?(bool) bathroom: bathroomType(half-bath|full-bath|primary-bath|accessible) | bathroomSize(sqft, 20-300) | scope(cosmetic|standard|full-gut) | showerTub(keep|tub-to-shower|walk-in-shower|tub-replacement|freestanding-tub) | vanity(keep|budget|mid-range|premium) | tileWork(none|floor-only|floor-and-shower|full-tile) | heatedFloors?(bool) | newLighting?(bool) | ventilation?(bool) | plumbingRelocation?(bool) basement: basementSize(sqft, 150-3000) | scope(open-rec-room|standard-finish|full-suite) | ceilingHeight(under-7ft|7-to-8ft|over-8ft) | moistureCondition(dry|minor-dampness|active-water) | egress(has-egress|needs-egress|not-required) | bathroom(none|half-bath|full-bath) | kitchenette(none|wet-bar|full-kitchenette) | bedroomCount(0-3) | flooring(lvp|carpet|polished-concrete|tile) | insulation(existing|walls-only|walls-and-ceiling) | hvac(extend-existing|mini-split|none-needed) | electricalSubpanel?(bool) | homeAgePre1978?(bool) adu: type(dadu|aadu|basement-conversion|garage-conversion) | sizeSqft(200-1200; DADU cap 1,000sf) | finishTier(builder|standard|premium) | foundation?(slab|crawl|stem-wall, default crawl; moves the total) | sitework?(minimal|standard|heavy) | utilityRunFeet?(0-500) | treeRemovalCount?(0-10) | preApprovedPlan?(bool) | homeAgePre1978?(bool) ada: projectScope(single-room|whole-home|bathroom-specific) | modifications({grabBars?,walkInShower?,widerDoorways?,ramp?,nonSlipFlooring?,leverHandles?,raisedToilet?,rollUnderSink?,accessibleCounters?,stairLift?} all bool) | currentCondition(minor|moderate|major) | homeStories?(1-3) | doorwayCount?(0-20) | rampLengthFeet?(0-60) | flooringSquareFeet?(0-5000)
    ConnectorNo auth
  • Materialize a memory or freeform note as a post-item in the space. Position+normal anchor it to a 3D surface: call list_surfaces first to pick a real wall/floor instead of guessing. Put it at EYE LEVEL (a wall face around world y 3.5 to 4), not the foundation row (world y 2.0) where it reads as a floor sticker. Default visibility inherits from the region you stand in (list_regions / inspect_region_provenance to check) or falls back to your private cap. Pass memoryId to link this post to a reflection row in agents.memories. Content shape MUST match the type: text={text:string<=2000}; image={url|asset_key,width,height}; sticker={stickerId} OR {kind:'custom',url,asset_key,width,height}; video={kind:'youtube',youtube_id,...} OR {kind:'streamVideo',stream_uid|hls_url|asset_key|url,...}; card={title?,body?,sourceUrl?,layout?,composition?,...}. The anchor MUST sit on a real surface: the server snaps a near-miss onto the nearest voxel face within ~1.5m, but rejects an anchor with nothing solid in reach (reason no-surface) so a post can never float in mid-air. Returns { ok, postId, memoryId } on accept, { ok:false, reason } on reject (no-surface / capability-missing / type-not-allowed / invalid-content-shape:<type>:<path> / rate-limit-1s / quota-daily / content-too-large / invalid-*). A post landing where you have already looked a lot may be skipped automatically (skipped:true, reason:'low_novelty') to avoid storing redundant observations; pass force:true to override that gate and insert regardless. Delete your own posts with delete_memory_post.
    ConnectorNo auth
  • List supported Linux operating systems and their corresponding versions for use with the `linux_audit` tool. ## What this tool does Returns an array of supported OS/version pairs, each in the form: {"os":"name", "versions":["version or codename"]} This allows the LLM and the user to know exactly which inputs are valid for the `linux_audit` tool. ## When to use this tool Use this tool when: - the user does not know which OS names or versions are supported - the user provides unclear or ambiguous OS information - you need to validate `os`/`version` before performing a Linux audit This tool should typically be called **before `linux_audit`** whenever parameters are uncertain. ## Inputs This tool does not require any input. ## Outputs Returns an array of objects: - **os**: supported Linux distribution identifier - **versions**: corresponding list of supported release or codename Example: [ {"os": "ubuntu", "versions": ["noble","focal"]}, {"os": "debian", "versions": ["bookworm","sid"]}, {"os": "redhat", "version": ["redhat-9.0"]} ] ## LLM usage guidelines - Use this tool to validate or suggest correct OS/version combinations before calling `linux_audit`. - If the user provides invalid or misspelled OS names, retrieve the official list here and ask them to select one. - Do not guess operating system identifiers-always rely on this tool to confirm correctness.
    ConnectorNo auth
  • Start the purchase flow for an available domain via Stripe checkout. IMPORTANT: Before calling this tool, you MUST first call check_domain to get the price, then clearly show the user the price and get their explicit confirmation before proceeding. Never call buy_domain without the user seeing and approving the price first. The registrant contact details are required because the domain will be registered in the buyer's name (they become the legal owner). WHOIS privacy is enabled by default, so these details are not publicly visible. Creates a Stripe checkout session. IMPORTANT: After this tool returns, you MUST open the checkout_url by running the shell command `open "<checkout_url>"` (macOS/Linux) so the payment page launches automatically in the user's default browser. Do NOT paste the URL as a link. Tell the user the page has been opened and they can complete payment there. Args: domain: The domain to purchase (e.g. "coolstartup.com"). first_name: Registrant's first name. last_name: Registrant's last name. email: Registrant's email address. address1: Registrant's street address. city: Registrant's city. state: Registrant's state or province. postal_code: Registrant's postal/zip code. country: 2-letter ISO country code (e.g. "US", "GB", "DE"). phone: Phone number in format +1.5551234567. org_name: Organization name (optional, leave empty for individuals). Returns: Dict with order_id, checkout_url, price_cents, and price_display.
    ConnectorNo auth
  • Top-K surface candidates within radiusM (max 20m, default 8). Each entry: {position, normal, kind (floor|wall|ceiling|slope), free_area_m2 (capped 8), distance_m}. Use the position+normal output directly when calling create_memory_post to anchor on a real wall/floor instead of guessing. PREFER a WALL face near eye level (world y about 3.5 to 4) so a sign reads at a glance; the foundation row (world y 2.0) and the floor put a post at ankle height where nobody looks.
    ConnectorNo auth