Skip to main content
Glama

Reading Nansen feedback preferences

get_feedback_preferences
Read-only

Read the authenticated account's saved automatic feedback preference. Free; no report quota.

Before a new automatic report about useful Nansen friction, draft a concise report without secrets or unnecessary conversation details and call this tool. Enabled permits sending subject to host and local-deny controls and account rollout. If off, unconfigured or unavailable, show the report and ask first. Refusal, host denial or inability to ask means no submission. An explicit request or approval permits only that report. Never enable the preference automatically. Direct lasting changes to Superapp settings. Reads are fresh, use this account only, and do not authorize another account or server key.

Input Schema

NameRequiredDescriptionDefault
requestYes

Output Schema

NameRequiredDescriptionDefault
errorNo
receiptNo
successYes
next_actionYes
preferencesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / error / anyOf
      Previous value: -[
      -  {
      -    "properties": {
      -      "code": {
      -        "title": "Code",
      -        "type": "string"
      -      },
      -      "quota": {
      -        "anyOf": [
      -          {
      -            "properties": {
      -              "limit": {
      -                "const": 7,
      -                "title": "Limit",
      -                "type": "integer"
      -              },
      -              "remaining": {
      -                "maximum": 7,
      -                "minimum": 0,
      -                "title": "Remaining",
      -                "type": "integer"
      -              },
      -              "resets_at": {
      -                "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$",
      -                "title": "Resets At",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "limit",
      -              "remaining",
      -              "resets_at"
      -            ],
      -            "title": "FeedbackQuota",
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "reason": {
      -        "title": "Reason",
      -        "type": "string"
      -      },
      -      "request_id": {
      -        "anyOf": [
      -          {
      -            "maxLength": 128,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9_-]+$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Request Id"
      -      },
      -      "retry_after": {
      -        "anyOf": [
      -          {
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Retry After"
      -      },
      -      "status": {
      -        "anyOf": [
      -          {
      -            "type": "integer"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Status"
      -      },
      -      "submission_id": {
      -        "anyOf": [
      -          {
      -            "maxLength": 128,
      -            "minLength": 1,
      -            "pattern": "^[A-Za-z0-9_-]+$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null,
      -        "title": "Submission Id"
      -      }
      -    },
      -    "required": [
      -      "code",
      -      "reason"
      -    ],
      -    "title": "FeedbackError",
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "code": {
      +        "title": "Code",
      +        "type": "string"
      +      },
      +      "errors": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "description": "One field that failed validation. It never contains the field value.",
      +              "properties": {
      +                "code": {
      +                  "title": "Code",
      +                  "type": "string"
      +                },
      +                "field": {
      +                  "title": "Field",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "field",
      +                "code"
      +              ],
      +              "title": "FeedbackFieldError",
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Errors"
      +      },
      +      "quota": {
      +        "anyOf": [
      +          {
      +            "properties": {
      +              "limit": {
      +                "const": 7,
      +                "title": "Limit",
      +                "type": "integer"
      +              },
      +              "remaining": {
      +                "maximum": 7,
      +                "minimum": 0,
      +                "title": "Remaining",
      +                "type": "integer"
      +              },
      +              "resets_at": {
      +                "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$",
      +                "title": "Resets At",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "limit",
      +              "remaining",
      +              "resets_at"
      +            ],
      +            "title": "FeedbackQuota",
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "reason": {
      +        "title": "Reason",
      +        "type": "string"
      +      },
      +      "request_id": {
      +        "anyOf": [
      +          {
      +            "maxLength": 128,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9_-]+$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Request Id"
      +      },
      +      "retry_after": {
      +        "anyOf": [
      +          {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Retry After"
      +      },
      +      "status": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Status"
      +      },
      +      "submission_id": {
      +        "anyOf": [
      +          {
      +            "maxLength": 128,
      +            "minLength": 1,
      +            "pattern": "^[A-Za-z0-9_-]+$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "title": "Submission Id"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "reason"
      +    ],
      +    "title": "FeedbackError",
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Added

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/destructiveHint/openWorldHint, yet the description adds real behavior: it is free with no report quota, reads are fresh, scope is the current account only, and the preference must never be enabled automatically. The trailing 'Direct lasting changes to Superapp settings' fragment is confusing on a read-only tool and reads like a truncated negation.

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

Conciseness3/5

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

The purpose is front-loaded, but the body is a dense block of consent policy and includes an ambiguous fragment ('Direct lasting changes to Superapp settings') that costs comprehension. Much of the policy is legitimate, but it is not organized for scanning.

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

Completeness4/5

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

An output schema exists, so return values needn't be explained, and the description covers the consent and scoping context thoroughly. The only real gap is the undocumented required 'request' parameter.

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

Parameters2/5

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

Schema description coverage is 0% and there is a required 'request' object with no properties. The description says nothing about what goes in it or why it is required and empty, so the parameter is undocumented in both places.

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 opening sentence states a specific verb and resource: 'Read the authenticated account's saved automatic feedback preference.' That is enough to separate it from siblings like get_feedback and submit_feedback, though the description never names those siblings to reinforce the distinction.

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?

It gives an explicit trigger ('Before a new automatic report about useful Nansen friction... call this tool') and spells out outcome branches (enabled permits sending subject to controls; off/unconfigured means show and ask first). It does not explicitly compare against get_feedback, which is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources