Skip to main content
Glama

Server Details

Operation-level risk guidance for consolidated MCP tools, including schema drift and retry signals.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.6/5.0

Scored across 2 tools

Disambiguation1/5

The two tools have word-for-word identical descriptions, identical inputs, and identical return semantics (ALLOW/DENY/REQUIRE_APPROVAL). An agent has no basis for choosing between describe_operation_risk_service and evaluate_operation_risk, so misselection is essentially guaranteed or arbitrary.

Naming Consistency4/5

Both names use the same snake_case verb_noun_service pattern, so the surface is stylistically coherent. The only issue is that two different verbs (describe/evaluate) are applied to what is functionally the same operation, which is misleading given the duplicate descriptions.

Tool Count3/5

Two tools is thin but defensible for a narrow risk-classification service; a single evaluator plus maybe a capability-introspection call would be enough. However, the count is effectively one tool duplicated, which wastes surface rather than earning its place.

Completeness3/5

A single fail-closed risk evaluator covers the core stated purpose (checking an operation before execution), and the fail-closed default is a sensible fallback. Still, there is no batch evaluation, capability/coverage discovery, or policy-explanation operation, and the duplicated tool adds no coverage.

Available Tools

2 tools
describe_operation_risk_serviceDescribe MCP Operation RiskA
Read-onlyIdempotent
Inspect

Check whether the actual operation inside an MCP tool call is safe before execution. Use this when one MCP tool exposes multiple operations with different side effects, so whole-tool permissions are too coarse. Provide the native MCP server identity, the tool's tools/list metadata and the intended arguments. For supported consolidated tools, distinguish read, create/add, update/mutate and delete/destructive operations. Return ALLOW, DENY, or REQUIRE_APPROVAL. Unknown, unsupported, ambiguous, or schema-changed calls fail closed with REQUIRE_APPROVAL. The evaluator never executes the source operation.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context beyond that: fail-closed handling for unknown/ambiguous/schema-changed calls, and the fact that the evaluator never executes the source operation. It omits auth requirements, rate limits, or latency expectations.

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?

Six short sentences, front-loaded with the purpose and the routing condition before the behavioral notes. Most sentences earn their place, though the final two (fail-closed and non-execution) slightly overlap in intent.

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?

An output schema exists, so return values need not be re-explained, and the description still names the decision outcomes. However, the core gap is structural: the description assumes a rich input (server identity, tools/list metadata, arguments) that the empty schema cannot accept, leaving the agent without a coherent way to actually call the tool.

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?

The schema declares zero properties, which normally earns a baseline of 4, but the description instructs the caller to 'Provide the native MCP server identity, the tool's tools/list metadata and the intended arguments' — inputs that do not exist in the schema. This mismatch risks the agent attempting arguments that will be rejected, so the invocation guidance is not trustworthy even though no schema fields are left undocumented.

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 states a specific verb and resource ('Check whether the actual operation inside an MCP tool call is safe before execution') and clarifies the granularity it operates at (per-operation rather than per-tool). It does not, however, distinguish itself from its sibling 'evaluate_operation_risk', which sounds like it performs a very similar function.

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 a concrete triggering condition: 'Use this when one MCP tool exposes multiple operations with different side effects, so whole-tool permissions are too coarse.' This is a clear when-to-use statement. It never says when NOT to use it or when to prefer the sibling tool instead.

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

evaluate_operation_riskMCP Operation Risk CheckA
Read-onlyIdempotent
Inspect

Check whether the actual operation inside an MCP tool call is safe before execution. Use this when one MCP tool exposes multiple operations with different side effects, so whole-tool permissions are too coarse. Provide the native MCP server identity, the tool's tools/list metadata and the intended arguments. For supported consolidated tools, distinguish read, create/add, update/mutate and delete/destructive operations. Return ALLOW, DENY, or REQUIRE_APPROVAL. Unknown, unsupported, ambiguous, or schema-changed calls fail closed with REQUIRE_APPROVAL. The evaluator never executes the source operation.

NameRequiredDescriptionDefault
toolYesThe complete relevant Tool record returned by the source server's tools/list.
sourceYesMCP server and negotiated protocol identity for the source tool.
argumentsYesArguments intended for the source MCP tools/call request being evaluated. The evaluator does not execute that call.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/idempotent/non-destructive, and the description is consistent with them ('the evaluator never executes the source operation'). It goes well beyond by disclosing the decision vocabulary (ALLOW, DENY, REQUIRE_APPROVAL) and the fail-closed behavior for unknown, unsupported, ambiguous, or schema-changed calls.

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?

Front-loaded with the core action, then the trigger condition, required inputs, and return/failure semantics in tight, waste-free sentences. Every sentence carries decision-relevant information for the caller.

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 read-only evaluation tool with no output schema, the description supplies the missing return contract (ALLOW/DENY/REQUIRE_APPROVAL) and the fail-closed policy. Combined with 100% schema coverage on a nested-object input, nothing an agent needs to call it correctly is absent.

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 description coverage is 100%, so the schema already documents all three parameters and the baseline is 3. The description adds value by tying each input to its semantic role ('native MCP server identity, the tool's tools/list metadata and the intended arguments') and by noting the arguments are not executed.

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 and object: 'Check whether the actual operation inside an MCP tool call is safe before execution,' with a clear scoping rationale about per-operation vs whole-tool permissions. It is easy to tell apart from a generic safety tool, but it never names the sibling describe_operation_risk_service, so differentiation from that specific tool is left to inference.

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?

Gives an explicit trigger condition: use it 'when one MCP tool exposes multiple operations with different side effects, so whole-tool permissions are too coarse,' and tells the caller what inputs to supply. It stops short of naming the alternative tool or stating when not to use this one, so it is strong context without full routing.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedevaluate_operation_risk16 fields changed
      • addedInput schema / properties / arguments / description
        Added value: +"Arguments intended for the source MCP tools/call request being evaluated. The evaluator does not execute that call."
      • addedInput schema / properties / source / description
        Added value: +"MCP server and negotiated protocol identity for the source tool."
      • addedInput schema / properties / source / properties / protocol_version / description
        Added value: +"Negotiated MCP protocol version, or null when unavailable."
      • addedInput schema / properties / source / properties / server / description
        Added value: +"MCP server identity from the connection's initialize response."
      • addedInput schema / properties / source / properties / server / properties / name / description
        Added value: +"Name reported by the MCP server during initialize; used as a supported-manifest lookup hint."
      • addedInput schema / properties / source / properties / server / properties / version / description
        Added value: +"Server version reported during initialize, or null when unavailable."
      • addedInput schema / properties / tool / description
        Added value: +"The complete relevant Tool record returned by the source server's tools/list."
      • addedInput schema / properties / tool / properties / _meta / description
        Added value: +"Relevant tool metadata from tools/list, when present."
      • addedInput schema / properties / tool / properties / annotations / description
        Added value: +"Tool annotations from tools/list, such as read-only or destructive hints; use an empty object when absent."
      • addedInput schema / properties / tool / properties / description / description
        Added value: +"Tool description from tools/list, or null if the server omitted it."
      • addedInput schema / properties / tool / properties / execution / description
        Added value: +"Tool execution metadata from tools/list, when present."
      • addedInput schema / properties / tool / properties / icons / description
        Added value: +"Tool icons from tools/list, when present."
      • addedInput schema / properties / tool / properties / inputSchema / description
        Added value: +"Complete inputSchema from tools/list; used to validate the intended arguments and match a supported tool manifest."
      • addedInput schema / properties / tool / properties / name / description
        Added value: +"Exact tool name from the MCP server's tools/list response."
      • addedInput schema / properties / tool / properties / outputSchema / description
        Added value: +"Tool output schema from tools/list, when present."
      • addedInput schema / properties / tool / properties / title / description
        Added value: +"Tool title from tools/list, when provided by the server."
  2. 1 tool update
    • Changedevaluate_operation_risk13 fields changed
      • removedInput schema / $defs
        Removed value: -{
        -  "NativeServerIdentity": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "name": {
        -        "title": "Name",
        -        "type": "string"
        -      },
        -      "version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "title": "Version"
        -      }
        -    },
        -    "required": [
        -      "name",
        -      "version"
        -    ],
        -    "title": "NativeServerIdentity",
        -    "type": "object"
        -  },
        -  "NativeSource": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "protocol_version": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "title": "Protocol Version"
        -      },
        -      "server": {
        -        "$ref": "#/$defs/NativeServerIdentity"
        -      }
        -    },
        -    "required": [
        -      "server",
        -      "protocol_version"
        -    ],
        -    "title": "NativeSource",
        -    "type": "object"
        -  },
        -  "NativeToolRecord": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "_meta": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": true,
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Meta"
        -      },
        -      "annotations": {
        -        "additionalProperties": true,
        -        "title": "Annotations",
        -        "type": "object"
        -      },
        -      "description": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "title": "Description"
        -      },
        -      "execution": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": true,
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Execution"
        -      },
        -      "icons": {
        -        "anyOf": [
        -          {
        -            "items": {
        -              "additionalProperties": true,
        -              "type": "object"
        -            },
        -            "type": "array"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Icons"
        -      },
        -      "inputSchema": {
        -        "additionalProperties": true,
        -        "title": "Inputschema",
        -        "type": "object"
        -      },
        -      "name": {
        -        "title": "Name",
        -        "type": "string"
        -      },
        -      "outputSchema": {
        -        "anyOf": [
        -          {
        -            "additionalProperties": true,
        -            "type": "object"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Outputschema"
        -      },
        -      "title": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ],
        -        "default": null,
        -        "title": "Title"
        -      }
        -    },
        -    "required": [
        -      "name",
        -      "description",
        -      "inputSchema"
        -    ],
        -    "title": "NativeToolRecord",
        -    "type": "object"
        -  }
        -}
      • removedInput schema / properties / source / $ref
        Removed value: -"#/$defs/NativeSource"
      • addedInput schema / properties / source / additionalProperties
        Added value: +false
      • addedInput schema / properties / source / properties
        Added value: +{
        +  "protocol_version": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "title": "Protocol Version"
        +  },
        +  "server": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "name": {
        +        "title": "Name",
        +        "type": "string"
        +      },
        +      "version": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "title": "Version"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "version"
        +    ],
        +    "title": "NativeServerIdentity",
        +    "type": "object"
        +  }
        +}
      • addedInput schema / properties / source / required
        Added value: +[
        +  "server",
        +  "protocol_version"
        +]
      • addedInput schema / properties / source / title
        Added value: +"NativeSource"
      • addedInput schema / properties / source / type
        Added value: +"object"
      • removedInput schema / properties / tool / $ref
        Removed value: -"#/$defs/NativeToolRecord"
      • addedInput schema / properties / tool / additionalProperties
        Added value: +false
      • addedInput schema / properties / tool / properties
        Added value: +{
        +  "_meta": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "title": "Meta"
        +  },
        +  "annotations": {
        +    "additionalProperties": true,
        +    "title": "Annotations",
        +    "type": "object"
        +  },
        +  "description": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "title": "Description"
        +  },
        +  "execution": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "title": "Execution"
        +  },
        +  "icons": {
        +    "anyOf": [
        +      {
        +        "items": {
        +          "additionalProperties": true,
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "title": "Icons"
        +  },
        +  "inputSchema": {
        +    "additionalProperties": true,
        +    "title": "Inputschema",
        +    "type": "object"
        +  },
        +  "name": {
        +    "title": "Name",
        +    "type": "string"
        +  },
        +  "outputSchema": {
        +    "anyOf": [
        +      {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "title": "Outputschema"
        +  },
        +  "title": {
        +    "anyOf": [
        +      {
        +        "type": "string"
        +      },
        +      {
        +        "type": "null"
        +      }
        +    ],
        +    "default": null,
        +    "title": "Title"
        +  }
        +}
      • addedInput schema / properties / tool / required
        Added value: +[
        +  "name",
        +  "description",
        +  "inputSchema"
        +]
      • addedInput schema / properties / tool / title
        Added value: +"NativeToolRecord"
      • addedInput schema / properties / tool / type
        Added value: +"object"
  3. 1 tool update
    • Addedevaluate_operation_risk
  4. 1 tool update
    • First observeddescribe_operation_risk_service

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Signed, offline-verifiable authorization for API-contract changes. Before a contract change (OpenAPI, GraphQL, Protobuf, AsyncAPI, MCP manifests) merges or deploys, the agent calls preflight_change_set; the decision is deterministic, signed, and verifiable without calling CodeRifts. Three tools: preflight_change_set, verify_receipt, get_decision_details. Only a granted change can proceed.
    5 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to securely call MCP tools with risk scoring, checkpoints, rollback, and approval workflows.
    13 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources