oas2mcp.models.mcp

MCP preparation models.

Purpose:

Define structured intermediate models used to classify normalized OpenAPI operations into MCP-oriented candidates before any agent enhancement step.

Design:
  • Keep the first pass deterministic and lightweight.

  • Represent only the metadata needed before runtime/server generation.

  • Make these models suitable as structured output targets for later agents.

Examples

candidate = McpCandidate(
    operation_key="GET /pets/{petId}",
    kind="tool",
    title="Get pet by ID",
)

Attributes

Classes

McpBundle

A collection of MCP candidates for one catalog.

McpCandidate

A deterministic MCP candidate derived from one operation.

McpPromptTemplate

A suggested prompt template derived from an API operation.

Module Contents

class oas2mcp.models.mcp.McpBundle(/, **data: Any)[source][source]

Bases: oas2mcp.models.normalized.NormalizedBaseModel

A collection of MCP candidates for one catalog.

Parameters:

None.

Returns:

None.

Raises:

None.

Examples

bundle = McpBundle(
    catalog_name="Petstore",
    candidates=[],
)
candidates: list[McpCandidate] = None[source][source]
catalog_name: str[source][source]
catalog_slug: str[source][source]
class oas2mcp.models.mcp.McpCandidate(/, **data: Any)[source][source]

Bases: oas2mcp.models.normalized.NormalizedBaseModel

A deterministic MCP candidate derived from one operation.

Parameters:

None.

Returns:

None.

Raises:

None.

Examples

candidate = McpCandidate(
    operation_key="GET /pets/{petId}",
    kind="tool",
    title="Get pet by ID",
    description="Retrieve a pet by its ID.",
)
auth_notes: str | None = None[source][source]
auth_scheme_names: list[str] = None[source][source]
description: str[source][source]
kind: McpCandidateKind[source][source]
notes: list[str] = None[source][source]
operation_key: str[source][source]
operation_slug: str[source][source]
prompt_templates: list[McpPromptTemplate] = None[source][source]
requires_confirmation: bool = False[source][source]
resource_uri: str | None = None[source][source]
safety_level: McpSafetyLevel[source][source]
title: str[source][source]
tool_name: str | None = None[source][source]
class oas2mcp.models.mcp.McpPromptTemplate(/, **data: Any)[source][source]

Bases: oas2mcp.models.normalized.NormalizedBaseModel

A suggested prompt template derived from an API operation.

Parameters:

None.

Returns:

None.

Raises:

None.

Examples

prompt = McpPromptTemplate(
    name="explain-get-pet-by-id",
    title="Explain get pet by ID",
    description="Summarize how to use this endpoint.",
)
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]
oas2mcp.models.mcp.McpCandidateKind[source][source]
oas2mcp.models.mcp.McpSafetyLevel[source][source]