Skip to main content
Glama
orjahren

Nettskjema MCP Server

by orjahren

update_form_settings

Update specific settings on an existing Nettskjema form using partial changes, with local key validation and clear reporting of any rejected settings.

Instructions

Update one or more settings on an existing form.

This endpoint accepts partial updates: only the settings included in the settings dict will be updated. A 207 Multi-Status response means some settings were applied and others were rejected; this is reported as an error listing the failed settings.

The settings dict is validated as a partial FormSettingsDTO before the request is sent. Required-field constraints are relaxed for partial updates, but unknown keys are rejected locally to catch typos and flag fields that are newer than the vendored spec snapshot.

Input Schema

NameRequiredDescriptionDefault
form_idYesThe form's numeric ID.
settingsYesA dict of settings to update. Only the settings included are changed.
force_cleanupNoWhether to force cleanup of conflicting settings.

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations to lean on, the description carries the full burden and delivers: partial-apply semantics, a 207 Multi-Status partial-failure mode surfaced as an error, local partial-DTO validation with relaxed required fields, and local rejection of unknown keys. These are non-obvious runtime behaviors an agent could not infer from the schema.

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

Conciseness4/5

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

Front-loaded with the core action in sentence one, then layered detail on partial updates and validation. Every sentence adds something, though the block is longer than strictly needed for a 3-parameter tool.

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

Completeness5/5

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

For a mutation tool with no annotations and a nested settings object, the description covers the mutation scope, partial-failure reporting, and client-side validation behavior. Return values are covered by the output schema, so nothing essential is missing.

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

Parameters4/5

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

Schema coverage is 100%, so 3 is the baseline, but the description adds real meaning for the `settings` dict: it is validated as a partial FormSettingsDTO, required constraints are relaxed, and unknown keys are rejected locally. That is more than the schema's one-line 'dict of settings' note, though `force_cleanup` is left unexplained.

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?

States a specific verb (update) and resource (settings on an existing form), with a clear scope ('one or more settings'). It does not explicitly name the sibling it differs from (e.g., get_form_settings or get_form_settings_validation), but the verb makes the intent unambiguous.

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

Usage Guidelines4/5

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

Explains the partial-update contract (only keys present are changed) and the 207 Multi-Status outcome, which is exactly the context an agent needs before choosing this over a replace/put-style sibling. It stops short of naming explicit alternatives or when-not-to-use conditions.

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