Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesDefine each agent tool once as a portable contract—name, description, input JSON Schema, and, when useful, output JSON Schema—then use explicit adapters to produce MCP and provider-specific definitions. Keep vendor options outside the shared core, and validate both generated schemas and actual tool data at runtime: TypeScript types alone cannot validate network input, and schema conversion may be incomplete.
What belongs in a shared tool manifest?
A manifest should express only the concepts that integrations genuinely share. A practical core has four fields:
As an Amazon Associate I earn from qualifying purchases.
- name: a stable identifier for the operation.
- description: a human-readable explanation of what it does and when to use it.
- inputSchema: a JSON Schema describing accepted arguments.
- outputSchema: an optional JSON Schema describing the exact structured result.
This matches the tool shape described in OpenAI’s MCP server overview, where an output schema is optional. MCP itself defines protocol types in a versioned schema; the TypeScript schema at version 2026-07-28 is a dated specification artifact, not a timeless contract.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Keep integration-specific settings in an explicit extension namespace rather than adding them to the portable core. For example, a provider may accept a strict-mode option while a client may need display metadata. Namespacing those additions makes their ownership visible and prevents one integration’s feature from becoming an accidental requirement for every other one.
#1 Best Overall
Choose a source of truth for TypeScript and JSON Schema
TypeScript declarations are useful to application code, but they disappear at runtime. They do not check untrusted arguments arriving over a network or prove that a tool returned the expected object. Choose a runtime-capable schema definition as the source of truth, or define JSON Schema as the canonical artifact and generate or coordinate the TypeScript types from it. Whichever direction you choose, make drift detectable.
A minimal conceptual representation might look like this:
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
type ToolManifest = {
name: string;
description: string;
inputSchema: JsonSchema;
outputSchema?: JsonSchema;
extensions?: {
provider?: Record<string, unknown>;
client?: Record<string, unknown>;
};
};
JsonSchema here stands for the JSON Schema type supported by your chosen implementation; it is not a guarantee that every integration accepts every schema keyword. Validate the manifest itself, then validate inputs and structured outputs at the boundaries where data enters or leaves your application.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Adapt the portable contract to each integration
Do not assume that one serialized manifest can be sent unchanged to every target. Write a separate adapter for MCP and for each model SDK or provider interface. Each adapter should map the shared fields to the target’s required shape, handle extensions only where supported, and report unsupported schema constructs rather than silently discarding them.
- Validate the canonical manifest. Check required fields and ensure its schemas are valid under the JSON Schema dialect and conventions your system has selected.
- Convert with a target-specific adapter. Map the name, description, input schema, optional output schema, and any supported target metadata.
- Check the generated definition. Validate it against the target’s accepted schema subset and required fields. Treat conversion failures and unsupported constructs as visible errors or warnings.
- Validate live calls and results. Check incoming arguments before execution and structured outputs before returning them to a client.
The OpenAI Agents SDK for TypeScript tools guide documents conversion of supported Standard Schema parameters to JSON Schema and describes strict and non-strict tool-schema options. That is a supported conversion path, not evidence that all schema features translate identically. The OpenAI Agents SDK for Python MCP guide says strict conversion is best-effort and retains the original schema if conversion is unsuccessful. A robust adapter should therefore make the resulting behavior explicit rather than treating conversion as proof of equivalence.
Use an output schema only for structured results
An output schema is useful when a consumer needs to validate a structured return value or reason about it in a subsequent tool call. It should describe the exact object the tool returns, not an idealized or partial version; see the OpenAI plugin reference. If a tool returns only unstructured text, or a target client cannot use output schemas, adding one to the portable manifest may create work without a corresponding validation benefit.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Test compatibility instead of promising parity
There is no basis here for claiming a complete cross-vendor compatibility matrix or identical behavior across integrations. For each target, document and test the questions that affect your contract:
Recommended Free Tools
- Which JSON Schema dialect and keywords are accepted?
- Which tool fields are required, and which are optional?
- Are input schemas supported? Are output schemas supported?
- What does strict mode enforce, and what happens when conversion cannot satisfy it?
- Which metadata or extension fields survive adaptation?
- Does an unsupported construct cause rejection, a warning, or fallback to the original schema?
Keep these answers at the adapter boundary and cover them with tests against the target’s documented contract. This lets the application share stable operation definitions without claiming that integrations interpret every schema or option in the same way.
Best Value
Keep packaging guidance in its proper scope
OpenAI’s plugin packaging guidance discusses an MCP configuration manifest, recommends its current package format for new packages, and notes compatibility with some legacy formats. That is guidance for OpenAI plugin packaging; it is not a universal MCP protocol requirement and should not be folded into the portable tool contract.
Quick Recap
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.




