Skip to main content
Glama

AstraEye Labs

Change a research project

update_research_project
DestructiveIdempotent

Changes one of the member's projects (projectId from list_research_projects): its name, description, analyses added or removed (placement says where added ones go: auto, new_stage or new_workflow), what it covers, and its report options. The changes are made one after another: if one fails, the result (not_done) lists in kept the changes that were already made and stay, and the rest are not made. Starts nothing; get a new price with quote_research_run.

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": {
      "projectId": "<projectId>"
    },
    "name": "update_research_project"
  }
}

Input Schema

NameRequiredDescriptionDefault
titleNoA new name.
coversNoWhat it covers: chosen_assets (assetIds), the watchlist, holdings_or_watchlist, or global_market (marketSliceIds, skipsAssetClass).
assetIdsNoWith covers chosen_assets: the assets, by assetId. From find_assets or list_watchlist; at most 25.
placementNoWhere added analyses go: auto (the current stage; one that reads earlier findings goes after them), new_stage, or new_workflow.
projectIdYesA project id from list_research_projects.
descriptionNoA new description, saved exactly as given.
addAnalysisIdsNoAnalyses to add, by id. From list_analyses.
marketSliceIdsNoWith covers global_market: at most one slice id per asset class.
clientRequestIdNoOptional UUID you generate for this request. Retrying with the same id never does it twice.
reportOptionsOnNoReport options to turn on. methodology, audio_methodology, quiz, visual_brief, audio, questions.
skipsAssetClassNoWith covers global_market: the class left out (crypto for Stocks only).
reportOptionsOffNoReport options to turn off. methodology, audio_methodology, quiz, visual_brief, audio, questions.
removeAnalysisIdsNoAnalyses to remove, by id. From list_analyses.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

With annotations already declaring destructiveHint=true and idempotentHint=true, the description adds substantial behavioral detail beyond them: changes are applied sequentially, partial failures return not_done with kept changes, and the remaining changes are not made. It also clarifies that no research run is started.

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?

The description is front-loaded with the action and affected fields, then immediately covers partial-failure semantics, then closes with the important boundary that it does not start a run. Three sentences, no filler, every clause earns its place.

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 complex 13-parameter destructive mutation with no output schema, the description covers the critical behavioral risks: sequential application and partial-failure reporting. It does not describe the success return shape or full result structure, but the schema and annotations carry most remaining detail, leaving only a minor gap.

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 100%, so the schema already documents each parameter thoroughly, including enum meanings and id sources. The description reinforces how placement, covers, and report options relate to the operation but does not add syntax or constraints beyond what the schema provides, making 3 the appropriate baseline.

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 ('Changes'), the resource ('one of the member's projects'), and enumerates the mutable aspects: name, description, analyses, coverage, and report options. It also directs the agent to list_research_projects for projectId, clearly distinguishing it from create/get/archive/restore siblings.

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?

It gives clear usage context by naming where to get projectId and explicitly states 'Starts nothing; get a new price with quote_research_run,' routing the agent to the correct sibling for pricing. It does not explicitly state when to prefer archive/restore or create, but those alternatives are reasonably implied by the mutation scope.

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