oas2mcp.agent.enhancer.models

Structured models for the operation enhancer agent.

Purpose:

Define deterministic input and structured output models for refining one normalized API operation into a more MCP-friendly representation.

Design:
  • Keep these models specific to the enhancer workflow.

  • Separate deterministic context objects from LLM-produced enhancement outputs.

  • Treat deterministic MCP classification data as hints rather than final truth.

  • Preserve enough detail for naming, auth, confirmation, and later export.

Examples

enhancement = OperationEnhancement(
    operation_key="POST /pet",
    operation_slug="addpet",
    final_kind="tool",
    title="Create pet",
    description="Create a new pet record.",
    requires_confirmation=False,
)

Classes

EnhancementPromptCandidate

Suggested prompt template for an enhanced operation.

OperationEnhancement

Structured enhancement result for one operation.

OperationEnhancementContext

Deterministic agent-facing context for one operation.

ResolvedSchemaContext

Resolved schema context for one schema reference.

SecuritySchemeContext

Compact security scheme details used by the enhancer.

Module Contents

class oas2mcp.agent.enhancer.models.EnhancementPromptCandidate(/, **data: Any)[source][source]

Bases: oas2mcp.models.normalized.NormalizedBaseModel

Suggested prompt template for an enhanced operation.

Parameters:

None.

Returns:

None.

Raises:

None.

Examples

prompt = EnhancementPromptCandidate(
    name="create-pet",
    title="Create pet",
    description="Create a new pet safely.",
)
arguments: list[str] = None[source][source]
description: str[source][source]
meta: dict[str, Any] = None[source][source]
name: str[source][source]
tags: list[str] = None[source][source]
template: str | None = None[source][source]
title: str[source][source]
version: str | None = None[source][source]
class oas2mcp.agent.enhancer.models.OperationEnhancement(/, **data: Any)[source][source]

Bases: oas2mcp.models.normalized.NormalizedBaseModel

Structured enhancement result for one operation.

Parameters:

None.

Returns:

None.

Raises:

None.

Examples

enhancement = OperationEnhancement(
    operation_key="POST /pet",
    operation_slug="addpet",
    final_kind="tool",
    title="Create pet",
    description="Create a new pet record.",
)
auth_notes: str | None = None[source][source]
component_annotations: dict[str, Any] = None[source][source]
component_meta: dict[str, Any] = None[source][source]
component_name: str | None = None[source][source]
component_tags: list[str] = None[source][source]
component_version: str | None = None[source][source]
description: str[source][source]
final_kind: oas2mcp.models.mcp.McpCandidateKind[source][source]
namespace: str | None = None[source][source]
notes: list[str] = None[source][source]
operation_id: str | None = None[source][source]
operation_key: str[source][source]
operation_slug: str[source][source]
prompt_templates: list[EnhancementPromptCandidate] = None[source][source]
requires_confirmation: bool = False[source][source]
resource_uri: str | None = None[source][source]
title: str[source][source]
tool_name: str | None = None[source][source]
class oas2mcp.agent.enhancer.models.OperationEnhancementContext(/, **data: Any)[source][source]

Bases: oas2mcp.models.normalized.NormalizedBaseModel

Deterministic agent-facing context for one operation.

Parameters:

None.

Returns:

None.

Raises:

None.

Examples

context = OperationEnhancementContext(
    catalog_name="Petstore",
    catalog_slug="petstore",
    source_uri="https://example.com/openapi.json",
    catalog_summary_purpose="Manage pets and orders.",
    catalog_domains=["pet", "store", "user"],
    operation_key="POST /pet",
    operation_slug="addpet",
    method="POST",
    path="/pet",
    candidate_kind_hint="tool",
)
candidate_kind_hint: str[source][source]
candidate_prompt_templates: list[EnhancementPromptCandidate] = None[source][source]
candidate_requires_confirmation_hint: bool = False[source][source]
candidate_resource_uri_hint: str | None = None[source][source]
candidate_tool_name_hint: str | None = None[source][source]
catalog_domains: list[str] = None[source][source]
catalog_name: str[source][source]
catalog_slug: str[source][source]
catalog_summary_purpose: str[source][source]
description: str | None = None[source][source]
method: str[source][source]
operation_id: str | None = None[source][source]
operation_key: str[source][source]
operation_slug: str[source][source]
path: str[source][source]
path_parameter_names: list[str] = None[source][source]
query_parameter_names: list[str] = None[source][source]
request_schema_refs: list[str] = None[source][source]
resolved_schemas: list[ResolvedSchemaContext] = None[source][source]
response_schema_refs: list[str] = None[source][source]
security_schemes: list[SecuritySchemeContext] = None[source][source]
server_urls: list[str] = None[source][source]
source_uri: str[source][source]
summary: str | None = None[source][source]
tags: list[str] = None[source][source]
class oas2mcp.agent.enhancer.models.ResolvedSchemaContext(/, **data: Any)[source][source]

Bases: oas2mcp.models.normalized.NormalizedBaseModel

Resolved schema context for one schema reference.

Parameters:

None.

Returns:

None.

Raises:

None.

Examples

schema_context = ResolvedSchemaContext(
    schema_ref="#/components/schemas/Pet",
    schema_object={"type": "object"},
)
schema_object: dict = None[source][source]
schema_ref: str[source][source]
class oas2mcp.agent.enhancer.models.SecuritySchemeContext(/, **data: Any)[source][source]

Bases: oas2mcp.models.normalized.NormalizedBaseModel

Compact security scheme details used by the enhancer.

Parameters:

None.

Returns:

None.

Raises:

None.

Examples

scheme = SecuritySchemeContext(
    name="petstore_auth",
    type="oauth2",
    flow_names=["implicit"],
)
bearer_format: str | None = None[source][source]
flow_names: list[str] = None[source][source]
location: str | None = None[source][source]
name: str[source][source]
parameter_name: str | None = None[source][source]
scheme: str | None = None[source][source]
type: str[source][source]