Skip to main content
Glama

Can these licenses be combined?

license_compatibility
Read-onlyIdempotent

Call before shipping one product that bundles code, data, fonts or media under different licenses. Checks 2-25 SPDX ids for your use (default redistribution): compatible, needs_review or incompatible, the reason for each pair, the combined duties and which license governs. Free, no key. Call with {"licenses": ["MIT", "GPL-3.0-only"], "intended_use": {"redistribution": true}}.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "licenses": "<licenses>"
    },
    "name": "license_compatibility"
  }
}

Input Schema

NameRequiredDescriptionDefault
licensesYesSPDX ids
intended_useNoUses to check: each true flag must be documented; omitted = false; unknown fields refused. For instance {"commercial_use":true}

Output Schema

NameRequiredDescriptionDefault
pairsYes
verdictYes
combined_dutiesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / intended_use / description
      Previous value: -"Intended use: every true flag is a right the check must find documented; omitted flags are false; unknown fields are refused. For instance {\"commercial_use\":true,\"deployment\":true,\"attribution_planned\":true,\"duration_days\":365}"New value: +"Uses to check: each true flag must be documented; omitted = false; unknown fields refused. For instance {\"commercial_use\":true}"
    • addedInput schema / properties / licenses / description
      Added value: +"SPDX ids"
  2. Changed1 schema field changed
    • changedInput schema / properties / intended_use / description
      Previous value: -"Intended use. Every true flag is a right the assessment must find documented; omitted flags are false. Unknown fields are refused (invalid_intended_use). For instance {\"commercial_use\":true,\"deployment\":true,\"attribution_planned\":true,\"duration_days\":365}"New value: +"Intended use: every true flag is a right the check must find documented; omitted flags are false; unknown fields are refused. For instance {\"commercial_use\":true,\"deployment\":true,\"attribution_planned\":true,\"duration_days\":365}"
  3. Changed2 schema fields changed
    • addedOutput schema / properties
      Added value: +{
      +  "combined_duties": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "pairs": {
      +    "items": {
      +      "properties": {
      +        "verdict": {
      +          "enum": [
      +            "compatible",
      +            "needs_review",
      +            "conflict"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  "verdict": {
      +    "enum": [
      +      "compatible",
      +      "needs_review",
      +      "incompatible"
      +    ]
      +  }
      +}
    • addedOutput schema / required
      Added value: +[
      +  "verdict",
      +  "pairs"
      +]
  4. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, closed-world and non-destructive behavior, so the description's added value is the operational detail: free with no API key required, default intended_use is redistribution, and the response contains verdicts, per-pair reasons, combined duties and the governing license. No rate limits or failure modes are mentioned, so it stops short of 5.

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?

Four tight sentences ordered as: when to call, what it returns, cost/auth, and an example call. No filler, and the trigger condition is front-loaded.

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 nested two-parameter tool with a full output schema and complete annotations, the description supplies everything needed to invoke it correctly: input bounds, default intended_use semantics, cost/auth, and the shape of the result.

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%, which sets a baseline of 3. The description goes slightly beyond by giving a concrete invocation with a nested intended_use object and stating the default use case (redistribution), which helps wire the nested object correctly.

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

Purpose5/5

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

States a specific verb and resource: checks 2-25 SPDX ids for combination compatibility across a bundle, returning per-pair verdicts, reasons, combined duties and the governing license. The bundle/multi-license scope implicitly distinguishes it from single-license siblings like check_license, so an agent can route correctly.

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?

"Call before shipping one product that bundles code, data, fonts or media under different licenses" gives a clear trigger condition and prerequisites (2-25 ids). It does not name a sibling alternative or state when NOT to use it, keeping it below a 5.

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