oas2mcp.agent.surface.models

Structured models for the catalog surface planner agent.

Purpose:

Define the deterministic input and structured output models used by the catalog-level surface planner. This workflow refines shared FastMCP-facing server instructions, prompts, and resources after per-operation enhancement.

Design:
  • Keep these models specific to catalog-level surface planning.

  • Separate deterministic planning context from LLM-produced surface output.

  • Preserve a stable, inspectable shape for later export and bootstrapping.

  • Constrain resource planning to handlers supported by the runtime layer.

Classes

CatalogSurfaceOperationContext

Compact operation summary used by the catalog surface planner.

CatalogSurfacePlan

Structured catalog-level surface plan produced by the planner agent.

CatalogSurfacePlanningContext

Deterministic context passed into the catalog surface planner agent.

CatalogSurfacePromptPlan

Catalog-level prompt definition proposed by the surface planner.

CatalogSurfaceResourcePlan

Catalog-level resource definition proposed by the surface planner.

Module Contents

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

Bases: oas2mcp.models.normalized.NormalizedBaseModel

Compact operation summary used by the catalog surface planner.

auth_notes: str | None = None[source][source]
description: str[source][source]
final_kind: oas2mcp.models.mcp.McpCandidateKind[source][source]
namespace: str | None = None[source][source]
operation_id: str | None = None[source][source]
operation_slug: str[source][source]
prompt_template_names: list[str] = 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.surface.models.CatalogSurfacePlan(/, **data: Any)[source][source]

Bases: oas2mcp.models.normalized.NormalizedBaseModel

Structured catalog-level surface plan produced by the planner agent.

catalog_prompts: list[CatalogSurfacePromptPlan] = None[source][source]
catalog_resources: list[CatalogSurfaceResourcePlan] = None[source][source]
notes: list[str] = None[source][source]
server_instructions: str[source][source]
class oas2mcp.agent.surface.models.CatalogSurfacePlanningContext(/, **data: Any)[source][source]

Bases: oas2mcp.models.normalized.NormalizedBaseModel

Deterministic context passed into the catalog surface planner agent.

api_purpose: str[source][source]
authentication_summary: str[source][source]
catalog_name: str[source][source]
catalog_notes: list[str] = None[source][source]
catalog_slug: str[source][source]
catalog_version: str | None = None[source][source]
conceptual_overview: str[source][source]
default_catalog_prompts: list[CatalogSurfacePromptPlan] = None[source][source]
default_catalog_resources: list[CatalogSurfaceResourcePlan] = None[source][source]
default_server_instructions: str[source][source]
operations: list[CatalogSurfaceOperationContext] = None[source][source]
primary_domains: list[str] = None[source][source]
recommended_mcp_surface: str[source][source]
source_uri: str[source][source]
suggested_resource_domains: list[str] = None[source][source]
suggested_tool_domains: list[str] = None[source][source]
class oas2mcp.agent.surface.models.CatalogSurfacePromptPlan(/, **data: Any)[source][source]

Bases: oas2mcp.models.normalized.NormalizedBaseModel

Catalog-level prompt definition proposed by the surface planner.

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[source][source]
title: str[source][source]
version: str | None = None[source][source]
class oas2mcp.agent.surface.models.CatalogSurfaceResourcePlan(/, **data: Any)[source][source]

Bases: oas2mcp.models.normalized.NormalizedBaseModel

Catalog-level resource definition proposed by the surface planner.

annotations: dict[str, Any] = None[source][source]
arguments: list[str] = None[source][source]
description: str[source][source]
handler: Literal['static', 'operation_metadata', 'namespace_operations'] = 'static'[source][source]
kind: Literal['resource', 'resource_template'][source][source]
meta: dict[str, Any] = None[source][source]
mime_type: str = 'application/json'[source][source]
name: str[source][source]
payload: Any | None = None[source][source]
tags: list[str] = None[source][source]
title: str[source][source]
uri: str[source][source]
version: str | None = None[source][source]