Skip to main content
Glama
Mr-Lucasz

Conversational API Test MCP

by Mr-Lucasz

convert_legacy_to_canonical

Convert Postman, OpenAPI/Swagger, or Insomnia exports into YAML under .mcp/api, while moving credentials to .env.mcp.local and replacing them with {{VARIABLE}}.

Instructions

Turn a Postman collection, an OpenAPI/Swagger spec or an Insomnia export into a YAML definition under .mcp/api/. Give legacyRelativePath for a file in the workspace, or legacyContent with the JSON/YAML text the user pasted. Literal credentials found in headers or auth are moved to .env.mcp.local and replaced by {{VARIABLE}}. Refuses to replace an existing file unless overwrite is true. Apidog: export as OpenAPI or Postman first.

Input Schema

NameRequiredDescriptionDefault
overwriteNoReplace outputRelativePath if it already exists.
serviceNameNo
legacyContentNoThe collection / spec itself (JSON or YAML text), when the user pasted it instead of pointing at a file. Provide this or legacyRelativePath.
workspaceRootNoAbsolute project path (optional when MCP_WORKSPACE_ROOT is set).
legacyRelativePathNoPath to a Postman / OpenAPI / Insomnia file in the workspace.
outputRelativePathNoWhere to write, under .mcp/api/. Defaults to .mcp/api/imported.yaml

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does so substantively: credentials in headers/auth are relocated to `.env.mcp.local` and replaced with `{{VARIABLE}}`, and the tool refuses to overwrite unless `overwrite` is true. Missing only error/permission behavior and what a successful result looks like.

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?

Roughly five tight sentences, front-loaded with the core transformation, then input selection, side effects, safety rule, and a source-specific caveat. No filler.

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?

Covers inputs, side effects, and output location well for a 6-param tool with no annotations. With no output schema, the description could say more about the return value/confirmation an agent should expect, which is the one remaining gap.

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 83% so the baseline is 3, and the description adds value beyond the schema by framing the legacyRelativePath/legacyContent alternation as an either/or and spelling out the overwrite refusal semantics. It does not clarify `serviceName` or `workspaceRoot`, leaving a small gap.

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 transformation (Postman/OpenAPI/Insomnia → YAML under `.mcp/api/`) with a clear verb and resource. An agent can distinguish this from siblings like import_curl, list_api_definitions, and upsert_canonical_api_definition immediately.

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?

Explicitly routes the agent between `legacyRelativePath` (file in workspace) and `legacyContent` (pasted text), and adds the Apidog prerequisite ('export as OpenAPI or Postman first'). No exclusion against sibling import tools (e.g., import_curl), which keeps it from a 5.

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