Tool search 164,478 tools · 10,067 live servers
Filtersactive
- search_platforms
Search the SubmitMap directory of startup launch platforms and directories. Filter by free-text query, category, pricing, link type, backlink requirement, approval speed or domain rating, and with a token leave out the ones this project has already been sent to. This is the tool behind "find me a small directory I can submit to right now": it is the whole directory, so answer from it rather than from what you remember of the web. Returns summaries; call get_platform for the full record including the submission steps.
- search_offers
Search the immutable Sourcey catalog.
- search
Minimal search tool following the deep-research search/fetch convention. Returns a ranked list of Swiss court decisions matching a query, each as {id, title, url, snippet}. Pair with `fetch` to retrieve a decision's full text by id. General (non-deep-research) clients should prefer `search_decisions`, which exposes filters (court, canton, date, language) and richer metadata.
- fetch
Minimal fetch tool following the deep-research search/fetch convention. Fetches one Swiss decision's full text by id, returning {id, title, text, url, metadata}. The id comes from a `search` result (a decision_id like bger_6B_1234_2025; a docket number or BGE reference also resolves). General clients should prefer `get_decision`.
- search_decisions
Use this tool to find COURT DECISIONS (Rechtsprechung): 1,050,000+ Swiss federal and cantonal decisions plus ~2,800 ECtHR decisions concerning Switzerland. Full-text search with keywords, phrases (in quotes), Boolean operators (AND, OR, NOT), prefix matching (word*), docket lookup (6B_1234/2025) and column-scoped search (regeste:keyword). Filter by court, canton, language, date range, chamber. Results are relevance-ranked and enriched with citation counts, statute references and is_leading_case. Use offset to page. Most recent decisions: empty query + sort='date_desc' + court filter. Not for statutes (search_laws), commentary (search_scholarship), or administrative guidance (search_practice).
- get_decisions
Use this tool to fetch SEVERAL decisions at once (1-10 ids) instead of calling get_decision repeatedly. Same data per decision — canonical citation strings, Markdown link, Regeste, metadata — in ONE call. Prefer this whenever you are about to read more than one decision from a search result: it is the difference between one tool call and ten, which matters because clients cap tool calls per turn. full_text defaults to FALSE here (unlike get_decision) because ten full judgments exceed connector response limits; set it true only for a short id list, and each text is excerpted with the cut disclosed. Ids not found are reported individually — the rest of the batch still returns.
- draft_mock_decision
Build a research-only mock decision outline from user facts. Combines relevant Swiss case law retrieval with statute references. If possible, enriches statutes with Fedlex text excerpts. IMPORTANT: The tool may return clarification questions (high/medium priority). High-priority clarifications must be answered (via the clarifications parameter) before the tool will provide a conclusion. Call again with clarifications to get the full analysis.
- search_botschaft
Use this tool to retrieve and quote the VERBATIM text of Federal Council Botschaften (legislative messages). Where get_article_purpose answers 'why does Art. X exist?', this tool answers 'show me every Botschaft passage about TOPIC X'. Useful when the caller doesn't know which SR/article to ask for — e.g. starting from a concept like 'Vaterschaftsurlaub' or 'Klimaschutz'. Returns ranked passages (FTS5 BM25) with bbl_citation, page, section path, and an article anchor where the parser could identify one. Quote verbatim; every snippet has a stable Fedlex ELI URI.
- search_skills
Full-text search over the Skill of Skills directory (AI coding skills, plugins, MCP servers across Claude Code, Cursor, Codex, Windsurf, Cline). Results are ranked by the quality-first composite score, not popularity. By default only tools with quality ≥ 40 and risk below high are returned. Scores are evidence, not endorsements.
- get_skill
Full quality profile for one tool by slug (slugs come from search_skills / get_collection): score breakdown, structural signals, risk level and reasons, platforms, repo link. Direct lookups return any active tool regardless of risk — the risk assessment is part of the answer, not a filter here.
- demand_pulse
Public, k-anonymous demand signal from the directory: trending searches, most-saved and most-installed tools. Aggregates only — sourced from ≥5 distinct anonymous sessions per entry.
- get_players
Search for player identity by name. Always returns identity fields, but ownership context varies by platform. ESPN and Yahoo return market/global ownership and can also populate league ownership fields when credentials and league context are available. Sleeper returns identity plus ownership_scope="unavailable" with market_percent_owned=null. For a selected active league, use established session context (call get_user_session only if needed), then get_league_info so league-specific ownership and team names can be resolved. League ownership fields: league_status ("ROSTERED" = on a team, "FREE_AGENT" = available, null = unavailable), league_team_name (fantasy team name if rostered), league_owner_name (team owner if rostered). When those league fields are absent, null, or unavailable, fall back to get_roster to verify manually. Use values from get_user_session. Read-only. Current date is 2026-09-09.
- search_products
Search the user's ProductClank products by name and return their IDs. A product_id is required to create or boost a campaign — use this to resolve it, then confirm the match with the user.
- create_product
List a new product on ProductClank as a token-free listing (no crypto/token, no wallet). At minimum pass a `url` — the server auto-fills the name, tagline, description, logo, and X handle from the site; any field you pass explicitly overrides what's extracted. Socials are optional. Use this when search_products finds no existing match and the user wants to run a boost or campaign for a product that isn't listed yet. Returns the new product's id (and reuses an existing listing if one already matches, rather than duplicating). FREE — no credits charged. Confirm the product details with the user before calling.
- boost_post
Rally the ProductClank community to engage with a specific social post. Creates a boost campaign and spends the user's credits: 'replies' generates 10 AI reply drafts (200 credits); 'quote' generates 10 AI-drafted QUOTE POSTS (200 credits) — a repost WITH each member's own text, shown above the quoted post in their followers' feeds, the highest-reach action; 'likes' (30 likes) and 'repost' (10 reposts) cost 300. Supports Twitter/X, Instagram, TikTok, LinkedIn, Reddit, Farcaster, and YouTube (replies + likes on YouTube; reposts only on X and Farcaster; quote posts only on X) — the platform is auto-detected from the URL. product_id is OPTIONAL: link a product (from search_products or create_product) to tailor replies with the product name, or omit it for a tweet-first boost that uses generic amplification language. Confirm the action and its credit cost with the user before calling.
- suggest_content_campaign
Preview a content campaign for a product BEFORE launching it. FREE — nothing is created and no credits are charged. Returns an AI-drafted campaign (title, description, call-to-action) plus whether the user can afford to launch it (1000 credits). Show the user the draft AND the credit cost, get an explicit yes, then call create_content_campaign — never launch off the back of the preview alone. Requires a product_id from search_products; write the campaign_message brief from what you know about the product.
- create_content_campaign
Launch a content campaign: rally the ProductClank community to create content (posts, threads, videos) for a product. Spends 1000 credits. The platform's AI expands your brief into a full campaign and auto-activates it; community submissions and winner selection happen in the ProductClank web app. Requires a product_id from search_products. Preview with suggest_content_campaign and confirm the 1000-credit cost with the user before calling.
- create_campaign
Create a Communiply discovery campaign: it continuously finds relevant social posts (by keyword) and drafts replies that mention the product. BEFORE calling: the keywords and search_context are YOURS to derive, and deriving them well is most of the campaign's quality — actually fetch and read the product's website (and any docs or pages the user pointed at), work out who the audience is and the phrases they use when they have the problem the product solves, and build keywords + search_context from that. Do it in this conversation, for free — it is not billed, and you can iterate with the user before anything is spent. If you cannot browse the web from this client, SAY SO to the user and build from what they tell you instead — never silently guess from the product's name alone. Credits pay only for what you cannot do here: scraping the platforms, real community members posting, and proof verification. Costs 10 credits to create; discovering posts is billed separately via generate_posts (12 credits/post). Needs a product_id (search_products / create_product). Two ways to run it, and the user picks: PRIVATE (the default here) keeps drafts in their workbench to review and post themselves — reversible, no further cost; PUBLIC puts the drafts in the ProductClank earn feed so community members post them from their own accounts — that is the reach the platform exists for, and each network-posted reply bills the user extra credits. Default to private when the user has not said, and relay the decision_offer in the result so they can choose. Pick the `platform` the product's audience actually talks on — X (default), LinkedIn, Reddit or YouTube — and for Reddit/YouTube narrow it with target_subreddits / target_youtube_channels. Topic research auto-runs in the background at create (~30s); read it with get_research before spending on generate_posts. Confirm the credit cost with the user before calling.
- discovery_estimate
Estimate the credits required to run a Disco analysis. Returns `required_credits` for public (always 0) and private, with private split by whether LLMs are enabled (use_llms=False is faster, use_llms=True adds smarter preprocessing, literature context and a written summary). Also returns per-visibility depth caps and accepted file formats. No authentication required — when an API key is supplied, also returns the caller's available credits. Call this before discovery_analyze whenever cost or feasibility is unclear. Args: file_size_mb: Size of the dataset in megabytes. num_columns: Number of columns in the dataset. analysis_depth: Search depth (1=fast, higher=deeper). Used to compute the private-run cost. Default 2. api_key: Disco API key (disco_...). Optional. When provided, the response includes `account.available_credits`.
- discovery_analyze
Run Disco on tabular data to find novel, statistically validated patterns. This is NOT another data analyst — it's a discovery pipeline that systematically searches for feature interactions, subgroup effects, and conditional relationships nobody thought to look for, then validates each on hold-out data with FDR-corrected p-values and checks novelty against academic literature. This is a long-running operation. Returns a run_id immediately. Use discovery_status to poll and discovery_get_results to fetch completed results. Use this when you need to go beyond answering questions about data and start finding things nobody thought to ask. Do NOT use this for summary statistics, visualization, or SQL queries. Public runs are free but results are published. Private runs cost credits. Call discovery_estimate first to check cost. Private report URLs require sign-in — tell the user to sign in at the dashboard with the same email address used to create the account (email code, no password needed). Call discovery_upload first to upload your file, then pass the returned file_ref here. Args: target_column: The column to analyze — what drives it, beyond what's obvious. file_ref: The file reference returned by discovery_upload. analysis_depth: Search depth (1=fast, higher=deeper). Default 1. visibility: "public" (free) or "private" (costs credits). Default "public". title: Optional title for the analysis. description: Optional description of the dataset. excluded_columns: Optional JSON array of column names to exclude from analysis. column_descriptions: Optional JSON object mapping column names to descriptions. Significantly improves pattern explanations — always provide if column names are non-obvious (e.g. {"col_7": "patient age", "feat_a": "blood pressure"}). author: Optional author name for the report. source_url: Optional source URL for the dataset. use_llms: Slower and more expensive, but you get smarter pre-processing, summary page, literature context and pattern novelty assessment. Only applies to private runs — public runs always use LLMs. Default false. api_key: Disco API key (disco_...). Optional if DISCOVERY_API_KEY env var is set.
- discovery_subscribe
Subscribe to or change your Disco plan. Available plans: - "free_tier": Explorer — free, 10 credits/month - "tier_1": Researcher — $49/month, 500 credits/month - "tier_2": Team — $199/month, 2000 credits/month Paid plans require a payment method on file. Credits roll over on paid plans. Args: plan: Plan tier ID ("free_tier", "tier_1", or "tier_2"). api_key: Disco API key (disco_...). Optional if DISCOVERY_API_KEY env var is set.
- get_agent_resume
Fetch a job seeker's structured, machine-readable resume as JSON Resume (https://jsonresume.org/schema/) — but ONLY when its human owner has explicitly shared a consent token for it. Pass that token and the tool returns the JSON Resume plus ats_context: how to render the profile for the owner's target applicant tracking system, grounded in ResumeAI's portal-verified State of ATS 2026 data (recommended file format, layout, and vendor parsing rules). No token, an invalid token, or a token the owner has revoked returns nothing. There is no way to browse, search, list, or enumerate resumes with this server — the owner-minted token is the only key, and the owner can revoke it at any time. This tool never exposes personal data without one.
- browse_catalog
Browse the PowerPoint slide catalog progressively. No args -> form overview (when-to-use, bound fields, variant counts). family=<form> -> variant one-liners. q=<text> -> ranked search. variant=/prior_id= -> example payload. type=schema + family -> a compact family-level variant chooser (not a sendable contract); type=schema + family + variant -> that variant's exact payload contract (JSON Schema, capacity, field mapping, examples). Free. Code path: type=widgets = the add_widget() catalog (name=<widget> for its contract + thumbnail); type=helpers = python-pptx helper signatures. type=themes + an uploaded theme_id -> that template's branded FURNITURE layouts (its own cover/agenda/divider/closing slides + fill schemas + previews) — render via create_slide(form=template_layout, theme_id, data={layout, fills}).
- search_disaster_links
Free linked-disaster discovery helper. Searches published cross-disaster link families by event-type direction, optional via-event type, and optional year window. Use this when you want to discover whether a relationship family exists before you have an exact event id.
- list_events
Browse or search ClearMarket prediction-market events. Filter by category, platform, Resolution Clarity Grade, or free-text `q`. `q` is token-AND across question + tags, so SHORT KEYWORD queries match best ("microstrategy bitcoin", "fed rate") — natural-language phrases often return nothing. Returns compact graded summaries: slug, question, venues_covered, primary grade, rcg_score (0-100, for ranking clarity), last_price, and status (open / resolved). Start here when you have a topic but not a slug; then call get_event for the full graded record. Categories: economics, financials, crypto, companies, technology, politics, geopolitics, health, climate.
- search_disaster_links
Free linked-disaster discovery helper. Searches published cross-disaster link families by event-type direction, optional via-event type, and optional year window. Use this when you want to discover whether a relationship family exists before you have an exact event id.
- search_routes
Free-text search over every route in the World Train Map atlas — matches route name, cities, train name, operator and countries, with optional category/country filters. Accent-insensitive; every word of the query must match. Returns compact per-route facts with id and worldtrainmap.com URL, sorted by renown with route-name matches first; with no query it lists the whole atlas by renown. Use get_route with a returned id for full detail, famous_routes for a ready-made top list, city_pair for A-to-B journey times.
- get_route
Full record for one atlas route by exact id: distance, fastest time, top speed, operator, rolling stock, opening year, ridership, story, on-route sights, photo and page URL, plus country-hub links. An unknown id returns up to 5 close-match suggestions instead of failing. Use search_routes first when you only have a name or city.
- famous_routes
The world's most famous train journeys in World Train Map's renown order (rank 1 = most famous: Trans-Siberian, Glacier Express, Orient Express lineage, Shinkansen…), as compact facts with id and URL per route. Best first call for bucket-list and "greatest train trips" questions; use search_routes to find something specific, get_route for full detail on one route.
- routes_in_country
Every atlas route crossing one country, sorted by renown, plus that country's worldtrainmap.com hub URL when it exists. An unrecognised country returns an error, not an empty list. Use for "trains in X" questions; use search_routes to combine a country with text or category filters, night_trains for sleepers only.
- night_trains
Sleeper routes from the atlas, sorted by renown — all of them by default, or only those starting or ending in a given city — with the per-city night-train guide URL when one exists. Use for overnight and sleeper questions; city_pair for concrete A-to-B times; search_routes for other route categories.
- city_pair
Journey facts between two cities (European coverage): fastest and typical duration, whether direct trains run, fewest changes, operators and the guide URL — plus legendary atlas routes on that corridor. Direction-insensitive. Figures are sampled from public schedule data, not live times — treat as planning estimates. An uncovered pair returns an error with a search_routes tip.
- barker_pool_search
Fuzzy search Barker's pool index by keyword (protocol name / pool name / asset). Resolves natural-language pool references to pool_uid for the detail/history tools. (paid: $0.001 per call via x402)
- search_disaster_links
Free linked-disaster discovery helper. Searches published cross-disaster link families by event-type direction, optional via-event type, and optional year window. Use this when you want to discover whether a relationship family exists before you have an exact event id.
- search_disaster_links
Free linked-disaster discovery helper. Searches published cross-disaster link families by event-type direction, optional via-event type, and optional year window. Use this when you want to discover whether a relationship family exists before you have an exact event id.
- search_disaster_links
Free linked-disaster discovery helper. Searches published cross-disaster link families by event-type direction, optional via-event type, and optional year window. Use this when you want to discover whether a relationship family exists before you have an exact event id.
- list_blog_posts
List published articles from the Median blog, newest first. Optionally filter by category or a search term matched against the title.
- find_in_catalog
Search this store's shelf and read one item's listing. Returns compact rows — id, name, price in USDC, instant or human-fulfilled, and what the item reads — filtered by a price ceiling, a text match, or both; an item_id returns that one item with its description. Free, read-only, no payment and no account. This is how to learn WHICH item to buy before a buy_* tool, which needs an item_id. Nothing is ranked or recommended: the order is the shelf's own and the filter is a stated rule, printed beside what it matched and what it matched from. NOT a purchase and NOT a stock check.
- search_disaster_links
Free linked-disaster discovery helper. Searches published cross-disaster link families by event-type direction, optional via-event type, and optional year window. Use this when you want to discover whether a relationship family exists before you have an exact event id.
- search_disaster_links
Free linked-disaster discovery helper. Searches published cross-disaster link families by event-type direction, optional via-event type, and optional year window. Use this when you want to discover whether a relationship family exists before you have an exact event id.
- search
Search DC Hub for relevant records (OpenAI Deep Research / ChatGPT connector format). Returns a list of matching data-center facilities as {id, title, url}; pass an id to the `fetch` tool for the record, or open the url to cite the live facility page. For structured queries (by MW, operator, status, market) use search_facilities directly.
- fetch
Fetch a DC Hub record for an id returned by the `search` tool (OpenAI Deep Research / ChatGPT connector format). Returns {id, title, text, url, metadata} — a citable public summary of one data-center facility (name, operator, location, status, market). For full structured specs (capacity MW, coordinates) use get_facility or open the url.
- search_facilities
FRONT DOOR CHECK — if the ask is "find <N> MW in <market>" or otherwise wants power / fiber / water / verdict context ATTACHED to the hits, call `execute_plan(intent="<the user's question, unchanged>")` instead of hand-chaining this with three more tools. If the ask is a plain inventory lookup — which facilities match these filters — search_facilities IS the right call and costs one round trip; the planner would add steps and latency for nothing. Search 20,900+ global data center facilities across 170+ countries — by location (country/state/market), capacity (MW), operator, fiber connectivity, status (operational/under-construction/planned), or DCPI verdict. Returns name, provider, lat/lon, power_mw, fiber count, market_slug, status. Answers "which data centers are in Virginia", "who has capacity in this country". Try: search_facilities country=US state=VA min_capacity_mw=10. Note: status is RETURNED but is not a filter — there is no `status` or `min_mw` parameter; to filter by construction stage use get_pipeline. Use this to find EXISTING facilities; do NOT use for the forward-looking construction pipeline (use get_pipeline) or for the full profile of one facility (use get_facility).
- get_facility
Full metadata for one facility — name, operator, address, lat/lon, power capacity (MW total/used), cooling type, fiber providers (count + carrier list), commissioning year, status, the DCPI verdict for its market, and peer facilities nearby. Answers "who operates this data center and how big is it", "how many fiber carriers are in that building". Try: get_facility id=equinix-dc1-ashburn — or get_facility slug=digital-realty-iad8. Returns ONE facility in full; do NOT use to search or list many facilities (use search_facilities).
- semantic_search
Use for CONCEPTUAL / fuzzy questions where keyword filters fall short — semantic (meaning-based) retrieval across DC Hub's industry news, M&A deals, 20,900+ discovered facilities, and per-market DCPI deep-dive analysis narratives, ranked by relevance with citable source fields (news url/title, deal parties/value, facility name/location, deep-dive market/url). Examples: "what is happening with behind-the-meter gas for AI data centers?", "deals involving nuclear power for hyperscalers", "why is Northern Virginia constrained?" — semantic_search q="behind-the-meter gas for AI data centers". Params: q (required, natural-language query); corpus (optional CSV subset of news_articles,deals,discovered_facilities,market_narratives; default all); k (1-15, default 8). Returns {results:[{source_table, kind, text, score, cite:{…}}]}. Complements the exact-filter tools (get_news / list_transactions / search_facilities) with relevance ranking; for a full token-budgeted market briefing use get_market_context. Cite "DC Hub (dchub.cloud)".
- search_intelligence
Semantic (meaning-based) search over DC Hub's live intelligence corpus — industry news, M&A deals, discovered facilities and per-market DCPI analysis narratives — returning the most relevant records with citable source fields. This is the agent-friendly alias over the SAME retrieval layer as semantic_search: same results, different call shape. It takes `query` plus human-readable corpus names (news | deals | facilities | market_narratives); semantic_search takes `q` plus the raw table names. Call ONE of them, not both. Params: query (required, natural language); corpus (optional CSV of the four names above, default all); limit (1-15, default 8). BEHAVIOUR: read-only — it writes nothing, and repeat calls with the same arguments return the same records. ACCESS: works with no key, but anonymous results come back as a TRIMMED PREVIEW; the session X-API-Key hydrates full depth per key, and the free tier is capped per day (call claim_free_key once — no email — if you do not hold a key). Do NOT use when you can filter exactly: search_facilities for structured facility filters, get_news for date/keyword news, list_transactions for deal filters — those match fields and return complete sets, where this ranks by meaning and returns a top-N.
- bible_concordance
Concordance / word study: find ALL occurrences of an original-language word across the Bible. Search by Strong's number (preferred; "G26" = Greek/NT, "H7225" = Hebrew/OT) or by exact lemma as returned by bible_original (e.g. "ἀγάπη", "רֵאשִׁית"). Returns total count, per-book distribution, an occurrence list with the inflected surface forms, and English lexicon data (gloss, Strong's definition; for Greek also the full Abbott-Smith entry). NT edition selectable via texttyp (default byzantine).
- bible_search
Full-text search over the German Bible text. Finds verses containing ALL given words (exact word forms; umlauts/accents are folded, so 'fuhrt' matches "führt"). Quote phrases ("Gnade um Gnade"); a trailing * makes a prefix search (lieb* finds liebe/lieben/liebet …). Use this to locate a passage when the wording is known but the reference is not. Optionally restrict to one book.
- search_topics
Resolves a name — a company, product, person, technology, or concept — to its Google Trends topic id (`mid`), with a `type` field that distinguishes same-name entities such as Nike the company from Nike the goddess. A topic aggregates every spelling and translation of one concept, so it measures considerably more search activity than a literal phrase: the topic for "artificial intelligence" scores 62 where the literal string scores 1. The other TrendFlow tools accept a topic id anywhere they accept a keyword.
- get_interest_over_time
Get relative search interest for one or more terms over a historical period. Use this when the user asks how popular something is, whether it is rising or falling, or how several things compare — passing multiple keywords compares them on one scale. Values are normalized relative interest (0-100 within the result set), not absolute search volume.
- get_interest_by_region
Break down search interest for one term by geography. Use this when the user asks where something is popular, or wants a regional or city-level comparison. Values are normalized relative interest (0-100 within the result set).
- get_related_queries
Find the top and rising searches related to a term. Use this for keyword discovery, SEO and content research, and spotting breakout queries. `top` is ranked by volume; `rising` is ranked by growth, where "Breakout" means growth too large to measure.
- get_trending_now
Lists the searches surging right now in a country, for questions about what is spiking without a term being named, and for news and real-time context. The `backend` parameter selects the source: "rpc" returns around 50 entries with growth percentages and a relative volume index; "rss" returns 10 entries together with the news articles behind each one; "auto" tries rpc and falls back to rss.
- research_trend
Returns a full picture of one term in a single call: interest over time, where it is most searched, and the queries people search alongside it. Suited to open-ended research on a topic rather than one narrow question. Each section is fetched independently, so a partial result is normal: any section that fails carries an `error` instead of data and the rest still returns.
- run_query
Run a pre-computed query on a VFB entity. REQUIRED WORKFLOW: (1) call get_term_info on the ID first; (2) read the response's "Queries" array; (3) pass one of those values as query_type. Calling run_query with a guessed query_type will return an error. If a query returns empty rows or an error, the entity does not support that query_type or has no data for it — try a different query_type from the Queries array, or try a related entity (e.g. its parent class via get_hierarchy). Empty results do NOT mean the answer is unknown — only that this call did not return it. NEVER fabricate results from training data when a query is empty; tell the user clearly what was tried. NEVER pass tool names like "get_term_info" or "search_terms" as query_type — those are separate tools. Common query_types by entity kind: PaintedDomains, AllAlignedImages, AlignedDatasets, AllDatasets (templates); SimilarMorphologyTo, NeuronInputsTo, NeuronNeuronConnectivityQuery, NeuronRegionConnectivityQuery (individual neurons); ListAllAvailableImages, SubclassesOf, PartsOf, NeuronsPartHere, NeuronsSynaptic, ExpressionOverlapsHere, DownstreamClassConnectivity, UpstreamClassConnectivity (classes). Supports batch — pass an array of IDs (same query_type) or a "queries" array of {id, query_type} pairs; batch results are keyed by "ID::query_type". Results are PAGED: the first 25 rows by default (change with limit/offset) plus the true total as "count". ALWAYS read "count_status" before quoting "count": "exact" means count is the true total; "unavailable" means the query FAILED upstream and count is -1, which is NOT zero and must never be reported as "no results" — read "_note" and tell the user the query could not be run. Image/thumbnail columns are excluded by default to save space - pass include_images=true to include them. FlyBase integration is via query_types too: FindStocks (fly stocks for a FlyBase feature ID - FBgn/FBal/FBti/FBtp/FBco/FBst) and FindComboPublications (publications for an FBco split-GAL4 combination). Get those IDs from resolve_entity / resolve_combination first, then run_query with the ID and the query_type. Include FlyBase links in output: https://flybase.org/reports/{ID}.
- search_terms
Search VFB terms. This is the search virtualflybrain.org itself runs — the same Solr query, the same ranking — so what comes back first here is what a user would see first on the site. USE filter_types BY DEFAULT. Unfiltered searches mix scRNAseq artifacts and developmental stages in with the entity the user wants. Common filter_types recipes: - Neuron classes: ["neuron", "class"] - Individual neurons with images: ["neuron", "has_image"] - Neurons with connectome data: ["neuron", "has_neuron_connectivity"] - Brain regions / neuropils: ["anatomy"] - Genes: ["gene"] - Driver lines / expression patterns: ["expression_pattern"] - Datasets: ["dataset"] There are over 200 type names and they change as data is added, so do NOT guess them: call list_search_facets to see the current vocabulary (optionally filtered, e.g. contains="lineage"). Names are matched case- and separator-insensitively, and a name that does not exist is an error with suggestions rather than a silently empty result. Deprecated terms are excluded by the search itself — you do not need exclude_types: ["deprecated"], and adding it is harmless but pointless. Stage filtering: VFB covers adult, larval, and embryonic data, and many anatomical FBbt classes are stage-agnostic. Do NOT add "adult" or "larva" to filter_types by default — only add them when the user is explicit about a stage (e.g. "adult Kenyon cells", "larval mushroom body"). Default searches should leave stage out so stage-agnostic classes and all life stages are visible. Useful flags: - unique=true (the default) → one row per term. Turn it OFF only when you need to see WHICH synonym matched; with unique=false a term appears once per matching synonym, so "Kenyon cell" can return the same ID several times. - minimize_results=true → top 10, essential fields only, for exploratory searches. - auto_fetch_term_info=true → if an exact label match is found, returns get_term_info in the same response. - boost_types=["has_image", "has_neuron_connectivity"] → float data-rich entities to the top of the list without excluding anything else. - demote_types=["expression_pattern_fragment"] → sink noisy types to the bottom of the list instead of removing them. If the search returns no good matches, do NOT fall back to training-data answers — try alternative spellings, synonyms, broader terms, or different filter_types. Multiple filter_types are ANDed (results must match ALL). Multiple exclude_types are ORed (any match excludes). boost_types and demote_types re-order without excluding; boost wins if a term matches both.
- list_search_facets
List the type names search_terms can filter, exclude, boost or demote by, with the number of terms carrying each one. Call this instead of guessing: there are over 200 names, they are the index's own annotations rather than a curated list, and they change as data is added. Use contains to narrow (e.g. contains="lineage" for the ~120 lineage clones, contains="connectivity" to find the connectome facets). The counts tell you whether a name is broad or niche — "entity" covers everything, a single lineage covers a handful.
- resolve_entity
Resolve an unresolved FlyBase-related query string into VFB/FlyBase IDs and metadata. Pass the raw text exactly as the user wrote it (for example "P{VT054895-GAL4.DBD}", "Hb9-GAL4", "SS04495", "MB002B", "PAM cluster", or "dpp"). Do NOT pass resolved IDs such as FBgn/FBal/FBti/FBco/FBst or VFB IDs; if you already have an ID, use the downstream tool directly. Uses tiered resolution: exact name → synonym → broad pattern match. Returns match_type (EXACT/SYNONYM/BROAD), feature ID, name, type, and synonyms. IMPORTANT: When match_type is SYNONYM or BROAD, always confirm the resolved entity with the user before proceeding to further queries. If multiple matches are returned, show a disambiguation list and ask the user to choose. This tool queries FlyBase Chado — for VFB ontology lookups (anatomical terms, neuron class IDs) use search_terms instead.
- resolve_combination
Resolve an unresolved split-GAL4 combination name or synonym into its FBco ID and component hemidrivers. Pass the raw combination text exactly as the user wrote it (for example "MB002B" or "SS04495"). Do NOT pass an FBco ID; if you already have one, use the downstream tool directly. Uses tiered resolution: exact name → synonym → broad pattern match. Returns FBco ID, combination name, matched synonym (if applicable), and component allele IDs/names. IMPORTANT: When match is via synonym, confirm the resolved combination with the user before proceeding (e.g., "Your search for 'MB002B' matched [formal name] (FBco...) via synonym. Shall I proceed?"). If multiple matches, show disambiguation list and ask user to choose.
- query_connectivity
Query synaptic connectivity between Drosophila neuron classes across ALL connectome datasets simultaneously for comparative connectomics. This is NOT pre-cached — it runs live queries, so expect slow responses (up to several minutes). Set both upstream_type AND downstream_type to filter connections between two specific neuron classes (e.g., "What Tm1→T3 connections exist across all datasets?"). At least one of upstream_type or downstream_type is required. CONSTRAINTS: Only accepts neuron class terms (OWL IDs like FBbt_00003789 or labels like "transmedullary neuron Tm1") — anatomical regions or neuropils (e.g., "lobula", "medulla") are NOT accepted. NOT suitable for individual neuron-to-neuron connections — for pre-computed connections of a single individual neuron, use run_query with NeuronNeuronConnectivityQuery instead. NOT for muscle/sense organ connections. RECOMMENDED DEFAULTS: weight=5, exclude_dbs=["hb","fafb"] unless user specifies otherwise. For both-ends queries, start with weight≥50 to avoid timeouts. RESULT SIZE: a broad query is enormous (a single class at weight=5 can be over 50,000 connections), so results are ranked strongest-first and paged — you get limit rows (default 50) plus a summary computed over ALL of them: totals, per-dataset counts, distinct neuron counts, and the top class pairs. Answer from the summary and quote a handful of rows; only page with offset if the user asks for specific further rows. WORKFLOW: Confirm parameters with user before querying. Use search_terms with filter_types ["neuron","class"] to validate/canonicalize neuron type labels. If zero results, try relaxation: lower weight to 1, then remove exclude_dbs filter, then try group_by_class=true — report what worked and let user decide. group_by_class=true is usually the better first call on a broad query: it aggregates to class pairs instead of returning every neuron pair.
- hemmabo_search_properties
Search available vacation rental properties by location and travel dates. Use when the user wants to find or browse places to stay. Discovery only — call get_verified_stay_offer with the host domain and same dates before the final answer so the client can render the verified stay offer widget; never quote a final price or booking link from search alone. Do NOT use when the user already has a propertyId or host domain. Returns propertyId, host domain, live availability, host-source pricing, and capacity. Parameters combine as one filter with guests and the checkIn/checkOut range (checkIn strictly before checkOut): region matches broadly against region, city, and country names, while country matches the country field alone — omit both and the search spans every published property. Capacity misses are excluded; date-unavailable matches return separately in unavailableMatches with up to three alternative windows.
- hemmabo_search_availability
Check whether a specific property is available for the requested dates. Use this tool after the user has selected a property from hemmabo_search_properties and wants to confirm availability before getting a quote. Do NOT use for general browsing — use hemmabo_search_properties instead. Read-only, open to anonymous callers (no Bearer token), and rate-limited: checking availability never places a hold or reserves dates. Returns available=true/false with conflict details and same-month alternative date windows when unavailable; a stale inbound calendar sync blocks an available answer (fails closed with calendar_freshness) instead of guessing. Omit guests to check dates only; pass it to price the alternative windows and to gate capacity — counts above the property's maximum return available=false (guests_exceed_max) with no alternatives. Stays shorter than the host's effective minimum nights return available=false with reasonCode min_nights_violation — extend the stay rather than shifting dates. The verdict always matches the host node's own availability API.
- hemmabo_booking_create
Create a pending direct booking without online payment for configured non-VRP fallback deployments. Use only after explicit user confirmation, with a propertyId from search, and only when no signed VRP direct_booking_url is available. For signed VRP offers, route to the signed host-domain URL instead. Requires Authorization: Bearer token (MCP_API_KEY or OAuth); rate-limited per token. Writes exactly one pending booking awaiting the host's decision; availability is checked first — conflicts or a stale calendar fail the call before anything is written. Not idempotent — check hemmabo_booking_status before retrying on timeout. There is no price or quoteId parameter — the node prices the stay itself at creation (gap-night pricing applies automatically). The booking is identified by propertyId + the checkIn/checkOut range + guests; guestName and guestEmail are required for host confirmation, guestPhone is optional. Returns bookingId and a one-time guestToken for later status/cancel/reschedule.
- hemmabo_booking_negotiate
PRICE LOCK, not negotiation: the host's price is fixed — this tool never bargains, discounts, or alters it; it only freezes the current host-source price for 15 minutes so it cannot change during checkout. It refuses to lock dates the property's calendar cannot deliver and returns alternative bookable windows instead. Use it only in the non-VRP fallback checkout flow, when no signed direct_booking_url is available and the user explicitly asks to lock a price. Never use this for search, availability, VRP offers, rendering a stay-offer widget, or verified-offer display — use get_verified_stay_offer instead. Requires Authorization: Bearer token (MCP_API_KEY or OAuth); rate-limited per token. Not idempotent: each call writes a new snapshot; validUntil is fixed at creation and never extended — re-locking returns a new quoteId. The lock freezes both the public and the direct host-source total; hemmabo_booking_checkout's channel picks which one is redeemed. Redeem the quoteId only for the identical propertyId + checkIn/checkOut + guests, and only until validUntil — changing any of them requires a new quote. Night count and guest count together select the locked price tier.
- hemmabo_booking_status
Retrieve current status and full details of an existing booking by reservationId. Use to confirm checkout/create succeeded or before cancel/reschedule. Do NOT use for property discovery, availability, or pricing — use hemmabo_search_properties, hemmabo_search_availability, or hemmabo_booking_quote for those. Requires Authorization: Bearer token (MCP_API_KEY or OAuth); rate-limited per token. Read-only against the database — never writes, so it is safe to poll after a checkout timeout — but returns guest PII (name, email). reservationId is the booking UUID returned by hemmabo_booking_checkout or hemmabo_booking_create — never a propertyId — and guestToken is the secret issued with that same booking: a mismatched pair reveals nothing, not even that the booking exists. Without a reservationId there is no booking to look up yet.
- hemmabo_host_readiness_check
Read-only fit check for a vacation-rental host evaluating HemmaBo for their own booking website or booking engine. Use when the user is a host or property owner, not a guest booking a stay; guests should use hemmabo_search_properties instead. Returns a fit verdict, what the host gets, the setup inputs to prepare, and a safe onboarding next step. Does not create an account, buy a domain, configure Stripe, store host data, or provision a website. When the host is ready to start, follow up with hemmabo_host_onboarding_link. Only five inputs sharpen the fit verdict: a domain (hasOwnDomain or domain), currentChannels, one location signal (city/region/country), and the wants* booleans, which count unless explicitly false — omitting them never lowers the verdict; propertyName and preferredLanguage only prefill the onboarding URL, and with no inputs the summary is generic.
- search
Search DC Hub for relevant records (OpenAI Deep Research / ChatGPT connector format). Returns a list of matching data-center facilities as {id, title, url}; pass an id to the `fetch` tool for the record, or open the url to cite the live facility page. For structured queries (by MW, operator, status, market) use search_facilities directly.
- fetch
Fetch a DC Hub record for an id returned by the `search` tool (OpenAI Deep Research / ChatGPT connector format). Returns {id, title, text, url, metadata} — a citable public summary of one data-center facility (name, operator, location, status, market). For full structured specs (capacity MW, coordinates) use get_facility or open the url.
- search_facilities
FRONT DOOR CHECK — if the ask is "find <N> MW in <market>" or otherwise wants power / fiber / water / verdict context ATTACHED to the hits, call `execute_plan(intent="<the user's question, unchanged>")` instead of hand-chaining this with three more tools. If the ask is a plain inventory lookup — which facilities match these filters — search_facilities IS the right call and costs one round trip; the planner would add steps and latency for nothing. Search 20,900+ global data center facilities across 170+ countries — by location (country/state/market), capacity (MW), operator, fiber connectivity, status (operational/under-construction/planned), or DCPI verdict. Returns name, provider, lat/lon, power_mw, fiber count, market_slug, status. Answers "which data centers are in Virginia", "who has capacity in this country". Try: search_facilities country=US state=VA min_capacity_mw=10. Note: status is RETURNED but is not a filter — there is no `status` or `min_mw` parameter; to filter by construction stage use get_pipeline. Use this to find EXISTING facilities; do NOT use for the forward-looking construction pipeline (use get_pipeline) or for the full profile of one facility (use get_facility).
- get_facility
Full metadata for one facility — name, operator, address, lat/lon, power capacity (MW total/used), cooling type, fiber providers (count + carrier list), commissioning year, status, the DCPI verdict for its market, and peer facilities nearby. Answers "who operates this data center and how big is it", "how many fiber carriers are in that building". Try: get_facility id=equinix-dc1-ashburn — or get_facility slug=digital-realty-iad8. Returns ONE facility in full; do NOT use to search or list many facilities (use search_facilities).
- semantic_search
Use for CONCEPTUAL / fuzzy questions where keyword filters fall short — semantic (meaning-based) retrieval across DC Hub's industry news, M&A deals, 20,900+ discovered facilities, and per-market DCPI deep-dive analysis narratives, ranked by relevance with citable source fields (news url/title, deal parties/value, facility name/location, deep-dive market/url). Examples: "what is happening with behind-the-meter gas for AI data centers?", "deals involving nuclear power for hyperscalers", "why is Northern Virginia constrained?" — semantic_search q="behind-the-meter gas for AI data centers". Params: q (required, natural-language query); corpus (optional CSV subset of news_articles,deals,discovered_facilities,market_narratives; default all); k (1-15, default 8). Returns {results:[{source_table, kind, text, score, cite:{…}}]}. Complements the exact-filter tools (get_news / list_transactions / search_facilities) with relevance ranking; for a full token-budgeted market briefing use get_market_context. Cite "DC Hub (dchub.cloud)".
- search_intelligence
Semantic (meaning-based) search over DC Hub's live intelligence corpus — industry news, M&A deals, discovered facilities and per-market DCPI analysis narratives — returning the most relevant records with citable source fields. This is the agent-friendly alias over the SAME retrieval layer as semantic_search: same results, different call shape. It takes `query` plus human-readable corpus names (news | deals | facilities | market_narratives); semantic_search takes `q` plus the raw table names. Call ONE of them, not both. Params: query (required, natural language); corpus (optional CSV of the four names above, default all); limit (1-15, default 8). BEHAVIOUR: read-only — it writes nothing, and repeat calls with the same arguments return the same records. ACCESS: works with no key, but anonymous results come back as a TRIMMED PREVIEW; the session X-API-Key hydrates full depth per key, and the free tier is capped per day (call claim_free_key once — no email — if you do not hold a key). Do NOT use when you can filter exactly: search_facilities for structured facility filters, get_news for date/keyword news, list_transactions for deal filters — those match fields and return complete sets, where this ranks by meaning and returns a top-N.
- lookup_us_contracts
Search US federal contract awards by company (recipient) name using the free USASpending.gov public API. Returns the top awards sorted by dollar amount: award ID, recipient name, award amount USD, awarding agency, NAICS code/description, and period of performance. Zero upstream cost, no key required. Data covers 2020-2026 procurement contracts. EXAMPLE USER QUERIES THAT MATCH THIS TOOL: user: "Does Palantir have US government contracts?" -> call lookup_us_contracts({"company_name": "Palantir Technologies"}) user: "What federal contracts does Booz Allen Hamilton have?" -> call lookup_us_contracts({"company_name": "Booz Allen Hamilton", "max_results": 5}) user: "Find US import supplier data for Lockheed Martin" -> call lookup_us_contracts({"company_name": "Lockheed Martin"}) user: "Which government agencies are customers of SAIC?" -> call lookup_us_contracts({"company_name": "SAIC", "max_results": 10}) WHEN TO USE: Use when you need to know whether a company is a US federal contractor, which government agencies have awarded it contracts, the dollar value and NAICS sector of those contracts, and the period of performance. Useful for supplier due-diligence, vendor qualification, competitive intelligence, and import/trade research. The target demand: "us import data api", "supplier lookup api", "company trade records", "who has government contracts", "federal contractor search". WHEN NOT TO USE: Do not use for non-US companies (USASpending.gov only covers US federal contracts). Do not use as an exhaustive financial-risk or sanctions screen -- use verify_company_record and screen_sanctions for those. Do not use for state/local government contracts (federal only). COST: free - no key required LATENCY: ~1200ms
- search_docs
Search the Capawesome documentation, guides and blog by keyword. Use this first for any question about Capawesome SDKs (Capacitor and Cordova plugins such as Live Update, NFC, Biometrics), Capawesome Cloud (live updates, native builds, app store publishing, automations), Capawesome Insiders or the Capawesome CLI — the answer is almost always documented, and guessing plugin APIs or CLI flags produces broken code. Returns the best matching page sections with `title`, `url`, `snippet`, `section` and, for a hit inside a page, the `parentTitle` and `parentUrl` of that page. The same results are attached as structured content. Do not use this to read a full page: call `get_doc_page` with a `url` from these results. Do not use it to browse recent announcements or release notes: use `list_blog_posts`. Do not use it for anything about a concrete app, build, channel or deployment in Capawesome Cloud: those live behind the `cloud_*` tools.
- get_doc_page
Read the full source markdown of a Capawesome documentation or blog page. Use this after `search_docs` to read a page end to end before writing code against a plugin API, a CLI command or a Capawesome Cloud workflow — snippets from search results are deliberately short and regularly omit required configuration steps. Returns the page title, its URL and the page markdown including code samples, as it is authored but without the build metadata. Do not use this to find a page: it needs the exact URL or path, so run `search_docs` (or `list_blog_posts` for articles) first. Do not use it for pages outside capawesome.io.
- list_blog_posts
List the 20 most recent posts from the Capawesome blog, newest first. Use this when the question is about what is new — recent releases, announcements, monthly updates, deprecations or newly published guides. Returns `title`, `description`, `date`, `categories` and `url` per post; pass a `url` to `get_doc_page` to read the whole article. Do not use this to answer a topic question: the feed only carries the newest posts, so search the documentation and the blog archive with `search_docs` instead.
- search_entities
Search every node in the corpus — companies AND people — by name. Returns entity ids for get_dossier / trace_ownership_path.
- list_jurisdictions
The WhiteIntel coverage map — every jurisdiction we hold and HOW we hold it. Read this before telling anyone a country is or is not covered, because 'covered' means three different things. Each row carries `tier`: `deep` = we loaded the country's WHOLE national registry, so a name/number search resolves ANY company registered there; `indexed` = we hold only the leak / sanctions / GLEIF subset, so the entities that surfaced in a leak or on a sanctions list are searchable but the rest of that country's companies are NOT in the corpus; `on_demand` = the registry is closed or paid, so the specific record is procured from source when a dossier is purchased. Also `scope` (full = whole registry · subset = fragment), `depth` (`ownership` = owners/beneficial owners on the record · `officers` = directors · `identity` = name/number/address/status, owners procured on request) and `registry` (our loader, for deep tiers). So a `deep`+`full`+`ownership` row (e.g. gb, lv, ua, br) means you can trace owners for any company there; a `subset` row (e.g. cn, kr, most secrecy havens) means an empty search is 'not in the held subset', NOT 'does not exist' — the full record is bought on request. No per-record price or vendor is exposed. Returns { jurisdictions, count, tiers, note }.
- purchase_dossier
BUY the full dossier for one entity programmatically — no browser, no Stripe Checkout. Debits your prepaid wallet €2 and returns the complete premium dossier (full UBO chain, filed financials, itemised assets, provenance) in the SAME response. Requires a funded API key (Authorization: Bearer wi_…). Idempotent per (buyer, entity): buying the same entity again returns it with NO second charge, so a retry is safe. If the wallet balance is too low the call returns HTTP 402 with a machine-readable payment requirement + a top-up URL — hand the top-up to a human once, then retry; the agent spends from the balance thereafter with no browser in the loop. Get the id from search_entities / resolve. This is the AGENT-NATIVE purchase path; buy_dossier is the human/browser (Stripe Checkout) path.
- graph_path
How two entities are connected: the ordered hops of a bounded breadth-first search over ownership and control edges in both directions. ⚠️ BOUNDED, NOT EXHAUSTIVE — at most 15 edges are followed per entity, per direction, per hop, so `found: false` means NO PATH WAS FOUND WITHIN THOSE BOUNDS and is NOT evidence that the two entities are unconnected. The response always carries `exhaustive: false`; never report a negative result as a clean bill of health.
- search_companies
Free-text UK Companies House company-name search → registration number.
- semantic_search
Meaning-based entity search (BGE-M3 vector ANN over the resolved dossier cards). Finds companies/people whose profile is semantically closest to a natural-language query even without a keyword match. Optional kind + jurisdiction filters. COVERAGE IS PARTIAL — the risk-scored subset of the corpus is embedded so far (~1.9% and growing with the backfill); a thin or empty result is NOT proof the entity is unknown, so pair with search_entities (lexical/name) before concluding an entity does not exist.