Skip to main content
Glama

find_similar

Discover pages related to a URL or topic using hybrid keyword, embedding, and web search. Ideal after caching content for better results.

Instructions

Find content related to a URL or concept. Best after a successful crawl/fetch — the local cache makes recommendations cheap. Concept-only queries on a cold cache often return 0-2 weak matches; warm the cache first via crawl / fetch for materially better results.

Key parameters:

  • url: known-good page; its content + embeddings drive similarity.

  • concept: free-text alternative to url. Thin cache → expect cold_start to fire.

  • max_results: default 5.

  • include_cached: true (default) to search cache first; false = web only.

  • threshold: minimum fused score (0-1, default 0.5).

  • include_ranking_debug: opt-in per-result ranking_debug { fts5_rank, embedding_rank, web_rank, rrf_score } so you can audit which signal won.

  • max_tokens_out / include_full_markdown / citation_format: budget + shape controls.

Pass either url or concept. Three signals fused via RRF: keyword (FTS5), embeddings, optional live web. Each result carries match_signals with embedding_rank, fts5_rank, fused_score. When local signals are weak (cache empty, no hits, or concept mode returns only 1-2 cache matches), the response carries cold_start — pass it verbatim to the user (tune WIGOLO_FIND_SIMILAR_COLD_START_THRESHOLD to adjust).

Returns results[], method ("hybrid" | "embedding" | "fts5" | "search"), cache_hits, search_hits, embedding_available, total_time_ms.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoFind pages similar to this URL. The page is fetched (or read from cache) and its content analyzed for key terms.
modeNoRetrieval strategy: cache (local hybrid), web-expansion (key terms + web search), crawl-rank (1-hop crawl from seed URL + embed + cosine rank), or auto.auto
conceptNoFind pages related to this concept or topic description. Use when you don't have a specific URL.
thresholdNoHard post-filter on match_signals.fused_score. Results below this raw fused score are dropped (empty array is correct when nothing qualifies). Default 0 (no filtering). Note: filters on the raw RRF/embedding score, not the normalized relevance_score.
include_webNoSupplement with web search if needed (default: true)
max_resultsNoMaximum results to return (default 10, max 50)
include_cacheNoSearch local cache for similar pages (default: true)
max_tokens_outNoToken-budget cap on total output. Uses cl100k-base BPE; non-OpenAI tokenizer counts may drift ~5-15%. When both max_tokens_out and max_chars are set, max_tokens_out wins.
citation_formatNoCitation rendering style. 'numbered' (default) inline [N] markers; 'json' returns a citations[] array; 'anthropic_tags' wraps sources in <source id='...'> tags.
exclude_domainsNoNever return results from these domains
include_domainsNoOnly return results from these domains
include_full_markdownNoInclude full markdown body in the response. Default false on multi-result tools (returns evidence excerpts only); set true to restore.
include_ranking_debugNoAttach per-result ranking_debug { fts5_rank, embedding_rank, web_rank, rrf_score } so callers can audit disagreement between the three ranking sources. Off by default. Concept-mode results improve materially with a warm cache — run wigolo_crawl on the relevant docs before relying on concept-only retrieval.
Behavior5/5

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

With no annotations provided, the description carries the full burden and excels. It details the internal fusion of three signals (keyword FTS5, embeddings, optional live web) via RRF, explains the cold_start condition, describes the return fields (results, method, cache_hits, etc.), and notes the effect of parameters like include_ranking_debug and threshold.

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 longer than minimal but well-structured. It starts with a clear purpose, then usage guidance, then parameter explanations, and finally return value description. Each sentence adds value, though it could be slightly more concise without loss of clarity.

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?

Despite 13 parameters and no output schema, the description is thorough. It explains the output structure (results[], method, cache_hits, etc.), the three ranking sources, cold_start behavior, and how parameters affect results. It also provides context on when to use siblings. The description is complete for agent decision-making.

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 coverage is 100%, but the description adds significant meaning beyond the schema. It explains that threshold filters on fused_score, that max_tokens_out uses cl100k-base BPE and overrides max_chars, and that include_ranking_debug is opt-in for audit data. It also clarifies that url and concept are alternatives.

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 clearly states the tool's purpose: 'Find content related to a URL or concept.' It distinguishes itself from siblings like crawl and fetch by specifying it works best after a successful crawl/fetch and that the local cache makes recommendations cheap.

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

Usage Guidelines5/5

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

The description explicitly provides when to use this tool: 'Best after a successful crawl/fetch' and advises to 'warm the cache first via crawl/fetch for materially better results.' It also explains when not to expect good results, such as 'Concept-only queries on a cold cache often return 0-2 weak matches.'

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

Install Server

Other Tools

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/KnockOutEZ/wigolo'

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