Skip to main content
Glama

package_for_lola

DestructiveIdempotent

Wrap generated Ansible skills into a Lola-compatible module directory for marketplace or 'lola mod add' use. Copies skills into target module structure and writes market metadata.

Instructions

Wrap already-generated skills into a Lola-compatible module directory.

.. deprecated:: Prefer :func:package_as_plugin (Agent Plugins). Kept for one release cycle for backward compatibility.

Does not change generate_* output layout. Copies skills/{collection-kebab}/{skill}/ into {output_dir}/{module}/skills/{skill}/ for marketplace / lola mod add use. Replaces any existing skills/ tree under the target module directory (destructive but idempotent).

Returns: {"collection", "module_name", "module_dir", "skill_count", "skills", "market_yml"} or {"error": str} on failure.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
collectionYesCollection namespace whose generated skills to wrap (e.g. 'netbox.netbox').
output_dirYesParent directory where the Lola module directory will be created (e.g. '.' or '/tmp/lola-modules').
source_dirNoOptional skills root to read from. Defaults to ANSIBLE_KNOW_SKILLS_PATH or SKILLS_DIR (same roots as list_skills).
module_nameNoOptional Lola module directory name. Defaults to 'ansible-{collection-kebab}' (e.g. 'ansible-netbox-netbox').
write_market_ymlNoWhen true (default), write lola-market.yml with collection metadata beside the module skills/ tree.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

Annotations already indicate destructiveHint and idempotentHint. The description adds concrete details: it 'Replaces any existing ``skills/`` tree under the target module directory' and clarifies that the generate_* output layout is unchanged. This goes beyond the annotations by specifying exactly what is destroyed and the idempotent behavior.

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?

The description is concise, front-loaded with the primary purpose, and includes a deprecation note, behavior details, and return format in a compact manner. No wasted words, every sentence serves a purpose.

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?

Given the tool's complexity (5 parameters, 2 required, output schema present), the description covers the main behavioral aspects: purpose, destructive action, idempotency, and expected return. It doesn't explicitly state prerequisites (e.g., that skills must already be generated), but this is implied by 'already-generated skills' and is not a critical gap. The output schema handles return documentation.

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?

Schema description coverage is 100%, so the parameters are already well-documented. The description ties parameters together (e.g., output_dir and module_name in the copying path) but does not add significant new meaning beyond what the schema provides. Baseline of 3 is appropriate.

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?

The description clearly states the tool's purpose: 'Wrap already-generated skills into a Lola-compatible module directory.' It specifies the copying behavior and output format, and distinguishes from the sibling package_as_plugin by mentioning deprecation and preference.

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?

Explicit guidance is given: 'Prefer :func:`package_as_plugin` (Agent Plugins). Kept for one release cycle for backward compatibility.' This tells the agent when to use this tool versus the alternative, and also states the intended use case (marketplace / lola mod add).

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/leogallego/ansible-know-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server