Agno AgentOS now runs a browser Origin on /mcp and /mcp/server-card through the same CORS policy as its REST routes, which by default includes the Agno domains. A default local AgentOS already answered GET /config from https://os.agno.com, yet refused the MCP routes from that same page:
# Earlier releases, default local AgentOS
GET /mcp/server-card Origin: https://os.agno.com 400 {"error":"invalid_origin","detail":"Origin not allowed."}
POST /mcp initialize Origin: https://os.agno.com 400 {"error":"invalid_origin","detail":"Origin not allowed."}
# This release
GET /mcp/server-card Origin: https://os.agno.com 200
POST /mcp initialize Origin: https://os.agno.com 200
GET /mcp/server-card Origin: https://evil.example 400 {"error":"invalid_origin","detail":"Origin not allowed."}An origin outside the policy is still refused, and allowed_hosts works as before. /info also reports the MCP path you configured, so MCPConfig(path="/ai/mcp") now shows "path": "/ai/mcp" where earlier releases always said /mcp. Both captures come from FastAPI's TestClient on each release.
Learn more about transport security on the AgentOS MCP server in the documentation.
Frequently asked questions
Earlier releases checked a browser Origin on the MCP routes against MCPConfig.allowed_origins and the host list only, so a page such as os.agno.com got HTTP 400 invalid_origin. This release accepts any origin the AgentOS CORS policy allows.
The origins in your AgentOS CORS policy, which by default include the Agno domains such as https://os.agno.com, plus anything in MCPConfig.allowed_origins. Other origins still get 400 invalid_origin.
The transport path you configured. With MCPConfig(path="/ai/mcp"), /info returns "path": "/ai/mcp".



