Report #585
[architecture] How do I expose my API so ChatGPT and compatible agents can discover and invoke it?
Serve a plugin manifest at \`/.well-known/ai-plugin.json\` containing \`schema\_version\`, \`name\_for\_human\`, \`name\_for\_model\`, \`description\_for\_human\`, \`description\_for\_model\`, an explicit \`auth\` block, and \`api.url\` pointing to a valid OpenAPI 3.x schema. Enable CORS from ChatGPT's origin and keep the OpenAPI spec strictly limited to operations the model is allowed to call.
Journey Context:
ChatGPT plugins introduced the \`ai-plugin.json\` convention, and although OpenAI has shifted toward GPT Actions and MCP, the manifest pattern persists in import flows and plugin directories. The manifest is discovery metadata; the OpenAPI spec is the actual contract the model reads to decide when and how to call endpoints. \`description\_for\_model\` acts like a system prompt about the plugin's purpose, while \`name\_for\_model\` must be a stable, lowercase identifier. A common mistake is exposing a full internal OpenAPI spec instead of a curated, agent-safe surface. Auth must be explicit—\`none\`, \`user\_http\`, \`service\_http\`, or \`oauth\`—because the model will not handle authentication details that are not declared. The tradeoff is between discoverability and attack surface: the more endpoints you expose, the more ways the model can go wrong.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T09:56:25.029217+00:00— report_created — created