tools/, prompts/, and resources/, so the route handler is essentially a thin auth shim.
This is the application-facing MCP server. It is separate from veryfront mcp (the CLI’s dev MCP server, see Coding agents) and from the AG-UI transport Veryfront Studio uses.
Prerequisites
- A Veryfront project with tools, prompts, or resources you want to expose (see Tools).
- A way to mint bearer tokens for MCP clients (a static
MCP_TOKENenv var is fine in development).
Setup
initialize request and storing the session ID:
MCP-Session-Id header and a JSON-RPC result with server capabilities.
Auth is required
auth is a required field. The server fails closed at construction time if
it is missing. Options:
{ type: "bearer", validate }(recommended for production): validates a bearer token against your own logic.{ type: "none", allowUnauthenticated: true }: local development only. Must be set explicitly; accepts every request without any check. Do not ship this to production.
- clients
POSTinitialize - the server returns
MCP-Session-Id - subsequent requests send that header back
DELETEwith the session header ends the session
Tools
Tools defined intools/ are automatically available via MCP:
Prompts
Prompts defined inprompts/ are exposed as MCP prompt templates:
Resources
Resources are data sources that MCP clients can read:Manual registration
For tools, prompts, or resources not in the auto-discovered directories:Transport note
This guide is about the application-facing MCP server fromveryfront/mcp.
It is not the same surface as the CLI development server started with veryfront mcp, which exposes Veryfront development/runtime tools rather than your app’s MCP route.
Verify it worked
Use any MCP-aware client (Claude Desktop, an MCP CLI, orcurl) to call the
tools/list method:
401 Unauthorized.