Skip to main content
Glama

Oxyo (oxyo.si) — Cut Coding Agent Token & Quota Burn by up to 72%

oxyo_skill_register

Idempotent

Validate and persist a reusable Python function into the skill library only after 100% of supplied test_cases pass in isolation, returning verification status. Use to save new tested utilities; use oxyo_skill_invoke to list or execute existing skills.

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": {
      "name": "<name>",
      "entrypoint": "<entrypoint>",
      "description": "<description>",
      "code": "<code>",
      "test_cases": "<test_cases>"
    },
    "name": "oxyo_skill_register"
  }
}

Input Schema

NameRequiredDescriptionDefault
codeYesPure standard-library Python source defining the `entrypoint` function.
nameYesUnique snake_case identifier for the reusable skill.
entrypointYesTop-level Python function name inside `code` invoked when running the skill.
test_casesYesNon-empty list of test objects {'args': [...], 'expected': ...} verified before saving.
descriptionYesClear summary of inputs, algorithm, and return value for future discovery.
uses_skillsNoOptional names of previously registered skills composed by this function.
share_collectiveNoAllow sharing anonymized verified utility patterns with the collective skill pool.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed7 schema fields changed
    • addedInput schema / properties / code / description
      Added value: +"Pure standard-library Python source defining the `entrypoint` function."
    • addedInput schema / properties / description / description
      Added value: +"Clear summary of inputs, algorithm, and return value for future discovery."
    • addedInput schema / properties / entrypoint / description
      Added value: +"Top-level Python function name inside `code` invoked when running the skill."
    • addedInput schema / properties / name / description
      Added value: +"Unique snake_case identifier for the reusable skill."
    • addedInput schema / properties / share_collective / description
      Added value: +"Allow sharing anonymized verified utility patterns with the collective skill pool."
    • addedInput schema / properties / test_cases / description
      Added value: +"Non-empty list of test objects {'args': [...], 'expected': ...} verified before saving."
    • changedInput schema / properties / uses_skills / description
      Previous value: -"Optional names of existing verified skills called by this skill"New value: +"Optional names of previously registered skills composed by this function."
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare non-readOnly, non-destructive, idempotent, closed-world behavior, yet the description adds the crucial gate that persistence happens only after 100% of test_cases pass in isolation, plus that verification status is returned. It stops short of saying what happens to a failed validation run (e.g., whether code is discarded, partial state) or how re-registering an existing name behaves, despite the idempotentHint.

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?

Two sentences, no filler, with the gating rule and the sibling routing front-loaded. Every clause carries either mechanism or routing information.

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?

For a 7-parameter mutation tool with no output schema, the description covers the essential precondition, the resulting side effect (persisting into the skill library), and the returned status. It lacks detail on failure paths and on the share_collective / uses_skills side effects, which are only in the schema.

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 the baseline is 3, but the description adds genuine meaning about test_cases: they must all pass 'in isolation' and act as a precondition for persistence, which is execution semantics the schema does not convey. The other parameters (uses_skills, share_collective) get no elaboration beyond their schema text.

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 compound verb and resource: 'Validate and persist a reusable Python function into the skill library.' It also names the sibling it is not (oxyo_skill_invoke) and its domain (listing/executing existing skills), so an agent can discriminate without opening either schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use ('Use to save new tested utilities') and an explicit alternative with its condition ('use oxyo_skill_invoke to list or execute existing skills'). The implicit when-not (untested or existing skills) follows directly from the stated gating rule.

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.