Free tools Windows power users keep installed
One-click scans. No signup required.
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Define each agent tool once as a portable TypeScript manifest, validate its JSON Schema at runtime, then use explicit adapters to create MCP and model-provider tool definitions. Keep provider-specific options outside the shared contract: the same operation can be represented across integrations, but schema conversion and runtime behavior are not guaranteed to be identical.
What belongs in a portable tool manifest?
Keep the shared contract limited to concepts that make sense across integrations: a stable tool name, a human-readable description, an input schema, and an optional output schema. MCP represents tools as structured capabilities; OpenAI’s MCP overview describes the same core fields, with output schema optional. The MCP TypeScript schema is versioned, and the source cited here is specifically the 2026-07-28 schema, not a timeless definition.
Provider-specific execution settings, presentation hints, and client metadata may still be useful, but they should live in clearly namespaced extensions rather than silently expanding the portable contract. That makes it possible for an adapter to preserve supported metadata, report what it cannot represent, and avoid implying that every target will behave the same way.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Keep the TypeScript type and runtime schema aligned
Choose and document one source of truth. You can author JSON Schema directly and derive or maintain TypeScript types alongside it, or define the schema with a typed schema library and generate JSON Schema from that representation. Whichever route you choose, test that the type and schema describe the same inputs and outputs; a compile-time TypeScript type does not validate untrusted JSON received over a network.
#1 Best Overall
At system boundaries, validate incoming tool arguments against the canonical input schema before execution, and validate returned values against the output schema when one is defined. Treat validation failures as normal errors with a clear path back to the caller, rather than assuming that a model SDK or adapter has guaranteed valid data.
Adapt the manifest to each integration
Map the shared fields deliberately
An MCP adapter can map the canonical name, description, and input schema into the target tool definition, adding an output schema where the relevant protocol version and client support it. A model-provider adapter should map the same portable concepts into that provider’s tool format and handle provider-specific options separately. Keep these transformations explicit and testable instead of making the canonical manifest inherit one SDK’s shape.
Rank #2
- TypeScript implements a superset of syntax for strictly typed development, facilitating deep static analysis and enhanced development environment integration. The compiler translates source into standard script formats, ensuring parity across any runtime.
- TypeScript is ideal for front-end developers, full-stack engineers, and software architects who build large-scale web applications. It serves those looking to improve code excellence, reduce bugs through static checking, and maintain complex projects more.
- Lightweight, Classic fit, Double-needle sleeve and bottom hem
Make conversion limits visible
Schema conversion can be lossy or incomplete. The OpenAI Agents SDK for TypeScript documents conversion of supported Standard Schema parameters to JSON Schema and provides strict and non-strict tool schema options. The OpenAI Agents SDK for Python cautions that conversion to strict JSON Schema is best-effort; if conversion fails, it retains the original schema. These are SDK-specific behaviors, not guarantees that every adapter or target has the same fallback.
For each adapter, define how unsupported schema constructs are handled: reject conversion, emit a warning, or use an explicitly documented fallback. Avoid silent degradation when it could change which inputs are accepted or how they are interpreted. Validate generated schemas against the target’s accepted subset and exercise actual argument and result validation at runtime.
When should a manifest include an output schema?
Add an output schema when a consumer benefits from validating a structured result or using its fields to decide what to do next. It should describe the exact object the tool returns, not an aspirational or loosely related shape; OpenAI’s plugin reference makes that exact-match point. Do not add an output schema mechanically for a tool that returns only unstructured text, or when the target client cannot use the schema.
Compare integrations without implying parity
There is no complete cross-vendor compatibility matrix established by the official sources cited here. Before supporting an integration, document its behavior along these axes and verify it against the target’s current documentation and implementation:
- Schema subset: Which JSON Schema constructs are accepted, transformed, or unsupported?
- Required fields: Which tool fields are required, and which are optional?
- Input and output: Are both schemas supported, or only the input contract?
- Strictness: Is strict mode available, and what does it enforce?
- Metadata: Which extension fields are preserved, ignored, or rejected?
- Failure behavior: Does conversion reject, warn, or fall back when it cannot preserve the schema?
OpenAI’s plugin packaging guidance discusses an MCP configuration manifest and recommends its current package format for new packages while noting compatibility with some legacy formats. That is guidance for OpenAI plugin packaging, not a universal MCP protocol requirement; consult the plugin packaging guide when packaging for that environment.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →A practical implementation checklist
- Define the portable contract: settle stable names, descriptions, input schemas, and genuinely useful output schemas.
- Choose a source of truth: state whether JSON Schema is authored directly or generated from a typed schema representation.
- Separate extensions: place provider and user-interface metadata in namespaced fields that adapters can handle explicitly.
- Validate at boundaries: check received arguments before tool execution and structured returns before handing them to consumers.
- Write one adapter per target: map supported fields, surface unsupported constructs, and document any fallback behavior.
- Test the generated result: verify target schema acceptance and test representative valid and invalid arguments and outputs.
For the versioned protocol shape, consult the MCP TypeScript schema for 2026-07-28. For the TypeScript SDK’s schema handling, see the OpenAI Agents SDK tools guide; for the Python SDK’s strict-conversion caveat, see its MCP guide. OpenAI’s MCP server overview describes its tool model.
Quick Recap
Best Value
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

