config directory so Laravel loads your local copy instead of the package default.
config/geni.php. Every key shown in this reference corresponds directly to a key in that file.
Document Information (info)
The info block defines the top-level metadata that appears in the OpenAPI info object and in the rendered documentation UI.
Route Discovery
These options tell Geni which routes to include in the generated specification. By default, Geni discovers every route whose URI starts with theapi_path prefix.
Database Migrations
Geni replays your migration history offline to derive column types for Eloquent model schemas — no live database connection required.Schema Overrides
When Geni cannot infer a column type from your migrations — for example, because a migration uses a raw SQL expression or a database-specific column type — you can supply the correct type manually.table.column string. The value is any valid JSON Schema primitive type: string, number, integer, boolean, object, or array.
Treat
schema_overrides as an escape hatch, not a first resort. If Geni misses a type that it should be able to infer, check geni:analyze output first — there may be a migration pattern you can simplify so that static analysis picks it up automatically.Security Schemes
Geni inspects route middleware to determine which endpoints require authentication and which OpenAPI security scheme to attach to them.
The
middleware_security_schemes map lets you emit different security requirements for different auth guards. The auth:sanctum entry above produces a sanctumAuth bearer scheme, while auth:api-key produces an apiKeyAuth API key scheme — each appearing in the correct securitySchemes component and referenced from the appropriate endpoint.
Documentation Routing
These options control the URLs where Geni serves the documentation UI and the raw OpenAPI JSON, as well as who can access them.Documentation Authentication
When you need to gate access to the documentation UI with a login prompt, configuredocs_auth. Geni supports both HTTP Basic authentication and a simple HTML form login.
Store your credentials in
.env rather than hard-coding them in config/geni.php. The env() defaults shown above mean you can set GENI_DOCS_USERNAME and GENI_DOCS_PASSWORD per environment without touching the config file.Multi-Version APIs
Theapis key lets you define multiple independent API surfaces — each with its own route prefix, title, version string, and any other top-level configuration option — within a single Laravel application.
v1, v2) becomes the --api name accepted by every geni:* Artisan command. Any top-level configuration option can be overridden inside an API entry — options not specified in the entry fall back to the root-level value.
Model Context Protocol
Themcp block configures Geni’s MCP server — the component that exposes your API as callable tools to AI desktop clients. Enable it, define which routes to surface, and configure authentication for outbound HTTP execution requests.
Set
GENI_MCP_BEARER_TOKEN or GENI_MCP_API_KEY in your .env file — not directly in config/geni.php — to avoid committing credentials. These values are forwarded by the MCP server when it proxies tool calls to your application on behalf of an AI client.