[{"data":1,"prerenderedAt":1069},["ShallowReactive",2],{"\u002Fdocs\u002Fgetting-started\u002Fquickstart":3},{"id":4,"title":5,"body":6,"description":1062,"extension":1063,"meta":1064,"navigation":556,"path":1065,"seo":1066,"stem":1067,"__hash__":1068},"docs\u002Fdocs\u002F1.getting-started\u002F2.quickstart.md","Quickstart",{"type":7,"value":8,"toc":1044},"minimark",[9,13,32,35,94,97,102,107,133,137,171,181,185,194,197,205,209,351,355,401,403,407,410,422,429,859,862,874,878,918,926,928,932,1013,1017,1040],[10,11,5],"h1",{"id":12},"quickstart",[14,15,17],"callout",{"type":16},"tip",[18,19,20,24,25],"p",{},[21,22,23],"strong",{},"Prefer to skip the setup?"," Run the quickstart directly on your own database in Google Colab — no install needed. ",[26,27,31],"a",{"href":28,"rel":29},"https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ffrancescobellingeri\u002Fmango\u002Fblob\u002Fmain\u002Fnotebooks\u002Fmango_quickstart.ipynb",[30],"nofollow","Open in Colab →",[18,33,34],{},"Mango can be used in two ways — pick the one that fits your use case:",[36,37,38,57],"table",{},[39,40,41],"thead",{},[42,43,44,47,52],"tr",{},[45,46],"th",{},[45,48,49],{},[21,50,51],{},"CLI",[45,53,54],{},[21,55,56],{},"FastAPI",[58,59,60,72,83],"tbody",{},[42,61,62,66,69],{},[63,64,65],"td",{},"Best for",[63,67,68],{},"Exploring data interactively",[63,70,71],{},"Integrating Mango into an app",[42,73,74,77,80],{},[63,75,76],{},"Interface",[63,78,79],{},"Terminal REPL",[63,81,82],{},"HTTP REST + SSE",[42,84,85,88,91],{},[63,86,87],{},"Setup",[63,89,90],{},"One command",[63,92,93],{},"~20 lines of Python",[95,96],"hr",{},[98,99,101],"h2",{"id":100},"option-a-cli","Option A — CLI",[103,104,106],"h3",{"id":105},"_1-install","1. Install",[108,109,114],"pre",{"className":110,"code":111,"language":112,"meta":113,"style":113},"language-bash shiki shiki-themes github-dark","pip install mango-ai[anthropic]\n","bash","",[115,116,117],"code",{"__ignoreMap":113},[118,119,122,126,130],"span",{"class":120,"line":121},"line",1,[118,123,125],{"class":124},"svObZ","pip",[118,127,129],{"class":128},"sU2Wk"," install",[118,131,132],{"class":128}," mango-ai[anthropic]\n",[103,134,136],{"id":135},"_2-set-environment-variables","2. Set environment variables",[108,138,140],{"className":110,"code":139,"language":112,"meta":113,"style":113},"export ANTHROPIC_API_KEY='your-key-here'\nexport MONGODB_URI='mongodb:\u002F\u002Flocalhost:27017\u002Fmydb'\n",[115,141,142,158],{"__ignoreMap":113},[118,143,144,148,152,155],{"class":120,"line":121},[118,145,147],{"class":146},"snl16","export",[118,149,151],{"class":150},"s95oV"," ANTHROPIC_API_KEY",[118,153,154],{"class":146},"=",[118,156,157],{"class":128},"'your-key-here'\n",[118,159,161,163,166,168],{"class":120,"line":160},2,[118,162,147],{"class":146},[118,164,165],{"class":150}," MONGODB_URI",[118,167,154],{"class":146},[118,169,170],{"class":128},"'mongodb:\u002F\u002Flocalhost:27017\u002Fmydb'\n",[172,173,174],"blockquote",{},[18,175,176,177,180],{},"Use single quotes around URIs that contain special characters (e.g. ",[115,178,179],{},"!"," in passwords).",[103,182,184],{"id":183},"_3-run","3. Run",[108,186,188],{"className":110,"code":187,"language":112,"meta":113,"style":113},"mango\n",[115,189,190],{"__ignoreMap":113},[118,191,192],{"class":120,"line":121},[118,193,187],{"class":124},[18,195,196],{},"Mango connects, introspects your schema, and opens an interactive prompt.",[108,198,203],{"className":199,"code":201,"language":202},[200],"language-text","╭─────────────────────────────────────────────────────────────────╮\n│ Mango — MongoDB AI assistant                                    │\n│ Database: mydb  |  Collections: 4  |  Provider: anthropic  |   │\n│ Model: claude-sonnet-4-6                                        │\n│ Type exit or quit to leave. Type \u002Freset to clear history.       │\n╰─────────────────────────────────────────────────────────────────╯\n\nYou: How many documents are in each collection?\n\n  ⚙ find_documents(collection='orders', filter={}, limit=0) → ...\n\nMango\nThere are 1,284 orders, 532 users, 89 products, and 3,201 comments.\n\nYou: exit\nGoodbye.\n","text",[115,204,201],{"__ignoreMap":113},[103,206,208],{"id":207},"cli-flags","CLI flags",[36,210,211,224],{},[39,212,213],{},[42,214,215,218,221],{},[45,216,217],{},"Flag",[45,219,220],{},"Default",[45,222,223],{},"Description",[58,225,226,241,269,282,295,308,320,335],{},[42,227,228,233,238],{},[63,229,230],{},[115,231,232],{},"--uri",[63,234,235],{},[115,236,237],{},"$MONGODB_URI",[63,239,240],{},"MongoDB connection URI",[42,242,243,248,257],{},[63,244,245],{},[115,246,247],{},"--provider",[63,249,250,253,254],{},[115,251,252],{},"$MANGO_PROVIDER"," or ",[115,255,256],{},"openai",[63,258,259,260,263,264,263,266],{},"LLM provider: ",[115,261,262],{},"anthropic",", ",[115,265,256],{},[115,267,268],{},"gemini",[42,270,271,276,279],{},[63,272,273],{},[115,274,275],{},"--model",[63,277,278],{},"provider default",[63,280,281],{},"Model ID override",[42,283,284,289,292],{},[63,285,286],{},[115,287,288],{},"--api-key",[63,290,291],{},"provider env var",[63,293,294],{},"API key override",[42,296,297,302,305],{},[63,298,299],{},[115,300,301],{},"--no-schema",[63,303,304],{},"—",[63,306,307],{},"Skip schema introspection at startup",[42,309,310,315,317],{},[63,311,312],{},[115,313,314],{},"--no-memory",[63,316,304],{},[63,318,319],{},"Disable ChromaDB memory layer",[42,321,322,327,332],{},[63,323,324],{},[115,325,326],{},"--memory-dir",[63,328,329],{},[115,330,331],{},".mango_memory",[63,333,334],{},"ChromaDB persistence directory",[42,336,337,346,348],{},[63,338,339,342,343],{},[115,340,341],{},"--verbose"," \u002F ",[115,344,345],{},"-v",[63,347,304],{},[63,349,350],{},"Show token usage and debug logs",[103,352,354],{"id":353},"repl-commands","REPL commands",[36,356,357,366],{},[39,358,359],{},[42,360,361,364],{},[45,362,363],{},"Command",[45,365,223],{},[58,367,368,381,391],{},[42,369,370,378],{},[63,371,372,342,375],{},[115,373,374],{},"exit",[115,376,377],{},"quit",[63,379,380],{},"Close the session",[42,382,383,388],{},[63,384,385],{},[115,386,387],{},"\u002Freset",[63,389,390],{},"Clear conversation history",[42,392,393,398],{},[63,394,395],{},[115,396,397],{},"\u002Fmemory",[63,399,400],{},"Show number of stored memory entries",[95,402],{},[98,404,406],{"id":405},"option-b-fastapi-server","Option B — FastAPI server",[103,408,106],{"id":409},"_1-install-1",[108,411,412],{"className":110,"code":111,"language":112,"meta":113,"style":113},[115,413,414],{"__ignoreMap":113},[118,415,416,418,420],{"class":120,"line":121},[118,417,125],{"class":124},[118,419,129],{"class":128},[118,421,132],{"class":128},[103,423,425,426],{"id":424},"_2-create-serverpy","2. Create ",[115,427,428],{},"server.py",[108,430,434],{"className":431,"code":432,"language":433,"meta":113,"style":113},"language-python shiki shiki-themes github-dark","from mango.agent import MangoAgent\nfrom mango.tools import (\n    build_mongo_tools,\n    SearchSavedCorrectToolUsesTool,\n    SaveTextMemoryTool\n)\nfrom mango.tools.base import ToolRegistry\nfrom mango.integrations.anthropic import AnthropicLlmService\nfrom mango.integrations.mongodb import MongoRunner\nfrom mango.integrations.chromadb import ChromaAgentMemory\nfrom mango.servers.fastapi import MangoFastAPIServer\n\n# Configure your LLM\nllm = AnthropicLlmService(\n    model=\"claude-sonnet-4-6\",\n    api_key=\"YOUR_API_KEY\",\n)\n\n# Configure your database\ndb = MongoRunner()\ndb.connect(\"mongodb:\u002F\u002Flocalhost:27017\u002Fmydb\")\n\n# Configure your agent memory\nagent_memory = ChromaAgentMemory(\n    persist_dir=\".\u002Fchroma_db\",\n)\n\n# Register Mongo tools\ntools = ToolRegistry()\nfor tool in build_mongo_tools(db, memory):\n    tools.register(tool)\n\n# Register memory tools\ntools.register(SearchSavedCorrectToolUsesTool(agent_memory))\ntools.register(SaveTextMemoryTool(agent_memory))\n\n# Create your agent\nagent = MangoAgent(\n    llm_service=llm,\n    tool_registry=tools,\n    db=db,\n    agent_memory=agent_memory,\n    introspect=False          # Recommended for large databases\n)\n\nserver = MangoFastAPIServer(agent)\nserver.run()                          # http:\u002F\u002Flocalhost:8000\n","python",[115,435,436,450,462,468,474,480,486,499,512,525,538,551,558,565,576,591,604,609,614,620,631,642,647,653,664,677,682,687,693,704,719,725,730,736,742,748,753,759,770,781,792,803,814,829,834,839,850],{"__ignoreMap":113},[118,437,438,441,444,447],{"class":120,"line":121},[118,439,440],{"class":146},"from",[118,442,443],{"class":150}," mango.agent ",[118,445,446],{"class":146},"import",[118,448,449],{"class":150}," MangoAgent\n",[118,451,452,454,457,459],{"class":120,"line":160},[118,453,440],{"class":146},[118,455,456],{"class":150}," mango.tools ",[118,458,446],{"class":146},[118,460,461],{"class":150}," (\n",[118,463,465],{"class":120,"line":464},3,[118,466,467],{"class":150},"    build_mongo_tools,\n",[118,469,471],{"class":120,"line":470},4,[118,472,473],{"class":150},"    SearchSavedCorrectToolUsesTool,\n",[118,475,477],{"class":120,"line":476},5,[118,478,479],{"class":150},"    SaveTextMemoryTool\n",[118,481,483],{"class":120,"line":482},6,[118,484,485],{"class":150},")\n",[118,487,489,491,494,496],{"class":120,"line":488},7,[118,490,440],{"class":146},[118,492,493],{"class":150}," mango.tools.base ",[118,495,446],{"class":146},[118,497,498],{"class":150}," ToolRegistry\n",[118,500,502,504,507,509],{"class":120,"line":501},8,[118,503,440],{"class":146},[118,505,506],{"class":150}," mango.integrations.anthropic ",[118,508,446],{"class":146},[118,510,511],{"class":150}," AnthropicLlmService\n",[118,513,515,517,520,522],{"class":120,"line":514},9,[118,516,440],{"class":146},[118,518,519],{"class":150}," mango.integrations.mongodb ",[118,521,446],{"class":146},[118,523,524],{"class":150}," MongoRunner\n",[118,526,528,530,533,535],{"class":120,"line":527},10,[118,529,440],{"class":146},[118,531,532],{"class":150}," mango.integrations.chromadb ",[118,534,446],{"class":146},[118,536,537],{"class":150}," ChromaAgentMemory\n",[118,539,541,543,546,548],{"class":120,"line":540},11,[118,542,440],{"class":146},[118,544,545],{"class":150}," mango.servers.fastapi ",[118,547,446],{"class":146},[118,549,550],{"class":150}," MangoFastAPIServer\n",[118,552,554],{"class":120,"line":553},12,[118,555,557],{"emptyLinePlaceholder":556},true,"\n",[118,559,561],{"class":120,"line":560},13,[118,562,564],{"class":563},"sAwPA","# Configure your LLM\n",[118,566,568,571,573],{"class":120,"line":567},14,[118,569,570],{"class":150},"llm ",[118,572,154],{"class":146},[118,574,575],{"class":150}," AnthropicLlmService(\n",[118,577,579,583,585,588],{"class":120,"line":578},15,[118,580,582],{"class":581},"s9osk","    model",[118,584,154],{"class":146},[118,586,587],{"class":128},"\"claude-sonnet-4-6\"",[118,589,590],{"class":150},",\n",[118,592,594,597,599,602],{"class":120,"line":593},16,[118,595,596],{"class":581},"    api_key",[118,598,154],{"class":146},[118,600,601],{"class":128},"\"YOUR_API_KEY\"",[118,603,590],{"class":150},[118,605,607],{"class":120,"line":606},17,[118,608,485],{"class":150},[118,610,612],{"class":120,"line":611},18,[118,613,557],{"emptyLinePlaceholder":556},[118,615,617],{"class":120,"line":616},19,[118,618,619],{"class":563},"# Configure your database\n",[118,621,623,626,628],{"class":120,"line":622},20,[118,624,625],{"class":150},"db ",[118,627,154],{"class":146},[118,629,630],{"class":150}," MongoRunner()\n",[118,632,634,637,640],{"class":120,"line":633},21,[118,635,636],{"class":150},"db.connect(",[118,638,639],{"class":128},"\"mongodb:\u002F\u002Flocalhost:27017\u002Fmydb\"",[118,641,485],{"class":150},[118,643,645],{"class":120,"line":644},22,[118,646,557],{"emptyLinePlaceholder":556},[118,648,650],{"class":120,"line":649},23,[118,651,652],{"class":563},"# Configure your agent memory\n",[118,654,656,659,661],{"class":120,"line":655},24,[118,657,658],{"class":150},"agent_memory ",[118,660,154],{"class":146},[118,662,663],{"class":150}," ChromaAgentMemory(\n",[118,665,667,670,672,675],{"class":120,"line":666},25,[118,668,669],{"class":581},"    persist_dir",[118,671,154],{"class":146},[118,673,674],{"class":128},"\".\u002Fchroma_db\"",[118,676,590],{"class":150},[118,678,680],{"class":120,"line":679},26,[118,681,485],{"class":150},[118,683,685],{"class":120,"line":684},27,[118,686,557],{"emptyLinePlaceholder":556},[118,688,690],{"class":120,"line":689},28,[118,691,692],{"class":563},"# Register Mongo tools\n",[118,694,696,699,701],{"class":120,"line":695},29,[118,697,698],{"class":150},"tools ",[118,700,154],{"class":146},[118,702,703],{"class":150}," ToolRegistry()\n",[118,705,707,710,713,716],{"class":120,"line":706},30,[118,708,709],{"class":146},"for",[118,711,712],{"class":150}," tool ",[118,714,715],{"class":146},"in",[118,717,718],{"class":150}," build_mongo_tools(db, memory):\n",[118,720,722],{"class":120,"line":721},31,[118,723,724],{"class":150},"    tools.register(tool)\n",[118,726,728],{"class":120,"line":727},32,[118,729,557],{"emptyLinePlaceholder":556},[118,731,733],{"class":120,"line":732},33,[118,734,735],{"class":563},"# Register memory tools\n",[118,737,739],{"class":120,"line":738},34,[118,740,741],{"class":150},"tools.register(SearchSavedCorrectToolUsesTool(agent_memory))\n",[118,743,745],{"class":120,"line":744},35,[118,746,747],{"class":150},"tools.register(SaveTextMemoryTool(agent_memory))\n",[118,749,751],{"class":120,"line":750},36,[118,752,557],{"emptyLinePlaceholder":556},[118,754,756],{"class":120,"line":755},37,[118,757,758],{"class":563},"# Create your agent\n",[118,760,762,765,767],{"class":120,"line":761},38,[118,763,764],{"class":150},"agent ",[118,766,154],{"class":146},[118,768,769],{"class":150}," MangoAgent(\n",[118,771,773,776,778],{"class":120,"line":772},39,[118,774,775],{"class":581},"    llm_service",[118,777,154],{"class":146},[118,779,780],{"class":150},"llm,\n",[118,782,784,787,789],{"class":120,"line":783},40,[118,785,786],{"class":581},"    tool_registry",[118,788,154],{"class":146},[118,790,791],{"class":150},"tools,\n",[118,793,795,798,800],{"class":120,"line":794},41,[118,796,797],{"class":581},"    db",[118,799,154],{"class":146},[118,801,802],{"class":150},"db,\n",[118,804,806,809,811],{"class":120,"line":805},42,[118,807,808],{"class":581},"    agent_memory",[118,810,154],{"class":146},[118,812,813],{"class":150},"agent_memory,\n",[118,815,817,820,822,826],{"class":120,"line":816},43,[118,818,819],{"class":581},"    introspect",[118,821,154],{"class":146},[118,823,825],{"class":824},"sDLfK","False",[118,827,828],{"class":563},"          # Recommended for large databases\n",[118,830,832],{"class":120,"line":831},44,[118,833,485],{"class":150},[118,835,837],{"class":120,"line":836},45,[118,838,557],{"emptyLinePlaceholder":556},[118,840,842,845,847],{"class":120,"line":841},46,[118,843,844],{"class":150},"server ",[118,846,154],{"class":146},[118,848,849],{"class":150}," MangoFastAPIServer(agent)\n",[118,851,853,856],{"class":120,"line":852},47,[118,854,855],{"class":150},"server.run()                          ",[118,857,858],{"class":563},"# http:\u002F\u002Flocalhost:8000\n",[103,860,184],{"id":861},"_3-run-1",[108,863,865],{"className":110,"code":864,"language":112,"meta":113,"style":113},"python server.py\n",[115,866,867],{"__ignoreMap":113},[118,868,869,871],{"class":120,"line":121},[118,870,433],{"class":124},[118,872,873],{"class":128}," server.py\n",[103,875,877],{"id":876},"_4-query-the-api","4. Query the API",[108,879,881],{"className":110,"code":880,"language":112,"meta":113,"style":113},"curl -X POST http:\u002F\u002Flocalhost:8000\u002Fapi\u002Fv1\u002Fask \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\"question\": \"How many orders were placed last month?\"}'\n",[115,882,883,900,910],{"__ignoreMap":113},[118,884,885,888,891,894,897],{"class":120,"line":121},[118,886,887],{"class":124},"curl",[118,889,890],{"class":824}," -X",[118,892,893],{"class":128}," POST",[118,895,896],{"class":128}," http:\u002F\u002Flocalhost:8000\u002Fapi\u002Fv1\u002Fask",[118,898,899],{"class":824}," \\\n",[118,901,902,905,908],{"class":120,"line":160},[118,903,904],{"class":824},"  -H",[118,906,907],{"class":128}," \"Content-Type: application\u002Fjson\"",[118,909,899],{"class":824},[118,911,912,915],{"class":120,"line":464},[118,913,914],{"class":824},"  -d",[118,916,917],{"class":128}," '{\"question\": \"How many orders were placed last month?\"}'\n",[18,919,920,921,925],{},"For streaming responses via SSE, see ",[26,922,924],{"href":923},"\u002Fdocs\u002Fadvanced\u002Ffastapi-server","FastAPI Server",".",[95,927],{},[98,929,931],{"id":930},"use-a-different-provider","Use a different provider",[108,933,935],{"className":110,"code":934,"language":112,"meta":113,"style":113},"# OpenAI\npip install mango-ai[openai]\nexport OPENAI_API_KEY='sk-...'\nmango --provider openai\n\n# Google Gemini\npip install mango-ai[gemini]\nexport GOOGLE_API_KEY='...'\nmango --provider gemini\n",[115,936,937,942,951,963,974,978,983,992,1004],{"__ignoreMap":113},[118,938,939],{"class":120,"line":121},[118,940,941],{"class":563},"# OpenAI\n",[118,943,944,946,948],{"class":120,"line":160},[118,945,125],{"class":124},[118,947,129],{"class":128},[118,949,950],{"class":128}," mango-ai[openai]\n",[118,952,953,955,958,960],{"class":120,"line":464},[118,954,147],{"class":146},[118,956,957],{"class":150}," OPENAI_API_KEY",[118,959,154],{"class":146},[118,961,962],{"class":128},"'sk-...'\n",[118,964,965,968,971],{"class":120,"line":470},[118,966,967],{"class":124},"mango",[118,969,970],{"class":824}," --provider",[118,972,973],{"class":128}," openai\n",[118,975,976],{"class":120,"line":476},[118,977,557],{"emptyLinePlaceholder":556},[118,979,980],{"class":120,"line":482},[118,981,982],{"class":563},"# Google Gemini\n",[118,984,985,987,989],{"class":120,"line":488},[118,986,125],{"class":124},[118,988,129],{"class":128},[118,990,991],{"class":128}," mango-ai[gemini]\n",[118,993,994,996,999,1001],{"class":120,"line":501},[118,995,147],{"class":146},[118,997,998],{"class":150}," GOOGLE_API_KEY",[118,1000,154],{"class":146},[118,1002,1003],{"class":128},"'...'\n",[118,1005,1006,1008,1010],{"class":120,"line":514},[118,1007,967],{"class":124},[118,1009,970],{"class":824},[118,1011,1012],{"class":128}," gemini\n",[98,1014,1016],{"id":1015},"next-steps","Next steps",[1018,1019,1020,1028,1035],"ul",{},[1021,1022,1023,1027],"li",{},[26,1024,1026],{"href":1025},"\u002Fdocs\u002Fgetting-started\u002Fhow-it-works","How It Works"," — understand the agent loop",[1021,1029,1030,1034],{},[26,1031,1033],{"href":1032},"\u002Fdocs\u002Fcore-concepts\u002Fagent","MangoAgent"," — all configuration options",[1021,1036,1037,1039],{},[26,1038,924],{"href":923}," — full HTTP API reference",[1041,1042,1043],"style",{},"html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .sU2Wk, html code.shiki .sU2Wk{--shiki-default:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}",{"title":113,"searchDepth":160,"depth":160,"links":1045},[1046,1053,1060,1061],{"id":100,"depth":160,"text":101,"children":1047},[1048,1049,1050,1051,1052],{"id":105,"depth":464,"text":106},{"id":135,"depth":464,"text":136},{"id":183,"depth":464,"text":184},{"id":207,"depth":464,"text":208},{"id":353,"depth":464,"text":354},{"id":405,"depth":160,"text":406,"children":1054},[1055,1056,1058,1059],{"id":409,"depth":464,"text":106},{"id":424,"depth":464,"text":1057},"2. Create server.py",{"id":861,"depth":464,"text":184},{"id":876,"depth":464,"text":877},{"id":930,"depth":160,"text":931},{"id":1015,"depth":160,"text":1016},"Connect your database and run your first query in under 3 minutes.","md",{},"\u002Fdocs\u002Fgetting-started\u002Fquickstart",{"title":5,"description":1062},"docs\u002F1.getting-started\u002F2.quickstart","m1mZXBzlMHjLcitndK4nHek5xCyRErKbinPtOos9Nqg",1776189331964]