Skip to main content
Glama
roman-zaglauer

OctoBot MCP Server

create_profile

Create OctoBot trading profiles in four ways: duplicate an existing one, import from a file or URL, or use a cloud strategy. Provide the required arguments for your chosen mode to get a new profile ID.

Instructions

Create a new profile, one of 4 ways, discriminated by mode.

Not confirm-gated (ADR-0003): creates new state, never destroys anything or touches credentials/live trading. Every mode's exact request shape was verified against OctoBot source (controllers/configuration.py's profiles_management route) and, where practical, against the live test instance -- see each _create_profile_* helper's docstring for the per-mode detail and the two spec corrections found along the way (import_file never returns JSON; import_url is presently broken upstream). Only the arguments relevant to the chosen mode need to be supplied; the rest are ignored:

  • mode="duplicate": requires source_profile_id.

  • mode="import_file": requires file_base64 (the file's raw bytes, base64-encoded) and filename.

  • mode="import_url": requires url.

  • mode="import_cloud_strategy": requires strategy_id and name; description is optional (defaults to "").

Output: {"profile_id": str, "name": str, "message": str}.

Raises ProfileImportFailedError for any failure in any mode (including a missing required argument for the chosen mode, or an unrecognized mode) -- OctoBot's own error text is included where one exists.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNo
modeYes
nameNo
filenameNo
descriptionNo
file_base64No
strategy_idNo
source_profile_idNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden, and it excels: it discloses side effects ('creates new state, never destroys anything or touches credentials/live trading'), non-confirm-gating behavior, error semantics (raises ProfileImportFailedError), and known upstream issues (import_url broken, import_file never returns JSON). This is far more transparency than typical tool descriptions.

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 long but every sentence earns its place given the four-mode complexity. It is front-loaded with the core purpose, structured with bullets for each mode, and includes only high-value caveats such as known spec corrections and upstream breakage. No redundant listing of schema types; all prose adds operational meaning.

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?

For a complex 8-parameter tool with no annotations, no output schema, and no per-parameter descriptions, this description is complete. It covers per-mode required arguments, optional arguments, output shape, error behavior, and safety profile. An agent has everything needed to select the correct mode and construct a valid call, including awareness of the broken import_url mode.

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

Parameters5/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 does thoroughly. It maps every parameter to its relevant mode, defines file_base64 as raw bytes base64-encoded, clarifies that description defaults to empty string, and states that irrelevant arguments are ignored. Each of the 8 parameters is effectively explained through the mode-based requirements.

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: 'Create a new profile, one of 4 ways, discriminated by mode.' The four modes are enumerated, making the tool's scope unmistakable and distinguishing it from sibling profile tools like update_profile, delete_profile, and list_profiles. The resource is clearly a profile and the action is creation.

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?

Provides clear context on when to use the tool: it creates a new profile and is not confirm-gated, emphasizing it never destroys state or touches credentials/live trading. It also explains that only mode-relevant arguments need to be supplied. However, it does not explicitly name sibling alternatives or state when to choose this over another profile-related tool, so it falls short of a 5.

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