প্রকল্প সম্পর্কে
Guava Health MCP হলো একটি ওপেন-সোর্স FastMCP সার্ভার, যা Guava Health ডেভেলপার API-কে র্যাপ করে এবং Cursor, Claude ও ChatGPT-এর মতো MCP হোস্টদের কাছে তা উপলব্ধ করে। একটি হোস্টেড ইনস্ট্যান্স https://guavahealth.fastmcp.app/mcp ঠিকানায় পৌঁছানো যায় এবং প্রজেক্টটি MIT লাইসেন্সপ্রাপ্ত। এটি Guava Health, Inc.-এর সাথে অধিভুক্ত নয়।
সার্ভারটি ডিজাইন অনুসারে রিড-অনলি এবং স্বাস্থ্য পেলোড সংরক্ষণ করে না; ব্যবহারকারী অ্যাক্সেস অনুমোদন করার পর এটি লাইভ Guava API রিড প্রক্সি করে। Version 0.1 সাতটি টুল প্রকাশ করে: guava_auth_status (বর্তমান MCP ব্যবহারকারীর জন্য Guava সংযুক্ত কিনা), guava_begin_connect (PAR এবং PKCE দিয়ে Guava OAuth শুরু করে এবং একটি authorization_url ফেরত দেয়), guava_disconnect (ওই ব্যবহারকারীর সংরক্ষিত টোকেন মুছে ফেলে), guava_get_me (প্রোফাইল/সাবজেক্ট), guava_search_sleep (ঘুমের সেশন), guava_search_activities (ওয়ার্কআউট ও কার্যকলাপ) এবং guava_search_metrics (steps বা vo2_max-এর মতো টাইপ দিয়ে ফিল্টার করা মেট্রিক্স)। এই সংস্করণে রাইট স্পষ্টভাবে স্কোপের বাইরে।
আর্কিটেকচারে দুটি OAuth স্তর ব্যবহার করা হয়। MCP ক্লায়েন্ট প্রমাণীকরণ একটি GitHub OAuth App-এর মাধ্যমে চলে, যাতে হোস্টরা নিরাপদে সংযোগ করতে পারে এবং একাধিক ব্যবহারকারী সমর্থিত হয়। Guava Health API দিকে PAR, PKCE (S256) এবং রিফ্রেশ-টোকেন রোটেশনসহ একটি কনফিডেনশিয়াল Guava API অ্যাপ ব্যবহার করা হয়। নথিভুক্ত ফ্লো হলো: MCP হোস্ট GitHub OAuth-এর মাধ্যমে guavahealth.fastmcp.app-এ প্রমাণীকরণ করে, যা পরে Guava OAuth 2.1-এর মাধ্যমে api.guavahealth.com-এর সাথে কথা বলে।
সেটআপের জন্য Guava API পোর্টালে হুবহু redirect URI https://guavahealth.fastmcp.app/oauth/callback দিয়ে একটি Guava API অ্যাপ নিবন্ধন করতে হবে, দীর্ঘমেয়াদী ব্যাকগ্রাউন্ড অ্যাক্সেস এবং প্রয়োজনীয় রিড স্কোপ সক্রিয় করতে হবে, তারপর GUAVA_CLIENT_ID ও GUAVA_CLIENT_SECRET সরবরাহ করতে হবে। একটি GitHub OAuth App-ও প্রয়োজন, যার homepage https://guavahealth.fastmcp.app এবং callback https://guavahealth.fastmcp.app/auth/callback, যা GITHUB_CLIENT_ID ও GITHUB_CLIENT_SECRET প্রদান করে। পরিবেশ ভেরিয়েবলের মধ্যে রয়েছে PUBLIC_BASE_URL, GUAVA_ENV (test বা live), ঐচ্ছিক GUAVA_API_BASE ওভাররাইড, GUAVA_TOKEN_ENCRYPTION_KEY (সংরক্ষিত অবস্থায় টোকেন ব্লবের জন্য একটি Fernet কী), অটোমেশনের জন্য ঐচ্ছিক MCP_AUTH_TOKEN শেয়ার্ড বিয়ারার এবং ঐচ্ছিক FASTMCP_JWT_SIGNING_KEY। README-তে cryptography প্যাকেজ দিয়ে কীভাবে Fernet কী তৈরি করতে হয় তা দেখানো হয়েছে।
ডিপ্লয়মেন্ট নোটে main.py (বা main.py:mcp)-এর একটি Horizon এন্ট্রিপয়েন্ট এবং MCP URL উল্লেখ করা আছে। স্থানীয় ব্যবহারের জন্য প্রজেক্টটি uv ব্যবহার করে: uv sync তারপর uv run python main.py, যা http://127.0.0.1:8000/mcp ঠিকানায় সার্ভ করে। ডেভেলপমেন্ট কমান্ড হলো uv sync --group dev এবং uv run pytest -q।
README-তে নিরাপত্তা নির্দেশনায় প্রথমে ন্যূনতম স্কোপ এবং রিড-অনলি টুল সুপারিশ করা হয়, .env ফাইল, টোকেন বা স্বাস্থ্য API রেসপন্স কখনো কমিট না করা, GUAVA_TOKEN_ENCRYPTION_KEY সেট করা থাকলে টোকেন স্টোর এনক্রিপ্ট করা এবং Horizon ডিস্ক ক্ষণস্থায়ী হলে কোল্ড স্টার্টের পর Guava পুনরায় সংযোগ করার পরামর্শ দেওয়া হয়। লগ যেখানে সম্ভব ক্লায়েন্ট সিক্রেট রিড্যাক্ট করে এবং README পরামর্শ দেয়, একটি সংকীর্ণ উত্তর যথেষ্ট হলে সম্পূর্ণ API পেলোড মডেল কনটেক্সটে ডাম্প না করতে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.