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.
Available components
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
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 14 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
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.
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
claude mcp add io-atono-atono-mcp-server -- docker run --rm -i docker.io/atonoio/atono-mcp-server:1.1.1
{
"mcpServers": {
"io-atono-atono-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"docker.io/atonoio/atono-mcp-server:1.1.1"
]
}
}
} {
"servers": {
"io-atono-atono-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"docker.io/atonoio/atono-mcp-server:1.1.1"
]
}
}
} codex mcp add io-atono-atono-mcp-server -- docker run --rm -i docker.io/atonoio/atono-mcp-server:1.1.1
{
"$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
}
}
} mcp_servers:
io-atono-atono-mcp-server:
command: "docker"
args: ["run", "--rm", "-i", "docker.io/atonoio/atono-mcp-server:1.1.1"] {
"McpServers": {
"io-atono-atono-mcp-server": {
"Transport": "stdio",
"Command": "docker",
"Arguments": [
"run",
"--rm",
"-i",
"docker.io/atonoio/atono-mcp-server:1.1.1"
]
}
}
} {
"mcpServers": {
"io-atono-atono-mcp-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"docker.io/atonoio/atono-mcp-server:1.1.1"
]
}
}
} 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.
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 |
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.
atono_add_story_to_epic 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.
| Name | Type | Req | Description |
|---|---|---|---|
| epic_handle | string | yes | – |
| story_handle | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_configuration Atono: Check 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.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_create_attachment Atono: Create an attachment to a Story or Bug ~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
| Name | Type | Req | Description |
|---|---|---|---|
| id_or_handle | string | yes | – |
| position | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_create_bug 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).
| Name | Type | Req | Description |
|---|---|---|---|
| actual_behavior | string | yes | – |
| assignee_id | – | – | – |
| environment_ids | – | – | – |
| expected_behavior | string | yes | – |
| reproduction_steps | array | yes | – |
| summary | string | yes | – |
| team_id | – | – | – |
| title | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_create_epic 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).
| Name | Type | Req | Description |
|---|---|---|---|
| description | – | – | – |
| stories | – | yes | – |
| title | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_create_story 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…
| Name | Type | Req | Description |
|---|---|---|---|
| acceptance_criteria | array | yes | – |
| additional_content | – | – | – |
| stories | array | yes | – |
| team_id | – | – | – |
| title | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_create_subtask 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.
| Name | Type | Req | Description |
|---|---|---|---|
| assignee_id | – | – | – |
| description | – | – | – |
| id_or_handle | string | yes | – |
| title | string | yes | – |
| workflow_step | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_delete_subtask 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.
| Name | Type | Req | Description |
|---|---|---|---|
| uuid | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_document_bug_fix Atono: Document Bug Fix Details ~48
Updates a bug’s description in your Atono workspace by adding details of the fix in plain English.
| Name | Type | Req | Description |
|---|---|---|---|
| fix_description | string | yes | – |
| id_or_handle | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | yes | The attachments of the bug. |
| content | array | yes | A 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 (… |
| createdAt | – | yes | The date and time the bug was created. |
| cycleTimeMode | – | yes | Indicates whether the bug is marked as an OUTLIER (excluded) or remains NORMAL (included) in average cycle time calculations, reports, and staleness indicators. |
| deleted | – | yes | Whether the bug has been deleted. |
| doneAt | – | yes | The date and time when the bug was completed. |
| environments | – | yes | The list of affected environments. |
| handle | string | yes | A unique identifier for the bug, shown in the Atono application as the item ID (e.g., BUG-123). |
| id | string | yes | The unique identifier (UUID) of the bug. |
| position | – | yes | The bug’s vertical order within its current workflow step, where 0 is the topmost item. Position is relative to the step and team backlog. |
| stalenessIndicatorSnoozeUntil | – | yes | The 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_summary | – | yes | A 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… |
| team | – | yes | The team the bug is currently assigned to. |
| title | string | yes | The title of the bug. |
| updatedAt | – | yes | The date and time the bug was last updated. |
| workflowStep | – | yes | The ID of the workflow step the bug is currently in. |
No examples provided.
atono_get_ai_context 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.
| Name | Type | Req | Description |
|---|---|---|---|
| kind | string | – | – |
| story_or_bug_id_or_handle | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_get_attachment 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.
| Name | Type | Req | Description |
|---|---|---|---|
| attachment_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| contentType | string | yes | The detected content type of the attachment. |
| downloadUrl | string | yes | The URL for the content of the attachment. |
| id | string | yes | The unique identifier (UUID) of the attachment. |
| size | integer | yes | The size of the attached file in bytes. |
No examples provided.
atono_get_bug 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id_or_handle | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| attachments | array | yes | The attachments of the bug. |
| content | array | yes | A 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 (… |
| createdAt | – | yes | The date and time the bug was created. |
| cycleTimeMode | – | yes | Indicates whether the bug is marked as an OUTLIER (excluded) or remains NORMAL (included) in average cycle time calculations, reports, and staleness indicators. |
| deleted | – | yes | Whether the bug has been deleted. |
| doneAt | – | yes | The date and time when the bug was completed. |
| environments | – | yes | The list of affected environments. |
| handle | string | yes | A unique identifier for the bug, shown in the Atono application as the item ID (e.g., BUG-123). |
| id | string | yes | The unique identifier (UUID) of the bug. |
| position | – | yes | The bug’s vertical order within its current workflow step, where 0 is the topmost item. Position is relative to the step and team backlog. |
| stalenessIndicatorSnoozeUntil | – | yes | The 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_summary | – | yes | A 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… |
| team | – | yes | The team the bug is currently assigned to. |
| title | string | yes | The title of the bug. |
| updatedAt | – | yes | The date and time the bug was last updated. |
| workflowStep | – | yes | The ID of the workflow step the bug is currently in. |
No examples provided.
atono_get_epic 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id_or_handle | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| description | – | yes | The epic's supplementary description content. |
| handle | string | yes | A unique identifier shown in Atono as the item ID (e.g. EPIC-12). |
| id | string | yes | The unique identifier (UUID) of the epic. |
| stories | array | yes | Constituent stories in their defined order; empty if none. |
| title | string | yes | The epic title. |
| userStories | array | yes | The epic's user story statements. |
No examples provided.
atono_get_glossary Atono: Get Glossary ~22
Returns the entire product glossary in the TSV format
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_get_story 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id_or_handle | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| acceptanceCriteria | array | yes | The acceptance criteria of the story. |
| additionalContent | array | yes | Optional context shown below the acceptance criteria. Often used for background info, technical notes, or decisions. Supports DISPLAY_HTML and TEXT content chunks. |
| attachments | array | yes | The attachments of the story. |
| content | array | yes | Displayed 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… |
| createdAt | – | yes | The date and time the story was created. |
| cycleTimeMode | – | yes | Indicates whether the story is marked as an OUTLIER (excluded) or remains NORMAL (included) in average cycle time calculations, reports, and staleness indicators. |
| deleted | – | yes | Whether the story has been deleted. |
| doneAt | – | yes | The date and time when the story was completed. |
| fullText | – | yes | The 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… |
| handle | string | yes | A unique identifier for the story, shown in the Atono application as the item ID (e.g., STORY-123). |
| id | string | yes | The unique identifier (UUID) of the story. |
| position | – | yes | The story’s vertical order within its current workflow step, where 0 is the topmost item. Position is relative to the step and team backlog. |
| stalenessIndicatorSnoozeUntil | – | yes | The 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_summary | – | yes | A 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… |
| team | – | yes | The team the story is currently assigned to. |
| title | string | yes | The title of the story. |
| updatedAt | – | yes | The date and time the story was last updated. |
| workflowStep | – | yes | The ID of the workflow step the story is currently in. |
No examples provided.
atono_get_subtasks 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.
| Name | Type | Req | Description |
|---|---|---|---|
| id_or_handle | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
atono_get_team_workflow Atono: Get Team's Workflow ~35
Retrieves the workflow steps defined for a specific team in your Atono workspace.
| Name | Type | Req | Description |
|---|---|---|---|
| team_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
atono_link_bugs_or_stories Atono: Links two backlog items in your Atono workspace. ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| item_handle_or_id_1 | string | yes | – |
| item_handle_or_id_2 | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_list_environments 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.
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
atono_list_epics 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.
| Name | Type | Req | Description |
|---|---|---|---|
| keyword | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
atono_list_story_personas 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.
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
atono_list_teams 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.
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
atono_list_timebox_items Atono: List Stories and Bugs in a Timebox ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| include_bugs | boolean | – | – |
| include_stories | boolean | – | – |
| timebox | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
atono_list_timeboxes 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.
| Name | Type | Req | Description |
|---|---|---|---|
| only_active | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
atono_list_users 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.
| Name | Type | Req | Description |
|---|---|---|---|
| team_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
atono_remove_story_from_epic 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.
| Name | Type | Req | Description |
|---|---|---|---|
| epic_handle | string | yes | – |
| story_handle | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_ai_context 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.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | – |
| kind | string | – | – |
| story_or_bug_id_or_handle | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_bug 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.
| Name | Type | Req | Description |
|---|---|---|---|
| actual_behavior | – | – | – |
| bug_id | string | yes | – |
| environment_ids | – | – | – |
| expected_behavior | – | – | – |
| reproduction_steps | – | – | – |
| summary | – | – | – |
| team_id | – | – | – |
| title | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_bug_assignee Atono: Update Bug's 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.
| Name | Type | Req | Description |
|---|---|---|---|
| bug_id | string | yes | – |
| user_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_bug_step Atono: Update Bug's Workflow 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.
| Name | Type | Req | Description |
|---|---|---|---|
| bug_id | string | yes | – |
| step_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_epic_description 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.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | yes | – |
| id_or_handle | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_epic_title 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.
| Name | Type | Req | Description |
|---|---|---|---|
| epic_handle | string | yes | – |
| title | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_epic_user_stories 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.
| Name | Type | Req | Description |
|---|---|---|---|
| epic_handle | string | yes | – |
| stories | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_story_ac Atono: Update Story's Acceptance Criterion ~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.)
| Name | Type | Req | Description |
|---|---|---|---|
| acceptance_criteria | array | yes | – |
| story_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_story_additional_content Atono: Update Story's 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.
| Name | Type | Req | Description |
|---|---|---|---|
| additional_content | array | yes | – |
| story_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_story_assignee Atono: Update Story's 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.
| Name | Type | Req | Description |
|---|---|---|---|
| story_id | string | yes | – |
| user_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_story_content Atono: Update Story's 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.
| Name | Type | Req | Description |
|---|---|---|---|
| stories | array | yes | – |
| story_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_story_step Atono: Update Story's Workflow 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.
| Name | Type | Req | Description |
|---|---|---|---|
| step_id | string | yes | – |
| story_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_story_team Atono: Updates the team assignment of a story in your Atono workspace. ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| story_id | string | yes | – |
| team_id | – | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_story_title Atono: Update Story's 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.
| Name | Type | Req | Description |
|---|---|---|---|
| story_id | string | yes | – |
| title | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_update_subtask 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.
| Name | Type | Req | Description |
|---|---|---|---|
| assignee_id | – | – | – |
| description | – | – | – |
| title | – | – | – |
| uuid | string | yes | – |
| workflow_step | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
atono_upload_file_url Atono: Get URL for Attachment Upload ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| filename | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
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.