Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Atono

OCI · DOCKER.IO/ATONOIO/ATONO-MCP-SERVER:1.1.1 · SCANNED AUG 22

Give your AI coding tools your team's product context: stories, bugs, epics, and glossary.

+6 this week 38 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security0
  • Malware scan not yet available for this package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM, so there is no dependency list to read. Publishing one would let us assess it.Unverified
Provenance & Transparency35
Schema Quality & AI Usability65
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 7939 tokens (~189/item across 42 items; 42 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management40
  • Stability observed for 12 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 0% of tool parameters carry a description.Fail
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

How do I install the Atono MCP server?

Atono runs locally as a container image, launched with docker run --rm -i docker.io/atonoio/atono-mcp-server:1.1.1. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · docker.io/atonoio/atono-mcp-server:1.1.1

# add to Claude Code
claude mcp add io-atono-atono-mcp-server -- docker run --rm -i docker.io/atonoio/atono-mcp-server:1.1.1
// .cursor/mcp.json
{
  "mcpServers": {
    "io-atono-atono-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "docker.io/atonoio/atono-mcp-server:1.1.1"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "io-atono-atono-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "docker.io/atonoio/atono-mcp-server:1.1.1"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add io-atono-atono-mcp-server -- docker run --rm -i docker.io/atonoio/atono-mcp-server:1.1.1
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-atono-atono-mcp-server": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "docker.io/atonoio/atono-mcp-server:1.1.1"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  io-atono-atono-mcp-server:
    command: "docker"
    args: ["run", "--rm", "-i", "docker.io/atonoio/atono-mcp-server:1.1.1"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "io-atono-atono-mcp-server": {
      "Transport": "stdio",
      "Command": "docker",
      "Arguments": [
        "run",
        "--rm",
        "-i",
        "docker.io/atonoio/atono-mcp-server:1.1.1"
      ]
    }
  }
}
// mcp.json
{
  "mcpServers": {
    "io-atono-atono-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "docker.io/atonoio/atono-mcp-server:1.1.1"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Aug 26 +4
    • Stability: unverified → 0.27 functional
    • Security disclosure: fail → pass functional
  • 12 Aug 26 0
    • Security disclosure: unverified → fail functional
  • 11 Aug 26 +2
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 10 Aug 26 30

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 22 Aug 2026 · Analysed oci/docker.io/atonoio/atono-mcp-server:1.1.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published
MCP tools · 42 exposed · ~7,939 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
atono_add_story_to_epic ~223

Adds a story to an epic in your Atono workspace. The story is appended to the end of the epic's ordered story list. If the story is already assigned to the specified epic, no changes are made and a success message is returned (the call is idempotent). If the story is already assigned to a different epic, it is moved to the specified epic. Use `atono_list_epics` to find a valid epic handle before calling this tool. Args: story_handle (str): The handle of the story to add (e.g. `STORY-123`). A bare UUID is also accepted. epic_handle (str): The handle of the epic to add the story to (e.g. `EPIC-12`). A bare UUID is also accepted. Returns: str: A message confirming the story was added to the epic, or that it was already a member of the epic.

NameTypeReqDescription
epic_handlestringyes
story_handlestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_configuration ~27

Connects to your Atono workspace using the provided API key and returns basic configuration details.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

atono_create_attachment ~186

Adds the staged attachment to the specified Story or Bug. The attachment must be already uploaded to the staging area via the `atono_upload_file_url` tool call and a subsequent HTTP PUT request. Args: id_or_handle (str): Required. The id or handle of the backlog item (story or bug). Examples: `BUG-123`, `STORY-456`, `087e57c6-9183-47eb-a604-ef10ffbf450c` position (str): Optional. Parameter that controls where the file appears in the attachment list. `start` - file is added at the beginning of the list, `end` (default) - file is added at the end of the list. Returns: str: Message containing the id of a new attachment

NameTypeReqDescription
id_or_handlestringyes
position
NameTypeReqDescription
resultstringyes

No examples provided.

atono_create_bug ~332

Creates a new bug in your Atono workspace. Bugs are simpler than stories and contain a single HTML body with structured sections for summary, reproduction steps, expected behavior, and actual behavior. Args: title (str): The title of the bug. summary (str): A brief summary of the bug. reproduction_steps (list[str]): A list of steps to reproduce the bug. Each list item will become an <li> element. expected_behavior (str): What should happen when the feature works correctly. actual_behavior (str): What actually happens (the buggy behavior). team_id (Optional[str]): The ID of the team to assign the bug to (optional). Use the atono_list_teams tool to retrieve valid team IDs. If not provided, the bug will be assigned based on the workflow step's allowNewItems setting. assignee_id (Optional[str]): The ID of a user in the workspace (optional). If assignee_id is not provided, the bug will be unassigned. environment_ids (Optional[list[str]]): The IDs of the environments affected by the bug (optional). Use the `atono_list_environments` tool to retrieve valid environment IDs. Returns: str: The handle of the created bug (e.g., BUG-123).

NameTypeReqDescription
actual_behaviorstringyes
assignee_id
environment_ids
expected_behaviorstringyes
reproduction_stepsarrayyes
summarystringyes
team_id
titlestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_create_epic ~238

Creates a new epic in your Atono workspace. Args: title (str): The title of the epic. stories (Optional[list[dict[str, str]]]): A list of user story objects, each containing: content (str): The full user story statement in the format "As a [persona], I want to [action or feature] so that [benefit or reason]." persona (str): The role or user type the story is written for (e.g. "product owner", "developer"). Use the atono_list_story_personas tool to retrieve valid personas defined in your workspace. If no reasonable match exists, provide a new persona name and Atono will create it automatically. description (Optional[str]): Supplementary content, such as implementation notes or reference material, to include in the epic's content field. Each entry supports a limited subset of HTML formatting. Defaults to no content when omitted. Returns: str: The handle of the created epic (e.g., EPIC-123).

NameTypeReqDescription
description
storiesyes
titlestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_create_story ~563

Creates a new story in your Atono workspace. Story creation and design decision capture are two steps of the same authoring act. After creating a story, immediately call `atono_update_ai_context` with DESIGN to record the rationale, tradeoffs, and scoping choices made during authoring. This ensures all agents have the product intent when they pick up the work. Args: title (str): The title of the story. stories (list[dict[str, str]]): A list of user story objects, each containing: content (str): The full user story statement in the format "As a [persona], I want to [action or feature] so that [benefit or reason]." persona (str): The role or user type the story is written for (e.g. "product owner", "developer"). Use the atono_list_story_personas tool to retrieve valid personas defined in your workspace. If no reasonable match exists, provide a new persona name and Atono will create it automatically. acceptance_criteria (list[AtonoAcceptanceCriterion]): A list of acceptance criteria for the story. Each criterion has: description (string): The text of the criterion. A limited subset of HTML formatting is supported: <strong> (bold), <em> (italic), <u> (underline), <s> (strikethrough), <code> (inline code), and <a href="URL"> (external links). No other HTML tags are permitted. position (integer): The order of the criterion within the list. Lower values appear first. level (integer): The depth in the hierarchy. 0 = top-level criterion; 1 = child of the nearest preceding level-0 criterion; 2 = child of the nearest preceding level-1 criterion, and so on. For example, a criterion with position=0, level=0 is the first top-level item (AC #1), and a criterion with position=1, level=1 is its first child (AC #1a). team_id: The ID of the team to assign the story to (optional). Use the list_teams tool to retrieve valid team IDs. If not provided, the story is added to the Story Refinement. additional_content (Optional[lis…

NameTypeReqDescription
acceptance_criteriaarrayyes
additional_content
storiesarrayyes
team_id
titlestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_create_subtask ~211

Creates a subtask on a story or bug in your Atono workspace. The subtask is appended to the end of the subtask list. Args: id_or_handle (str): Required. The handle or unique ID of the parent story or bug (e.g. STORY-123 or BUG-456). title (str): Required. The title of the subtask. description (str): Optional. A description of the subtask. assignee_id (str): Optional. The ID of the user to assign the subtask to. Use atono_list_users to retrieve valid user IDs. workflow_step (str): Optional. The initial workflow step — one of To Do, In Progress, Done, Won't Do. Defaults to To Do. Returns: The UUID of the created subtask.

NameTypeReqDescription
assignee_id
description
id_or_handlestringyes
titlestringyes
workflow_step
NameTypeReqDescription
resultstringyes

No examples provided.

atono_delete_subtask ~73

Deletes a subtask from your Atono workspace. Args: uuid (str): Required. The unique identifier of the subtask to delete. Use atono_get_subtasks to retrieve subtask UUIDs. Returns: A message confirming the subtask was deleted.

NameTypeReqDescription
uuidstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_document_bug_fix ~48

Updates a bug’s description in your Atono workspace by adding details of the fix in plain English.

NameTypeReqDescription
fix_descriptionstringyes
id_or_handlestringyes
NameTypeReqDescription
attachmentsarrayyesThe attachments of the bug.
contentarrayyesA description of the bug, including a summary, reproduction steps, and expected and actual behavior. Each chunk must include a type and value. Supports DISPLAY_HTML (HTML-formatted content) or TEXT (…
createdAtyesThe date and time the bug was created.
cycleTimeModeyesIndicates whether the bug is marked as an OUTLIER (excluded) or remains NORMAL (included) in average cycle time calculations, reports, and staleness indicators.
deletedyesWhether the bug has been deleted.
doneAtyesThe date and time when the bug was completed.
environmentsyesThe list of affected environments.
handlestringyesA unique identifier for the bug, shown in the Atono application as the item ID (e.g., BUG-123).
idstringyesThe unique identifier (UUID) of the bug.
positionyesThe bug’s vertical order within its current workflow step, where 0 is the topmost item. Position is relative to the step and team backlog.
stalenessIndicatorSnoozeUntilyesThe date and time until which the staleness indicator is hidden for this bug in its current step and team backlog. Once the date passes, the indicator is shown again if the bug is still stale.
subtask_summaryyesA summary of the backlog item's subtasks. Contains total (total count), done (subtasks in Done step), and wont_do (subtasks in Won't Do step). All values are zero when the backlog item has no subtask…
teamyesThe team the bug is currently assigned to.
titlestringyesThe title of the bug.
updatedAtyesThe date and time the bug was last updated.
workflowStepyesThe ID of the workflow step the bug is currently in.

No examples provided.

atono_get_ai_context ~365

Fetches the latest version of an AI context resource for a backlog item (story or bug). AI context resources provide the shared knowledge agents need to make better decisions across the lifecycle of a backlog item, from authoring through development, bug fixing, and maintenance. Reading this before acting helps avoid redundant work, respect prior decisions, and build on existing knowledge. Always call this before calling `atono_update_ai_context`. Read the current content and synthesize it with your new findings into a single updated version - do not append or prepend. Atono retains prior versions automatically; they do not need to be preserved in the content itself. Supported resource types: - DESIGN: Product and scope decisions recorded during story authoring. Captures rationale, tradeoffs, and deferred items. Consult before and during implementation to understand why the story is scoped the way it is. - INVESTIGATION: Discoveries, research findings, and constraints identified during implementation. Consult before beginning or resuming any coding, debugging, or maintenance work. - SUMMARY: A record of implementation changes made by AI tools. Consult to understand what has already been built or modified before making further changes. Args: story_or_bug_id_or_handle (str): Required. The id or handle of the backlog item (story or bug). Examples: `BUG-123`, `STORY-456`, `087e57c6-9183-47eb-a604-ef10ffbf450c` kind (str): The resource type to fetch: DESIGN, INVESTIGATION, or SUMMARY. Returns: str: The latest version of the requested resource, or an empty string if none exists.

NameTypeReqDescription
kindstring
story_or_bug_id_or_handlestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_get_attachment ~50

Returns information about an attachment, including its size and content type. Most importantly returns an URL that can be used with a simple GET request to download the file.

NameTypeReqDescription
attachment_idstringyes
NameTypeReqDescription
contentTypestringyesThe detected content type of the attachment.
downloadUrlstringyesThe URL for the content of the attachment.
idstringyesThe unique identifier (UUID) of the attachment.
sizeintegeryesThe size of the attached file in bytes.

No examples provided.

atono_get_bug ~187

Retrieves the contents of a bug from your Atono workspace by its ID or handle. After retrieving a bug, call `atono_get_ai_context` for the same item to read its AI context resources. Reading INVESTIGATION and SUMMARY before acting ensures decisions are informed by prior research and implementation work on the bug. The response includes key details such as the bug’s title, summary, reproduction steps, expected and actual behavior, workflow step, and related team context. subtask_summary (dict): A summary of the bug’s subtasks, containing: total (int): The total number of subtasks. done (int): The number of subtasks in the Done workflow step. wont_do (int): The number of subtasks in the Won’t Do workflow step. Zero values are returned if the bug has no subtasks.

NameTypeReqDescription
id_or_handlestringyes
NameTypeReqDescription
attachmentsarrayyesThe attachments of the bug.
contentarrayyesA description of the bug, including a summary, reproduction steps, and expected and actual behavior. Each chunk must include a type and value. Supports DISPLAY_HTML (HTML-formatted content) or TEXT (…
createdAtyesThe date and time the bug was created.
cycleTimeModeyesIndicates whether the bug is marked as an OUTLIER (excluded) or remains NORMAL (included) in average cycle time calculations, reports, and staleness indicators.
deletedyesWhether the bug has been deleted.
doneAtyesThe date and time when the bug was completed.
environmentsyesThe list of affected environments.
handlestringyesA unique identifier for the bug, shown in the Atono application as the item ID (e.g., BUG-123).
idstringyesThe unique identifier (UUID) of the bug.
positionyesThe bug’s vertical order within its current workflow step, where 0 is the topmost item. Position is relative to the step and team backlog.
stalenessIndicatorSnoozeUntilyesThe date and time until which the staleness indicator is hidden for this bug in its current step and team backlog. Once the date passes, the indicator is shown again if the bug is still stale.
subtask_summaryyesA summary of the backlog item's subtasks. Contains total (total count), done (subtasks in Done step), and wont_do (subtasks in Won't Do step). All values are zero when the backlog item has no subtask…
teamyesThe team the bug is currently assigned to.
titlestringyesThe title of the bug.
updatedAtyesThe date and time the bug was last updated.
workflowStepyesThe ID of the workflow step the bug is currently in.

No examples provided.

atono_get_epic ~273

Retrieves an epic from your Atono workspace by its ID or handle. An epic is a container that groups related stories under a shared goal. This tool returns the epic's title and description, the user story statements that define it, and a lean summary of its constituent stories in their defined order. Args: id_or_handle (str): The unique ID or handle of the epic. Examples: `EPIC-12`, `epic5678-1234-5678-abcd-ef0123456789` Returns: AtonoEpic: The epic, containing: title (str): The epic title. description (Optional[str]): The epic's supplementary description content, or None when absent. user_stories (list): The epic's user story statements, each with content and an optional persona. stories (list): The constituent stories in their defined order (empty when there are none). Each story has: handle (str): The story's handle (e.g. STORY-123). title (str): The story title. workflow_step (Optional[str]): The name of the story's current workflow step. order (int): The story's position within the epic; lower values appear first.

NameTypeReqDescription
id_or_handlestringyes
NameTypeReqDescription
descriptionyesThe epic's supplementary description content.
handlestringyesA unique identifier shown in Atono as the item ID (e.g. EPIC-12).
idstringyesThe unique identifier (UUID) of the epic.
storiesarrayyesConstituent stories in their defined order; empty if none.
titlestringyesThe epic title.
userStoriesarrayyesThe epic's user story statements.

No examples provided.

atono_get_glossary ~22

Returns the entire product glossary in the TSV format

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultstringyes

No examples provided.

atono_get_story ~392

Retrieves the contents of a story from your Atono workspace by its ID or handle. After retrieving a story, call `atono_get_ai_context` for the same item to read its AI context resources. Reading DESIGN, INVESTIGATION, and SUMMARY before acting ensures decisions are informed by the history of authoring and implementation work on the item. Acceptance criteria are returned as an array of objects. Each object has: description (string): The text of the criterion. May contain a limited subset of HTML formatting: <strong> (bold), <em> (italic), <u> (underline), <s> (strikethrough), <code> (inline code), and <a href="URL"> (external links). No other HTML tags are permitted. position (integer): The order of the criterion within the list. Lower values appear first. level (integer): The depth in the hierarchy. 0 = top-level criterion; 1 = child of the nearest preceding level-0 criterion; 2 = child of the nearest preceding level-1 criterion, and so on. For example, a criterion with position=0, level=0 is the first top-level item (AC #1), and a criterion with position=1, level=1 is its first child (AC #1a). The fullText field contains a pre-rendered plain text version of the story including an indented, numbered representation of the AC hierarchy suitable for quick reading. subtask_summary (dict): A summary of the story's subtasks, containing: total (int): The total number of subtasks. done (int): The number of subtasks in the Done workflow step. wont_do (int): The number of subtasks in the Won't Do workflow step. Zero values are returned if the story has no subtasks.

NameTypeReqDescription
id_or_handlestringyes
NameTypeReqDescription
acceptanceCriteriaarrayyesThe acceptance criteria of the story.
additionalContentarrayyesOptional context shown below the acceptance criteria. Often used for background info, technical notes, or decisions. Supports DISPLAY_HTML and TEXT content chunks.
attachmentsarrayyesThe attachments of the story.
contentarrayyesDisplayed at the top of the story and represents the user story statement ('As a... I want... so that...'). The array may include TEXT, PERSONA, and DISPLAY_HTML chunks. Use DISPLAY_HTML when you wan…
createdAtyesThe date and time the story was created.
cycleTimeModeyesIndicates whether the story is marked as an OUTLIER (excluded) or remains NORMAL (included) in average cycle time calculations, reports, and staleness indicators.
deletedyesWhether the story has been deleted.
doneAtyesThe date and time when the story was completed.
fullTextyesThe story’s main content and all acceptance criteria as a single formatted text block (may include minimal HTML). Should be used by AI agents to help with understanding the relationships between diff…
handlestringyesA unique identifier for the story, shown in the Atono application as the item ID (e.g., STORY-123).
idstringyesThe unique identifier (UUID) of the story.
positionyesThe story’s vertical order within its current workflow step, where 0 is the topmost item. Position is relative to the step and team backlog.
stalenessIndicatorSnoozeUntilyesThe date and time until which the staleness indicator is hidden for this story in its current step and team backlog. Once the date passes, the indicator is shown again if the story is still stale.
subtask_summaryyesA summary of the backlog item's subtasks. Contains total (total count), done (subtasks in Done step), and wont_do (subtasks in Won't Do step). All values are zero when the backlog item has no subtask…
teamyesThe team the story is currently assigned to.
titlestringyesThe title of the story.
updatedAtyesThe date and time the story was last updated.
workflowStepyesThe ID of the workflow step the story is currently in.

No examples provided.

atono_get_subtasks ~213

Retrieves the subtasks for a story or bug in your Atono workspace. Args: id_or_handle (str): Required. The handle or unique ID of the story or bug (e.g. STORY-123 or BUG-456). Returns: A list of subtasks, each containing: uuid (str): The unique identifier of the subtask. Use this to reference the subtask in atono_update_subtask or atono_delete_subtask. title (str): The subtask title. description (str): The subtask description, if set. assignee (str): The UUID of the assigned user, if any. workflow_step (str): The current workflow step — one of TODO, IN_PROGRESS, DONE, WONT_DO. order (int): The position of the subtask within the subtask list. An empty list is returned if the backlog item has no subtasks.

NameTypeReqDescription
id_or_handlestringyes
NameTypeReqDescription
resultarrayyes

No examples provided.

atono_get_team_workflow ~35

Retrieves the workflow steps defined for a specific team in your Atono workspace.

NameTypeReqDescription
team_idstringyes
NameTypeReqDescription
resultarrayyes

No examples provided.

atono_link_bugs_or_stories ~191

Links two backlog items in your Atono workspace. Either item may be a story or a bug. Args: item_handle_or_id_1 (str): The unique ID or handle of the story or bug. Example ID: `087e57c6-9183-47eb-a604-ef10ffbf450c`; handle: `STORY-123`, `BUG-456` item_handle_or_id_2 (str): The unique ID or handle of another story or bug. Example ID: `087e57c6-9183-47eb-a604-ef10ffbf450c`; handle: `STORY-123`, `BUG-456` Returns: str: A message confirming the update was made.

NameTypeReqDescription
item_handle_or_id_1stringyes
item_handle_or_id_2stringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_list_environments ~35

Retrieves the list of environments in your Atono workspace. Returns: list[AtonoEnvironment]: A list of environments.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultarrayyes

No examples provided.

atono_list_epics ~205

Retrieves the list of epics in your Atono workspace. Use this to discover the epics in the workspace and resolve an epic's handle (e.g., EPIC-123) before calling another tool that needs it (such as fetching epic details or associating a story with an epic). Results are ordered by most-recently-updated first. Args: keyword (Optional[str]): Optional case-insensitive substring used to filter epics by title. When provided, only epics whose title contains the substring are returned. When omitted, all epics are returned. Returns: list[AtonoEpicSummary]: A list of epics, each containing the epic's id, handle, and title. If the result set was truncated or a page fetch failed, returns a dict with a "data" key containing the partial list and a "warning" key describing what happened.

NameTypeReqDescription
keyword
NameTypeReqDescription
resultyes

No examples provided.

atono_list_story_personas ~292

Retrieves the list of story personas in your Atono workspace. Use this tool to get valid persona names before creating or updating user story content. Persona names returned by this tool can be used directly in the persona field when creating or updating stories. Prioritize personas in this list when creating or updating stories. Only use a new persona if no reasonable match exists for the persona you need. If the user requests a persona that does not exist in this list or if the persona to use is not clear, ask the user to specify which persona to use. You do not need to create a new persona first — simply provide the new persona name directly in the user story text and Atono will create it automatically. If the user explicitly requests to create a new persona, go ahead and use that persona in the story, without asking for confirmation. If the name of a new persona is misspelled, correct it and ask the user to confirm the correction. If the persona name is corrected, make sure to update every instance of the persona name in the story title, description, and acceptance criteria. Returns: list[AtonoStoryPersona]: A list of personas. If the result set was truncated or a page fetch failed, returns a dict with a "data" key containing the partial list and a "warning" key describing what happened.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultarrayyes

No examples provided.

atono_list_teams ~73

Retrieves the list of teams in your Atono workspace. Returns: list[AtonoTeam]: A list of teams. If the result set was truncated or a page fetch failed, returns a dict with a "data" key containing the partial list and a "warning" key describing what happened.

Input schema present but exposes no named parameters.

NameTypeReqDescription
resultyes

No examples provided.

atono_list_timebox_items ~218

Retrieves the list of stories and bugs in a timebox. Args: timebox (str): The timebox identifier. Can be either a UUID or a search string. If a non-UUID string is provided, the function will search for matching timeboxes and use the unique match, or raise an error if multiple matches are found. include_stories (bool): Whether to include stories in the result. Defaults to True. include_bugs (bool): Whether to include bugs in the result. Defaults to True. Returns: list[AtonoBacklogItem]: A list containing stories and/or bugs that belong to the specified timebox. If the result set was truncated or a page fetch failed for either stories or bugs, returns a dict with a "data" key containing the partial list and a "warning" key describing what happened.

NameTypeReqDescription
include_bugsboolean
include_storiesboolean
timeboxstringyes
NameTypeReqDescription
resultyes

No examples provided.

atono_list_timeboxes ~132

Retrieves the list of timeboxes in your Atono workspace. Args: only_active (bool): apply filter to only return active timeboxes (optional, default false). Active timeboxes are those where the current date is on or before the endDate (i.e. in progress or future). Returns: list[AtonoTimebox]: A list of timeboxes. If the result set was truncated or a page fetch failed, returns a dict with a "data" key containing the partial list and a "warning" key describing what happened.

NameTypeReqDescription
only_activeboolean
NameTypeReqDescription
resultyes

No examples provided.

atono_list_users ~128

Retrieves a list of the users in your Atono workspace. If a team_id is provided, retrieves the members of the specified team. Returns: list[dict]: A list of users with id, fullName, and email. If the result set was truncated or a page fetch failed, returns a dict with a "data" key containing the partial list and a "warning" key describing what happened. The warning is only possible when no team_id is provided, as the team members endpoint is not paginated.

NameTypeReqDescription
team_id
NameTypeReqDescription
resultyes

No examples provided.

atono_remove_story_from_epic ~163

Removes a story from an epic in your Atono workspace. If the story is not currently assigned to the specified epic, an error is returned. Use `atono_list_epics` to find a valid epic handle before calling this tool. Args: story_handle (str): The handle of the story to remove (e.g. `STORY-123`). A bare UUID is also accepted. epic_handle (str): The handle of the epic to remove the story from (e.g. `EPIC-12`). A bare UUID is also accepted. Returns: str: A message confirming the story was removed from the epic.

NameTypeReqDescription
epic_handlestringyes
story_handlestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_ai_context ~375

Creates or updates an AI context resource for a backlog item (story or bug). These resources provide the shared knowledge agents need to make better decisions across the lifecycle of a backlog item, from authoring through development, bug fixing, and maintenance. Keeping them current improves the quality of future AI-assisted work on the item. Always call `atono_get_ai_context` first. Read the current content, then write a synthesized version - do not append or prepend. Atono retains prior versions automatically; the content should reflect current state, not a running log. The synthesis approach varies by resource type: - DESIGN: Record product and scope decisions made during story authoring. Replace or update entries when decisions are revised or superseded. Written by authoring agents; consumed by all agents before and during implementation. - INVESTIGATION: Maintain current discoveries, research findings, and constraints. Remove anything superseded or proven incorrect. - SUMMARY: Maintain a current record of implementation changes. Preserve all entries unless a change has been explicitly reverted. Synthesis should organise and deduplicate — not compress or drop detail. The version history handles audit trail needs. Args: story_or_bug_id_or_handle (str): Required. The id or handle of the backlog item (story or bug). Examples: `BUG-123`, `STORY-456`, `087e57c6-9183-47eb-a604-ef10ffbf450c` content (str): The synthesized content of the resource. kind (str): The resource type to create or update: DESIGN, INVESTIGATION, or SUMMARY. Returns: str: The unique id of the created or updated resource.

NameTypeReqDescription
contentstringyes
kindstring
story_or_bug_id_or_handlestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_bug ~260

Updates an existing bug in your Atono workspace. It first fetches the current bug details, then applies the provided updates. If any optional field is provided, it will replace the corresponding field of the bug. Args: bug_id (str): The unique ID or handle of the bug to update. title (Optional[str]): The new title of the bug. summary (Optional[str]): A brief summary of the bug. reproduction_steps (Optional[list[str]]): A list of steps to reproduce the bug. expected_behavior (Optional[str]): What should happen when the feature works correctly. actual_behavior (Optional[str]): What actually happens (the buggy behavior). team_id (Optional[str]): The ID of the team to assign the bug to. Accepted values: string or null. Pass null to unassign; omit to leave unchanged. environment_ids (Optional[list[str]]): The IDs of the environments affected by the bug. Returns: str: A message confirming the update.

NameTypeReqDescription
actual_behavior
bug_idstringyes
environment_ids
expected_behavior
reproduction_steps
summary
team_id
title
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_bug_assignee ~115

Updates the assignee of a bug in your Atono workspace. Args: bug_id (str): The unique ID or handle of the bug. Examples: `BUG-123`, `087e57c6-9183-47eb-a604-ef10ffbf450c` user_id (str): The ID of a user in the workspace. If user_id is not provided, the bug will be unassigned.

NameTypeReqDescription
bug_idstringyes
user_id
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_bug_step ~123

Updates the workflow step of a bug in your Atono workspace. Args: bug_id (str): The unique ID or handle of the bug. Handles will be resolved to IDs. Example UUID: `087e57c6-9183-47eb-a604-ef10ffbf450c` step_id (str): The ID of a valid workflow step defined for the team the bug is currently assigned to. Returns: str: A message confirming success.

NameTypeReqDescription
bug_idstringyes
step_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_epic_description ~142

Updates the description of an epic in your Atono workspace. The provided value replaces the existing description in full. Args: id_or_handle (str): Required. The unique ID or handle of the epic (e.g. EPIC-12). Use atono_list_epics to find valid epic handles. description (str): Required. The new description for the epic. Must be a non-empty string. Up to 100k characters. Replaces the existing description in full. Returns: str: A message confirming the update was made.

NameTypeReqDescription
descriptionstringyes
id_or_handlestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_epic_title ~126

Updates the title of an epic in your Atono workspace. Epic titles must be unique. Args: epic_handle (str): Required. The handle of the epic to update (e.g. EPIC-12). Use atono_list_epics to find valid epic handles. title (str): Required. The new title for the epic. Must be unique amongst epics, up to 200 characters. Returns: str: A message confirming the update was made.

NameTypeReqDescription
epic_handlestringyes
titlestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_epic_user_stories ~225

Replaces all user story statements on an epic in your Atono workspace. Args: epic_handle (str): Required. The handle of the epic to update (e.g. EPIC-12). Use atono_list_epics to find valid epic handles. stories (list[dict[str, str]]): Required. The complete list of user story objects to set on the epic. Replaces all existing user story statements. Each object must contain: content (str): The full user story statement in the format "As a [persona], I want to [action or feature] so that [benefit or reason]." persona (str): The role or user type the story is written for. Use atono_list_story_personas to retrieve valid personas. If no reasonable match exists, provide a new persona name and Atono will create it automatically. Returns: str: A message confirming the update was made.

NameTypeReqDescription
epic_handlestringyes
storiesarrayyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_story_ac ~371

Replaces all acceptance criteria of a story in your Atono workspace. Always call `atono_get_story` first to retrieve existing AC IDs before updating. Providing known IDs preserves content associated with each criterion (comments, attachments, usage metrics). Omitting an ID causes a new criterion to be created, losing any associated content. If AC changes reflect meaningful scope decisions, update DESIGN via `atono_update_ai_context` to keep product intent in sync. Args: story_id (str): The handle or unique ID of the story (UUID). Examples: `STORY-456`, `087e57c6-9183-47eb-a604-ef10ffbf450c` acceptance_criteria (List[AtonoAcceptanceCriterion]): The complete list of acceptance criteria to set on the story. Each criterion has: - id (str): The unique identifier (UUID) of the acceptance criterion. Optional; if not provided, a new UUID will be generated. If an ID is known, it is best to provide it to preserve content associated with an AC (Comments, Attachments, Usage Metrics, etc). - description: The text of the criterion. A limited subset of HTML formatting is supported: <strong> (bold), <em> (italic), <u> (underline), <s> (strikethrough), <code> (inline code), and <a href="URL"> (external links). No other HTML tags are permitted. - position: The order of the criterion within the list (lower values appear first) - level: The depth in the hierarchy (0 = top-level, 1 = child of nearest level-0, etc.)

NameTypeReqDescription
acceptance_criteriaarrayyes
story_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_story_additional_content ~186

Replaces the additional content of a story in your Atono workspace. Additional content appears below the acceptance criteria and is typically used for background info, technical notes, decisions, or context for the team. Args: story_id (str): The unique ID or handle of the story. Example ID: `087e57c6-9183-47eb-a604-ef10ffbf450c`; handle: `STORY-123` additional_content (list[str]): Required. A list of supplementary content entries, such as implementation notes or reference material, to include in the story's additional content field. Each entry supports a limited subset of HTML formatting. Pass an empty list to clear the additional content. Returns: str: A message confirming the update was made.

NameTypeReqDescription
additional_contentarrayyes
story_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_story_assignee ~116

Updates the assignee of a story in your Atono workspace. Args: story_id (str): The unique ID or handle of the story. Examples: `STORY-456`, `087e57c6-9183-47eb-a604-ef10ffbf450c` user_id (str): The ID of a user in the workspace. If user_id is not provided, the story will be unassigned.

NameTypeReqDescription
story_idstringyes
user_id
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_story_content ~323

Updates the user story content of a story in your Atono workspace. Important: This tool updates the story content area only. It does not modify acceptance criteria, additional content sections, or any other fields. The content must be provided as an array of user story objects, each following the standard format: "As a [persona], I want to [action or feature] so that [benefit or reason]." Most stories have a single user story, but multiple are supported. If story content changes reflect a meaningful shift in scope or persona, consider updating DESIGN via `atono_update_ai_context` to keep product intent in sync. Args: story_id (str): The handle or unique ID of the story (UUID). Examples: `STORY-456`, `087e57c6-9183-47eb-a604-ef10ffbf450c` stories (list[dict[str, str]]): A list of user story objects, each containing: content (str): The full user story statement in the format "As a [persona], I want to [action or feature] so that [benefit or reason]." persona (str): The role or user type the story is written for (e.g. "product owner", "developer"). Use the atono_list_story_personas tool to retrieve valid personas defined in your workspace. If no reasonable match exists, provide a new persona name and Atono will create it automatically.

NameTypeReqDescription
storiesarrayyes
story_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_story_step ~116

Updates the workflow step of a story in your Atono workspace. Args: story_id (str): The unique ID or handle of the story. Example ID: `087e57c6-9183-47eb-a604-ef10ffbf450c` step_id (str): The ID of a valid workflow step defined for the team the story is currently assigned to. Returns: str: A message confirming success.

NameTypeReqDescription
step_idstringyes
story_idstringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_story_team ~148

Updates the team assignment of a story in your Atono workspace. Args: story_id (str): The unique ID or handle of the story. Example ID: `087e57c6-9183-47eb-a604-ef10ffbf450c`; handle: `STORY-123` team_id (Optional[str]): Optional. The ID of the team to assign the story to. Use atono_list_teams to retrieve valid team IDs. If not provided, the story will be unassigned from its current team. Returns: str: A message confirming the update was made.

NameTypeReqDescription
story_idstringyes
team_idyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_story_title ~145

Updates the title of a story in your Atono workspace. Important: This tool updates the title only. It does not modify the story content, acceptance criteria, additional content, or any other fields. Args: story_id (str): The unique ID or handle of the story. Example ID: `087e57c6-9183-47eb-a604-ef10ffbf450c`; handle: `STORY-123` title (str): Required. The new title to set on the story. Returns: str: A message confirming the update was made.

NameTypeReqDescription
story_idstringyes
titlestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

atono_update_subtask ~193

Updates a subtask in your Atono workspace. At least one optional field must be provided. Args: uuid (str): Required. The unique identifier of the subtask. Use atono_get_subtasks to retrieve subtask UUIDs. title (str): Optional. The new title for the subtask. description (str): Optional. The new description for the subtask. assignee_id (str): Optional. The ID of the user to assign the subtask to. Use atono_list_users to retrieve valid user IDs. workflow_step (str): Optional. The new workflow step — one of To Do, In Progress, Done, Won't Do. Returns: A message confirming the update was made.

NameTypeReqDescription
assignee_id
description
title
uuidstringyes
workflow_step
NameTypeReqDescription
resultstringyes

No examples provided.

atono_upload_file_url ~100

Retrieves a safe URL to use for the upload of a file. The caller is expected to perform a PUT HTTP request with the following HTTP headers: x-amz-storage-class: INTELLIGENT_TIERING x-amz-tagging: upload=start The uploaded file will be held in the temporary staging area until it is attached to a Bug or Story with `atono_create_attachment` tool call.

NameTypeReqDescription
filenamestringyes
NameTypeReqDescription
resultstringyes

No examples provided.

Common questions

What is the Atono MCP server?

Atono is an MCP server listed in the public MCP registry as io.atono/atono-mcp-server. Give your AI coding tools your team's product context: stories, bugs, epics, and glossary. This page covers its container image (docker.io/atonoio/atono-mcp-server:1.1.1).

Is the Atono MCP server safe to use?

Atono scores 38 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Atono MCP server expose?

Atono exposes 42 tools: atono_update_ai_context, atono_get_ai_context, atono_upload_file_url, atono_create_attachment, atono_get_attachment, and 37 more. Their descriptions and schemas cost roughly 7,939 tokens of context every time the server is loaded.

Is the Atono MCP server still maintained?

Atono is still listed as active in the MCP registry. We last reached this channel on 22 August 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.