oai-submission
OpenAI App Submission Documents
Generate the two Notion documents required for the ChatGPT App Store submission:
- Tool Justification — annotations (Read Only, Open World, Destructive) with justifications for every tool
- Test Cases — positive and negative test scenarios for OpenAI reviewers
Steps
1. Gather information from the user
Ask the user for:
- Parent page URL: The page under which both documents will be created (e.g., the customer's page under MCP Servicing)
- MCP server production URL: The Vercel deployment URL (e.g.,
https://v1.sidecare.mcp.waniwani.run)
2. Analyze the MCP server codebase
Read the following files to build a complete inventory of all tools:
app/mcp/route.ts— entry point, shows all registered tools, flows, and resources- Flow files (e.g.,
lib/{MCP_NAME}/flow/index.tsorlib/{MCP_NAME}/flows/*.ts) — flow definitions with nodes, edges, and state. Flows register as a single tool. - Display tools / widget tools (e.g.,
lib/{MCP_NAME}/flow/display-tools.ts) — tools that render widgets - Standalone tools (e.g.,
lib/{MCP_NAME}/tools/*.ts) — non-flow tools like KB search - API clients / data files (e.g.,
lib/{MCP_NAME}/data/*.ts) — to understand what external APIs are called and from which domains - Widget components (e.g.,
lib/{MCP_NAME}/widgets/) — to understand if widgets contain redirect links
For each tool, determine annotations and CSP metadata. See references/tool-annotations.md for rules and common patterns by tool type.
3. Create the Tool Justification page
Create a Notion page under the parent page using the Notion create-pages tool with parent: { page_id: "<parent_page_id>" }.
Title: {Company Name} - Tool Justification
See references/tool-justification-page.md for the exact Notion markdown structure and row templates.
4. Create the Test Cases page
Create a second Notion page under the same parent page.
Title: {Company Name} - Test Cases
See references/test-cases-page.md for the exact Notion markdown structure, row templates, and guidelines.
5. Write test prompts in the MCP's primary language
If the MCP's user-facing text is in a specific language (e.g., French, Spanish), write the user prompts in that language. Mix in 1-2 English prompts to show the app handles both.
References
| Topic | Reference |
|---|---|
| Annotation rules + common patterns by tool type | tool-annotations.md |
| Tool Justification page structure + templates | tool-justification-page.md |
| Test Cases page structure + guidelines | test-cases-page.md |
More from waniwani-ai/sdk
waniwani-sdk
Integrate the @waniwani/sdk package into MCP servers for event tracking, multi-step conversational flows, widget creation, knowledge base search, and chat components. Use when building or integrating WaniWani analytics, creating MCP tools with UI widgets, building multi-turn flows, or adding chat to a website.
9visualize-flow
Generate a Mermaid diagram from a WaniWani flow definition. Use when the user wants to visualize, diagram, or document a flow's structure and branching logic.
1create-mcp-app
This skill should be used when the user asks to "create an MCP App", "add a UI to an MCP tool", "build an interactive MCP View", "scaffold an MCP App", or needs guidance on MCP Apps SDK patterns, UI-resource registration, MCP App lifecycle, or host integration. Provides comprehensive guidance for building MCP Apps with interactive UIs.
1agent-browser
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.
1mcp-server
Create and configure MCP (Model Context Protocol) servers with tools. Use when creating MCP server tools, updating existing MCP implementations, or working with the @modelcontextprotocol/sdk package.
1