Built from a run recorded on 24 Sep 2026 against the live services.

  • Tools behind one connection

    66

    across Victano, Rekvira and Avokata

    datailo_tools

    Recorded 24 Sep 2026

  • A sentence as the query

    0

    tools matched “check that a court ruling citation is real”

    datailo_tools q=

    Recorded 24 Sep 2026

  • One word as the query

    5

    tools matched “citation”

    datailo_tools q=

    Recorded 24 Sep 2026

  • Median search time

    31 ms

    measured from this machine to the hub

    measured in this run

    Recorded 24 Sep 2026

When an assistant has a few dozen tools available, it does not need all of their definitions in view all the time. It needs a way to find the right one when a task calls for it. That is what tool search is for. Both Anthropic and OpenAI now document a tool search feature for their APIs (Claude, OpenAI).

What Datailo’s tool search does

An MCP server can offer the same thing from its side. Datailo is a hub that puts three data services behind one address. It exposes datailo_tools: the assistant passes a query and gets back matching tools from the services the user switched on.

We recorded how that behaves on 24 September 2026, with three services switched on: Victano (EU tenders), Rekvira (EU regulation text) and Avokata (Lithuanian law). That is 66 tools in total.

Which queries found the right tool?

Query sent to datailo_toolsTools matchedFirst results
“check that a court ruling citation is real”0none
“citation”5Rekvira search_regulation, Rekvira verify_citation, Rekvira get_workflow, Avokata citations_of, Avokata verify_citation
“verify citation”4the same, without citations_of
“tender”6Victano search_opportunities, research_guide, explore_slice, record_decision, read_document
“deadline”2Victano survey_opportunities, list_decisions
“high-risk”2Rekvira lookup_obligations, list_workflows
“version”4Avokata check_validity, compare_provision_versions, save_workflow, delete_workflow
“ruling”5Avokata search_practice, read_paragraphs, citations_of, cited_by, instance_chain

The sentence found nothing. On the day of the run, this search required every word of the query to appear in a tool. It looked at the tool’s name, title or the first 300 characters of its description (see the update below).

Short queries in the vocabulary of the tool descriptions work. “Ruling” returned five of Avokata’s case-law tools. “Version” put the two tools that deal with consolidated versions of Lithuanian acts first.

What the misses show

The misses are informative too. “Deadline” did not return search_opportunities, the tool you would use to find tenders closing soon. The word is not in its title or in the first 300 characters of its description, which is what this search reads. When a keyword search comes back thin, try the noun the service itself uses (“tender”, “ruling”, “citation”) before a property of the thing you want.

Update: sentences and wrong parameter names

The run above shows the search as it was on 24 September 2026. Two things changed later that day, after the recording:

A sentence works

The tool datailo_tools now ranks tools by how many of the query’s words they match. A match in the tool’s name or title counts double a match in its description, and common words such as “find” or “the” are left out. A query like “check that a court ruling citation is real” returns the citation and ruling tools first instead of nothing.

A wrong parameter name is refused

Sending query instead of q used to be ignored silently, so the assistant got the whole unfiltered list and could not tell. Every Datailo tool now answers an unknown parameter with an error that names the parameters it accepts. Before calling a service tool, datailo_invoke now checks the arguments it passes on against that tool’s own input schema.

The timings below are from the original run.

How fast is it?

The first datailo_tools call in a session took 1,119 ms: the hub read each service’s live tool list. Every search after that took between 29 and 90 ms, 31 ms at the median, because the lists were already in hand.

A search result names a tool; it does not carry the tool’s input schema. The next two calls in the run were:

  1. datailo_tool_schema for Rekvira’s verify_citation, 30 ms. It returned four inputs: citation, cite, quote and regulation.
  2. datailo_invoke with citation: "Article 6(1) EU AI Act", 445 ms. Rekvira answered that the provision exists in the text it holds.

Search, schema, call: three steps for the first use of a tool, one step for every later use of the same tool in the conversation. The multiple MCP servers guide measures what this saves. A conversation starts with 13,406 bytes of tool definitions instead of 97,022.

How to write tools that search well

If you build an MCP server, your descriptions are the search index. From this run:

  • Put the words a user would type in the description, not only in the tool name. The tool search_opportunities is found by “tender” because its title says “Search tenders and grant calls”.
  • Put the object in the title (“tenders”, “rulings”), since every query in this run that worked was a noun.
  • Keep one tool per job. When two services both expose verify_citation, a hub that prefixes every call with the service name keeps them apart.

The recorded run

Can an assistant find the right tool among every tool of three services by describing the job? Recorded 24 Sep 2026 through https://mcp.datailo.com/mcp; 16 calls, each with the time it took from our test machine.

Every call in the run (16)
  1. datailo_connect email=content-proof@example.test 109 ms. sign-in started with an email address
  2. datailo_connect_verify request_id=[redacted], code=[redacted] 40 ms. signed in; the hub issued a key for the later calls
  3. datailo_enable service=victano 323 ms. Victano switched on (partner)
  4. datailo_enable service=rekvira 31 ms. Rekvira switched on (keyless)
  5. datailo_enable service=avokata 369 ms. Avokata switched on (partner)
  6. datailo_tools limit=200 1,119 ms. 66 tools across the enabled services
  7. datailo_tools q=check that a court ruling citation is real, limit=5 31 ms. 0 matched, top 0 shown
  8. datailo_tools q=citation, limit=5 90 ms. 5 matched, top 5 shown
    • rekvira.search_regulation Search held regulation text. Returns pinpoints and excerpts, not summaries. Requires regulation id…
    • rekvira.verify_citation Verify a citation someone else produced — does the pinpoint exist in held text, and optionally does…
    • rekvira.get_workflow Full step-by-step playbook for one workflow id from list_workflows. Follow the named tools…
    • avokata.citations_of What this document relies on (cituoja): the acts (įstatymai) and earlier rulings (nutartys) it…
    • avokata.verify_citation Check a citation SOMEBODY ELSE produced - a model, an opposing brief, a draft memo. Answers three…
  9. datailo_tools q=verify citation, limit=5 32 ms. 4 matched, top 4 shown
    • rekvira.search_regulation Search held regulation text. Returns pinpoints and excerpts, not summaries. Requires regulation id…
    • rekvira.verify_citation Verify a citation someone else produced — does the pinpoint exist in held text, and optionally does…
    • rekvira.get_workflow Full step-by-step playbook for one workflow id from list_workflows. Follow the named tools…
    • avokata.verify_citation Check a citation SOMEBODY ELSE produced - a model, an opposing brief, a draft memo. Answers three…
  10. datailo_tools q=tender, limit=5 31 ms. 6 matched, top 5 shown
    • victano.search_opportunities Search tenders and grant calls
    • victano.research_guide How to work this corpus, for this account, right now
    • victano.explore_slice What this slice is actually made of
    • victano.record_decision Remember that this one was already judged
    • victano.read_document Read an opportunity's text, in pages
  11. datailo_tools q=deadline, limit=5 29 ms. 2 matched, top 2 shown
    • victano.survey_opportunities Everything in scope, compactly
    • victano.list_decisions What this company already decided
  12. datailo_tools q=high-risk, limit=5 32 ms. 2 matched, top 2 shown
    • rekvira.lookup_obligations Articles whose official title names a role as an obligation addressee (e.g. role='deployer'…
    • rekvira.list_workflows Playbook library for compliance-officer workflows — high-risk triage, DORA ICT review, cross-reg…
  13. datailo_tools q=version, limit=5 30 ms. 4 matched, top 4 shown
    • avokata.check_validity Is this act in force (galioja), and which consolidated version (suvestinė redakcija) governed on a…
    • avokata.compare_provision_versions Compare which consolidated versions of an act fall between two dates. Refuses when the window spans…
    • avokata.save_workflow Write or update one of this account's own playbooks. Saves a DRAFT; call publish_workflow when it…
    • avokata.delete_workflow Delete one of this account's own playbooks. Shipped playbooks cannot be deleted; saving your own…
  14. datailo_tools q=ruling, limit=5 29 ms. 5 matched, top 5 shown
    • avokata.search_practice Find court practice (teismų praktika) on a legal question or a provision - rulings and judgments…
    • avokata.read_paragraphs Read a document by its own structure: give a pinpoint (straipsnis) like '6.38' for one article, or…
    • avokata.citations_of What this document relies on (cituoja): the acts (įstatymai) and earlier rulings (nutartys) it…
    • avokata.cited_by The citator (citavimo grafas): what has cited this provision (straipsnis) or ruling (nutartis)…
    • avokata.instance_chain First instance through cassation (pirmoji / apeliacinė / kasacinė instancija) for one matter: group…
  15. datailo_tool_schema service=rekvira, tool=verify_citation 30 ms. inputs: citation, cite, quote, regulation
  16. datailo_invoke → rekvira.verify_citation citation=Article 6(1) EU AI Act 445 ms. exists: held; verdict: None
    • Article 6(1)

Try it in your assistant

Add the address to your client (setup per client), then paste the prompt. Signing in takes an email code; the three services are free during the beta.

Connector address
https://mcp.datailo.com/mcp

Then say

Use Datailo: search your tools for 'citation', then show me the inputs of Rekvira's citation checker and check whether Article 6(1) of the EU AI Act exists in the text it holds.