Skip to main content
Glama

omniseek_sources

List available sources to route a search before querying; narrow by domain, region, or keywords to get source descriptions, capabilities, and health status.

Instructions

List all sources — call this to ROUTE before searching.

BOUNDED ORIENT: a bare (no-arg) call does NOT dump every source's facets. It returns the routing VOCABULARY (available_domains / available_regions with counts) + the capabilities verb index + source_names (the bare inventory) + counts, so the orient payload stays small no matter how far the roster grows (brain_orient's lesson). The per-source FACETS (kind / domains / regions / modes, needs_credentials, explicit_only, stability, health, ...) plus the prose description arrive when you NARROW or ask verbose — reach for them on demand: • domain="jobs" / "papers" / … → only sources whose domains facet contains it, WITH their full descriptions. domain= is the most RELIABLE router; the no-arg call returns available_domains (the full closed vocabulary + counts) so you can pick a valid token, and a near-miss (e.g. "careers") returns did_you_mean instead of a silent empty. • query="singapore visa" → TOKEN-OVERLAP over name + description + domains + regions + cross-lingual keywords, ranked best-first (multi-word- and English↔中文-safe), WITH descriptions. • region="sg" / "ca" / "cn" → only sources whose regions facet contains it (the no-arg call returns available_regions; a near-miss returns did_you_mean). Region narrowing matters when the deployment's source pack is geographic. • verbose=True → the full unfiltered list, WITH every description. check_health=True does a fresh LIVE probe of every source (slow) AND returns a system block: the recall-index health (indexed_docs / embedder_available / vec_embed_failures / last_write_age_s) plus the observation-journal durability head, materialization cursor, pending count, and failures. and the openalex_usage attribution (which component spent the shared daily budget + remaining).

The no-arg (orient) call also returns capabilities: the non-search VERB index (field_skeleton, coauthors, transcribe, …) so you discover the whole toolkit here, not only after loading a tool.

Returns: {"count": N, "backend_count": M, "backend_breakdown": {...}, and EITHER

  • a BARE ORIENT: "source_names": [...] + "note" + available_domains + available_regions + capabilities; OR

  • a NARROWED (domain/region/query) or verbose call: "sources": [{name, backend, (description when narrowed/verbose), needs_credentials, explicit_only, explicit_only_reason? (present only when excluded; the full catalog of why-strings search's _meta.excluded_count no longer re-ships), param_hint? (the structured query a VERTICAL source wants — a stock code / ticker / author name — present only when the source declares one, so a named call is filled right the first try), stability, access_tier, health, health_as_of, kind?, domains?, regions?, modes?, (healthy, status if check_health)}]. (did_you_mean on a domain/region near-miss; system:{recall, openalex_usage, jobs:[{name, schedule, enabled, last_run, next_run, budget_s, desc}, ...]} when check_health — the background-job fleet.)}

count is the RAW source count; it over-states coverage when many logical sources sit on ONE upstream. backend_count is the distinct UPSTREAMS (the honest figure) and backend_breakdown names every upstream backing >1 source, e.g. {"openalex": 42} (40+ affiliation slices of one corpus + one API budget + one breaker = one backend, not 40 of coverage).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryNo
domainNo
regionNo
verboseNo
check_healthNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.2.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With zero annotations provided, the description carries the full burden of behavioral disclosure — and it is exceptionally thorough. It reveals that a bare call does NOT dump every facet (bounded orient), that facets arrive on demand, that near-misses return did_you_mean rather than silent empties, that check_health does a slow LIVE probe, and that count over-states coverage while backend_count is the honest figure. These are exactly the non-obvious traits an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long, but justifiably so for a tool with zero annotations, zero schema descriptions, and no output schema — it must carry the entire contract. It is well-structured and front-loaded: purpose first, then orient behavior, then each narrowing mode, then the return contract. A few phrases are flowery ('brain_orient's lesson', 'the full catalog of why-strings...') and could be trimmed, but nearly every sentence carries unique, non-redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 optional parameters, two distinct return shapes, no output schema, no annotations), the description is remarkably complete. It covers all invocation modes, the full return contract for both bare and narrowed calls, edge cases (did_you_mean, explicit_only_reason presence), performance caveats (check_health slow), capability discovery, and honest counting semantics. Nothing an agent needs to call this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must fully compensate — and it does. Every one of the 5 parameters (query, domain, region, verbose, check_health) gets rich semantics: domain filters with full descriptions and closed vocabulary, query does token-overlap with cross-lingual support, region filters with did_you_mean, verbose returns the full unfiltered list, and check_health has documented speed costs and a system block. This far exceeds the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List all sources — call this to ROUTE before searching.' This states the tool's function precisely and positions it distinctly from the 16 sibling tools as the pre-search discovery/routing tool, not a search or graph tool. The distinction is reinforced throughout with the orient vs. narrowed vs. verbose call modes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use context: 'call this to ROUTE before searching' and explains each invocation mode (no-arg orient, domain= as 'the most RELIABLE router', query=, region=, verbose, check_health) with concrete guidance. However, it never explicitly names sibling alternatives or states when NOT to use this tool (e.g., 'use omniseek_search when you want actual search results'), so the exclusion is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Battam1111/omniseek'

If you have feedback or need assistance with the MCP directory API, please join our Discord server