Adds an example MCP App server demonstrating lazy (on-demand) OAuth: the server connects and lists tools without authentication, and only prompts for auth when a protected tool is called, by responding 401 with a WWW-Authenticate header pointing at protected-resource metadata. - Public `show_auth_button` app calls the protected `get_secret` tool via callServerTool; the host runs the OAuth flow on 401 and retries - Embedded mock authorization server (authorization-code + PKCE, short-lived HS256 tokens, refresh + session revocation) so the whole flow runs from a single process - TTL-scoped endpoint paths (/ttl/<seconds>/mcp) let slow or automated clients request longer-lived tokens per connection, threaded through OAuth via RFC 8707 resource indicators - `elicit_url` / `elicit_by_error` tools demonstrating URL elicitation
24 lines
554 B
TypeScript
24 lines
554 B
TypeScript
import { defineConfig } from "vite";
|
|
import { viteSingleFile } from "vite-plugin-singlefile";
|
|
|
|
const INPUT = process.env.INPUT;
|
|
if (!INPUT) {
|
|
throw new Error("INPUT environment variable is not set");
|
|
}
|
|
|
|
const isDevelopment = process.env.NODE_ENV === "development";
|
|
|
|
export default defineConfig({
|
|
plugins: [viteSingleFile()],
|
|
build: {
|
|
sourcemap: isDevelopment ? "inline" : undefined,
|
|
cssMinify: !isDevelopment,
|
|
minify: !isDevelopment,
|
|
|
|
rollupOptions: {
|
|
input: INPUT,
|
|
},
|
|
outDir: "dist",
|
|
emptyOutDir: false,
|
|
},
|
|
});
|