Skip to main content
Glama

BotSpot: AI Trading, Backtests and Bots

Read, illustrate or remove my Marketplace publications

my_marketplace_publications
Destructive

action="list" lists your account and strategy publications and private-link status; optionally includePublishingDefaults and includeSharingHistory to read first-publish defaults and paginated sharing audit history. action="get" reads one publication using subjectKind and accountId or strategyId. Both are read-only. action="upload_image" uploads a cover image for one of your publications (a write). action="remove" unpublishes one publication by publicationId (its private link is not changed). Every action retains its original independent scopes and owner checks. Private-link secrets and broker credentials are never returned.

Set "action" to choose the operation. Only send the fields listed for that action.

action="list": List my Marketplace publications and private grants

No other fields required. Lists the authenticated owner's account and strategy publications, Marketplace state, explicit capabilities, and whether a private link is active. Set includePublishingDefaults to read your first-publish preferences; includeSharingHistory returns a bounded page of durable sharing changes with actor, time, source and before/after values. Follow nextBeforeSequence using historyBeforeSequence. History begins when audit storage was installed; older changes are not reconstructed. Bearer-link secrets and broker credentials are never returned.

action="get": Get my account or strategy publication

Required fields: subjectKind. Reads one owner publication using an explicit account or strategy subject. Account sharing never implies strategy sharing; strategy sharing never exposes sibling strategies.

action="upload_image": Upload an account or strategy Marketplace image

Required fields: publicationId, mediaType, imageBase64. Uploads one owner publication image as bounded base64 PNG, JPG, or WebP data. The server validates and re-encodes it before private storage; remote image URLs are not accepted.

action="remove": Remove an account or strategy from Marketplace

Required fields: publicationId. Unpublishes exactly one owner publication. Its independent private link is not changed.

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": {
      "action": "<action>"
    },
    "name": "my_marketplace_publications"
  }
}

Input Schema

NameRequiredDescriptionDefault
actionYesWhich operation to run: "list", "get", "upload_image", "remove". See the tool description for each one.
accountIdNoUsed with action="get".
mediaTypeNoUsed with action="upload_image". Required for action="upload_image".
strategyIdNoUsed with action="get".
imageBase64NoUsed with action="upload_image". Required for action="upload_image".
subjectKindNoUsed with action="get". Required for action="get".
historyLimitNoUsed with action="list".
publicationIdNoUsed with action="upload_image", action="remove". Required for action="upload_image", action="remove".
expectedVersionNoUsed with action="upload_image".
historyBeforeSequenceNoUsed with action="list".
includeSharingHistoryNoUsed with action="list".
includePublishingDefaultsNoUsed with action="list".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / historyBeforeSequence
      Added value: +{
      +  "description": "Used with action=\"list\".",
      +  "pattern": "^[1-9][0-9]*$",
      +  "type": "string"
      +}
    • addedInput schema / properties / historyLimit
      Added value: +{
      +  "description": "Used with action=\"list\".",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / includePublishingDefaults
      Added value: +{
      +  "description": "Used with action=\"list\".",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / includeSharingHistory
      Added value: +{
      +  "description": "Used with action=\"list\".",
      +  "type": "boolean"
      +}
  2. Changed6 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Which operation to run: \"list\", \"get\". See the tool description for each one."New value: +"Which operation to run: \"list\", \"get\", \"upload_image\", \"remove\". See the tool description for each one."
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "list",
      -  "get"
      -]New value: +[
      +  "list",
      +  "get",
      +  "upload_image",
      +  "remove"
      +]
    • addedInput schema / properties / expectedVersion
      Added value: +{
      +  "description": "Used with action=\"upload_image\".",
      +  "format": "date-time",
      +  "type": "string"
      +}
    • addedInput schema / properties / imageBase64
      Added value: +{
      +  "description": "Used with action=\"upload_image\". Required for action=\"upload_image\".",
      +  "maxLength": 2796204,
      +  "minLength": 4,
      +  "type": "string"
      +}
    • addedInput schema / properties / mediaType
      Added value: +{
      +  "description": "Used with action=\"upload_image\". Required for action=\"upload_image\".",
      +  "enum": [
      +    "image/png",
      +    "image/jpeg",
      +    "image/webp"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / publicationId
      Added value: +{
      +  "description": "Used with action=\"upload_image\", action=\"remove\". Required for action=\"upload_image\", action=\"remove\".",
      +  "format": "uuid",
      +  "type": "string"
      +}
  3. Added

TDQS

A4.1/5.0
Behavior5/5

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

The description does real work the annotations cannot: it splits the tool-level destructiveHint=true into per-action semantics, stating that list and get are read-only while upload_image is an explicit write and remove only unpublishes without touching the independent private link. It further discloses that private-link secrets and broker credentials are never returned, that image uploads must be bounded base64 PNG/JPG/WebP that the server validates and re-encodes (no remote URLs), and that sharing history is a bounded page that starts at audit-storage installation with no back-fill. This is consistent with, not contradictory to, the supplied annotations.

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?

Structure is strong: a front-loaded summary of all four actions followed by one headed section per action, so an agent can jump straight to the relevant block. There is noticeable duplication, though — "Private-link secrets and broker credentials are never returned" appears in the header and again in the list section, and remove's "private link is not changed" is stated twice — which is wasted space for an otherwise tight definition.

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 12-parameter, no-output-schema, four-action tool this covers most of what an agent needs: per-action required fields, read/write classification, privacy guarantees, history paging and its temporal boundary. Gaps remain around expectedVersion semantics, the absence of any schema-level one-of enforcement between accountId and strategyId (the description only states the rule in prose), and no indication of what a list/get response contains given there is no output schema.

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 100%, so the baseline is 3 and the schema already tags every field with its action. The description nevertheless adds meaning for several fields (includeSharingHistory's actor/time/source/before-after payload, nextBeforeSequence paging via historyBeforeSequence, imageBase64/mediaType validation rules) and clarifies the accountId-or-strategyId choice. It leaves expectedVersion completely unexplained despite that being a concurrency-control parameter affecting write behavior, so it does not fully clear the baseline.

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 compact map of all four actions using specific verbs and resources ("lists your account and strategy publications", "reads one publication", "uploads a cover image", "unpublishes one publication by publicationId"). An agent can identify what each action does without opening the schema. It does not, however, distinguish this tool from close siblings such as unpublish_from_marketplace, publish_to_marketplace, marketplace_accounts, or marketplace_strategies, which handle overlapping operations.

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 dispatcher pattern is made explicit ("Set \"action\" to choose the operation. Only send the fields listed for that action"), and each action section states its required fields and purpose, plus conditional guidance such as setting includePublishingDefaults to read first-publish preferences. What is missing is routing guidance between this tool and the sibling marketplace tools that do similar things (e.g. unpublish_from_marketplace vs action=\"remove\"), so the agent must guess which entry point to prefer.

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.