Skip to main content
Glama
speedofred

io.github.speedofred/ami-survey

by speedofred

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
AMI_API_TOKENNoAn existing API token to use instead of registering a new one. If not provided, a token is registered on first call and stored at ~/.ami-survey/token.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
ami_survey_beginA

Open an AMI survey for the workflow you have just completed. Detects the runtime, session and measurement window automatically, and adopts any stage markers you buffered with ami_mark_stage while working. Call this FIRST, after the workflow's real work is finished, so the survey's own token spend is excluded from the measurements.

ami_collect_telemetryA

Measure the workflow run: detects which agent runtime you are in, reads that runtime's own call records (token usage, model, timings reported by the provider), attributes each call to a stage or observed execution phase, and stores the result on the run. Returns the collected inventory fields. Use these numbers verbatim. If your runtime has no adapter, this says so and you should use ami_record_calls instead.

ami_record_callsA

Telemetry entry point for agents NOT running in Claude Code. Post the provider-reported usage for each API call the workflow made. Every record needs model, start_time, end_time, input_tokens, output_tokens - values read from real API responses, never estimated.

ami_mark_stageA

Declare the workflow stage you are entering, e.g. 'Classify Severity' or 'Draft Customer Reply'. Call it as you move through the workflow to get a declared-stage Agent Effort Profile; without markers the profile falls back to AMI-observed execution phases. No survey run is needed first: markers emitted before ami_survey_begin are buffered with the timestamp you emitted them at and attached to the run when it opens. When the last stage is done, call once more with closes=true - each marker ends the stage before it, so without a closing one the final stage runs to the end of the measurement window and absorbs everything you do afterwards.

ami_get_grading_scaleA

Return the AMI output-quality grading scale. Read this before grading: agent_output_grade must be one of its codes and is validated on submit.

ami_get_workflow_categoriesA

The workflow categories a run may declare itself into, and what each one covers. A category decides which other workflows this run is compared against, so read the list rather than inventing a label.

ami_get_scorecardA

The scorecard for a submitted run: the AMI Maturity Index, the Performance Score, the five pillars, and structured findings. Every number and finding is computed from the run's own data - the server calls no model. If a human wants this read back as prose, write it yourself from narration_brief.findings, following the instructions there.

ami_write_findingsA

Write the judgement sections of a run's scorecard. The server computes every number and the three sections that follow from them; these four are readings of the work that no arithmetic produces, so they are yours to write. Call ami_get_scorecard first and use narration_brief.sections_awaiting_you - it carries the brief for each. Ground every sentence in the run's own evidence; do not invent industry context you were not given.

ami_get_instructionsA

Return the AMI survey procedure as markdown. Call this FIRST if your harness has no skill mechanism that already gave you the procedure - it tells you the call order and, for your runtime, how telemetry is obtained. Claude Code agents already have it as a skill and do not need this.

ami_get_surveyA

Return the survey definition: every field from Collection_Inventory.csv, how each one is obtained, and which ones you must answer yourself.

ami_survey_statusA

Show the current values collected for the active run, which inventory fields are still empty, and what is blocking submission.

ami_submit_surveyA

Submit and persist the survey. Requires a grade from the AMI grading scale, a justification, and evidence (the concrete artifacts produced). Writes JSON + Markdown + a CSV index row to disk and returns the paths.

ami_get_reportA

Render the human-readable Markdown report for a run (defaults to the active run). With no run and no active run, returns the index of all submitted surveys.

ami_list_surveysA

List all submitted survey responses and where they are stored.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 14 tools

Disambiguation4/5

Tools are mostly distinct: telemetry has two entry points (ami_collect_telemetry vs ami_record_calls) that could be confused, but descriptions clearly separate by runtime. Other tools target distinct actions (begin, mark, submit, status, etc.).

Naming Consistency4/5

All tools follow the 'ami_' prefix plus clear verb_noun pattern (e.g., ami_get_scorecard, ami_write_findings, ami_submit_survey). Minor deviation: ami_survey_begin uses noun_verb instead of strict verb_noun, but overall consistent.

Tool Count5/5

14 tools is well within the sweet spot for a domain as complex as survey instrumentation and reporting. Each tool serves a distinct lifecycle step (setup, telemetry, grading, submission, reporting), and none feel redundant.

Completeness4/5

The tool surface covers the full survey lifecycle: begin, collect telemetry, mark stages, get instructions/scale/survey, check status, write findings, submit, and retrieve reports/lists. Minor gap: no explicit tool for updating or amending a run after submission, but that is not core to the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues