Skip to main content
Glama
mcp-server-scf

mcp-server-scf

by MarkAC007

scf_assessment_write

Queue and review AI evidence assessments for files or windows, refresh stale assessments, confirm or override verdicts, and set window acceptance status.

Instructions

Run and review AI evidence assessments (editor+, async): assess a file or many, assess a window or many, refresh stale windows, confirm or override verdicts, set window acceptance.

Input Schema

NameRequiredDescriptionDefault
ewa_idNoWindow assessment UUID — obtain from scf_list_window_assessments Used by: review_window.
methodYesassess_file: Queue an AI assessment of one evidence file (write — editor+, async); poll scf_get_evidence_assessment. Judged against the catalogue's mapped controls, which may include controls not in scope. assess_files_bulk: Queue AI assessments for multiple evidence files (write — editor+ role, async, max 50). Provide evidence_id, file_ids, and/or assess_unassessed. Returns count queued. review_file_verdict: Record a human decision on a file's current AI assessment (write — editor role). confirmed keeps the verdict; overridden needs a reason and at least one objective re-designation. assess_window: Queue a windowed AI assessment of every file in the item's frequency window as one portfolio (write — editor+, async). 422 without tracking/frequency. Judged against catalogue-mapped controls. assess_windows_bulk: Queue windowed AI assessments for up to 25 evidence IDs (write — editor+ role, async). Items without tracking or a frequency set are reported under `skipped_detail` in the response. refresh_stale_windows: Queue a fresh windowed AI assessment for every evidence item whose newest file postdates its last assessment (write — editor role). Capped per run; returns how many were queued. review_window: Set a windowed assessment's acceptance review (write — editor): approved, rejected (raises a deficiency per in-scope control), needs_revision, or not_reviewed to revoke. review_window_verdict: Confirm or override a window's current AI verdict (write — editor role). overridden needs a reason and ≥1 objective re-designation. One decision per version; 422 without objectives: confirm.
org_idYesOrganization UUID — obtain from scf_list_organizations
reasonNoWhy the verdict is overridden — required when decision is overridden Used by: review_file_verdict, review_window_verdict.
file_idNoEvidence file UUID — obtain from scf_list_evidence_files Used by: assess_file, review_file_verdict.
decisionNoconfirmed = AI verdict stands; overridden = you are changing it Used by: review_file_verdict, review_window_verdict.
file_idsNoSpecific evidence file UUIDs to assess Used by: assess_files_bulk.
evidence_idNoEvidence ID (e.g., 'ERL-IAM-001') — obtain from scf_list_evidence [assess_file] | Evidence ID — assesses every file under this evidence item [assess_files_bulk] | Catalog evidence ID the file belongs to, e.g. E-IAM-01 [review_file_verdict] | Evidence ID (e.g., 'E-IAM-01'). Tracking row with a frequency must exist — set via scf_update_evidence first [assess_window] Used by: assess_file, assess_files_bulk, review_file_verdict, assess_window.
ao_overridesNoObjectives to re-designate — required (≥1) when overriding, forbidden when confirming; unlisted objectives keep the AI's designation. 422 if the version has no per-objective answers: confirm instead Used by: review_file_verdict, review_window_verdict.
evidence_idsNoEvidence IDs to assess (e.g., ['E-IAM-01','E-BCM-11']); 1–25 per request Used by: assess_windows_bulk.
review_notesNoReviewer notes Used by: review_window.
assessment_idNoWindow assessment UUID — obtain from scf_get_assessment_review_queue (window_assessment_id) or scf_list_window_assessments Used by: review_window_verdict.
review_statusNoReview state to set; not_reviewed revokes Used by: review_window.
assess_unassessedNoAlso assess every file that has no existing assessment (default false) Used by: assess_files_bulk.
assessment_sourceNoOrigin tag for the request (default on_demand) Used by: assess_file, assess_window.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv4.1.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false; the description adds the editor+ role requirement and the async/queued nature, which the annotations do not cover. It omits the more consequential behaviors — that rejecting a window raises deficiencies, that verdict decisions are version-bound, that bulk calls cap at 50/25 — leaving those to the schema. Notably, 'rejected raises a deficiency per in-scope control' is a side effect sitting under destructiveHint=false, but that disclosure exists in the schema rather than contradicting the description text.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that compresses eight dispatch methods into parallel clauses ('assess a file or many, assess a window or many'), with no wasted words and the permission/async qualifier placed high.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter polymorphic dispatcher with no output schema, the description is thin: it never states that exactly one method must be chosen and that required parameters vary by method, nor what each method returns (counts, skipped_detail, poll targets). The schema carries most of that load, so the definition is workable, but the top-level description does not fully prepare an agent for method dispatch.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the enum descriptions already tag each parameter with its applicable method ('Used by: ...'), including prerequisites and 422 conditions. The description contributes no parameter semantics beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Run and review AI evidence assessments') and enumerates the eight concrete operations (assess file/window, bulk, refresh stale, confirm/override verdicts, set acceptance). The '(write)' title and the tool name separate it from scf_assessment_read, though the description never names that read sibling as the alternative, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'(editor+, async)' tells the agent the required role and that operations are queued rather than synchronous, which is real selection context. However, no when-to-use guidance appears in the description itself — the per-method routing (which method to pick, what to poll afterward, when to skip) lives entirely in the schema's enum descriptions, so the description alone only implies usage.

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