nlweb-chatgpt-appsdk
Installation
SKILL.md
NLWeb + ChatGPT Apps SDK
Before writing code
Fetch live docs:
- Fetch https://github.com/nlweb-ai/NLWeb/blob/main/docs/nlweb-chatgpt-integration.md for the canonical wiring steps.
- Fetch https://github.com/nlweb-ai/NLWeb/blob/main/docs/nlweb-appsdk-adapter.md for the port-8100 adapter.
- Inspect
openai-apps-sdk-integration/nlweb_server_node/in the live repo — this is a separate Node.js/TypeScript MCP server. - Web-search OpenAI's current Apps SDK documentation — link from https://platform.openai.com.
- Verify the React widget contract — what
nlweb-list.htmlexpects from the tool result envelope.
Conceptual Architecture
Why a Separate Adapter?
NLWeb's native /mcp returns generic MCP tool results — a list of Schema.org objects. ChatGPT's Apps SDK expects a richer envelope that pairs tool output with a UI resource (widget). The integration ships two extra pieces on top of the base NLWeb server:
openai-apps-sdk-integration/nlweb_server_node/— a Node.js/TypeScript MCP server that registers annlweb-listtool and serves a React widget atui://widget/nlweb-list.html. ChatGPT discovers this and renders the widget when the tool returns results.