Skip to main content
Glama
marcinkuk

trailsearch-mcp

by marcinkuk

trailsearch-mcp

MCP server dla self-hostowanego TrailSearch / open-tavily (jianjungki/tavily-open) — API kompatybilne z Tavily, oparte o SearXNG.

Gotowe MCP (tavily-ai/tavily-mcp, kshern/mcp-tavily) hardkodują https://api.tavily.com i nie obsługują własnego base URL — ten pakiet wskazuje na Twoją instancję.

Narzędzia

Narzędzie MCP

Endpoint open-tavily

trailsearch_search

POST /tavily/search

trailsearch_extract

POST /extract

Related MCP server: Tavily Web Search MCP Server

Uruchomienie (self-healing, jak fetch/searxng)

Pakiet jest instalowany na żądanie z GitHub przez uvx — żaden lokalny plik nie musi przetrwać:

TAVILY_BASE_URL=http://192.168.1.134:3000 \
  uvx --from git+https://github.com/marcinkuk/trailsearch-mcp.git trailsearch-mcp

Konfiguracja w agent-canvas (mcp_config)

"trailsearch": {
  "command": "uvx",
  "args": [
    "--from",
    "git+https://github.com/marcinkuk/trailsearch-mcp.git",
    "trailsearch-mcp"
  ],
  "env": { "TAVILY_BASE_URL": "http://192.168.1.134:3000" },
  "enabled": true
}

Po zmianie/nowym starcie konwersacji agent dostaje trailsearch_search / trailsearch_extract.

Wymagania: uvx (uv) w obrazie agenta oraz internet (git clone na żądanie).

Available Tools

2 tools
trailsearch_extractB

Fetch clean content from known URLs via the TrailSearch /extract endpoint.

Args: urls: list of URLs to extract content from. query: optional context query used while extracting. include_raw_content: also return raw (unfiltered) content per URL.

Returns: JSON string with the extracted content for each URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlsYes
queryNo
include_raw_contentNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does add useful context: extracted content is 'clean,' include_raw_content returns 'raw (unfiltered)' content, and the return type is a JSON string. However, it does not disclose potential errors, rate limits, authentication needs, or what 'clean' means operationally.

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 compact and well-structured, with the purpose front-loaded and params/returns organized clearly. There is little wasted text, though the endpoint name in the first sentence is minor redundancy given the tool name.

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

Completeness3/5

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

The description covers all parameters and states the return shape, and an output schema exists. But it lacks usage routing versus trailsearch_search, does not mention the default behavior of include_raw_content, and gives no constraints or caveats. Given the absence of annotations and low schema richness, these gaps are noticeable.

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

Parameters4/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 compensate for the missing parameter explanations. It does, providing plain-language meaning for all three parameters: URLs to extract, an optional context query, and a raw-content flag. It could go further by noting that include_raw_content defaults to true and by clarifying how the query affects extraction.

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

Purpose4/5

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

The description states a specific verb and resource: 'Fetch clean content from known URLs via the TrailSearch /extract endpoint.' It clearly identifies what the tool operates on, and the phrase 'known URLs' implicitly distinguishes it from trailsearch_search. However, it does not explicitly name the sibling or contrast the two, so it falls just short of full differentiation.

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

Usage Guidelines2/5

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

There is no explicit guidance about when to use this tool versus trailsearch_search, and no mention of alternatives or exclusions. The phrase 'known URLs' weakly implies this tool is for URLs you already have rather than discovering them, but that is left to inference rather than stated.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.1.0
    • First observedtrailsearch_extract
    • First observedtrailsearch_search

TDQS

A3.8/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one performs web searches, the other extracts content from known URLs. There is no overlap or ambiguity between them.

Naming Consistency5/5

Both tools follow a consistent 'trailsearch_' prefix followed by a verb in lowercase snake_case, which is used uniformly. This matches a clear and predictable pattern.

Tool Count3/5

With only two tools, the server feels minimal, though it covers the essential search and extraction workflow. The low count is borderline and fits the 'thin' end of the scale.

Completeness4/5

The pair provides solid coverage of search and content extraction, with search supporting many filters and answer generation. Minor gaps exist (e.g., no dedicated endpoint for querying recent trends or managing custom indices), but core user needs are met.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables web search capabilities through the Tavily API. Allows users to search the web for information using natural language queries via the MCP protocol.
    4
    1
    -
  • F
    license
    C
    quality
    D
    maintenance
    Enables web search capabilities through the Tavily API. Allows users to search the web for information using natural language queries through the MCP protocol.
    3
    -
  • A
    license
    B
    quality
    D
    maintenance
    The URL-Context-MCP MCP Server provides a tool to analyze and summarize the content of URLs using Google Gemini's URL Context capability via the Gemini API. Now also supports optional grounding with Google Search alongside URL Context. The server is designed to follow prompt-only orchestration: con
    2
    22 npm
    7
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables web search capabilities through the Tavily API and serves as a demonstration platform for building custom MCP tools. Designed for educational purposes to showcase MCP server development and LangGraph integration.
    6
    -