Built from a run recorded on 24 Sep 2026 against the live services.
-
Tools behind one connection
66
across Victano, Rekvira and Avokata
datailo_toolsRecorded 24 Sep 2026
-
A sentence as the query
0
tools matched “check that a court ruling citation is real”
datailo_toolsq=Recorded 24 Sep 2026
-
One word as the query
5
tools matched “citation”
datailo_toolsq=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_tools | Tools matched | First results |
|---|---|---|
| “check that a court ruling citation is real” | 0 | none |
| “citation” | 5 | Rekvira search_regulation, Rekvira verify_citation, Rekvira get_workflow, Avokata citations_of, Avokata verify_citation |
| “verify citation” | 4 | the same, without citations_of |
| “tender” | 6 | Victano search_opportunities, research_guide, explore_slice, record_decision, read_document |
| “deadline” | 2 | Victano survey_opportunities, list_decisions |
| “high-risk” | 2 | Rekvira lookup_obligations, list_workflows |
| “version” | 4 | Avokata check_validity, compare_provision_versions, save_workflow, delete_workflow |
| “ruling” | 5 | Avokata 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.
What happens after the search?
A search result names a tool; it does not carry the tool’s input schema. The next two calls in the run were:
datailo_tool_schemafor Rekvira’sverify_citation, 30 ms. It returned four inputs:citation,cite,quoteandregulation.datailo_invokewithcitation: "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_opportunitiesis 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.
Related
- Multiple MCP servers or one endpoint: what the tool list costs, the measurement behind the numbers above
- How to add an MCP server to Claude, the first step before any search
- The Datailo catalogue, with each service’s tool count
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)
datailo_connectemail=content-proof@example.test109 ms. sign-in started with an email addressdatailo_connect_verifyrequest_id=[redacted], code=[redacted]40 ms. signed in; the hub issued a key for the later callsdatailo_enableservice=victano323 ms. Victano switched on (partner)datailo_enableservice=rekvira31 ms. Rekvira switched on (keyless)datailo_enableservice=avokata369 ms. Avokata switched on (partner)datailo_toolslimit=2001,119 ms. 66 tools across the enabled servicesdatailo_toolsq=check that a court ruling citation is real, limit=531 ms. 0 matched, top 0 showndatailo_toolsq=citation, limit=590 ms. 5 matched, top 5 shownrekvira.search_regulationSearch held regulation text. Returns pinpoints and excerpts, not summaries. Requires regulation id…rekvira.verify_citationVerify a citation someone else produced — does the pinpoint exist in held text, and optionally does…rekvira.get_workflowFull step-by-step playbook for one workflow id fromlist_workflows. Follow the named tools…avokata.citations_ofWhat this document relies on (cituoja): the acts (įstatymai) and earlier rulings (nutartys) it…avokata.verify_citationCheck a citation SOMEBODY ELSE produced - a model, an opposing brief, a draft memo. Answers three…
datailo_toolsq=verify citation, limit=532 ms. 4 matched, top 4 shownrekvira.search_regulationSearch held regulation text. Returns pinpoints and excerpts, not summaries. Requires regulation id…rekvira.verify_citationVerify a citation someone else produced — does the pinpoint exist in held text, and optionally does…rekvira.get_workflowFull step-by-step playbook for one workflow id fromlist_workflows. Follow the named tools…avokata.verify_citationCheck a citation SOMEBODY ELSE produced - a model, an opposing brief, a draft memo. Answers three…
datailo_toolsq=tender, limit=531 ms. 6 matched, top 5 shownvictano.search_opportunitiesSearch tenders and grant callsvictano.research_guideHow to work this corpus, for this account, right nowvictano.explore_sliceWhat this slice is actually made ofvictano.record_decisionRemember that this one was already judgedvictano.read_documentRead an opportunity's text, in pages
datailo_toolsq=deadline, limit=529 ms. 2 matched, top 2 shownvictano.survey_opportunitiesEverything in scope, compactlyvictano.list_decisionsWhat this company already decided
datailo_toolsq=high-risk, limit=532 ms. 2 matched, top 2 shownrekvira.lookup_obligationsArticles whose official title names a role as an obligation addressee (e.g. role='deployer'…rekvira.list_workflowsPlaybook library for compliance-officer workflows — high-risk triage, DORA ICT review, cross-reg…
datailo_toolsq=version, limit=530 ms. 4 matched, top 4 shownavokata.check_validityIs this act in force (galioja), and which consolidated version (suvestinė redakcija) governed on a…avokata.compare_provision_versionsCompare which consolidated versions of an act fall between two dates. Refuses when the window spans…avokata.save_workflowWrite or update one of this account's own playbooks. Saves a DRAFT; callpublish_workflowwhen it…avokata.delete_workflowDelete one of this account's own playbooks. Shipped playbooks cannot be deleted; saving your own…
datailo_toolsq=ruling, limit=529 ms. 5 matched, top 5 shownavokata.search_practiceFind court practice (teismų praktika) on a legal question or a provision - rulings and judgments…avokata.read_paragraphsRead a document by its own structure: give a pinpoint (straipsnis) like '6.38' for one article, or…avokata.citations_ofWhat this document relies on (cituoja): the acts (įstatymai) and earlier rulings (nutartys) it…avokata.cited_byThe citator (citavimo grafas): what has cited this provision (straipsnis) or ruling (nutartis)…avokata.instance_chainFirst instance through cassation (pirmoji / apeliacinė / kasacinė instancija) for one matter: group…
datailo_tool_schemaservice=rekvira, tool=verify_citation30 ms. inputs: citation, cite, quote, regulationdatailo_invoke → rekvira.verify_citationcitation=Article 6(1) EU AI Act445 ms. exists: held; verdict: NoneArticle 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.
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.