Skip to main content
Glama

Server Details

Create Python strategies and backtest crypto, stocks and ETFs in Claude. Premiss account required.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 24 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation4/5

Most tools target a clearly distinct resource+action (create/get/update strategy, start_backtest, search_markets vs describe_market). The only mild overlaps are get_run_data vs get_run_report (records vs status/report) and get_strategy vs get_strategy_guide (user code vs API documentation), but the descriptions distinguish these well.

Naming Consistency5/5

All 13 tools use snake_case with a predictable verb_noun pattern (create_strategy, get_strategy, update_strategy, list_research, save_research_note, start_backtest, search_markets, describe_market, get_run_data). No convention mixing or ambiguity introduced by naming.

Tool Count5/5

13 tools is well-scoped for a strategy authoring, research, and backtesting platform. Each tool maps to a distinct capability (strategy CRUD, market discovery, run inspection, notes, capabilities/profile) with no fat.

Completeness3/5

The strategy lifecycle covers create/get/update/list but lacks delete, and research notes cover save/list but have no get/update/delete, so agents hit dead ends for cleanup. Core research and run workflows (search/describe markets, start_backtest, get_run_report/data, guide) are otherwise well covered.

Available Tools

13 tools
create_strategySave a strategyA
Idempotent
Inspect

Save a new private strategy using custom Python files and complete rules text, on any Premiss-supported market and timeframe. Accepts either files (strategy.py plus helper modules) and rules, or a convenience template. Uses the same package format as the app. Returns code and revision; saving does not run a backtest.

NameRequiredDescriptionDefault
nameYes
filesNo
rulesNo
symbolYes
intervalYes
templateNo
request_keyYesIdempotency UUID identifying one requested write and its unchanged arguments.

Output Schema

NameRequiredDescription
idYes
nameYes
filesNo
rulesYes
venueNo
symbolYes
app_urlYes
versionYes
intervalYes
revisionYes
templateYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare non-read-only, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real context beyond that: the save is private, it returns code and revision, and notably 'saving does not run a backtest', which prevents the agent from expecting backtest output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action and scope, then the input modes, then the side-effect clarification. No filler and no repetition of schema or annotation content.

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?

Covers the complex parts an agent needs: dual input paths, the package-format compatibility, and the fact that no backtest is triggered. Output schema exists so return values needn't be detailed, though the description adds that anyway. Missing only minor points such as whether files and template are mutually exclusive or whether name must be unique.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14%, so the description has to carry the load. It clarifies the files-vs-template alternative and the shape of files ('strategy.py plus helper modules'), but leaves symbol, interval, name, and the four required rules fields (watches/buys/sells/safety) unexplained.

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?

States a specific verb and resource ('Save a new private strategy') plus scope ('any Premiss-supported market and timeframe'), and the word 'new' implicitly separates it from the sibling update_strategy. An agent can pick between the two without opening either schema.

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?

Gives clear routing between the two input modes ('Accepts either files ... and rules, or a convenience template'), which is the main usage decision for this tool. It stops short of an explicit when-not or a direct comparison against update_strategy/start_backtest.

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

describe_marketCheck market coverageB
Read-onlyIdempotent
Inspect

Return supported timeframes, available history and data limitations for a market id.

NameRequiredDescriptionDefault
marketYes

Output Schema

NameRequiredDescription
nameYes
notesYes
activeYes
marketYes
symbolYes
currencyYes
exchangeYes
intervalsYes
assetClassYes
availableToYes
availabilityYes
availableFromYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds that data limitations are surfaced, which is genuine behavioral context, but says nothing about rate limits, auth, error behavior on unknown ids, or whether missing data is returned as null vs omitted.

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?

A single front-loaded sentence with the verb first and no filler; every clause maps to a distinct piece of returned information. It is efficient, though terse enough that it forgoes routing guidance it could have carried in the same sentence.

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

Completeness3/5

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

An output schema exists so return values need no elaboration, and annotations carry the safety profile, which lowers the bar. Still missing is the one thing an agent needs operationally: where the market id comes from (search_markets) and how to interpret a failure for an unsupported market.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

One required parameter with 0% schema description coverage, so the schema does no work here. The description's phrase 'for a market id' is the only signal that the string is an identifier rather than a free-text name, and it gives no format, length, or provenance (e.g., obtained from search_markets), leaving the agent to guess.

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 names a specific verb ('Return') and a precise payload (supported timeframes, available history, data limitations) scoped to a market id. It is clearly distinguishable from search_markets in intent, but it never names or contrasts a sibling explicitly.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is a pre-flight metadata check before a backtest, but the description states no when-to-use condition, no prerequisite, and no alternative. It neither says 'call this before start_backtest' nor warns against using it in place of search_markets.

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

get_capabilitiesPremiss capabilitiesA
Read-only
Inspect

Read this connection's available tools and supported research coverage. Does not read account data, save research, or run a simulation.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
availableYes
release_stageYes
research_scopeYes
schema_versionYes
available_toolsYes
unavailable_operationsYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds a scope clarification ('does not read account data') that meaningfully narrows the tool to connection metadata, but the remaining negatives largely restate what the annotations already imply. No auth, rate-limit, or output-format context is added.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no waste, and the positive statement of what is returned is front-loaded before the boundary disclaimers.

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?

An output schema exists, so return values need not be described, and annotations carry the safety profile. For a zero-parameter read-only discovery tool the description is nearly sufficient, though a positive cue about when to invoke it (e.g., before calling other Premiss tools) would close the last gap.

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?

The tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to clarify about inputs.

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?

States a specific verb (Read) and a specific resource (this connection's available tools and supported research coverage). It distinguishes the tool from data-producing siblings through the explicit disclaimers, though it does not name an alternative sibling by name.

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

Usage Guidelines3/5

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

The negative clauses ('does not read account data, save research, or run a simulation') route the agent away from get_profile, save_research_note, and start_backtest, but they never state positively when to call this tool first (e.g., as a discovery step). Usage is implied rather than explicit, and no alternative is named.

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

get_profilePremiss connected workspaceA
Read-onlyIdempotent
Inspect

Read the stable identity and workspace selected for this connection. Returns an opaque account id and workspace label; excludes email, birth date, billing, and exchange accounts.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
idYes
app_urlYes
workspaceYes
permissionsYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description goes beyond them by disclosing the data-minimization boundary (excludes email, birth date, billing, exchange accounts), which usefully stops an agent from fishing here for user PII.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first gives the purpose and selection scope, the second gives the returned shape and the exclusions. Front-loaded, zero filler, every clause carries information.

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?

With an output schema present, return-field detail need not live in the description, and annotations cover behavior; a zero-param read tool needs little more. The exclusions sentence adds the one thing the structured fields don't convey, leaving only minor mapping detail (account id vs. workspace label) to the output schema.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate — the baseline of 4 applies. The description correctly implies the connection itself selects the identity, with no caller-supplied arguments needed.

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?

States a precise verb ('Read') and resource ('stable identity and workspace selected for this connection'), and adds scope qualifiers ('stable', 'for this connection') that pin down exactly which identity is returned. No sibling tool competes for this purpose, so an agent can route to it unambiguously.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: an agent infers it should call this when it needs to know which account/workspace the connection is bound to. There is no explicit when-to-use statement, no prerequisites, and no alternatives named (none exist among the siblings, so the cost is low).

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

get_run_dataRead backtest code, trades or equityA
Read-onlyIdempotent
Inspect

Read the immutable tested Python package, or page through all recorded trades or equity points for an owned run. next_cursor identifies the next page; page size is not a history cap. Paper data requires separate paper:read permission. Saved code is user-authored content.

NameRequiredDescriptionDefault
kindYes
limitNo
cursorNo
run_idYes

Output Schema

NameRequiredDescription
kindYes
filesNo
equityNo
run_idYes
tradesNo
revisionYes
next_cursorYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, closed-world), so the description is not the sole source. It still adds real context: pagination mechanics ('next_cursor identifies the next page; page size is not a history cap'), the separate paper:read permission requirement, and the provenance caveat that saved code is user-authored content.

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?

Four dense sentences, front-loaded with the primary action before paging and permission details. Nothing is padding, though 'immutable tested Python package' is slightly jargon-heavy for a code payload.

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?

With an output schema present, return values need no explanation, and annotations carry the safety profile; the description covers auth scope, pagination, and content trust. It stops short of defining 'owned run' or failure behavior, which leaves only minor gaps for a 4-parameter read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and it only partly does. It explains kind (code/trades/equity), that the cursor value is the next-page token, and that limit bounds page size rather than total history, but run_id - a required parameter - receives no explanation at all.

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 description names a specific verb and resource set - read code, page through trades or equity points - and scopes it to 'an owned run', which separates it from get_run_report and get_strategy. An agent can tell from the text alone which of the three data kinds this call serves.

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

Usage Guidelines3/5

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

Usage is implied by the kind enum and the phrase 'for an owned run', but there is no explicit when-to-use/when-not guidance and no routing to alternatives such as get_run_report for summaries. The paper:read permission hint is a prerequisite, not a selection rule.

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

get_run_reportRead historical or paper evidenceA
Read-onlyIdempotent
Inspect

Read the status and bounded performance report for one run in the connected workspace. Returns the tested market, interval, revision, and recorded rules when verifiable. Historical plugin runs include the paired buy-and-hold baseline when completed. Paper reads require paper:read and do not start, stop, qualify, or modify a bot. Legacy runs without supported assumptions are labeled. Does not return raw market feeds.

NameRequiredDescriptionDefault
run_idYes

Output Schema

NameRequiredDescription
modeYes
errorNo
venueYes
end_tsYes
run_idYes
statusYes
symbolYes
app_urlYes
last_tsYes
metricsYes
baselineYes
intervalYes
revisionYes
start_tsYes
assumptionsYes
limitationsYes
strategy_idYes
tested_rulesYes
engine_versionYes
strategy_versionYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real substance on top: the paper:read permission requirement, that legacy runs without supported assumptions are labeled, that historical plugin runs include a paired buy-and-hold baseline, and what is deliberately not returned (raw market feeds).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then layered with progressively finer qualifications (returned fields, baseline, auth, exclusions). Every sentence carries distinct information; nothing is restated from the annotations or schema.

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?

An output schema exists, so return values need not be enumerated, yet the description still summarizes the payload shape. Auth requirements, run-type handling, and negative scope are all covered, leaving nothing essential for a correct call missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single run_id parameter, so the description carries the burden. It only implies that run_id refers to 'one run in the connected workspace' and never clarifies the identifier's form or whether it spans plugin, paper, and legacy runs, which is a real gap given the run-type distinctions it draws elsewhere.

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?

It states a specific verb and resource ('Read the status and bounded performance report for one run') and draws a scope boundary against raw feeds. It never names the sibling it is closest to (get_run_data), so an agent must infer the split from the 'bounded' vs. raw-feed wording rather than being told explicitly.

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?

Usage context is clear: read-only inspection of a completed run, with historical plugin vs. paper reads distinguished, and explicit exclusions ('do not start, stop, qualify, or modify a bot'). No alternative tool is named for cases where the agent wants raw data or a different run view, so the routing is implied rather than stated.

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

get_strategyRead a saved strategyA
Read-onlyIdempotent
Inspect

Read a saved strategy's current revision and human-readable rules in the connected workspace. Returns the complete Python package for review or editing. Code and comments are user-authored content.

NameRequiredDescriptionDefault
strategy_idYes

Output Schema

NameRequiredDescription
idYes
nameYes
filesNo
rulesYes
venueNo
symbolYes
app_urlYes
versionYes
intervalYes
revisionYes
templateYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds real value beyond that by disclosing that the return is a full Python package and flagging code/comments as user-authored content, which is a meaningful caution for an agent consuming untrusted text. It stops short of stating auth requirements or behavior when the strategy_id does not exist.

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?

Three tight sentences with the core action front-loaded and no filler. The 'Code and comments are user-authored content' note earns its place as a safety-relevant caveat.

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?

An output schema exists, so return-value documentation is not strictly required, yet the description still summarizes the payload shape usefully. Combined with annotations covering the safety profile, an agent has nearly everything needed, with only parameter sourcing left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the single strategy_id parameter has only type and length constraints, so the description must carry semantic weight. It implies the identifier selects 'a saved strategy in the connected workspace' but adds no format, provenance, or how-to-obtain guidance beyond that.

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?

States a specific verb and resource ('Read a saved strategy's current revision and human-readable rules') and clarifies the payload is a complete Python package. It is clearly distinct from create_strategy and update_strategy by verb, though it never explicitly names those siblings.

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

Usage Guidelines3/5

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

Usage is implied by 'for review or editing,' which hints at a read-before-update workflow, but there is no explicit when-to-use or when-not-to-use guidance and no mention of alternatives such as get_strategy_guide or update_strategy.

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

get_strategy_guideRead the strategy Python APIA
Read-onlyIdempotent
Inspect

Read Premiss's Python package format, on_bar API, execution semantics and example. Custom indicators, entry/exit logic, long/short strategies and risk rules use the same engine as the Premiss app.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
guideYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds real content beyond that: it enumerates what the guide covers (package format, on_bar API, execution semantics, example) and scopes the engine's applicability, which tells the agent what it is getting.

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?

Two sentences, front-loaded with the concrete deliverable and followed by scope context; no filler. Slightly dense but every clause carries information.

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?

An output schema exists, so return structure need not be explained. For a read-only, parameterless reference tool the description covers purpose, content scope and applicability adequately; only explicit routing guidance versus sibling tools is missing.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline for a no-param tool applies. The description correctly adds no spurious parameter-like detail.

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?

States a specific verb ('Read') and a specific resource (Premiss's Python package format, on_bar API, execution semantics, example), so an agent knows this returns reference material rather than strategy data. It is distinguishable from siblings like get_strategy (fetch a strategy) or create_strategy, though it never says so explicitly.

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

Usage Guidelines3/5

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

Usage is only implied – 'Custom indicators, entry/exit logic, long/short strategies and risk rules use the same engine as the Premiss app' hints that this is the reference to consult before writing strategy code, but there is no explicit when-to-use, prerequisite, or comparison to get_capabilities/get_strategy.

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

list_researchFind saved Premiss researchA
Read-onlyIdempotent
Inspect

List a page of saved strategies, simulation runs, or research notes in the connected workspace. Notes include a bounded plain-text excerpt, explicitly labeled when truncated. Saved text is user-authored content. Paper runs require the separately approved paper:read permission. Search matches titles; cursors are opaque page positions.

NameRequiredDescriptionDefault
kindYes
limitNo
queryNo
cursorNo

Output Schema

NameRequiredDescription
kindYes
itemsYes
next_cursorYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive/closed-world, and the description goes further by disclosing the paper:read permission prerequisite, that note excerpts are bounded and explicitly labeled when truncated, and that cursors are opaque page positions. These are real operational details the annotations do not convey; a 4 rather than 5 only because rate limits, page-size behavior, and error cases remain unstated.

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?

Five dense sentences, purpose front-loaded, each carrying distinct information (kinds, truncation labeling, permission, query semantics, pagination). No filler, though the excerpt/content sentence sits slightly awkwardly before the permission note.

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?

With an output schema present, return values need not be described, and the description adds the permission gate, truncation disclosure, and pagination semantics an agent needs. Only the limit parameter and any per-kind difference in returned content are left thin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden, and it does explain 'Search matches titles' for query and 'cursors are opaque page positions' for cursor, and it enumerates the three kind values. However, limit is never mentioned and per-kind matching behavior is left ambiguous, so it only partially compensates for the coverage gap.

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?

Clear verb (List) plus a specific resource set (saved strategies, simulation runs, or research notes) that maps directly to the kind enum. It implicitly distinguishes itself from get_strategy and save_research_note by framing this as paged enumeration of saved items, but it never names a sibling outright, so it stops short of a 5.

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

Usage Guidelines3/5

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

'Paper runs require the separately approved paper:read permission' and 'Search matches titles' give situational context for two of the kinds, but there is no explicit when-to-use-this-vs-get_strategy/get_run_report guidance and no when-not conditions. Usage is implied rather than spelled out.

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

save_research_noteSave a research noteA
Idempotent
Inspect

Save a NEW private note in the connected workspace, with optional exact owned strategy/run evidence references. The note is user-authored content. Does not publish or send it anywhere.

NameRequiredDescriptionDefault
noteYes
titleYes
run_idNo
revisionNo
request_keyYesIdempotency UUID identifying one requested write and its unchanged arguments.
strategy_idNo

Output Schema

NameRequiredDescription
savedYes
titleYes
app_urlYes
note_idYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and idempotentHint=true with destructiveHint=false, so the bar is lower; the description adds genuine context that the note is private, user-authored, and not published or transmitted. It does not, however, explain the idempotency/request_key or revision behavior beyond the annotation.

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?

Three short sentences, front-loaded with the action and scope, and every sentence carries information. 'The note is user-authored content' is mildly redundant but reinforces the privacy framing.

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

Completeness3/5

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

With annotations covering safety/idempotency and an output schema covering the response, the remaining burden is parameter meaning. The description handles the evidence-reference parameters but is silent on the required idempotency key and revision parameter, leaving gaps for a 6-param write tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17% (just request_key), so the description must compensate. It usefully clarifies that strategy_id/run_id are optional 'exact owned' evidence references, but leaves the required request_key and the revision parameter unexplained, and adds nothing about title/note beyond the schema constraints.

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?

Names a specific verb+resource (save a research note), states the scope (NEW, private, in the connected workspace) and the optional evidence-linking capability. It is clearly distinguishable from sibling tools like list_research or update_strategy without opening any schema.

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

Usage Guidelines3/5

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

Implies usage (capturing user-authored research) and gives one exclusion via 'Does not publish or send it anywhere,' but never names an alternative tool or states when to prefer saving a note versus, say, updating a strategy. Guidance is implied rather than explicit.

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

search_marketsFind supported marketsC
Read-onlyIdempotent
Inspect

Search the same crypto, stock and ETF directory as Premiss. Does not return prices or candles.

NameRequiredDescriptionDefault
limitNo
queryNo
asset_classNo

Output Schema

NameRequiredDescription
marketsYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety behavior is covered. The description adds one genuinely useful trait, that the result set excludes prices/candles, but nothing about matching semantics, ranking, or empty-result handling.

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?

Two short sentences, front-loaded with the verb and scope, with no padding. The Premiss reference consumes space without adding usable information, but the result is still tight.

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

Completeness2/5

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

An output schema exists so return values need not be restated, and annotations carry the safety profile. However, three undocumented parameters and zero guidance on when to prefer this over describe_market leave real gaps for a search entry-point tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description explains none of the three parameters, including the meaning of an empty 'query' default or how asset_class interacts with a text query. With low coverage the description is expected to compensate and does not.

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?

States a specific verb ('Search') and resource (crypto/stock/ETF market directory), so the agent knows it looks up instruments rather than data. The reference to 'the same directory as Premiss' is opaque and does not help differentiate it from siblings like describe_market.

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

Usage Guidelines2/5

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

The line 'Does not return prices or candles' implicitly scopes it away from data-retrieval tools, but no sibling is named and no condition for choosing this over describe_market or get_capabilities is given. Usage must be entirely inferred.

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

start_backtestStart a historical backtestA
Idempotent
Inspect

Queue a backtest of any saved strategy in the connected workspace and a matched buy-and-hold baseline. Accepts custom code and existing app strategies. Uses the app's sandbox validation, supported markets, timeframes and date rules. Requires the exact saved revision. Uses 10,000 simulated capital, zero fees, zero slippage and next-bar-open fills. Read the report assumptions for historical runs. No plugin-only daily test or history caps. Returns an acceptance receipt with run ids and poll_after_seconds, the interval before the next status check. Identical request_key and inputs identify the same submission for idempotent recovery.

NameRequiredDescriptionDefault
end_dateNo
revisionYes
start_dateYes
request_keyYesIdempotency UUID identifying one requested write and its unchanged arguments.
strategy_idYes

Output Schema

NameRequiredDescription
end_tsYes
run_idYes
statusYes
app_urlYes
revisionYes
start_tsYes
total_barsYes
request_keyYes
strategy_idYes
tested_rulesNo
baseline_run_idYes
poll_after_secondsYes

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations (idempotentHint, readOnlyHint=false) it discloses execution semantics an agent could not infer: app sandbox validation, supported market/timeframe/date rules, 10,000 simulated capital, zero fees, zero slippage, next-bar-open fills, and the idempotent-recovery mechanism (identical request_key and inputs). It also explains what comes back and how to proceed (run ids plus poll_after_seconds).

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?

Purpose and baseline behavior are front-loaded, and the simulation assumptions are packed efficiently into one sentence. The final sentence on the acceptance receipt and poll interval is somewhat long and slightly overlaps the output schema, but most sentences carry distinct information.

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 mutation tool with an output schema, the description covers the execution model, constraints, idempotency and next-step polling well. Remaining gaps – optionality of end_date, failure/validation-error behavior, and the exact meaning of strategy_id – are minor given the output schema documents the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 20% (just request_key), so the description must carry most parameter meaning. It usefully clarifies that revision must be the exact saved revision and that request_key plus identical inputs drive idempotency, but strategy_id, start_date and the optionality/behavior of end_date are left to the bare schema.

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 description opens with a specific verb and resource: 'Queue a backtest of any saved strategy ... and a matched buy-and-hold baseline.' It scopes the operation precisely (saved or existing app strategies, custom code) and its output (acceptance receipt with run ids), letting an agent distinguish it from retrieval siblings like get_run_report or get_run_data without inspecting either schema.

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?

Usage context is clear: any saved strategy in the connected workspace, custom code or existing app strategies, with the exact saved revision required. It also flags a boundary versus an alternative surface ('No plugin-only daily test or history caps'), but it never names a sibling tool or states an explicit when-not/fallback condition.

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

update_strategyEdit a strategyA
DestructiveIdempotent
Inspect

Replace the complete Python package and rules of an existing strategy using its exact current saved revision. The submitted package replaces all existing files. Supports all Premiss markets and timeframes. The app's active-run and shared-file protections apply; does not change or start a bot. Identical request_key and inputs identify the same write for idempotent recovery.

NameRequiredDescriptionDefault
filesYes
rulesYes
symbolYes
intervalYes
revisionYes
request_keyYesIdempotency UUID identifying one requested write and its unchanged arguments.
strategy_idYes

Output Schema

NameRequiredDescription
idYes
nameYes
filesNo
rulesYes
venueNo
symbolYes
app_urlYes
versionYes
intervalYes
revisionYes
templateYes

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already flag destructive/idempotent/closed-world, and the description adds real value on top: it states the blast radius ('the submitted package replaces all existing files'), the protections in play ('active-run and shared-file protections apply'), the idempotency mechanism ('identical request_key and inputs identify the same write'), and a scope boundary ('does not change or start a bot').

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?

Four dense sentences with the core action front-loaded and no filler; every sentence carries information. Slightly compact for a seven-parameter nested-schema tool, but nothing is wasted.

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?

With an output schema present, return values need no explanation, and the description covers the mutation's destructive scope, protections, idempotency, and bot-boundary. Gaps remain around the rules payload and failure/permission behavior, but it is sufficient to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 14%, so the description must carry weight; it explains 'revision' as the exact current saved revision and 'files' as a full replacement, and 'Supports all Premiss markets and timeframes' loosely covers symbol/interval. But the rules object (watches/buys/sells/safety), strategy_id, and request_key receive no added semantics, leaving key parameters under-documented.

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?

States a specific verb and resource ('Replace the complete Python package and rules of an existing strategy'), and the word 'existing' plus 'exact current saved revision' cleanly separates it from the create_strategy sibling without needing its schema.

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

Usage Guidelines3/5

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

The precondition 'using its exact current saved revision' implies this is for editing an already-saved strategy and hints at optimistic-concurrency usage, and 'does not change or start a bot' bounds the scope. However, no sibling is named and there is no explicit when-to-use-this-vs-create_strategy or when-not guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • Changedget_run_data1 field changed
      • changedInput schema / required
        Previous value: -[
        -  "run_id",
        -  "kind",
        -  "limit"
        -]New value: +[
        +  "run_id",
        +  "kind"
        +]
    • Changedlist_research1 field changed
      • changedInput schema / required
        Previous value: -[
        -  "kind",
        -  "limit"
        -]New value: +[
        +  "kind"
        +]
    • Changedsearch_markets1 field changed
      • removedInput schema / required
        Removed value: -[
        -  "query",
        -  "limit"
        -]
  2. 1 tool update
    • Changedget_capabilities8 fields changed
      • addedOutput schema / properties / research_scope / properties / default_entry_sizing
        Added value: +{
        +  "const": "available_unreserved_capital",
        +  "type": "string"
        +}
      • addedOutput schema / properties / research_scope / properties / event_backtest_classes
        Added value: +{
        +  "items": {
        +    "enum": [
        +      "crypto",
        +      "stock",
        +      "etf"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / research_scope / properties / event_handlers
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / research_scope / properties / event_paper_runs
        Added value: +{
        +  "const": true,
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / research_scope / properties / market_classes
        Added value: +{
        +  "items": {
        +    "enum": [
        +      "crypto",
        +      "stock",
        +      "etf"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / research_scope / properties / markets_are_examples
        Added value: +{
        +  "const": true,
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / research_scope / properties / portfolio_rebalancing
        Added value: +{
        +  "const": "long_only_staged_targets",
        +  "type": "string"
        +}
      • addedOutput schema / properties / research_scope / properties / strategy_model
        Added value: +{
        +  "enum": [
        +    "single_market_closed_bars",
        +    "single_market_and_declared_event_strategies"
        +  ],
        +  "type": "string"
        +}
  3. 1 tool update
    • Changedget_run_report1 field changed
      • changedOutput schema / properties / assumptions / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "fee_bps": {
        -        "const": 10,
        -        "type": "number"
        -      },
        -      "initial_capital": {
        -        "const": 10000,
        -        "type": "number"
        -      },
        -      "slippage_bps": {
        -        "const": 1,
        -        "type": "number"
        -      },
        -      "version": {
        -        "const": 1,
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "version",
        -      "initial_capital",
        -      "fee_bps",
        -      "slippage_bps"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "anyOf": [
        +      {
        +        "additionalProperties": false,
        +        "properties": {
        +          "fee_bps": {
        +            "const": 10,
        +            "type": "number"
        +          },
        +          "initial_capital": {
        +            "const": 10000,
        +            "type": "number"
        +          },
        +          "slippage_bps": {
        +            "const": 1,
        +            "type": "number"
        +          },
        +          "version": {
        +            "const": 1,
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "version",
        +          "initial_capital",
        +          "fee_bps",
        +          "slippage_bps"
        +        ],
        +        "type": "object"
        +      },
        +      {
        +        "additionalProperties": false,
        +        "properties": {
        +          "fee_bps": {
        +            "maximum": 1000,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "initial_capital": {
        +            "const": 10000,
        +            "type": "number"
        +          },
        +          "slippage_bps": {
        +            "maximum": 1000,
        +            "minimum": 0,
        +            "type": "number"
        +          },
        +          "version": {
        +            "const": 2,
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "version",
        +          "initial_capital",
        +          "fee_bps",
        +          "slippage_bps"
        +        ],
        +        "type": "object"
        +      }
        +    ]
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
  4. 13 tool updates
    • First observedcreate_strategy
    • First observeddescribe_market
    • First observedget_capabilities
    • First observedget_profile
    • First observedget_run_data
    • First observedget_run_report
    • First observedget_strategy
    • First observedget_strategy_guide
    • First observedlist_research
    • First observedsave_research_note
    • First observedsearch_markets
    • First observedstart_backtest
    • First observedupdate_strategy

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants like Claude to run backtests, fetch market data, list strategies, and analyze trading algorithms via natural language.
    1,113
    GPL 3.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables creation, optimization, and management of PineScript trading strategies with Claude Desktop integration for AI-assisted development.
    11 npm
    105
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to backtest trading strategies described in plain English, providing access to market data, technical indicators, and comprehensive performance reports.
    13
    1
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Provides 31 AI-powered crypto trading tools for Claude, Cursor, and any MCP client, enabling strategy creation, backtesting, bot deployment, copy trading, and portfolio management across multiple exchanges.
    34
    38 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources