feat: add MCP tool signature to Responses API (#2232)

This commit is contained in:
Ashwin Bharambe 2025-05-22 16:43:08 -07:00 committed by GitHub
parent 8feb1827c8
commit d8c6ab9bfc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 195 additions and 2 deletions

View file

@ -186,8 +186,31 @@ class OpenAIResponseInputToolFileSearch(BaseModel):
# TODO: add filters
class ApprovalFilter(BaseModel):
always: list[str] | None = None
never: list[str] | None = None
class AllowedToolsFilter(BaseModel):
tool_names: list[str] | None = None
@json_schema_type
class OpenAIResponseInputToolMCP(BaseModel):
type: Literal["mcp"] = "mcp"
server_label: str
server_url: str
headers: dict[str, Any] | None = None
require_approval: Literal["always"] | Literal["never"] | ApprovalFilter = "never"
allowed_tools: list[str] | AllowedToolsFilter | None = None
OpenAIResponseInputTool = Annotated[
OpenAIResponseInputToolWebSearch | OpenAIResponseInputToolFileSearch | OpenAIResponseInputToolFunction,
OpenAIResponseInputToolWebSearch
| OpenAIResponseInputToolFileSearch
| OpenAIResponseInputToolFunction
| OpenAIResponseInputToolMCP,
Field(discriminator="type"),
]
register_schema(OpenAIResponseInputTool, name="OpenAIResponseInputTool")