A very common reason is a wrong site baseUrl configuration.\n
Current configured baseUrl = / (default value)\n
We suggest trying baseUrl = \n\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",(function(){void 0===window.docusaurus&&insertBanner()}))
AI applications need rich data access, but must be securely scoped to each user. Exograph provides built-in access control, optimized queries, and an incredible developer experience. Watch how easy it is to create an Exograph MCP server and connect it to your AI applications Start with a Postgres database you already have. Exograph generates a complete domain model from your database automatically with relationships and all. You can then tune the model to your needs. Evolve the model to your needs. Secure your domain model through access control rules. Express rules such as "only admins can create customers" or "only customers can see their own data". Run As your model evolves, When you're ready, deploy to any Cloud provider or self-host a production-ready MCP server. Exograph deploys to any Cloud provider that supports Docker or WebAssembly, and on serverless platforms like AWS Lambda. No lock-in. Configure Claude Desktop or any MCP client to use your server. Use it for direct AI chat, or integrate into agentic workflows with focused tool profiles. Your AI applications now have secure, intelligent database access.Secure AI Access to Your Database

Why Exograph?
See it in action
From Database to a secure MCP Server
Bring Your Own Database
Add Access Control
@access(AuthContext.role == "admin")
type Customer {
@pk id: Uuid = uuidGenerateV4()
name: String
advisor: Advisor?
accounts: Set<Account>
}
@access(AuthContext.role == "admin")
type Advisor {
@pk id: Uuid = uuidGenerateV4()
name: String
customers: Set<Customer>
}
...@access(query=AuthContext.id == self.id || AuthContext.id == self.advisor.id || AuthContext.role == "admin")
type Customer {
@pk id: Uuid = uuidGenerateV4()
name: String
advisor: Advisor?
accounts: Set<Account>
}
@access(query=AuthContext.id == self.id || AuthContext.role == "admin")
type Advisor {
@pk id: Uuid = uuidGenerateV4()
name: String
customers: Set<Customer>
}
...Spin Up an MCP Server
exo dev to get an instant MCP server, GraphQL APIs, and a playground. Changes to your model are reflected immediately—no rebuilds needed.exo schema migrate will provide a migration plan to keep your database in sync.Deploy Anywhere

Connect to LLMs