Skip to main content
Glama

Neuroencoder EEG embeddings

start_embedding_job

Queue an embeddings job on an uploaded file. window_seconds: 2 to 30 (default 30); stride_seconds: default window_seconds. picks: EDF/BDF channel labels to keep; channel_names: 10-20 labels overriding the file's; sfreq: required for .npy. Bills 30 s of EEG per window at any window_seconds (refunded on failure). Poll get_job.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "file_id": "<file_id>"
    },
    "name": "start_embedding_job"
  }
}

Input Schema

NameRequiredDescriptionDefault
picksNo
sfreqNo
file_idYes
channel_namesNo
stride_secondsNo
window_secondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses cost behavior well ('Bills 30 s of EEG per window at any window_seconds (refunded on failure)') and the async polling requirement, which are genuinely useful. It says nothing about what happens if the call fails for non-billing reasons, whether jobs are idempotent, or what identifier is returned, and it does not explain window_seconds yet bills '30 s per window at any window_seconds', a distinction that reads as contradictory and could mislead an agent reasoning about cost versus duration.

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 front-loaded, with the purpose first and then per-parameter notes, and nearly every fragment carries information. The telegraphic semicolon style ('picks: EDF/BDF channel labels to keep') trades a little readability for density, and the billing clause packs two ideas into one sentence that would be clearer split apart.

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

Completeness4/5

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

For a side-effecting, billable job launcher with no annotations and no output schema, the description covers purpose, cost, refund-on-failure, required input idiosyncrasies, and the follow-up step. What it omits is the return contract (whether a job id is returned and where to get it) and the behavioral relationship between picks and channel_names when both are supplied.

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 coverage is 0%, so the description must compensate, and it largely does: window_seconds carries a valid range (2–30) and a default, stride_seconds is derived from window_seconds when omitted, picks and channel_names are distinguished semantically (labels to keep versus 10–20 labels overriding the file's), and sfreq is gated on .npy input. The only significant gap is file_id, the single required parameter, whose provenance is only implied by 'an uploaded file'.

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 opens with a specific verb and resource ('Queue an embeddings job on an uploaded file'), so the action and target are immediately clear. It doesn't differentiate itself from sibling tools such as get_result_url, but the closing 'Poll get_job' does at least position it upstream of one sibling.

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

Usage Guidelines4/5

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

The description gives clear operational context: it must act on an uploaded file, requires sfreq for .npy inputs, and the agent should poll get_job afterward. It never states when this tool should not be used or how it relates to get_result_url, so it stops short of full when/when-not guidance.

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