Skip to main content
Glama

Crossload

crossload_search

Search the Crossload catalogue of German Christian content (sermons, books, audio, images) and get matching items with title, author, licence, duration and a teaser. Use it whenever the question is what was preached, written or said about a topic, a bible passage, by an author, or within a length limit ('something good under 30 minutes'). Use 'uids' to narrow a set of items you already found; it returns the items, not the position of a passage inside them. Topic, author and series take names and are resolved server-side; if a name is not an exact match the search is NOT run and the answer says so — call crossload_browse to get the exact spelling. Bible references are given in German ('Epheser 2', 'Joh 3,16-18') and filtered by range, verses included. Note that 'query' is matched semantically, not literally: it always returns something, so a hit is not proof that the words appear in the text. Combine it with a filter when precision matters. Natural-language questions (German question words, '?', six or more words) trigger stronger semantic matching. A bible reference inside the query text triggers a server-side boost on matching content that may skew results — use the 'bibleRef' parameter for deliberate passage filtering instead. Set 'withExcerpts' when you need to quote WHERE something is said: every hit then carries an excerpt around the match, and matching becomes literal, so a hit does prove the words appear and no hit means they do not.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo1-based, defaults to 1.
seedNoOnly with sort='random': pass back the seed from the previous response so page 2 fits page 1.
sortNoDefaults to 'relevance'. Setting it also switches a bibleRef search back to the search API's order, instead of ordering by closeness to the passage. 'seriesOrder' sorts items by their position within a series and works best together with the 'series' filter.
uidsNoRestrict the search to these content uids, e.g. ['lKE0QMlG7Y']. Narrows an existing result set — combine with other filters to ask whether these items match. It returns the items themselves, not the position of a passage inside them: hits carry the item's general teaser, no excerpt and no cursor. To locate a passage in the text, read the item with crossload_read_content.
mediaNoMedia types the content must be available in, e.g. ['audio']. For images or presentations use 'category' instead.
queryNoFree-text query, e.g. 'grace alone' or 'forgiveness in marriage'. A bible reference in the query text triggers a server-side boost on matching content — use the 'bibleRef' parameter for deliberate passage filtering instead.
topicNoTopic name, exactly as listed by crossload_browse, e.g. 'Vergebung'. Guessing the spelling yields no results.
authorNoAuthor name, exactly as listed by crossload_browse, e.g. 'Roger Liebi'.
seriesNoSeries name, exactly as listed by crossload_browse.
yearToNo
bibleRefNoA German bible reference, e.g. 'Epheser 2', 'Joh 3,16-18' or 'Röm 8,28'. Filtering covers ranges in both directions: a lecture on Job 1-42 is found under 'Hiob 15', and 'Joh 3,16-18' excludes a sermon that stops at verse 15. A single verse is filtered as that one verse, so give a range if you mean the passage that follows. Items that only cite the passage in passing are left out unless 'includeSecondary' is set; their number is stated in the message, so totalHits for a passage search is counted here, not by the search API. Every hit carries 'matchedVia', saying whether the passage is its primary one or a secondary reference. Without 'query' and without 'sort', hits are ordered by how closely they match the passage: items covering the requested verses come first, then the ones with the tightest chapter range. Adding 'query' or 'sort' hands the order back to the search API.
categoryNoExactly one category. The catalogue holds ~11.400 sermons, ~800 books and ~450 audio items.
pageSizeNoDefaults to 10. With 'withExcerpts' the limit is 15, because every hit then carries an excerpt.
yearFromNo
durationMaxNoMaximum length in minutes, e.g. 30.
durationMinNoMinimum length in minutes.
withExcerptsNoSet this when you need to show WHERE in a text something is said, not just which texts say it: every hit then carries 'evidence', an excerpt of about 350 characters around the match, so you do not have to fetch the full transcript to quote it. Three conditions: it needs 'query', it cannot be combined with 'bibleRef', and 'pageSize' is then at most 15. The trade-off is that matching becomes literal: without it a query also finds texts that put the same thing in other words, with it only texts that contain the words themselves. No result therefore means the words do not appear, not that the topic is absent. An absent 'evidence' likewise does not prove the words are missing from the text.
includeSecondaryNoOnly with 'bibleRef' naming a chapter. Defaults to false, which lists only items whose primary passage matches. Set it to also list items that merely cite the passage, appended after the primary ones; each carries matchedVia='secondaryPassage' and matchedPassage naming the reference. A sermon on Psalm 139 citing John 3,16 is not a mismatch: it expounds the verse without filing it as its main passage.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hitsYes
pageNo
seedNo
statusYes
messageNo
resolvedNo
pageCountNo
totalHitsNo
truncatedNo
candidatesNo
suggestionsNo
policyVersionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / yearFrom / maximum
      Previous value: -9999New value: +3000
    • changedInput schema / properties / yearFrom / minimum
      Previous value: -0New value: +1900
    • changedInput schema / properties / yearTo / maximum
      Previous value: -9999New value: +3000
    • changedInput schema / properties / yearTo / minimum
      Previous value: -0New value: +1900
  2. First observed

TDQS

A4.9/5.0
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 of behavioral disclosure, and it does so thoroughly. It reveals non-obvious behavior: exact names are resolved server-side and mismatches do not run the search, 'query' is matched semantically rather than literally, natural-language triggers are described, and withExcerpts switches to literal matching with different proof semantics. The description also discloses ordering behavior for bibleRef searches and secondary/passage matching.

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 given 18 optional parameters and the absence of annotations, nearly every sentence carries necessary behavioral guidance. It is front-loaded with the core purpose and usage rule before diving into edge cases; a light structural pass or bullets would make it slightly easier to scan, but there is little wasted text.

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?

The description covers the tool's many non-obvious behaviors: exact-name failure, semantic vs literal matching, bibleRef range filtering, includeSecondary semantics, withExcerpts constraints, pagination with seed, and ordering behavior. An output schema exists, so returning to that is not the description's job, and the description fills all the contextual gaps an agent would otherwise face.

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?

Although schema coverage is high, the description adds significant meaning beyond the schema: it explains that names must match the exact spelling known to crossload_browse, that 'query' always returns something because matching is semantic, that a bible reference inside 'query' boosts results and should be replaced by 'bibleRef', and that withExcerpts imposes specific trade-offs. These are the details an agent needs to choose parameter combinations correctly.

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 opening sentence names a specific verb ('Search'), a specific resource ('the Crossload catalogue of German Christian content'), and the exact shape of what is returned ('title, author, licence, duration and a teaser'). It also distinguishes the tool from siblings by directing users to crossload_browse for exact spellings and crossload_read_content for locating passages within an item.

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 gives direct when-to-use guidance: 'Use it whenever the question is what was preached, written or said about a topic, a bible passage, by an author, or within a length limit.' It also gives when-not-to-use rules, such as calling crossload_browse when an exact name spelling is needed and using uids to narrow an existing result set.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources