Elnora Search
Full-text search across tasks and files on the Elnora AI Platform. Search by keyword to find protocols, conversations, and documents across all projects you have access to.
Organization Context
All search tools accept an optional org_id parameter (UUID). When provided,
the search targets that organization instead of the user's active org. The user
must be a member of the target org.
Concepts
- Search results include a
snippetwith HTML-bold highlighted matches and arankscore for relevance sorting. - Search is read-only. Use search to find resources, then use domain-specific tools (
elnora_get_task,elnora_get_file_content, etc.) to act on them. - Results span all projects you have access to. There is no project filter on search -- use
elnora_list_tasksorelnora_list_fileswithproject_idto browse within a single project.
MCP Tools
elnora_search_all
Full-text search across all resource types (tasks, files, etc.) in a single call.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | Yes | - | Search query (min: 1, max: 1,000 chars) |
page |
integer | No | 1 | Page number (min: 1) |
page_size |
integer | No | 25 | Results per page (min: 1, max: 100) |
Returns paginated results:
{
"items": [
{
"type": "task",
"id": "<UUID>",
"title": "PCR Protocol for BRCA1",
"snippet": "...amplify <b>BRCA1</b> exon 11 using standard <b>PCR</b>...",
"projectId": "<UUID>",
"createdAt": "...",
"rank": 0.85
},
{
"type": "file",
"id": "<UUID>",
"title": "brca1-protocol-v2.md",
"snippet": "...<b>PCR</b> amplification protocol for...",
"projectId": "<UUID>",
"createdAt": "...",
"rank": 0.72
}
],
"page": 1,
"totalCount": 8,
"hasNextPage": false
}
Use the type field to distinguish between tasks and files in results.
elnora_search_tasks
Full-text search scoped to tasks only.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | Yes | - | Search query (min: 1, max: 1,000 chars) |
page |
integer | No | 1 | Page number (min: 1) |
page_size |
integer | No | 25 | Results per page (min: 1, max: 100) |
Same response shape as elnora_search_all but only returns task results. Use this when you know you are looking for a conversation thread.
elnora_search_files
Full-text search scoped to files only.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | Yes | - | Search query (min: 1, max: 1,000 chars) |
page |
integer | No | 1 | Page number (min: 1) |
page_size |
integer | No | 25 | Results per page (min: 1, max: 100) |
Same response shape as elnora_search_all but only returns file results. Use this when you know you are looking for a document or protocol output.
elnora_search_file_content
Full-text search inside file bodies (protocols, documents). Unlike elnora_search_files which searches metadata, this searches the actual content of files.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query |
string | Yes | - | Search query (min: 1, max: 1,000 chars) |
page |
integer | No | 1 | Page number (min: 1) |
page_size |
integer | No | 25 | Results per page (min: 1, max: 100) |
Same response shape as other search tools. Use this to find specific protocol steps, reagent mentions, or methods within generated protocols.
Token Efficiency
All search tools support optional compact and fields parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
compact |
boolean | false | Strip null/empty values (~30-40% token savings) |
fields |
string | all | Comma-separated field names (e.g., "id,name,snippet") |
Choosing the Right Search Tool
| Goal | Tool |
|---|---|
| Find anything matching a keyword | elnora_search_all |
| Find a conversation about a topic | elnora_search_tasks |
| Find a protocol document by name | elnora_search_files |
| Find content INSIDE file bodies | elnora_search_file_content |
| Browse all files in a specific project | elnora_list_files (not search) |
| Browse all tasks in a specific project | elnora_list_tasks (not search) |
Pagination
Search results use page-based pagination:
{
"items": [...],
"page": 1,
"totalCount": 50,
"hasNextPage": true
}
If hasNextPage is true, increment page and call again.
Agent Workflow Recipes
Find a task by topic, then read the conversation
- Call
elnora_search_taskswith a keyword query (e.g., "BRCA1") - Pick the best match by
rank - Call
elnora_get_task_messageswith the task'sidto read the full conversation
Find a protocol file and read its content
- Call
elnora_search_fileswith a keyword query (e.g., "gel electrophoresis") - Pick the best match by
rank - Call
elnora_get_file_contentwith the file'sidto read the protocol
Search across everything, then route by type
- Call
elnora_search_allwith a broad query - For each result, check the
typefield:"task"-- useelnora_get_taskorelnora_get_task_messages"file"-- useelnora_get_fileorelnora_get_file_content