Stride — AI software delivery platform
Server Details
Your team's stories, acceptance criteria, designs and docs, for coding agents. Sign in with OAuth.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Newlight-Solutions/stride-plugins
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- Stride AI
TDQS
Scored across 131 tools
Despite the large surface, verbs plus resource nouns are sharply differentiated by descriptions: get_story vs get_story_context vs search_stories vs list_stories, and update_story vs update_story_status vs bulk_update_stories vs assign_story are explicitly cross-referenced. A few boundaries blur, notably link_design/link_diagram vs create_cross_link (has_design/has_diagram) and delete_document (which is actually an archive), but the descriptions warn about these cases.
The dominant pattern is consistent snake_case verb_noun (list_, get_, create_, update_, delete_, restore_, generate_, link_, record_). A handful of outliers (whoami, next_task, end_session, start_story_work, rerun_failed_tests, append_to_document) break the pattern but remain clear in intent.
131 tools is far beyond a reasonable agent-facing surface, even given the genuinely broad ALM scope (stories, sprints, testing, quality gates, docs, diagrams, designs, BPMN, legacy modernization). The sheer volume makes selection and discovery costly; it warrants consolidation or modular sub-servers.
Coverage is exceptional: full create/read/list/update/delete/restore lifecycles for stories, epics, sprints, defects, releases, documents, test cases/suites/runs, plus execution (record_test_results, rerun_failed_tests), quality gates, cross-links, and generation workflows. There are essentially no dead ends for the stated domain.
Publisher details
- Operator
- Newlight Solutions
- Operator website
- https://www.stride.page
- Vendor relationship
- First-party
- Documentation
- https://www.stride.page/integrations/claude-code
- Trust center
- https://www.stride.page/legal/security
- Restrictions
- Needs a Stride workspace on a paid plan. Each app you sign in uses one of the plan's API or agent keys (Starter includes one).
Available Tools
131 toolsstride.add_project_memberAdd project memberADestructiveIdempotentInspect
Give a workspace member access to a Stride project at a role (OWNER, EDITOR, or VIEWER; defaults to EDITOR). Projects are invite-only by default, so this is what lets someone open the project, be assigned work in it, and be @-mentioned there. Idempotent — re-running with a different role changes the role.
Inputs: member (required), projectId (required), role.
stride.append_to_documentAppend to documentAInspect
Append markdown to the END of an existing Library document, keeping its current content. Required: documentId, markdown. Use this to add a section (e.g. action items, a new dated entry) without rewriting the whole doc.
Inputs: markdown (required), documentId (required).
stride.assign_storyAssign storyADestructiveIdempotentInspect
Assign or unassign a story (identify it by ticket key like "ORB-526" or UUID). Pass assigneeId (a workspace member UUID) to assign, or assigneeId=null to clear the assignee. Conflict-guarded — rejected if a human edited the story after your last read (pass force:true, only with the human's explicit approval, to overwrite it). For broader field edits use stride.update_story.
Inputs: storyId (required), assigneeId (required), force.
stride.bulk_update_storiesBulk update storiesADestructiveIdempotentInspect
Update up to 50 stories in one call. Supports status, priority, assigneeId, sprintId, epicId, storyPoints, dueDate (all single-value), and labels with { mode: "add"|"remove"|"replace", labels: string[] }. status accepts a category (TODO/IN_PROGRESS/IN_REVIEW/DONE — works across projects) OR a board column name from stride.list_workflow_stages (column names are project-specific, so a name requires the batch to target ONE project). Conflict-checked per row; human-edited rows are skipped and recorded in SyncConflict — pass force:true (only with the human's explicit approval) to overwrite them instead. storyIds may be ticket keys (e.g. "ORB-526") or UUIDs. Returns applied / skipped / notFound arrays — but a ticket key that resolves to nothing rejects the WHOLE call before any write (soft error), and so does any target project the key cannot reach; only ids that parse but match no live story land in notFound. Verify keys with stride.get_story first when unsure.
Inputs: updates (required), storyIds (required), force.
stride.create_commentCreate commentAInspect
Post a comment on a story, artifact, or diagram. Use this to record progress, ask questions, or flag blockers. Accepts an optional parentId to thread under an existing comment. Comments are attributed to the integration's agent bot user so the activity feed shows the agent name and mark (not a human owner), and tagged with the runtime that wrote them (externalSource) for audit.
Inputs: content (required), entityId (required), entityType (required), parentId.
stride.create_cross_linkCreate cross-linkAInspect
Create a cross-module traceability link between two entities in the same project. Required: sourceType, sourceId, targetType, targetId (types: story|diagram|process|test_case|defect|adr|epic|component|sprint|release|quality_gate|test_suite|exploratory_session|legacy_system|process_step|process_insight|automation_item|ui_design|test_run; ids are UUIDs) and relationType (implements|tests|affects|blocks|depends_on|derived_from|covers|covers_ac|duplicate_of|related_to|cross_sprint|cross_epic|verifies_defect|has_design|realized_by|has_diagram|has_process). Direction matters for most relations (e.g. test_case —covers→ story, adr —affects→ story, test_case —verifies_defect→ defect); has_design/has_diagram/has_process are normalised to work item → design/diagram/process. Optional metadata (small JSON, e.g. { acId } for covers_ac — but prefer stride.create_test_case_from_ac for that). For story↔story BLOCKS/DEPENDS_ON/RELATED_TO use stride.create_story_relation instead.
Inputs: sourceId (required), targetId (required), sourceType (required), targetType (required), +2 more.
stride.create_defectCreate defectAInspect
File a new defect in a Stride project. Optional storyId (ticket key like "ORB-526" or UUID) / testCaseId / assigneeId — all cross-checked to belong to the same project / workspace, and echoed back in the receipt. Defaults: severity=MEDIUM, status=OPEN.
Inputs: title (required), projectId (required), status, storyId, +4 more.
stride.create_documentCreate documentAInspect
Create a Library document from markdown (meeting notes, release notes, retrospectives, PRDs, status updates, summaries, etc.). Required: title, markdown (the body). Optional: docType — one of meeting-notes, sprint-retro, one-on-one, project-plan, rfc, arch-review, prd, release-notes, incident, post-mortem, onboarding, status-update, brainstorm, vision-doc, general (or any label; defaults to "general"). It saves drafted content straight into the Library, so nothing has to be pasted in by hand. Returns the new document id + URL.
Inputs: title (required), markdown (required), projectId (required), docType.
stride.create_epicCreate epicAInspect
Create a new epic (an Artifact with artifactType=EPIC) in the given project. Default status is DRAFT. Description maps to the artifact content field. Attributed to the agent bot user; fires an EPIC_CREATED activity event.
Inputs: name (required), projectId (required), description.
stride.create_labelCreate labelAInspect
Create a project-scoped label (id, name, color). Color must be a hex string like #6B7280 (default applied if omitted). Returns DUPLICATE_LABEL when the name already exists in the project.
Inputs: name (required), projectId (required), color.
stride.create_quality_gateCreate quality gateAInspect
Create a quality gate in a Stride project. Required: projectId, name, criteria (array of { type, threshold, enabled? }; types: pass_rate, parity_pass_rate, max_critical_defects, min_test_coverage — see the criteria property for units). Optional: gateType (sprint|release|test_suite|process) plus the matching target id, validated against the project.
Inputs: name (required), criteria (required), projectId (required), gateType, +4 more.
stride.create_releaseCreate releaseAInspect
Create a new release in a Stride project. Required: projectId, name, version. Optional: status (default PLANNED), targetDate (ISO datetime), description, storyIds (ticket keys like "ORB-526" or UUIDs; must belong to the same project). Cross-project story ids are rejected for safety.
Inputs: name (required), version (required), projectId (required), status, +3 more.
stride.create_sprintCreate sprintAInspect
Create a new sprint in a Stride project. Required: projectId, name. Optional: startDate (ISO8601), endDate (ISO8601), goal. Sprint is created in PLANNING status; use stride.transition_sprint to start it.
Inputs: name (required), projectId (required), goal, endDate, +1 more.
stride.create_storyCreate storyAInspect
Create a new story in a Stride project. Required: projectId, title. Optional: description, type, priority, status, storyPoints, labels, acceptanceCriteria, sprintId, epicId, assigneeId, parentId (a ticket key like "ORB-526" or UUID). status accepts a category (TODO/IN_PROGRESS/IN_REVIEW/DONE — default TODO) OR a board-column name from stride.list_workflow_stages. Returns the new story's displayId (ticket key) and echoes what was set — the acceptance criteria with their stable ac_ ids, epicId, sprintId, parentId, assigneeId — so no confirm-read is needed. Cross-project ids are rejected.
Inputs: title (required), projectId (required), type, epicId, +9 more.
stride.create_story_relationCreate story relationAInspect
Create a directed relation between two stories: BLOCKS, DEPENDS_ON, or RELATED_TO. BLOCKS and DEPENDS_ON run a cycle check inside a per-project advisory lock so a concurrent inverse edge is detected reliably. RELATED_TO is symmetric and unrestricted. Both stories must be in the same project.
Inputs: storyId (required), relationType (required), targetStoryId (required).
stride.create_test_caseCreate test caseAInspect
Create a test case in a Stride project. Required: projectId, title. Optional: storyId (ticket key like "ORB-526" or UUID), suiteId (default: the project's first suite), description, steps (array of { action, expected }), expectedResult, priority (default MEDIUM), type (UNIT|INTEGRATION|E2E|PERFORMANCE|SECURITY|ACCESSIBILITY, default INTEGRATION), status (DRAFT|READY|DEPRECATED, default DRAFT), assigneeId. Cross-project ids are rejected for safety; the receipt echoes suiteId / storyId / assigneeId.
Inputs: title (required), projectId (required), type, steps, +7 more.
stride.create_test_case_from_acCreate test cases from acceptance criteriaAInspect
Create test cases from a story's acceptance criteria, each linked back to its criterion (relation covers_ac). Required: storyId (ticket key like "OP-12" or UUID) plus exactly one of: acId (ONE criterion), acIds (several, up to 50), or allCriteria: true (every criterion of the story, one call instead of one per criterion). The ac_… ids come back from stride.create_story and stride.get_story (acceptanceCriteria[].id) — no separate get_story_context read is needed. Idempotent per criterion: an already-covered criterion returns its existing case (alreadyExisted) and writes nothing; the multi mode returns a per-criterion receipt (created / alreadyExisted) plus notFound ids. Optional: templateId (a test-case template; its title pattern may use {{acText}} and {{storyTitle}}, and its steps/type/priority/expectedResult are applied), suiteId (defaults to the project's first suite). Without a template the title is "Verify: ", type INTEGRATION, priority MEDIUM, status DRAFT. Use stride.create_test_case when a case should cover a whole story instead.
Inputs: storyId (required), acId, acIds, suiteId, +2 more.
stride.create_test_runCreate test runAInspect
Create a test run in a Stride project. Required: projectId, name. Optional: suiteId (must be in same project — when given, the run is pre-seeded with one BLOCKED result per non-deprecated case in the suite), environment, pairKey, status (PLANNED|RUNNING|COMPLETED|ABORTED, default PLANNED). For the normal workflow, create the run as PLANNED, then set completeRun=true on the final stride.record_test_results batch.
Inputs: name (required), projectId (required), status, pairKey, +2 more.
stride.create_test_suiteCreate test suiteAInspect
Create a test suite in a Stride project — the container test cases belong to. stride.create_test_case requires a suiteId, so a project with no suites (stride.list_test_suites returns none) needs one created here first. Optional description and category (free-text grouping label). Returns the new suite id. Refuses a duplicate name in the same project.
Inputs: name (required), projectId (required), category, description.
stride.delete_attachmentDelete attachmentADestructiveIdempotentInspect
Remove an attachment from a story. Note: does NOT strip inline references from the story description or comment thread (REST endpoint handles that — use it when reference cleanup matters).
Inputs: storyId (required), attachmentId (required).
stride.delete_commentDelete commentADestructiveIdempotentInspect
Delete an agent-authored comment. Refuses to remove human-authored comments even with OWNER/ADMIN session — moderation stays a human action.
Inputs: commentId (required).
stride.delete_cross_linkDelete cross-linkADestructiveIdempotentInspect
Remove one cross-module link by its id (from stride.list_cross_links). Required: linkId. Not for story↔story relations — use stride.delete_story_relation for those.
Inputs: linkId (required).
stride.delete_defectDelete defectADestructiveIdempotentInspect
Soft-delete a defect. Sets deletedAt; subsequent calls return ALREADY_DELETED (idempotent — does not refresh the cleanup-cron clock).
Inputs: defectId (required).
stride.delete_designDelete designADestructiveIdempotentInspect
Soft-delete a UI design and its variants (sets deletedAt; recoverable via stride.restore_design). Use to clean up a design generated in error. Cross-links to stories/defects/epics are preserved. Returns a no-op success on an already-deleted row.
Inputs: designId (required).
stride.delete_diagramDelete diagramADestructiveIdempotentInspect
Soft-delete an architecture diagram (sets deletedAt; recoverable via stride.restore_diagram). Use to clean up a diagram generated in error. Returns a no-op success on an already-deleted row.
Inputs: diagramId (required).
stride.delete_documentDelete documentADestructiveIdempotentInspect
Archive a Library document (meeting notes, PRD, spec, retro…). Removes it from the Library list and from stride.search_documents, but it stays RESTORABLE — a human can bring it back from the archived view. Idempotent on an already-archived document. Permanent purge is deliberately not available to agents.
Inputs: documentId (required).
stride.delete_epicDelete epicADestructiveIdempotentInspect
Soft-delete an epic. Atomically sets deletedAt + unlinks dependent stories (epicId → null; stories themselves are not deleted). Idempotent on a tombstoned row.
Inputs: epicId (required).
stride.delete_labelDelete labelADestructiveIdempotentInspect
Delete a Label row (metadata only — does NOT scrub the label name off stories that reference it; story labels are stored as a string array). Use bulk_update_stories with labels.mode=remove to clean up story-side associations.
Inputs: labelId (required).
stride.delete_processDelete processADestructiveIdempotentInspect
Soft-delete a BPMN process model (sets deletedAt; recoverable via stride.restore_process). Use to clean up a process generated in error. Returns a no-op success on an already-deleted row.
Inputs: processId (required).
stride.delete_quality_gateDelete quality gateADestructiveIdempotentInspect
Permanently delete a quality gate (HARD delete — QualityGate has no soft-delete, so there is no restore). The gate's evaluation-event history is removed with it.
Inputs: qualityGateId (required).
stride.delete_releaseDelete releaseADestructiveIdempotentInspect
Soft-delete a release (sets deletedAt; recoverable via stride.restore_release). Returns a no-op success on an already-deleted row.
Inputs: releaseId (required).
stride.delete_sprintDelete sprintADestructiveIdempotentInspect
Soft-delete a sprint that has not started yet. ONLY sprints in PLANNING can be deleted — once a sprint goes ACTIVE it can never be deleted, and cancelling does NOT unlock deletion (a CANCELLED sprint is retired but permanent). To retire a running sprint use transition_sprint with to="CANCELLED". Idempotent. Unassigns all stories on the sprint atomically (sprintId set to null); restore_sprint re-assigns the ones still unassigned.
Inputs: sprintId (required).
stride.delete_storyDelete storyADestructiveIdempotentInspect
Soft-delete a story. Sets deletedAt; the nightly cleanup-cron hard-deletes rows older than 7 days. Use stride.restore_story to undo within the grace window. Returns ALREADY_DELETED soft error on a tombstoned row.
Inputs: storyId (required).
stride.delete_story_relationDelete story relationADestructiveIdempotentInspect
Delete a story relation by id. Workspace-scoped via the denormalised projectId. Use stride.list_story_relations to discover relation ids.
Inputs: relationId (required).
stride.delete_test_caseDelete test caseADestructiveIdempotentInspect
Soft-delete a test case. Sets deletedAt; subsequent calls return ALREADY_DELETED (does not refresh the cleanup-cron clock). Restore with stride.restore_test_case.
Inputs: testCaseId (required).
stride.delete_test_runDelete test runADestructiveIdempotentInspect
PERMANENTLY delete a test run and every result it recorded (HARD delete — TestRun has no soft-delete, so there is no restore). Test cases whose latest verdict came from this run are rolled back to their previous surviving result, or cleared if none remains. Child re-runs survive with their parent link removed.
Inputs: testRunId (required).
stride.delete_test_suiteDelete test suiteADestructiveIdempotentInspect
PERMANENTLY delete a test suite (HARD delete — TestSuite has no soft-delete, so there is no restore). Cascades: every test case in the suite is deleted with all of its results; test runs survive but lose their suite link. A non-empty suite refuses unless you pass force: true — relay the returned counts to the human and get explicit confirmation before you do.
Inputs: testSuiteId (required), force.
stride.end_sessionEnd sessionAIdempotentInspect
Closes the current agent execution row at the end of a piece of work, recording how it ended (SUCCEEDED / FAILED) on the audit dashboard. Idempotent — a retry after the session has closed returns the SAME closed session (same executionId, alreadyEnded: true) and changes nothing; it never opens a new one. A session still open 30 minutes after it started is marked TIMED_OUT instead.
Inputs: error, outcome, summary.
stride.generate_diagramGenerate diagramAInspect
Generate an architecture diagram for a story from its title + description + acceptance criteria. Pick a type (System Context / Container / Component / Deployment / Sequence / Data Flow / ERD / State Machine / BPMN) or pass "AUTO" to let Stride choose. Persists a draft diagram in the Design module and links it to the story. Identify the story by ticket key (e.g. "ORB-526") or UUID. Can take up to ~4 minutes, longer than many MCP clients wait. If it is still running after about 52 seconds this tool answers "still running" with a toolCallId and finishes in the background, saving the result when done. Meanwhile a repeat call for the same story (for a refine, the same option) starts nothing and answers "still running" again; stride.get_tool_call_status follows the run: given that toolCallId and waitSeconds 40 it waits for the run (a 3-minute run takes about 5 calls) and returns the result once it is saved, or says it failed. Cancelling the call before it answers stops the run and saves nothing.
Inputs: storyId (required), diagramType, instructions.
stride.generate_processGenerate processAInspect
Generate a BPMN business process for a story from its title + description + acceptance criteria. Models the flow (start, tasks, decisions, end), validates it with bpmnlint, and persists a draft process in the Optimize module linked to the story. Identify the story by ticket key (e.g. "ORB-526") or UUID. Optionally pass detail ("happy" | "full") and free-text guidance. Can take up to ~4 minutes, longer than many MCP clients wait. If it is still running after about 52 seconds this tool answers "still running" with a toolCallId and finishes in the background, saving the result when done. Meanwhile a repeat call for the same story (for a refine, the same option) starts nothing and answers "still running" again; stride.get_tool_call_status follows the run: given that toolCallId and waitSeconds 40 it waits for the run (a 3-minute run takes about 5 calls) and returns the result once it is saved, or says it failed. Cancelling the call before it answers stops the run and saves nothing.
Inputs: storyId (required), detail, instructions.
stride.generate_ui_designGenerate UI designAInspect
Generate AI UI-mockup options (HTML/CSS) for a story, from its title + description. Persists them as a design the team can preview/refine/attach in the studio. Identify the story by ticket key (e.g. "ORB-526") or UUID. Optionally pass count (1-5) and free-text instructions. Can take up to ~4 minutes, longer than many MCP clients wait. If it is still running after about 52 seconds this tool answers "still running" with a toolCallId and finishes in the background, saving the result when done. Meanwhile a repeat call for the same story (for a refine, the same option) starts nothing and answers "still running" again; stride.get_tool_call_status follows the run: given that toolCallId and waitSeconds 40 it waits for the run (a 3-minute run takes about 5 calls) and returns the result once it is saved, or says it failed. Cancelling the call before it answers stops the run and saves nothing.
Inputs: storyId (required), count, instructions.
stride.get_adrGet ADRARead-onlyIdempotentInspect
Fetch one architecture decision record: title, status, context, decision, consequences, publishedVersion. Optional include: "versions" (published snapshot metadata, newest first). Ids come from stride.list_adrs. Link an ADR to stories/components with stride.create_cross_link.
Inputs: adrId (required), include.
stride.get_defectGet defectARead-onlyIdempotentInspect
Fetch a defect by id with its description, severity, status, linked story and test case.
Inputs: defectId (required).
stride.get_design_contextGet design contextARead-onlyIdempotentInspect
Fetch a UI design as buildable context: its screens, the navigation flow between them, ready-to-paste React + Tailwind components, a self-contained HTML file, and the design-lint findings already known about it. Use this before implementing a screen from a design — it replaces reading the raw HTML and guessing at the structure. Optional include narrows the sections returned.
Inputs: designId (required), include.
stride.get_diagramGet diagramARead-onlyIdempotentInspect
Read one architecture diagram (ERD, BPMN, system context, container, component, deployment, sequence, data flow, or state machine) as its semantic graph: components with type / technology / description, and connections with resolved endpoint names. Canvas geometry is omitted. Use list_diagrams to discover ids, or the diagrams section of get_story_context for the diagrams linked to a story.
Inputs: diagramId (required).
stride.get_documentGet documentARead-onlyIdempotentInspect
Read the full text of a Library document (meeting notes, PRD, spec, retro, etc.) by id. Use after stride.search_documents to read a document body before summarizing it or creating stories/tasks from it.
Inputs: documentId (required).
stride.get_epicGet epicARead-onlyIdempotentInspect
Get an epic by id with story rollup (counts, points, status breakdown) and the set of distinct sprints it spans. Returns slim story stubs (id/title/status/priority/points/assignee/sprint) so agents can pivot to specific stories with get_story or update_story.
Inputs: epicId (required).
stride.get_legacy_evidenceGet legacy evidenceARead-onlyIdempotentInspect
Fetch citation evidence snippets by key (EV-000123) for a legacy system (Modernize), up to 50 keys. Returns the source/schema/traffic excerpt backing each cited finding.
Inputs: keys (required), legacySystemId (required).
stride.get_legacy_parityGet legacy parityARead-onlyIdempotentInspect
Behavioral-parity rollup for a legacy system (Modernize): overall %, regression count, and per-rule breakdown from the latest complete baseline/target characterization run pair.
Inputs: legacySystemId (required).
stride.get_legacy_systemGet legacy systemARead-onlyIdempotentInspect
Fetch one legacy system (Modernize, Optimize module) as a plain-text context bundle — components, integrations, business rules, data flows, scores, and analysis highlights. Optional include facets: 'requirements' (per-family counts + FR ids; absent with a facetNotes entry when none generated yet), 'plan' (latest transformation plan summary), 'progress' (modernization progress rollup), 'evidence_index' (every evidence key with its file/lines — the keys stride.get_legacy_evidence takes). structuredContent.registration says whether the system was registered manually and whether a repository is connected (a manual system with none cannot be analysed until a human connects one).
Inputs: legacySystemId (required), include.
stride.get_modernization_repo_statusGet modernization repo statusARead-onlyIdempotentInspect
Read the connected GitHub repository status for a legacy system (Modernize): owner/repo/branch, link status, staleness (code changed since last analysis), and any in-progress ingest. With no repository, says whether the system was registered manually (a human must connect one in Stride before analysis can run).
Inputs: legacySystemId (required).
stride.get_processGet processARead-onlyIdempotentInspect
Full detail of one process model (Optimize): steps (name/type/role/duration), connections, status, and any bound sprint/epic. Read-only.
Inputs: processId (required).
stride.get_process_kpisGet process KPIsARead-onlyIdempotentInspect
Mined KPIs for a process (Optimize): case count, cycle-time p50/p95, throughput, conformance, and automation rate — computed from the live event stream. Optional from/to ISO date window. Read-only.
Inputs: processId (required), to, from.
stride.get_quality_gateGet quality gateARead-onlyIdempotentInspect
Fetch a single quality gate by id: full criteria, current status, gateType, the polymorphic target binding (sprint/release/test-suite/process), and the 5 most-recent PASS/FAIL evaluation events. Use stride.list_quality_gates to discover gate ids.
Inputs: qualityGateId (required).
stride.get_releaseGet releaseARead-onlyIdempotentInspect
Fetch a single release by id: name, version, status, targetDate, description, storyIds, and whether structured release notes exist. Soft-deleted releases read as not found.
Inputs: releaseId (required).
stride.get_sprintGet sprintARead-onlyIdempotentInspect
Fetch a sprint with its stories. Returns name, status, goal, dates, and an inline array of compact stories (up to 200). Use stride.get_story for full story details. For a COMPLETED sprint, counts.totalPoints/donePoints and counts.totalStories/doneStories are the totals recorded when it closed (closing can move its unfinished stories out, so counts.stories/done and the inline stories are only what is still on it); totalPoints and totalStories are null when none were recorded.
Inputs: sprintId (required).
stride.get_sprint_metricsGet sprint metricsARead-onlyIdempotentInspect
Compact metrics snapshot for a sprint: burndown summary, capacity totals, scope-creep, blocker count, sprint health score. Read-only. Full per-day burndown points / cycle-time entries / cumulative-flow stay on the REST endpoint to keep this response under the agent result-size budget. For a COMPLETED sprint the committed and done points and stories are the ones recorded when it closed (committedPts, completionPct and stories.total are null when none were recorded), score and the forecast fields are null, and capacity.perAssignee counts only the stories still on the sprint, since closing moves the unfinished ones out.
Inputs: sprintId (required).
stride.get_sprint_test_healthGet sprint test healthARead-onlyIdempotentInspect
Test health of ONE sprint in a single call: how many test cases the sprint has (cases whose story is in the sprint, plus cases linked to it), how many passed / failed / blocked / skipped / never ran by most-recent executed result, the failed-or-blocked cases ordered by priority (top 10), and story coverage (stories in the sprint with at least one test). Required: sprintId (from stride.list_sprints). Use stride.get_sprint_metrics for delivery metrics (points, velocity) and stride.get_test_run for one run's results.
Inputs: sprintId (required).
stride.get_storyGet storyARead-onlyIdempotentInspect
Fetch a single Stride story by its ticket key (e.g. "ORB-526") or UUID. Returns its displayId (ticket key), status, priority, points, labels, acceptance criteria, assignee, sprint/epic, and related-entity counts. Refer to the story by its ticket key in replies. Use before stride.update_story_status so you know the current state.
Inputs: storyId (required).
stride.get_story_contextGet story contextARead-onlyIdempotentInspect
Fetch a story with its FULL linked context in one call: acceptance criteria, linked UI designs (with the current variants' HTML), linked documents, relations, sub-tasks, test cases, defects (with the test that found each), linked pull/merge requests, recent comments, and attachments. Use this before implementing a story so you have the complete spec — prefer it over multiple get_story / list_* calls. Accepts a ticket key ("ORB-526") or UUID. Optional include narrows the sections returned.
Inputs: storyId (required), include.
stride.get_test_caseGet test caseARead-onlyIdempotentInspect
Fetch a single Stride test case by id. Returns description, steps, expected result, priority, type, status, suite, assignee, linked storyId, and the last execution verdict. Use after stride.list_test_cases to inspect a specific case.
Inputs: testCaseId (required).
stride.get_test_runGet test runARead-onlyIdempotentInspect
Fetch a single Stride test run by id. Returns name, status, environment, executedAt, notes, suiteId, parentRunId, and a result summary: counts by PASSED/FAILED/BLOCKED/SKIPPED over EXECUTED results (total), plus notExecuted for rows that never ran, totalResults for every row and withDefect for rows carrying a defect; linkedDefects lists the distinct defects those rows link (id/title/severity/status + the testCaseIds that link each). Use stride.list_test_results for the individual result rows.
Inputs: testRunId (required).
stride.get_tool_call_statusGet tool call statusARead-onlyIdempotentInspect
Check on a long generation that answered "still running": stride.generate_ui_design, stride.refine_ui_design, stride.generate_process or stride.generate_diagram. Pass the toolCallId from that answer and waitSeconds 30-40: the call then waits (up to 40 s) for the run and answers the moment it finishes, so a 3-minute run takes about 5 calls, and the waiting happens on the server, which suits clients such as Claude Desktop that cannot sleep between calls. Returns status running, saved or failed. Once it is saved or failed you get the same result the generation call would have returned (the new design, process or diagram id and counts, any placeholder-layout warning, or why it failed). While the run is in flight, calling the generator again starts nothing; once the run has failed, or about 5 minutes after it started, the generator starts a new run. Read-only; it answers only for generations started by this agent connection.
Inputs: toolCallId (required), waitSeconds.
stride.link_designLink designAIdempotentInspect
Link an existing UI design to a story, defect, or epic (the canonical "has_design" relationship). This records the link only — it does not render or attach a PNG (an agent can't capture the image; use the in-app studio for that). Idempotent and direction-normalized. The design and the work item must be in the same project.
Inputs: issueId (required), designId (required), issueType (required).
stride.link_diagramLink diagramAIdempotentInspect
Link an existing architecture diagram (ERD, BPMN, system context, …) to a story, defect, or epic (the canonical "has_diagram" relationship). Idempotent. Once linked, the diagram shows in the story’s get_story_context bundle under diagrams. The diagram and the work item must be in the same project.
Inputs: issueId (required), diagramId (required), issueType (required).
stride.list_adrsList ADRsARead-onlyIdempotentInspect
List architecture decision records (ADRs) in a Stride project: id, title, status (PROPOSED/ACCEPTED/DEPRECATED/SUPERSEDED), publishedVersion, dates. Filters: status, title search. Use stride.get_adr for the context/decision/consequences text, and stride.create_cross_link with sourceType "adr" to bind an ADR to a story or component. Defaults: page 1, limit 20, max 50.
Inputs: projectId (required), page, limit, search, +1 more.
stride.list_attachmentsList attachmentsARead-onlyIdempotentInspect
List file attachments on a story (metadata only — filename, mimeType, size, uploader, createdAt, url). Binary content stays on the REST endpoint at /api/stories/{id}/attachments/{attachId}.
Inputs: storyId (required).
stride.list_commentsList commentsARead-onlyIdempotentInspect
List comments on a story, artifact, diagram, process or defect. Returns top-level comments sorted oldest-first with their replies nested inline; every comment carries reactions [{ emoji, count, mine }], where mine marks a reaction this agent left with stride.toggle_reaction. Read-only.
Inputs: entityId (required), entityType (required), limit.
stride.list_cross_linksList cross-linksARead-onlyIdempotentInspect
List every cross-module link on ONE entity — both directions, with the linked entity's name, type, module and the relation (implements, tests, affects, blocks, depends_on, derived_from, covers, covers_ac, duplicate_of, related_to, cross_sprint, cross_epic, verifies_defect, has_design, realized_by, has_diagram, has_process). Required: entityType (story|diagram|process|test_case|defect|adr|epic|component|sprint|release|quality_gate|test_suite|exploratory_session|legacy_system|process_step|process_insight|automation_item|ui_design|test_run) and entityId (UUID). Also returns derived edges the product stores as a field rather than a link (a test case bound to its story, a defect bound to its story or test case): they carry no link id and cannot be deleted with delete_cross_link. A link whose other endpoint is in the trash is omitted until that entity is restored; a link to a hard-deleted entity (test suite, test run, quality gate, exploratory session, automation item, component, process step) is removed with it. This is the traceability graph itself; stride.get_story_context summarises parts of it for stories only. Story relations (BLOCKS/DEPENDS_ON/RELATED_TO between stories) are a separate model: stride.list_story_relations.
Inputs: entityId (required), entityType (required).
stride.list_defectsList defectsARead-onlyIdempotentInspect
List defects in a Stride project. Filters: status, severity, storyId (ticket key like "ORB-526" or UUID), assigneeId, search (title substring). Rows carry storyId, testCaseId (the test that found the defect, if any), a plain-text description preview (~200 chars) and hasDescription (false = stride.get_defect would show nothing more). Returns compact shape — use stride.get_defect for full detail.
Inputs: projectId (required), page, limit, search, +4 more.
stride.list_designsList designsARead-onlyIdempotentInspect
Paginated list of UI designs (Design module) in a project — title, status, kind (SCREEN / STATES / FLOW), the story or defect it was generated from, and variant count. Read-only. Use this to find a designId, then stride.get_design_context for its screens, flow and React export.
Inputs: projectId (required), page, limit, status.
stride.list_diagramsList diagramsARead-onlyIdempotentInspect
Paginated list of architecture diagrams (Design module) in a project — name, diagram type (ERD, BPMN, system context, container, …), version, component/connection counts, and parent diagram for hierarchies. Read-only. Use get_diagram for one diagram’s full semantic graph.
Inputs: projectId (required), page, limit.
stride.list_epicsList epicsARead-onlyIdempotentInspect
Paginated list of epics in a project with per-epic story-count rollup (totalStories / doneStories / totalPoints / donePoints / progress%). Filters out AI-traceability artifacts. Optional status filter (DRAFT / PUBLISHED / ARCHIVED).
Inputs: projectId (required), page, limit, status.
stride.list_labelsList labelsARead-onlyIdempotentInspect
List a project's labels two ways: labels are the Label rows (id, name, color — autocomplete/colour metadata, may be empty) and distinctStoryLabels are the label strings live stories actually carry, with a story count each. Filter or bulk-update by the NAME string (stride.list_stories / bulk_update_stories), which need no Label row.
Inputs: projectId (required).
stride.list_legacy_systemsList legacy systemsARead-onlyIdempotentInspect
List the legacy systems (Modernize, Optimize module) in a project — name, analysis status, system type, primary language, scores (complexity / tech debt / automation readiness / maturity), and child counts (components, integrations, data flows, business rules, transformation plans). Read-only. Use stride.get_legacy_system for the full context bundle.
Inputs: projectId (required).
stride.list_processesList processesARead-onlyIdempotentInspect
Paginated list of process models (Optimize module) in a project — name, status, step/connection counts, and any bound sprint/epic. Read-only.
Inputs: projectId (required), page, limit.
stride.list_process_insightsList process insightsARead-onlyIdempotentInspect
Active (non-dismissed) Optimize insights for a project — bottlenecks, automation opportunities, risks, trends — ranked by impact. Optional processId filter. Read-only.
Inputs: projectId (required), limit, processId.
stride.list_project_membersList project membersARead-onlyIdempotentInspect
List everyone who can access a Stride project, with their effective project role (OWNER / EDITOR / VIEWER) and where that access comes from: an explicit grant, their workspace-admin status, or a workspace-role baseline on a project that is open to the whole workspace. Use before assigning work, to check the person can actually open the project.
Inputs: projectId (required).
stride.list_projectsList projectsARead-onlyIdempotentInspect
Discovery tool, and the first one needed without a projectId: every other Stride tool requires projectId, and this is the only way to find one. Lists projects in the caller's workspace, scoped to the projects the integration creator has membership on. Filters: search (case-insensitive name contains), status (ACTIVE/COMPLETED/ARCHIVED). Returns id, name, prefix (e.g. "OTC" — composed with story numbers as "OTC-42"), description, status, deliveryTypes (array — projects can have multiple, e.g. ["CRM_IMPLEMENTATION", "INTEGRATION_IPAAS"]), and story / sprint counts. Soft-deleted projects are excluded. Read-only.
Inputs: page, limit, search, status, +1 more.
stride.list_quality_gatesList quality gatesARead-onlyIdempotentInspect
List quality gates in a Stride project. Returns a compact shape (id, name, status, gateType, createdAt, criteriaCount, enabledCriteriaCount, configState) — use stride.get_quality_gate for the full criteria + recent evaluation history. configState NOT_CONFIGURED / NOT_ENFORCED means the gate measures nothing and fails CLOSED: its status is not a breach. Default limit 20, max 50.
Inputs: projectId (required), limit.
stride.list_recent_activityList recent activityARead-onlyIdempotentInspect
List recent activity across a whole project (newest-first) — "what changed / what moved to Done this week". Optional filters: action (e.g. STORY_STATUS_CHANGED, STORY_UPDATED), entityType (story/defect/sprint/epic), since (ISO timestamp). For a single story's feed use stride.list_story_activity.
Inputs: projectId (required), limit, since, action, +1 more.
stride.list_releasesList releasesARead-onlyIdempotentInspect
List releases in a Stride project with an optional status filter. Returns a compact shape — use stride.get_release for the full release with storyIds and release-notes flag. Defaults: limit 20, max 50.
Inputs: projectId (required), limit, status.
stride.list_sprintsList sprintsARead-onlyIdempotentInspect
List sprints in a Stride project. Filters: status (PLANNING/ACTIVE/COMPLETED/CANCELLED). Returns name, status, goal, dates, and the count of stories on each sprint now. Closing a sprint can move its unfinished stories out, so a COMPLETED sprint also carries storiesAtClose / doneStoriesAtClose, the counts it closed with (null when not recorded).
Inputs: projectId (required), page, limit, status.
stride.list_storiesList storiesARead-onlyIdempotentInspect
List stories in a Stride project with optional filters. Each story includes its displayId (ticket key, e.g. "ORB-526") — refer to stories by that, not the UUID. Filter by status (a category — TODO/IN_PROGRESS/IN_REVIEW/DONE — OR a board column name from stride.list_workflow_stages) or by stageId (an exact column). Use stride.get_story for a full story with acceptance criteria. Defaults: page 1, limit 20, max 50.
Inputs: projectId (required), page, type, limit, +7 more.
stride.list_story_activityList story activityARead-onlyIdempotentInspect
List the activity feed for a story (newest-first). Each row carries the action type, the acting user (id/name/image), metadata, and timestamp. Useful before deciding whether to act on a story (e.g. "has someone already commented?").
Inputs: storyId (required), limit.
stride.list_story_relationsList story relationsARead-onlyIdempotentInspect
List the outgoing and incoming relations for a story. Returns both arrays in one call. Each row carries the related story compact shape (id, title, status, priority, type) so the agent can render a dependency tree without a per-row get_story call.
Inputs: storyId (required).
stride.list_test_casesList test casesARead-onlyIdempotentInspect
List test cases in a Stride project with optional filters (suiteId, storyId, status, type, assigneeId, title search). Rows carry storyId so coverage questions need no per-case read. Compact shape — use stride.get_test_case for full steps + expected result. Defaults: page 1, limit 20, max 50.
Inputs: projectId (required), page, type, limit, +5 more.
stride.list_test_plansList test plansARead-onlyIdempotentInspect
List test plans in a Stride project (newest-first). Compact shape — id, name, status, targetDate, startedAt, completedAt. Filter by status. Default limit 20, max 50.
Inputs: projectId (required), limit, status.
stride.list_test_resultsList test resultsARead-onlyIdempotentInspect
List the individual result rows for a Stride test run. Each row carries the verdict (status), duration, notes, executedAt, the test case (id/title) and the linked defect (defectId + defect {id,title,severity,status}) set by record_test_results. Filter by status — e.g. status=FAILED to fetch just the failing cases. Ordered by status then createdAt. Default limit 50, max 200.
Inputs: testRunId (required), limit, status.
stride.list_test_runsList test runsARead-onlyIdempotentInspect
List test runs in a Stride project (newest-first). Compact shape — id, name, status, environment, executedAt, createdAt, suiteId. Filter by status or suiteId. Use stride.get_test_run for a per-run result summary. Default limit 20, max 50.
Inputs: projectId (required), limit, status, suiteId.
stride.list_test_suitesList test suitesARead-onlyIdempotentInspect
List test suites in a Stride project (newest-updated first). Compact shape — id, name, description, testCaseCount (non-deleted cases). Default limit 20, max 50.
Inputs: projectId (required), limit.
stride.list_workflow_stagesList workflow stagesARead-onlyIdempotentInspect
List a project's board columns (workflow stages) in order. A project may have custom columns beyond the default To Do / In Progress / In Review / Done — call this to see the exact column names before moving an issue into one by name. Each column has a name, an immutable category (TODO / IN_PROGRESS / IN_REVIEW / DONE — drives analytics; a DONE-category column is a "done" column), position, color, wipLimit, isDefault (where new issues land), and system (one of the 4 seeded backbone columns). The status tools accept either a category token OR one of these column names/ids. Read-only.
Inputs: projectId (required).
stride.next_taskPick up next taskAInspect
Pull your next story to implement: the most recent one a human staged for you (via "Stage for my agent" in Stride) or, when nothing is staged, the top story assigned to you that is still to do (active sprint first, then priority). Takes no arguments: it resolves your projects and identity from your agent key. Returns the story with its FULL context (acceptance criteria, designs, docs, relations, linked PRs) in one call, the same shape as get_story_context, plus source: "staged" or "assigned". A staged story is marked consumed so you get a fresh task next time; an assigned one stays the top until its status changes, so move it to IN_PROGRESS when you start. Returns an empty-inbox message when there is neither. Call it when the user says "work on my next Stride task".
Inputs: no named parameters.
stride.prepare_modernization_backlogPrepare modernization backlogAInspect
Prepare a modernization backlog from an ANALYZED legacy system's generated requirements (Modernize, Optimize module): creates a pre-extracted PRD-wizard document in the system's own project and returns the wizard link for a HUMAN to review and approve. Never creates stories itself — the staged wizard review is human-only by design. Without force, an existing modernization document for the system is returned instead of creating a duplicate.
Inputs: legacySystemId (required), force.
stride.record_test_resultsRecord test resultsADestructiveInspect
Record up to 200 test results against a single run in one call. Each result is { testCaseId, status (PASSED|FAILED|BLOCKED|SKIPPED), duration?, notes?, defectId? }. UPSERTs on (run, case) so re-marking a case is idempotent; updates each case's last-result status. defectId is persisted on the result row — read it back with stride.list_test_results (per row) or stride.get_test_run (linkedDefects). Cases outside the run's project land in notFound; a defect outside the run's project rejects the whole batch. Set completeRun=true only on the final batch to atomically mark the run COMPLETED, timestamp it, and make it eligible for quality gates; the default false keeps partial batches open. Returns applied / notFound arrays + per-status counts. Optional environment + pairKey stamp the run in the same call (Modernize behavioural parity).
Inputs: results (required), testRunId (required), pairKey, completeRun, +1 more.
stride.refine_ui_designRefine UI designAInspect
Refine one option of an existing UI design with a natural-language instruction — appends a new version (the prior version is kept). Identify the design by UUID and the option by its key (A/B/C…). Can take up to ~4 minutes, longer than many MCP clients wait. If it is still running after about 52 seconds this tool answers "still running" with a toolCallId and finishes in the background, saving the result when done. Meanwhile a repeat call for the same story (for a refine, the same option) starts nothing and answers "still running" again; stride.get_tool_call_status follows the run: given that toolCallId and waitSeconds 40 it waits for the run (a 3-minute run takes about 5 calls) and returns the result once it is saved, or says it failed. Cancelling the call before it answers stops the run and saves nothing.
Inputs: designId (required), optionKey (required), instruction (required).
stride.remove_project_memberRemove project memberADestructiveIdempotentInspect
Remove a person's explicit access to a Stride project. On an invite-only project this revokes their access entirely. On a project open to the whole workspace it only drops them back to what their workspace role gives them.
Inputs: member (required), projectId (required).
stride.rerun_failed_testsCreate retest run from failed testsAInspect
Create a child test run seeded with the failed + blocked cases of a parent run (parentRunId links the chain). Inherits the parent suite + environment; each eligible case is seeded BLOCKED. Soft-errors when the parent had no failing or blocked cases. Returns the new run id + retried count.
Inputs: testRunId (required).
stride.restore_defectRestore defectAIdempotentInspect
Restore a soft-deleted defect within the grace window. Idempotent on an already-active row.
Inputs: defectId (required).
stride.restore_designRestore designAIdempotentInspect
Restore a soft-deleted UI design (clears deletedAt). Idempotent on an already-active row.
Inputs: designId (required).
stride.restore_diagramRestore diagramAIdempotentInspect
Restore a soft-deleted architecture diagram (clears deletedAt). Idempotent on an already-active row.
Inputs: diagramId (required).
stride.restore_epicRestore epicAIdempotentInspect
Restore a soft-deleted epic. Stories the delete unlinked are re-linked if they are still unassigned (a story moved to another epic meanwhile stays there); the count is returned as relinkedStoryCount. Idempotent on an already-active row.
Inputs: epicId (required).
stride.restore_processRestore processAIdempotentInspect
Restore a soft-deleted BPMN process model (clears deletedAt). Idempotent on an already-active row.
Inputs: processId (required).
stride.restore_releaseRestore releaseAIdempotentInspect
Restore a soft-deleted release (clears deletedAt). Idempotent on an already-active row.
Inputs: releaseId (required).
stride.restore_sprintRestore sprintAIdempotentInspect
Restore a soft-deleted sprint (clears deletedAt). Stories the delete un-assigned are re-assigned if they are still unassigned (a story moved to another sprint meanwhile stays there); the count is returned as relinkedStoryCount. Idempotent on an already-active row.
Inputs: sprintId (required).
stride.restore_storyRestore storyAIdempotentInspect
Restore a soft-deleted story within the 7-day grace window. Idempotent on an already-active row.
Inputs: storyId (required).
stride.restore_test_caseRestore test caseAIdempotentInspect
Restore a soft-deleted test case. Idempotent on an already-active row.
Inputs: testCaseId (required).
stride.run_process_insightsRun process insightsAIdempotentInspect
Re-run the rule-based insight generators for ONE process (Optimize) against its latest event stream — no AI spend. Additive: writes new ProcessInsight rows, never edits or deletes. Returns { generated, deduped }; read the insights with stride.list_process_insights. Use after changing a process instead of regenerating the whole project.
Inputs: processId (required).
stride.run_quality_gate_checkRun quality gate checkAInspect
Evaluate a quality gate against current project state (test pass-rate, open critical defects, story test-coverage), persist a PASS/FAIL evaluation event, and flip the gate status to the verdict. Returns the verdict plus per-criterion results and metrics, and a reason token: CRITERIA_MET / CRITERIA_BREACHED when the gate measured something, or NO_CRITERIA / NO_ENABLED_CRITERIA when it did not, or NO_RESULTS when no test has run in its scope — those three FAIL closed and are NOT a breach, so fix the gate (or run the tests) rather than the project.
Inputs: qualityGateId (required).
stride.search_documentsSearch documentsARead-onlyIdempotentInspect
Search this project's Library — meeting notes, PRDs, specs, retros, release notes and other documents — by keyword/phrase (full-text over title + body), with optional templateType (e.g. 'meeting-notes', 'prd') and recency (updatedWithinDays) filters. Returns compact rows with a snippet; stride.get_document reads a full body. The notes and context a team has written down are found here.
Inputs: projectId (required), limit, query, templateType, +1 more.
stride.search_storiesSearch storiesARead-onlyIdempotentInspect
Search a project's stories. If the query is a ticket key like "ORB-526" (or a UUID) it resolves that exact story; otherwise it free-text searches title + description, relevance-ranked (title first). Optional status filter — a category (TODO/IN_PROGRESS/IN_REVIEW/DONE) OR a board-column name from stride.list_workflow_stages — or stageId for an exact column. Each result includes its displayId (ticket key) — refer to stories by that. Use this for "tell me about ORB-526" or "find the story about X". For filtered listing use stride.list_stories.
Inputs: query (required), projectId (required), limit, status, +1 more.
stride.start_story_workStart story work (draft PR)AIdempotentInspect
Scaffold a GitHub DRAFT pull request from a story: opens a branch named with the ticket key, commits the full spec to .stride/.md, and opens a draft PR with a compact brief. The PR auto-links back to the story. Use after implementing a story to create the review surface. Identify the story by ticket key ("ORB-526") or UUID. Optionally pass repo ("owner/name" or "name") and baseBranch. Idempotent — returns the existing open draft PR if one is already linked. Requires GitHub to be connected for the workspace.
Inputs: storyId (required), repo, baseBranch.
stride.suggest_cross_linksSuggest cross-linksAInspect
Suggest cross-module links a project is missing (story↔component, ADR↔story, and — when the AI budget allows — links across tests, processes and more), each with a confidence and a reason. Read-only: accept a suggestion with stride.create_cross_link. Required: projectId. Optional entityType + entityId to keep only suggestions involving one entity. Costs one metered AI call per invocation when the AI pass runs; heuristic suggestions are free and always returned. The reply says whether the AI pass ran, was cut off, failed (and whether that attempt was charged) or did not run.
Inputs: projectId (required), entityId, entityType.
stride.toggle_reactionToggle reactionAInspect
Add, remove, or toggle an emoji reaction (👍 👎 ❤️ 😄 🎉 🚀 👀) on a comment. Defaults to toggle — flips the agent's own reaction state. Attributed to the agent's bot user.
Inputs: emoji (required), commentId (required), action.
stride.transition_sprintTransition sprintADestructiveIdempotentInspect
Transition a sprint to a new status: ACTIVE (start a PLANNING sprint), COMPLETED (close an ACTIVE sprint; incomplete stories return to backlog), or CANCELLED. Only ONE sprint per project can be ACTIVE: starting a second returns SPRINT_ALREADY_ACTIVE naming the active one — complete or cancel it first (stride.list_sprints shows statuses). A sprint already in the requested state returns SPRINT_ALREADY_IN_STATE (with requestedState) and changes nothing — distinct from SPRINT_ALREADY_ACTIVE, which means a DIFFERENT sprint holds the slot. Illegal transitions return isError with the legal next states. Conflict-guarded against concurrent human edits (pass force:true, after re-reading with get_sprint, to override — the override is audit-logged).
Inputs: to (required), sprintId (required), force.
stride.trigger_legacy_reanalysisReanalyze legacy systemAInspect
Re-ingest a legacy system's connected repository (Modernize). Refuses when the repo is not stale unless force:true (spends AI credits). Incremental by default; pass full:true to re-analyze every chunk.
Inputs: legacySystemId (required), full, force.
stride.update_commentUpdate commentADestructiveIdempotentInspect
Edit the body of an agent-authored comment. Only the integration's bot user can edit its own comments — human-authored comments are off-limits. Re-runs mentions dispatch with previousContent so notifications only fire for newly mentioned users.
Inputs: content (required), commentId (required).
stride.update_defectUpdate defectADestructiveIdempotentInspect
Patch fields on an existing defect: title, description, severity, status, storyId (ticket key like "ORB-526" or UUID), testCaseId, assigneeId. Cross-project references are validated to live in the defect's project. Pass null to clear a nullable field. Only fields whose value actually differs are written and reported (fieldsChanged / unchanged); a call that changes nothing says "already X — no change" and writes nothing. Refuses tombstoned (soft-deleted) defects. Conflict-guarded against concurrent human edits (pass force:true, after re-reading with get_defect, to override — the override is audit-logged).
Inputs: defectId (required), force, title, status, +5 more.
stride.update_documentUpdate documentADestructiveIdempotentInspect
Update a Library document — replace its title and/or its body (markdown). Required: documentId. Provide title and/or markdown. Markdown REPLACES the whole body; use stride.append_to_document to add to the end instead. Returns the document id + URL.
Inputs: documentId (required), title, markdown.
stride.update_epicUpdate epicADestructiveIdempotentInspect
Update an epic: title / content / status / priority / startDate / targetDate. Status transitions follow DRAFT → PUBLISHED → ARCHIVED; illegal transitions return ILLEGAL_TRANSITION. Priority is stored in artifact metadata, merged with existing keys. Dates are day-grain (YYYY-MM-DD or ISO; null clears); start must stay ≤ target or the call returns DATE_ORDER.
Inputs: epicId (required), title, status, content, +3 more.
stride.update_labelUpdate labelADestructiveIdempotentInspect
Rename a label or change its color. Note: renaming the Label row does NOT cascade to story label associations (those are stored as a string array on the story). Use bulk_update_stories with labels.mode=replace if you need to migrate the actual story-side references.
Inputs: labelId (required), name, color.
stride.update_project_member_roleChange project member roleADestructiveIdempotentInspect
Change an existing project member's role (OWNER, EDITOR, or VIEWER). Fails if the person has not been added to the project — use stride.add_project_member for that.
Inputs: role (required), member (required), projectId (required).
stride.update_quality_gateUpdate quality gateADestructiveIdempotentInspect
Patch a quality gate: name, criteria (set-replace JSON), and/or status (PENDING | PASSED | FAILED | BLOCKED). To recompute the verdict from live project metrics instead of setting status manually, use stride.run_quality_gate_check.
Inputs: qualityGateId (required), name, status, criteria.
stride.update_releaseUpdate releaseADestructiveIdempotentInspect
Patch fields on an existing release: name, version, status, targetDate (nullable), description (nullable), storyIds (set-replace; ticket keys like "ORB-526" or UUIDs, must belong to the same project). Pass null to clear targetDate or description.
Inputs: releaseId (required), name, status, version, +3 more.
stride.update_sprintUpdate sprintADestructiveIdempotentInspect
Patch sprint metadata: name, startDate, endDate, goal. Use null to clear a nullable field (startDate, endDate, goal). Status transitions live in stride.transition_sprint. Closed (COMPLETED/CANCELLED) sprints reject metadata edits. Conflict-guarded against concurrent human edits (pass force:true, only with the human's explicit approval, to overwrite a human edit).
Inputs: sprintId (required), goal, name, force, +2 more.
stride.update_storyUpdate storyADestructiveIdempotentInspect
Patch fields on an existing story: title, description, type, priority, storyPoints, labels (set-replace), acceptanceCriteria (set-replace), assigneeId, sprintId, epicId, dueDate. Use stride.update_story_status for status transitions (it carries the optional comment). Identify the story by ticket key (e.g. "ORB-526") or UUID. Conflict-guarded — rejected if a human edited after your last read; pass force:true only with the human's explicit approval to overwrite their edit.
Inputs: storyId (required), type, force, title, +9 more.
stride.update_story_statusUpdate story statusADestructiveIdempotentInspect
Transition a story's status with an optional comment. status accepts a category (TODO / IN_PROGRESS / IN_REVIEW / DONE — always valid) OR the exact name of a board column from stride.list_workflow_stages (a project may have custom columns like "Code Review" or "QA"). Identify the story by ticket key (e.g. "ORB-526") or UUID. An unrecognised status returns an error listing the project's columns. Rejected with a conflict error if a human edited the story after your last read; call stride.get_story first, or pass force:true (only with the human's explicit approval) to overwrite their edit.
Inputs: status (required), storyId (required), force, comment.
stride.update_test_caseUpdate test caseADestructiveIdempotentInspect
Patch fields on an existing test case: title, description, steps (set-replace array of { action, expected }), expectedResult, priority, type, status, assigneeId (nullable), storyId (ticket key or UUID, nullable), suiteId (moves the case to another suite in the same project — ids from stride.list_test_suites; the case keeps its id, results and links). Any omitted field is unchanged; pass null to clear assigneeId / storyId. Cross-project ids are rejected.
Inputs: testCaseId (required), type, steps, title, +7 more.
stride.update_test_suiteUpdate test suiteADestructiveIdempotentInspect
Rename a test suite or change its description / category. Pass null to clear description or category; omit a field to leave it unchanged. Refuses a rename that would duplicate another suite name in the same project.
Inputs: testSuiteId (required), name, category, description.
stride.upload_attachmentUpload attachmentAInspect
Upload a file to a story. Accepted mimeTypes: image/png, image/jpeg, image/gif, image/webp, application/pdf, application/zip (also .docx/.xlsx/.pptx), text/plain (logs, JSON, CSV, markdown — anything the sniffer reads as text). Pass the binary data as base64. Max 3 MB decoded (larger files: attach them in the Stride app). Binary types are validated by magic bytes against the declared mimeType; text has no magic bytes and passes on its declared text/plain. Returns the metadata + a URL to fetch the binary from REST.
Inputs: data (required), storyId (required), filename (required), mimeType (required).
stride.whoamiWho am IARead-onlyIdempotentInspect
Who am I: the workspace, the member this session acts for (spend + audit attribution), the agent's bot user (never assignable), the key's provider/scope and the projects it can reach, and the synthesised role. Other tools' output does not state this identity, so it is the reliable first call in a cold start. Read-only, no arguments.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Project context, backlog tasks, and controlled workflows for coding agents. OAuth sign-in.
Tasks, sprints, releases and docs for engineering teams with AI coding agents.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceGives AI agents access to a persistent document workspace, letting them search, read, and update notes, guides, and project documentation across a full catalog of tools, prompts, and resources. It connects either to the hosted Cloud endpoint over Streamable HTTP with OAuth or API-key auth, or to a self-hosted instance through a stdio bridge.MIT
- AlicenseAqualityBmaintenanceEnables coding agents to turn Jira Cloud tickets into ready-to-build briefs, verify local branches against acceptance criteria, and prepare QA handoffs, with optional previewed and audited write-back.1081 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides a shared, versioned workspace of plain files that Claude, ChatGPT, Gemini and CLI agents connect to over MCP with OAuth, so any agent can read and write the same project files, browse and restore git-backed history, and log dated hand-off notes. A single onboarding call loads the project guide, status, decisions, journal, file list and recent changes, letting a new conversation catch up immediately.MIT
- AlicenseNot gradedqualityBmaintenanceLets AI assistants find, read, write, version and share documents in a self-hosted internal content-sharing platform, acting only with the signed-in user's own OAuth permissions over local stdio or remote Streamable HTTP.2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.