ChatGPT, Claude, Cursor और Codex के लिए कानबन MCP सर्वर
लेखक: Andrei Finogeev, Weft के संस्थापक ·
Weft एक होस्ट किया हुआ कानबन बोर्ड है — Backlog, Todo, Doing, Done, वैकल्पिक स्प्रिंट के साथ — और उसका MCP सर्वर https://letsweft.com/api/mcp पर है। यह URL अपने AI क्लाइंट में जोड़ें और एक बार OAuth से साइन इन करें; लोकल रूप से कुछ इंस्टॉल करने या चलाने की ज़रूरत नहीं। इसके बाद असिस्टेंट बोर्ड पढ़ता है, कार्ड बनाता और खिसकाता है, किसी कार्ड पर काम करने से पहले उसे क्लेम करता है ताकि दो एजेंट कभी एक ही कार्ड न लें, प्रगति बताता है, फ़ैसला आपका हो तो आपसे पूछता है, और जो किया उसके साथ कार्ड बंद करता है। महीने में 50 टास्क और 200 AI कॉल तक फ़्री।
https://letsweft.com/api/mcpStreamable HTTP · OAuth, या निजी एक्सेस टोकन · 32 टूल
इसे अपने AI क्लाइंट में जोड़ें
ChatGPT
ChatGPT में Weft खोलें — या इसे ख़ुद कॉन्फ़िगर करें:
- 1ChatGPT की साइडबार में Plugins खोलिए — या Settings → Plugins।
- 2“Weft” खोजिए और उसकी लिस्टिंग खोलिए।
- 3“Connect” पर क्लिक कीजिए और देखिए कि Weft किस चीज़ तक पहुँच सकता है।
- 4जो पॉपअप खुले, उसमें अपने Weft अकाउंट से साइन इन कीजिए।
किसी भी चैट में प्लगइन का @-उल्लेख कीजिए: “@Weft मेरे बोर्ड पर क्या है?” — या + मेन्यू से Weft चुन लीजिए। अगर आपने सेटअप छोड़ दिया था, तो ChatGPT वहीं जोड़ने की पेशकश कर देता है।
Claude Desktop
- 1Claude Desktop खोलिए → Settings → Connectors।
- 2“Add custom connector” पर क्लिक कीजिए।
- 3नीचे दिया Weft MCP URL पेस्ट कीजिए और सेव कर दीजिए।
- 4जो ब्राउज़र विंडो खुले, उसमें OAuth पूरा कीजिए।
नई चैट शुरू कीजिए और पूछिए: “मेरे Weft बोर्ड पर क्या है?”। Claude, Weft कनेक्टर से आपके बोर्ड की स्थिति ले आता है।
Claude Code
claude mcp add --transport http weft https://letsweft.com/api/mcpकिसी भी प्रोजेक्ट में `claude` चलाइए, फिर पूछिए: “मेरे बोर्ड पर क्या है?”। पहली बार OAuth पूरा करने के लिए एक ब्राउज़र विंडो खुलती है।
Cursor
Cursor में जोड़ें — या इसे ख़ुद कॉन्फ़िगर करें:
{
"mcpServers": {
"weft": {
"url": "https://letsweft.com/api/mcp"
}
}
}Cursor खोलिए → Settings → MCP। OAuth पूरा करने के बाद “weft” सर्वर हरे संकेतक के साथ दिखना चाहिए।
Codex CLI
[mcp_servers.weft]
url = "https://letsweft.com/api/mcp"`codex mcp login weft` चलाकर ब्राउज़र में साइन इन करें, फिर `codex` शुरू करके पूछें: “मेरे बोर्ड पर क्या है?”। `/mcp` जुड़े हुए सर्वर और उसके टूल दिखा देता है।
VS Code
Weft एक्सटेंशन इंस्टॉल करें — या इसे ख़ुद कॉन्फ़िगर करें:
{
"servers": {
"weft": {
"type": "http",
"url": "https://letsweft.com/api/mcp"
}
}
}चैट खोलिए, मोड चुनने वाले को Agent पर लाइए और पूछिए: «मेरे बोर्ड पर क्या है?»। पहली बार OAuth के लिए ब्राउज़र खुलेगा। «MCP: List Servers» में weft Running दिखना चाहिए।
Windsurf
- 1Windsurf खोलिए → Settings → Cascade → MCP servers।
- 2“Add server” पर क्लिक कीजिए और Remote (HTTP) चुनिए।
- 3नीचे दिया Weft MCP URL पेस्ट कीजिए और सेव कर दीजिए।
- 4जो ब्राउज़र विंडो खुले, उसमें OAuth पूरा कीजिए।
Cascade खोलिए और पूछिए: “मेरे बोर्ड पर क्या है?”। जिन जवाबों में Weft सर्वर इस्तेमाल हुआ है, Cascade उन पर निशान लगा देता है।
Gemini CLI
gemini extensions install https://github.com/AndreiFinogeev/weft-gemini-extension`gemini` चलाइए और पूछिए: “मेरे weft बोर्ड पर क्या है?”। पहली बार OAuth के लिए ब्राउज़र खुलता है। `gemini extensions list` में “weft” दिखना चाहिए।
सिर्फ़ आपके लिए नहीं, एजेंट के लिए भी बना
क्लेम, टकराव नहीं
एजेंट के काम शुरू करने से पहले start_task कार्ड पर lease लगा देता है। काम माँगने वाले दूसरे एजेंट को अलग कार्ड मिलता है, और जिस कार्ड का एजेंट चुप हो गया, lease खत्म होने पर वह फिर से उपलब्ध हो जाता है।
प्रगति और रसीदें
एजेंट के काम करते समय report_progress क्लेम को ज़िंदा रखता है; complete_task कार्ड को इस ब्योरे के साथ बंद करता है कि क्या किया गया, क्या नहीं, और ऐसे लिंक जिन्हें आप जाँच सकें।
सवाल आपका इंतज़ार करते हैं
request_input विकल्पों के साथ एक सवाल आपके इनबॉक्स में डालता है — वेब पर और आपके फ़ोन पर — बजाय इसके कि एजेंट किसी ऐसी बात का अंदाज़ा लगाए जिसे सिर्फ़ आप तय कर सकते हैं।
रफ़्तार आपका ध्यान तय करता है
जब बहुत सारा पूरा हुआ काम आपकी समीक्षा का इंतज़ार कर रहा हो, तो एजेंट नए कार्ड शुरू करना बंद कर देते हैं। यह कानबन की work-in-progress सीमा है, आप पर लागू की हुई।
हर AI क्या कर सकता है, यह आप तय करते हैं
हर जुड़े असिस्टेंट को full, write या read-only एक्सेस दें, और एक क्लिक में उसे डिस्कनेक्ट करें। मिटाए गए कार्ड सीधे गायब नहीं होते, ट्रैश में जाते हैं।


32 टूल
हर टूल बताता है कि वह सिर्फ़ पढ़ता है, लिखता है, या कुछ हटाता है, ताकि आपके क्लाइंट को पता रहे कि कब पहले आपसे पूछना है।
| टूल | यह क्या करता है | प्रकार |
|---|---|---|
| search | टास्क, स्प्रिंट, फ़ैसलों और memory नोट्स में कीवर्ड से खोज। रैंक किए गए अधिकतम 50 {id, title, url} नतीजे लौटाता है, जिनके प्रकार-उपसर्ग वाले id, fetch में दिए जाते हैं। | पढ़ना |
| fetch | किसी एक खोज-नतीजे की पूरी सामग्री लाता है — शीर्षक, टेक्स्ट रूप, स्रोत url, और संरचित metadata। search से लौटा उपसर्ग वाला id लेता है। | पढ़ना |
| initialize_board | अगर कोई कॉलम नहीं है तो आपके Weft बोर्ड पर डिफ़ॉल्ट Backlog, Todo, Doing और Done कॉलम बनाता है — AI एजेंट के टास्क संभालने से पहले एक कॉल वाला सेटअप। Idempotent। | लिखना |
| get_board_state | उपयोगकर्ता के Scrumban बोर्ड की संक्षिप्त जानकारी लौटाता है: कॉलम, सक्रिय स्प्रिंट, Doing, समय से पीछे चल रहे टास्क और हाल में बंद हुए टास्क, पूरे snapshot से लगभग 30 गुना छोटा। | पढ़ना |
| list_columns | बोर्ड के सारे कॉलम क्रम से दिखाता है — हर एक का id, नाम और स्थिति, ताकि एजेंट को ठीक-ठीक पता रहे कि टास्क कहाँ जा सकता है। | पढ़ना |
| list_tasks | प्रमाणित उपयोगकर्ता के टास्क लौटाता है, चाहें तो कॉलम, स्प्रिंट, प्रोजेक्ट (नाम या id), बनाने वाले (इंसान या AI) या assignee (काम करने वाले) के हिसाब से फ़िल्टर करके। | पढ़ना |
| create_task | उपयोगकर्ता के बोर्ड पर नया टास्क बनाता है। कॉलम न दिया हो तो Backlog में जाता है। प्राथमिकता डिफ़ॉल्ट रूप से medium होती है। जब उपयोगकर्ता टास्क जोड़ने को कहे, तब इस्तेमाल करें। | लिखना |
| bulk_create_tasks | एक atomic कॉल में 1000 तक टास्क बनाता है — Linear/Jira/Notion/Trello के एक्सपोर्ट या 3+ टास्क की कोई भी सूची इंपोर्ट करें, AI कॉल का कोटा सिर्फ़ एक बार खर्च करके। | लिखना |
| update_task | किसी मौजूदा टास्क के फ़ील्ड बदलता है। सिर्फ़ वही फ़ील्ड बदलते हैं जो आप भेजते हैं; छोड़े गए फ़ील्ड जस के तस रहते हैं — एक अपवाद के साथ: एजेंट के लिए requiresReview हटाना मना है, और यह इनकार पूरे बदलाव को रद्द कर देता है। | लिखना |
| move_task | टास्क को दूसरे कॉलम और स्थिति पर ले जाता है। semantic='doing' वाले कॉलम में ले जाने से cycle-time ट्रैकिंग शुरू होती है; semantic='done' में ले जाने पर पूरा होने का समय दर्ज होता है। | लिखना |
| start_task | AI इसे उसी पल कॉल करता है जब वह किसी टास्क पर काम शुरू करता है — कार्ड Doing में चला जाता है ताकि उपयोगकर्ता और हर दूसरा जुड़ा क्लाइंट उसे चलता हुआ देखे (और उसे दोबारा न उठाए)। cycle-time ट्रैकिंग शुरू करता है; बिना assignee वाला टास्क कॉल करने वाला एजेंट क्लेम कर लेता है (मौजूदा assignee को कभी नहीं हटाया जाता)। कॉलम id की ज़रूरत नहीं। | लिखना |
| report_progress | बताएँ कि आप अब भी काम कर रहे हैं। क्लाइंट चुप हो जाए तो टास्क पर क्लेम खत्म हो जाता है, और यह उसे नया करता है। धड़कन के बिना लंबा चलने वाला टास्क छोड़ा हुआ मान लिया जाता है और किसी और को दे दिया जाता है — जान-बूझकर, क्योंकि जो एजेंट बीच में ही बंद हो जाए वह कुछ नहीं बताता, इसलिए चुप्पी ही बोर्ड के पास इकलौता संकेत है। | लिखना |
| request_input | व्यक्ति से कुछ ऐसा पूछें जो सिर्फ़ वही तय कर सकता है, और टास्क पर क्लेम खोए बिना इंतज़ार करें। अगर वह अपने क्लाइंट पर है, तो वहाँ एक फ़ॉर्म दिखता है और जवाब उसी कॉल में लौट आता है — एजेंट उसी संदर्भ में, उसी क्लेम के साथ आगे बढ़ता है। अगर वह मौजूद नहीं है, तो कॉल parked लौटती है और सवाल उसकी कतार में इंतज़ार करता है; जवाब एजेंट तक उसके अगले start_task या get_my_work पर पहुँचता है। यह उन कामों के लिए है जो पलटे नहीं जा सकते और जो सचमुच अस्पष्ट हैं, "क्या मैं आगे बढ़ूँ?" के लिए नहीं — हर सवाल उसी ध्यान के बजट से खर्च होता है जो नए काम को सीमित करता है। | लिखना |
| submit_answer | एजेंट के उठाए सवाल पर व्यक्ति ने जो कहा, उसे वापस लाता है, और उसी runId और lease के साथ काम लौटा देता है, ताकि वह नए सिरे से शुरू करने के बजाय उसी कोशिश में जारी रहे। इसे relayed के रूप में दर्ज किया जाता है, कभी भी व्यक्ति के ख़ुद करने के रूप में नहीं — एजेंट का पहुँचाया जवाब और इंसान का किया क्लिक अलग तरह के सबूत हैं, और बोर्ड उन्हें अलग रखता है। अगर सवाल का जवाब Weft ऐप में पहले ही दिया जा चुका है, तो error के बजाय वही जवाब लौटाया जाता है: ज़रूरी यह है कि एजेंट सही जवाब के साथ आगे बढ़े। | लिखना |
| get_my_work | पूरा बोर्ड पढ़कर अंदाज़ा लगाने के बजाय पूछें कि आगे क्या करना है। इस क्लाइंट को सौंपे गए टास्क, इंसान पर पहले से क्या इंतज़ार कर रहा है, और ध्यान की कतार में जगह है या नहीं — यह सब लौटाता है। यह भी बताता है कि क्या समय से पीछे है और क्या हफ़्ते के भीतर देय है या शुरू हो रहा है, ताकि एजेंट को बिना पूछे डेडलाइन का पता चले। जब कतार भरी हो तो काम की बात उसे खाली करने में मदद करना है, कुछ नया शुरू करना नहीं — और यह टूल टास्क चुने जाने से पहले ही यह बता देता है। | पढ़ना |
| complete_task | AI इसे तब कॉल करता है जब काम सचमुच पूरा हो जाए — कार्ड पूरा होने के समय के साथ Done में चला जाता है, और वैकल्पिक outcome (क्या किया गया, नतीजा कहाँ है) कार्ड में "Outcome (AI, date)" नोट के रूप में जुड़ जाता है। कॉलम id की ज़रूरत नहीं। जिस काम पर आपकी ज़रूरत का निशान है, वह Done में नहीं जाता: वह रसीद के साथ आपकी कतार में जाता है, और अगर एजेंट ने बताया कि वह आगे क्या करेगा, तो स्वीकार करना ठीक उसी कदम को मंज़ूरी देता है और उसे एजेंट को लौटा देता है। अगर टास्क के साथ verification plan है, तो सर्वर उसकी जाँचें यहीं चलाता है — URL लाना, उद्धरण खोजना, hash मिलाना: executable/state_delta प्लान जिसकी सारी blocking जाँचें पास हों, सर्वर से सत्यापित होकर बंद होता है; कोई blocking जाँच फ़ेल हो तो कार्ड Done से बाहर रहता है और एजेंट को दिखाया जाता है कि सर्वर ने क्या देखा। | लिखना |
| record_decision | एक टूल, दो इस्तेमाल, रिकॉर्ड की एक टेबल। (1) आप पर इंतज़ार कर रहे पूरे हुए काम के बारे में बातचीत में दिया अपना फ़ैसला पहुँचाएँ — मंज़ूर, वापस भेजो, छोड़ दो, बाद में — जिससे कार्ड समीक्षा कतार से हट जाता है; प्रविष्टि relayed के रूप में रखी जाती है, ऐप में आपके ख़ुद करने के रूप में नहीं, और यह फ़र्क़ जान-बूझकर दिखता रहता है। (2) याद रखने लायक कोई स्वतंत्र फ़ैसला दर्ज करें — 'Supabase के बजाय Neon चुना', कोई सीखा हुआ सबक — एक अपरिवर्तनीय MADR-lite रिकॉर्ड के रूप में, तौले गए विकल्पों और दोबारा सोचने की शर्त के साथ। रिकॉर्ड कभी बदले नहीं जाते: supersedesId वाला नया फ़ैसला पुराने की जगह लेता है, और पुराना वैसा ही पढ़ने लायक रहता है जैसा वह अपने दिन कहता था। यही रिकॉर्ड get_context अगले हफ़्ते हर एजेंट को लौटाता है। | लिखना |
| get_context | Workspace के लागू फ़ैसले और सबक, token बजट में समेटे हुए, नए पहले — किसी भी गैर-मामूली काम से पहले एजेंट को यही पढ़ना चाहिए। दस्तावेज़ की तरह लिखा नहीं जाता, दर्ज फ़ैसलों से निकाला जाता है, इसलिए पुराना नहीं पड़ता: जिस फ़ैसले की जगह नया आ गया, वह नया दर्ज होते ही हट जाता है, और हर पंक्ति पर उसकी तारीख होती है। दायरा छोटा करने के लिए इसे किसी प्रोजेक्ट या टास्क तक सीमित करें; जो पंक्तियाँ बजट में नहीं समातीं, वे गिनी जाती हैं, चुपचाप छिपाई नहीं जातीं। | पढ़ना |
| get_task_history | टास्क के साथ क्या हुआ, सिर्फ़ उसके मौजूदा फ़ील्ड नहीं। तीन मोड: 'summary' (डिफ़ॉल्ट, ≤500 tokens — कार्ड, उसकी ताज़ा रसीद, गिनती), 'decisions' (उसके बारे में दर्ज हर फ़ैसला, verdicts और उनके कारणों समेत — बाद का accept कार्ड को बदल दे, तब भी rework का कारण यहाँ बचा रहता है), 'full' (कच्चा journal, 100 events तक सीमित, और यह बात बताते हुए)। यह इसलिए है क्योंकि audit log सीधे पढ़ने के लिए बहुत लंबा होता है, और टास्क की पंक्ति में हमेशा सिर्फ़ ताज़ा verdict रहता है। | पढ़ना |
| trash_task | टास्क को आपके Weft बोर्ड के ट्रैश में ले जाता है। restore_task से 30 दिन तक वापस लाया जा सकता है, उसके बाद एक शेड्यूल्ड जॉब उसे हमेशा के लिए मिटा देता है। | हटाना |
| restore_task | ट्रैश में डालने के 30 दिन के भीतर टास्क वापस लाता है। टास्क बोर्ड पर वहीं लौटता है जहाँ था, पूरी तरह सही-सलामत — ताकि किसी सोलो फाउंडर का काम ग़लती से मिटाने पर कभी न खोए। | लिखना |
| archive_done_tasks | Done कॉलम खाली करता है: उसका हर टास्क बोर्ड से archive में चला जाता है — search/fetch से अब भी मिलता है और अपने स्प्रिंट के इतिहास में अब भी दिखता है, कभी मिटाया नहीं जाता। स्प्रिंट पूरा करने पर उस स्प्रिंट के पूरे हुए टास्क अपने-आप archive हो जाते हैं; बाकी यह संभालता है। यह एक कॉल में पूरा कॉलम ले लेता है, बिना गिनती के और MCP से वापसी के किसी रास्ते के बिना — restore_task ट्रैश से वापस लाता है, archive से नहीं — इसीलिए इसे destructive चिह्नित किया गया है: क्लाइंट को इसे कॉल करने से पहले उपयोगकर्ता से पुष्टि करनी चाहिए। | हटाना |
| list_projects | बोर्ड के प्रोजेक्ट दिखाता है — हल्के-फुल्के संदर्भ (एक स्टार्टअप, एक क्लाइंट, निजी) जिनसे कोई टास्क जुड़ सकता है। includeArchived सेट न हो तो archive किए गए प्रोजेक्ट शामिल नहीं होते। | पढ़ना |
| create_project | एक प्रोजेक्ट संदर्भ बनाता है। नाम हर बोर्ड पर अनोखा होता है; रंग डिफ़ॉल्ट रूप से बारी-बारी चलने वाली palette से चुना जाता है; url प्रोजेक्ट की वेबसाइट है, जिसका favicon टास्क कार्ड पर दिखता है। | लिखना |
| update_project | प्रोजेक्ट का नाम, रंग या वेबसाइट url बदलता है, या उसे archive/unarchive करता है। archive किए प्रोजेक्ट चुनने की सूचियों से गायब हो जाते हैं; उनके टास्क का जुड़ाव बना रहता है। | लिखना |
| list_sprints | उपयोगकर्ता के सारे स्प्रिंट (planned, active, completed, archived) दिखाता है, ताकि सोलो फाउंडर या एजेंट ऐप खोले बिना स्प्रिंट का इतिहास और मौजूदा स्थिति देख सके। | पढ़ना |
| get_active_sprint | अभी चल रहा स्प्रिंट लौटाता है, या कोई स्प्रिंट न चल रहा हो तो null — ताकि सोलो फाउंडर या एजेंट ऐप खोले बिना मौजूदा लक्ष्य देख सके। | पढ़ना |
| create_sprint | आपके Weft बोर्ड के लिए "planned" स्थिति में नया स्प्रिंट बनाता है, लक्ष्य और तारीखों के साथ शेड्यूल करने को तैयार। काम शुरू करने को तैयार हों तो अलग से start_sprint इस्तेमाल करें। | लिखना |
| start_sprint | planned स्प्रिंट को active स्थिति में ले जाता है। हर प्लान पर एक समय में एक ही स्प्रिंट active हो सकता है — अगर कोई दूसरा स्प्रिंट चल रहा है, तो कॉल फ़ेल होती है और उसका नाम बताती है; पहले वह स्प्रिंट पूरा करें, फिर दोबारा कोशिश करें। | लिखना |
| complete_sprint | सक्रिय स्प्रिंट खत्म करता है। उसके पूरे हुए टास्क स्प्रिंट के इतिहास में archive हो जाते हैं — बोर्ड के Done कॉलम से हटकर, फिर भी खोजे जा सकते हैं और स्प्रिंट के पेज पर दिखते हैं। अधूरे टास्क बोर्ड पर रहते हैं, स्प्रिंट से जुड़े हुए। MCP से इसे पलटा नहीं जा सकता — इरादा साफ़ न हो तो क्लाइंट को पुष्टि करनी चाहिए। | हटाना |
| add_task_to_sprint | किसी मौजूदा टास्क को स्प्रिंट में डालता है ताकि वह उस स्प्रिंट के दायरे और burndown में दिखे। Idempotent — दो बार कॉल करने का कोई अतिरिक्त असर नहीं, इसलिए दोबारा कोशिश करना सुरक्षित है। | लिखना |
| remove_task_from_sprint | टास्क को मिटाए बिना उसके मौजूदा स्प्रिंट से अलग करता है — टास्क बोर्ड पर अपने कॉलम में रहता है, बस अब उस स्प्रिंट या उसके burndown के दायरे में नहीं रहता। | लिखना |
सवाल
कानबन MCP सर्वर क्या है?
एक MCP (Model Context Protocol) सर्वर जो कानबन बोर्ड को ऐसे टूल के रूप में देता है जिन्हें AI असिस्टेंट कॉल कर सके: कॉलम की सूची, कार्ड पढ़ना, कार्ड बनाना, उसे Doing या Done में ले जाना। Weft का सर्वर होस्ट किया हुआ है, इसलिए अपनी मशीन पर कोई process चलाने के बजाय आप एक URL जोड़ते हैं।
क्या मुझे कुछ इंस्टॉल करना या चलाना होगा?
नहीं। https://letsweft.com/api/mcp को अपने AI क्लाइंट में जोड़ें और OAuth से साइन इन करें। बिना OAuth वाले क्लाइंट सेटिंग्स → एक्सेस टोकन से बना निजी एक्सेस टोकन इस्तेमाल करते हैं।
क्या यह फ़्री है?
हाँ, महीने में 50 टास्क और 200 AI कॉल तक। Pro, $7 प्रति सीट प्रति महीना, या $60 प्रति सीट प्रति साल में सीमाएँ हटा देता है।
क्या यह ChatGPT Free के साथ काम करता है?
हाँ। Weft, ChatGPT की Plugin directory में है और हर ChatGPT प्लान पर काम करता है, Free समेत। ChatGPT में सीधा MCP URL जोड़ना Business, Enterprise और Edu का फ़ीचर है, पर Weft के लिए उसकी ज़रूरत नहीं।
क्या दो एजेंट एक बोर्ड साझा कर सकते हैं?
हाँ — बोर्ड इसी के लिए है। हर एजेंट काम से पहले start_task से कार्ड क्लेम करता है, ताकि वे एक ही कार्ड न उठाएँ, और हर कार्ड दिखाता है कि उसे AI ने बनाया या पूरा किया, या किसी इंसान ने।
यह लोकल कानबन MCP सर्वर से कैसे अलग है?
Open-source कानबन MCP सर्वर आपकी मशीन पर चलते हैं और बोर्ड को किसी लोकल फ़ाइल या डेटाबेस में रखते हैं, इसलिए सिर्फ़ उसी मशीन के एजेंट उसे देखते हैं। Weft एक साझा, होस्ट किया हुआ बोर्ड है: वही कार्ड ChatGPT, Claude, Cursor, Codex, वेब ऐप और iOS व Android ऐप में, आपके और आपकी टीम के लिए।