{"id":28820,"date":"2026-09-05T01:31:22","date_gmt":"2026-09-05T01:31:22","guid":{"rendered":"https:\/\/umang.pk\/2026\/09\/05\/node-js%d8%8c-express%d8%8c-%d8%a7%d9%88%d8%b1-mongodb-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d8%a7%d8%b3%da%a9%d8%a7%d9%84%d8%b1\/"},"modified":"2026-09-05T01:31:22","modified_gmt":"2026-09-05T01:31:22","slug":"node-js%d8%8c-express%d8%8c-%d8%a7%d9%88%d8%b1-mongodb-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d8%a7%d8%b3%da%a9%d8%a7%d9%84%d8%b1","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/09\/05\/node-js%d8%8c-express%d8%8c-%d8%a7%d9%88%d8%b1-mongodb-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%d8%b1%d8%aa%db%92-%db%81%d9%88%d8%a6%db%92-%d8%a7%d8%b3%da%a9%d8%a7%d9%84%d8%b1\/","title":{"rendered":"Node.js\u060c Express\u060c \u0627\u0648\u0631 MongoDB \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0631\u06cc\u0633\u0631\u0686 MCP \u0633\u0631\u0648\u0631 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4"},"content":{"rendered":"\n<div id=\"\">\n<p>\u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627 \u0627\u06cc\u06a9 \u062a\u062d\u0642\u06cc\u0642\u06cc \u06a9\u0627\u0645 \u06c1\u06d2\u060c \u06a9\u0633\u06cc \u0627\u06cc\u06a9 \u0633\u0631\u0686 \u0628\u0627\u06a9\u0633 \u06a9\u0627 \u0646\u06c1\u06cc\u06ba\u06d4 \u0641\u06cc\u0644\u0688\u060c GPA\u060c \u0634\u06c1\u0631\u06cc\u062a\u060c \u0627\u0648\u0631 \u0622\u062e\u0631\u06cc \u062a\u0627\u0631\u06cc\u062e \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0627\u06cc\u0648\u0627\u0631\u0688\u0632 \u06a9\u0648 \u0641\u0644\u0679\u0631 \u06a9\u0631\u06cc\u06ba\u06d4 \u0622\u067e \u0634\u0627\u0631\u0679 \u0644\u0633\u0679 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u06cc\u06ba\u06d4 \u0645\u0636\u0645\u0648\u0646 \u0627\u0648\u0631 \u0633\u0641\u0627\u0631\u0634 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0648\u06ba \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0646\u0648\u0679 \u0644\u06a9\u06be\u06cc\u06ba\u06d4 \u067e\u06be\u0631 \u0622\u067e \u0627\u06cc\u06a9 \u06c1\u0641\u062a\u06c1 \u0628\u0639\u062f \u0648\u0627\u067e\u0633 \u0622\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u06cc\u0627\u062f \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u0646\u06d2 \u0627\u0633 \u0645\u062e\u0635\u0648\u0635 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u06a9\u0648 \u06a9\u06cc\u0648\u06ba \u0645\u062d\u0641\u0648\u0638 \u06a9\u06cc\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<p>AI \u0645\u0639\u0627\u0648\u0646\u06cc\u0646 \u0627\u0633 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u0635\u0631\u0641 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba \u062c\u0628 \u0648\u06c1 \u0627\u0635\u0644 \u06a9\u06cc\u0679\u0644\u0627\u06af \u0633\u06d2 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0631 \u0633\u06a9\u06cc\u06ba \u0627\u0648\u0631 \u0627\u067e\u0646\u06d2 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u0641\u06cc\u0635\u0644\u0648\u06ba \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be \u0633\u06a9\u06cc\u06ba\u06d4 \u0686\u06cc\u0679 \u06a9\u06cc \u062a\u0627\u0631\u06cc\u062e \u06a9\u0648\u0626\u06cc \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0633\u0627\u0626\u06cc\u06a9\u06cc\u0688\u06cc\u0644\u06a9 \u0688\u06cc\u0688 \u0644\u0627\u0626\u0646 \u0628\u0627\u0644\u06a9\u0644 \u0628\u06be\u06cc \u06a9\u0633\u06cc \u0688\u06cc\u0688 \u0644\u0627\u0626\u0646 \u0633\u06d2 \u0628\u062f\u062a\u0631 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0627\u0688\u0644 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u067e\u0631\u0648\u0679\u0648\u06a9\u0648\u0644 (MCP) AI \u0627\u06cc\u067e\u0633 \u062a\u06a9 \u0627\u0633 \u0642\u0633\u0645 \u06a9\u06cc \u0631\u0633\u0627\u0626\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2\u06d4 \u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba\u060c \u06c1\u0645 Node.js\u060c Express\u060c \u0627\u0648\u0631 MongoDB \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0631\u06cc\u0633\u0631\u0686 MCP \u0633\u0631\u0648\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u06a9\u0631\u0633\u0631\u060c \u06a9\u0644\u0627\u0688 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e\u060c \u06cc\u0627 \u06a9\u0648\u0626\u06cc \u062f\u0648\u0633\u0631\u0627 MCP \u0645\u06cc\u0632\u0628\u0627\u0646 \u0627\u06cc\u0648\u0627\u0631\u0688\u0632 \u062a\u0644\u0627\u0634 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0646\u06c1\u06cc\u06ba \u0637\u0644\u0628\u0627\u0621 \u06a9\u06d2 \u067e\u0631\u0648\u0641\u0627\u0626\u0644\u0632 \u0633\u06d2 \u0645\u0644\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0646\u06c1\u06cc\u06ba \u0634\u0627\u0631\u0679 \u0644\u0633\u0679 \u0645\u06cc\u06ba \u0628\u06a9 \u0645\u0627\u0631\u06a9 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u062a\u062d\u0642\u06cc\u0642\u06cc \u0646\u0648\u0679 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u062c\u0628\u06a9\u06c1 \u0633\u0631\u0648\u0631 \u0688\u06cc\u0679\u0627 \u06a9\u0627 \u0645\u0627\u0644\u06a9 \u06c1\u06d2\u060c \u0645\u0627\u0688\u0644 \u0627\u0646\u0641\u0631\u0646\u0633 \u067e\u0631\u062a \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0639\u0645\u06cc\u0631:<\/p>\n<ul>\n<li>\n<p>MongoDB \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u06a9\u06cc\u0679\u0644\u0627\u06af\u060c \u0630\u062e\u06cc\u0631\u06c1 \u0634\u062f\u06c1 \u0641\u06c1\u0631\u0633\u062a\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0646\u0648\u0679\u0633 \u06a9\u06d2 \u0645\u062c\u0645\u0648\u0639\u06d2<\/p>\n<\/li>\n<li>\n<p>9 MCP \u0679\u0648\u0644\u0632 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2\u060c \u0645\u06cc\u0686 \u06a9\u0631\u0646\u06d2\u060c \u0645\u0642\u0631\u0631\u06c1 \u062a\u0627\u0631\u06cc\u062e\u060c \u0645\u0648\u0627\u0632\u0646\u06c1 \u0627\u0648\u0631 \u062a\u062d\u0642\u06cc\u0642 \u06a9\u0648 \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u06a9 \u0627\u06cc\u0633\u0627 \u0648\u0633\u06cc\u0644\u06c1 \u062c\u0648 \u06a9\u0644\u0627\u0626\u0646\u0679\u0633 \u06a9\u0648 \u06a9\u0633\u06cc \u0679\u0648\u0644 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u06a9\u06cc\u0679\u0644\u0627\u06af \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0637\u0644\u0628\u0627\u0621 \u06a9\u06d2 \u067e\u0631\u0648\u0641\u0627\u0626\u0644\u0632 \u06a9\u0648 \u0645\u0637\u0627\u0644\u0639\u0627\u062a\u06cc \u0645\u0646\u0635\u0648\u0628\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0633\u0679\u0631\u06cc\u0645 \u0627\u06cc\u0628\u0644 HTTP \u067e\u0631 MCP \u067e\u06cc\u0634 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06cc \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0633 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u0627 \u0646\u0645\u0648\u0646\u06c1 \u06a9\u06cc\u0679\u0644\u0627\u06af \u0627\u06cc\u06a9 \u062a\u0631\u0628\u06cc\u062a\u06cc \u0688\u06cc\u0679\u0627\u0633\u06cc\u0679 \u06c1\u06d2\u06d4 \u0631\u0642\u0645\u060c \u062a\u0627\u0631\u06cc\u062e\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0627\u06c1\u0644\u06cc\u062a \u06a9\u06d2 \u0627\u0635\u0648\u0644\u0648\u06ba \u06a9\u0648 \u0622\u0633\u0627\u0646 \u0628\u0646\u0627 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062f\u06cc\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0631\u06a9\u0627\u0631\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627 \u0635\u0641\u062d\u06c1 \u0636\u0631\u0648\u0631 \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-what-you-need\">\u0622\u067e \u06a9\u0648 \u06a9\u06cc\u0627 \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2<\/h2>\n<p>\u0622\u067e \u06a9\u0648 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0627\u0648\u0631 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0631\u0648\u0679\u0646\u06af \u0633\u06d2 \u0648\u0627\u0642\u0641 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u06a9\u0648\u0626\u06cc \u0633\u0627\u0628\u0642\u06c1 \u200b\u200bMCP \u062a\u062c\u0631\u0628\u06c1 \u062f\u0631\u06a9\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba:<\/p>\n<p>\u0688\u0648\u06a9\u0631 MongoDB \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0641\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-bash\">docker run -d --name mongo -p 27017:27017 mongo:7\n<\/code><\/pre>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-what-is-the-model-context-protocol\">\u0645\u0627\u0688\u0644 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u067e\u0631\u0648\u0679\u0648\u06a9\u0648\u0644 \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h2>\n<p>MCP \u0627\u06cc\u06a9 \u06a9\u06be\u0644\u0627 \u067e\u0631\u0648\u0679\u0648\u06a9\u0648\u0644 \u06c1\u06d2 \u062c\u0648 AI \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u0645\u0634\u062a\u0631\u06a9\u06c1 \u0645\u0639\u0627\u06c1\u062f\u0648\u06ba \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0679\u0648\u0644\u0632 \u0627\u0648\u0631 \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0630\u0631\u0627\u0626\u0639 \u0633\u06d2 \u0628\u0627\u062a \u0686\u06cc\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u0646\u062a\u06be\u0631\u0648\u067e\u06a9 \u0646\u06d2 \u0627\u0633\u06d2 2024 \u0645\u06cc\u06ba \u0645\u062a\u0639\u0627\u0631\u0641 \u06a9\u0631\u0627\u06cc\u0627 \u0627\u0648\u0631 \u0641\u06cc \u0627\u0644\u062d\u0627\u0644 \u06cc\u06c1 \u0627\u06cc\u06a9 \u06a9\u06be\u0644\u0627 \u0645\u0639\u06cc\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<p>Anthropic MCP \u06a9\u0648 &quot;AI \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 USB-C \u067e\u0648\u0631\u0679&#8221; \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u0639\u0646\u06cc \u0627\u06cc\u06a9 \u06a9\u0646\u06cc\u06a9\u0679\u0631\u060c \u0628\u06c1\u062a \u0633\u06d2 \u0645\u06cc\u0632\u0628\u0627\u0646\u06d4 (\u0645\u0627\u062e\u0630: \u0645\u0627\u0688\u0644 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u067e\u0631\u0648\u0679\u0648\u06a9\u0648\u0644 \u06a9\u0627 \u062a\u0639\u0627\u0631\u0641) \u06a9\u0631\u0633\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0646\u0636\u0645\u0627\u0645\u060c \u06a9\u0644\u0627\u0688 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0646\u0636\u0645\u0627\u0645\u060c \u06cc\u0627 \u06a9\u0633\u0679\u0645 \u0627\u06cc\u062c\u0646\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0646\u0636\u0645\u0627\u0645 \u0644\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0622\u067e \u067e\u0631\u0648\u0679\u0648\u06a9\u0648\u0644 \u06a9\u0648 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0644\u0627\u06af\u0648 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0631\u0633\u0645\u06cc \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0627 \u062e\u0627\u06a9\u06c1 MCP \u06a9\u0648 \u062f\u0648 \u062a\u06c1\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u06a9\u06c1 <strong>\u0688\u06cc\u0679\u0627 \u067e\u0631\u062a<\/strong> \u06cc\u06c1 JSON-RPC 2.0 \u06c1\u06d2\u06d4 \u06a9\u0644\u0627\u0626\u0646\u0679 \u0627\u0648\u0631 \u0633\u0631\u0648\u0631 \u062f\u0631\u062c \u0630\u06cc\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u0627 \u062a\u0628\u0627\u062f\u0644\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba: <code>tools\/list<\/code> \u0627\u0648\u0631 <code>tools\/call<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <strong>\u0646\u0642\u0644 \u0648 \u062d\u0645\u0644 \u06a9\u06cc \u067e\u0631\u062a<\/strong> \u0627\u0633 \u067e\u06cc\u063a\u0627\u0645 \u06a9\u0648 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0645\u0642\u0627\u0645\u06cc \u0633\u0631\u0648\u0631\u0632 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 stdio \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u062f\u0648\u0631 \u062f\u0631\u0627\u0632 \u06cc\u0627 \u0637\u0648\u06cc\u0644 \u0639\u0631\u0635\u06d2 \u0633\u06d2 \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0633\u0631\u0648\u0631\u0632 \u0633\u0679\u0631\u06cc\u0645 \u0627\u06cc\u0628\u0644 HTTP \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u06cc\u06c1 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 Streamable HTTP \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0627\u06cc\u06a9 HTTP \u0633\u0631\u0648\u0631 \u06c1\u06d2 \u0627\u0648\u0631 \u06c1\u0645 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u06a9\u06cc\u0679\u0644\u0627\u06af \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u067e\u0631 \u0645\u0648\u062c\u0648\u062f \u062a\u0645\u0627\u0645 \u06a9\u0644\u0627\u0626\u0646\u0679\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u0648\u06d4<\/p>\n<h3 id=\"heading-hosts-clients-and-servers\">\u0645\u06cc\u0632\u0628\u0627\u0646\u060c \u06a9\u0644\u0627\u0626\u0646\u0679 \u0627\u0648\u0631 \u0633\u0631\u0648\u0631<\/h3>\n<p>\u06c1\u0631 MCP \u0633\u06cc\u0679 \u0627\u067e \u0645\u06cc\u06ba \u062a\u06cc\u0646 \u06a9\u0631\u062f\u0627\u0631 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u06a9\u06c1 <strong>\u0645\u0627\u0633\u0679\u0631<\/strong> \u06cc\u06c1 \u0627\u06cc\u06a9 AI \u0627\u06cc\u067e \u06c1\u06d2\u06d4 \u06a9\u0631\u0633\u0631 \u0627\u0648\u0631 \u06a9\u0644\u0627\u0688 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e \u0645\u06cc\u0632\u0628\u0627\u0646 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <strong>\u06af\u0627\u06c1\u06a9<\/strong> \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0641\u06cc \u0645\u0646\u0633\u0644\u06a9 \u0633\u0631\u0648\u0631 \u0627\u06cc\u06a9 \u06a9\u0644\u0627\u0626\u0646\u0679 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06c1 <strong>\u0633\u0631\u0648\u0631<\/strong> \u06cc\u06c1 \u0622\u067e \u06a9\u0627 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u06c1\u06d2\u06d4 \u06c1\u0645 \u0679\u0648\u0644\u0632\u060c \u0648\u0633\u0627\u0626\u0644 \u0627\u0648\u0631 \u0627\u0634\u0627\u0631\u06d2 \u06a9\u06cc \u062a\u0634\u06c1\u06cc\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u0622\u067e \u06a9\u06cc \u06a9\u0627\u0644\u0648\u06ba \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0622\u067e \u06a9\u06cc \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0627\u06cc\u067e \u0633\u0631\u0648\u0631 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0645\u0627\u0688\u0644 SDK \u0633\u06d2 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0628\u0627\u062a \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0627\u06cc\u0633\u0627 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-tools-resources-and-prompts\">\u0679\u0648\u0644\u0632\u060c \u0648\u0633\u0627\u0626\u0644\u060c \u0627\u0648\u0631 \u0627\u0634\u0627\u0631\u06d2<\/h3>\n<p>MCP \u0633\u0631\u0648\u0631 \u062a\u06cc\u0646 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0639\u0646\u0627\u0635\u0631 \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: \u0622\u067e \u062a\u06cc\u0646\u0648\u06ba \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<p><strong>\u0633\u0627\u0645\u0627\u0646<\/strong> \u06cc\u06c1 \u0627\u06cc\u06a9\u0634\u0646 \u06c1\u06d2\u06d4 \u0645\u0627\u0688\u0644 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 \u0679\u0648\u0644 \u06a9\u0627\u0644 API \u0633\u06d2 \u0627\u06cc\u06a9 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u06a9\u06d2 \u0627\u0633\u06d2 \u06a9\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0646 \u0645\u06cc\u06ba \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627\u060c \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u0646\u0627 \u0627\u0648\u0631 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u0646\u0627 \u0634\u0627\u0645\u0644 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0648\u0633\u0627\u0626\u0644<\/strong> \u0648\u06c1 \u0688\u06cc\u0679\u0627 \u062c\u0633\u06d2 \u0645\u06cc\u0632\u0628\u0627\u0646 \u067e\u0691\u06be \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0646 \u0645\u06cc\u06ba \u06a9\u06cc\u0679\u0644\u0627\u06af URIs \u0627\u0648\u0631 \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642 URIs \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u0645\u0627\u0688\u0644 \u06a9\u0648 \u06cc\u06c1 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 &quot;\u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc&#8221; \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0641\u0648\u0631\u06cc<\/strong> \u0627\u0633\u06d2 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u06a9\u0627 \u0646\u0627\u0645 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u0644\u0648\u06af \u0627\u0633\u06d2 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0633\u0644\u06cc\u0634 \u06a9\u0645\u0627\u0646\u0688 \u06cc\u0627 \u0645\u06cc\u0646\u0648 \u0633\u06d2 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 &quot;\u0631\u06cc\u0633\u0631\u0686 \u067e\u0644\u0627\u0646&#8221; \u067e\u0631\u0627\u0645\u067e\u0679 \u06cc\u06c1\u0627\u06ba \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0648\u06c1 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06c1\u06d2 \u062c\u0633\u06d2 \u0622\u067e \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u062a\u0642\u0633\u06cc\u0645 \u0627\u06c1\u0645 \u06c1\u06d2\u06d4 \u062c\u0628 \u0622\u067e \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u0648 \u0679\u0648\u0644 \u0645\u06cc\u06ba \u0688\u0627\u0644\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0645\u0627\u0688\u0644 \u06a9\u0648 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627\u0646\u0627 \u067e\u0691\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0686\u06cc\u0632\u0648\u06ba \u06a9\u0648 \u06a9\u0628 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4 \u0648\u0633\u0627\u0626\u0644 \u0627\u0648\u0631 \u0627\u0634\u0627\u0631\u06d2 \u0645\u06cc\u0632\u0628\u0627\u0646\u0648\u06ba \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-why-a-scholarship-research-server\">\u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0631\u06cc\u0633\u0631\u0686 \u0633\u0631\u0648\u0631 \u06a9\u06cc\u0648\u06ba\u061f<\/h2>\n<p>Weather MCP \u0688\u06cc\u0645\u0648 \u0627\u06cc\u06a9 \u0648\u0627\u062d\u062f API \u06a9\u0627\u0644 \u06c1\u06d2\u06d4 \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u06a9\u06cc \u062a\u062d\u0642\u06cc\u0642 \u0627\u0635\u0644 \u0645\u0635\u0646\u0648\u0639\u0627\u062a \u06a9\u06d2 \u0642\u0631\u06cc\u0628 \u06c1\u06d2\u06d4<\/p>\n<ul>\n<li>\n<p>\u06a9\u06cc\u0679\u0644\u0627\u06af \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0645\u0637\u0644\u0648\u0628\u06c1 \u0627\u0644\u0641\u0627\u0638 \u06a9\u06cc \u062a\u0644\u0627\u0634\u060c GPA \u0641\u0644\u0679\u0631\u0632\u060c \u0627\u0648\u0631 \u0622\u062e\u0631\u06cc \u062a\u0627\u0631\u06cc\u062e\u06cc\u06ba \u0633\u0628 \u06c1\u0645\u0627\u0631\u06d2 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0645\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0648\u0631\u06a9 \u0641\u0644\u0648 \u0645\u0633\u0644\u0633\u0644 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062f\u06c1 \u0634\u0627\u0631\u0679 \u0644\u0633\u0679 \u0627\u0648\u0631 \u062a\u062d\u0642\u06cc\u0642\u06cc \u0646\u0648\u0679 \u0646\u0626\u06cc \u0686\u06cc\u0679\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0628\u0627\u0642\u06cc \u0631\u06c1 \u062c\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0642\u0627\u0628\u0644\u06cc\u062a \u0645\u0646\u0637\u0642 \u06c1\u06d2\u060c \u0646\u062b\u0631 \u0646\u06c1\u06cc\u06ba\u06d4 \u06a9\u0645 \u0627\u0632 \u06a9\u0645 GPA \u0627\u06cc\u06a9 \u0646\u0645\u0628\u0631 \u06c1\u06d2\u06d4 \u067e\u06c1\u0644\u06cc \u0646\u0633\u0644 \u0635\u0631\u0641 \u0628\u0648\u0644\u06cc\u0646 \u06c1\u06d2\u06d4 \u0627\u067e\u0646\u06d2 \u0645\u0627\u0688\u0644 \u06a9\u0648 \u0645\u06cc\u0686 \u0628\u0646\u0627\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0646 \u0686\u06cc\u06a9\u0633 \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u06a9\u0648\u0688 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0622\u0624\u0679 \u067e\u0679 \u0642\u0627\u0628\u0644 \u0645\u0639\u0627\u0626\u0646\u06c1 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u06d4 \u0637\u0644\u0628\u0627\u0621 \u06a9\u0648 \u0622\u0641\u06cc\u0634\u0644 \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u06a9\u06be\u0648\u0644\u0646\u06d2 \u0627\u0648\u0631 \u062a\u0645\u0627\u0645 \u062f\u0639\u0648\u0648\u06ba \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>MongoDB \u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06c1\u062a\u0631\u06cc\u0646 \u06c1\u06d2\u06d4 \u06c1\u0631 \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0627\u06cc\u06a9 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0645\u0637\u0627\u0644\u0639\u06c1\u060c \u0634\u06c1\u0631\u06cc\u062a \u0627\u0648\u0631 \u0636\u0631\u0648\u0631\u06cc\u0627\u062a \u06a9\u06d2 \u0634\u0639\u0628\u0648\u06ba \u06a9\u06cc \u0627\u06cc\u06a9 \u06af\u06be\u0631\u06cc\u0644\u0648 \u0635\u0641 \u0634\u0627\u0645\u0644 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062f\u06c1 \u0622\u0626\u0679\u0645\u0632 \u0627\u0648\u0631 \u0646\u0648\u0679 \u0627\u0644\u06af \u0627\u0644\u06af \u0645\u062c\u0645\u0648\u0639\u06d2 \u06c1\u06cc\u06ba \u062c\u0646 \u0645\u06cc\u06ba \u06a9\u06cc\u0679\u0644\u0627\u06af \u06a9\u06d2 \u062d\u0648\u0627\u0644\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0648 \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0622\u067e \u0639\u0648\u0627\u0645\u06cc API \u06a9\u0648 \u0644\u067e\u06cc\u0679 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0686\u06be\u0627 \u0641\u0627\u0644\u0648 \u0627\u067e\u06d4 \u0622\u067e \u06a9\u06d2 \u0627\u067e\u0646\u06d2 \u06a9\u06cc\u0679\u0644\u0627\u06af \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u0627 \u0622\u067e \u06a9\u06d2 \u0633\u0628\u0642 \u06a9\u0648 \u0622\u0632\u0627\u062f \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 MCP \u0645\u0639\u0627\u06c1\u062f\u06d2 \u06a9\u0648 \u0648\u0627\u0636\u062d \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-the-architecture-fits-together\">\u0641\u0646 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0633 \u0637\u0631\u062d \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u0641\u0679 \u0628\u06cc\u0679\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/h2>\n<p>\u0645\u06a9\u0645\u0644 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0645\u0646\u0635\u0648\u0628\u06c1 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-text\">MCP host (Cursor or Claude Desktop)\n        |\n        |  Streamable HTTP  POST \/mcp\n        v\nExpress app  (createMcpExpressApp)\n        |\n        |  createMcpHandler factory\n        v\nMcpServer  tools \/ resources \/ prompts\n        |\n        v\nScholarship service\n        |\n        v\nMongoDB  scholarships, savedScholarships, researchnotes\n<\/code><\/pre>\n<p>\u06a9\u0633\u06cc \u0628\u06be\u06cc \u06a9\u0648\u0688 \u06a9\u0648 \u0644\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06d2 \u0686\u0646\u062f \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u06d2\u06d4<\/p>\n<p>MCP \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06c1\u06d2\u06d4 <strong>\u0628\u06d2 \u0648\u0637\u0646<\/strong>. SDK \u0641\u06cc HTTP \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0631 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0633\u0631\u0648\u0631 \u0641\u06cc\u06a9\u0679\u0631\u06cc \u0686\u0644\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 Streamable HTTP \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1 v2 \u067e\u06cc\u0679\u0631\u0646 \u06c1\u06d2\u06d4 \u0622\u0644\u06d2 \u06a9\u0648 \u0645\u0633\u062a\u0642\u0644 \u062d\u0627\u0644\u062a \u0645\u06cc\u06ba \u0646\u06c1 \u0631\u06a9\u06be\u06cc\u06ba\u06d4 <code>McpServer<\/code> \u0645\u062b\u0627\u0644 \u0627\u0633\u06d2 MongoDB \u0645\u06cc\u06ba \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u0646\u06a9\u0634\u0646 \u06c1\u06d2\u06d4 <strong>\u067e\u0648\u0631\u06d2 \u0639\u0645\u0644<\/strong>. \u06c1\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u0691\u0646\u0627 \u0633\u0633\u062a \u0627\u0648\u0631 \u0628\u06d2 \u0645\u0639\u0646\u06cc \u06c1\u06d2\u06d4 \u0627\u0633\u0679\u0627\u0631\u0679 \u0627\u067e \u067e\u0631 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0691\u06cc\u06ba \u0627\u0648\u0631 \u0679\u0648\u0644 \u0645\u06cc\u06ba \u067e\u0648\u0644 \u0628\u0646\u062f \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>HTTP \u0633\u0637\u062d \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u0686\u06be\u0648\u0679\u06cc \u06c1\u06d2\u06d4 <code>\/health<\/code> \u06cc\u06c1 \u0622\u067e \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u06d2\u06d4 <code>\/mcp<\/code> \u06cc\u06c1 \u067e\u0631\u0648\u0679\u0648\u06a9\u0648\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u06d2\u06d4 \u0622\u067e \u06a9\u0648 \u0627\u0633\u06cc \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0633\u0627\u0645\u0646\u06d2 REST API \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u0622\u067e \u0627\u0633\u06d2 \u0628\u0639\u062f \u0645\u06cc\u06ba \u0646\u06c1 \u0686\u0627\u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-how-to-set-up-the-project\">\u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u06cc\u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h2>\n<p>\u0627\u06cc\u06a9 \u0641\u0648\u0644\u0688\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 Node.js \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4 MCP SDK ESM-\u067e\u06c1\u0644\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0627\u0633\u06d2 ESM \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-bash\">mkdir scholarship-research-mcp-server\ncd scholarship-research-mcp-server\nnpm init -y\n<\/code><\/pre>\n<p>\u06a9\u06be\u0644\u0627 <code>package.json<\/code> \u0627\u0648\u0631 \u0633\u06cc\u0679 <code>\"type\": \"module\"<\/code>. \u067e\u06be\u0631 SDK\u060c Express\u060c Mongoose\u060c Zod\u060c \u0627\u0648\u0631 dotenv \u0627\u0646\u0633\u0679\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">npm install @modelcontextprotocol\/server @modelcontextprotocol\/express @modelcontextprotocol\/node express mongoose dotenv zod\n<\/code><\/pre>\n<p>SDK \u06a9\u0648 v2 \u0645\u06cc\u06ba \u067e\u06cc\u06a9\u062c\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0642\u0633\u06cc\u0645 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<ul>\n<li>\n<p><code>@modelcontextprotocol\/server<\/code>    \u0686\u0627\u0646\u062f\u06cc <code>McpServer<\/code> \u06a9\u0644\u0627\u0633 \u0627\u0648\u0631 <code>createMcpHandler<\/code><\/p>\n<\/li>\n<li>\n<p><code>@modelcontextprotocol\/express<\/code>    \u0622\u067e \u06a9\u0648 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 <code>createMcpExpressApp<\/code>DNS \u0631\u06cc \u0628\u0627\u0626\u0646\u0688\u0646\u06af \u067e\u0631\u0648\u0679\u06cc\u06a9\u0634\u0646 \u0634\u0627\u0645\u0644 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>@modelcontextprotocol\/node<\/code>    \u0648\u06cc\u0628 \u0627\u0633\u0679\u06cc\u0646\u0688\u0631\u0688 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06a9\u0648 \u0646\u0648\u0688 \u06a9\u06d2 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0645\u06cc\u06ba \u0688\u06be\u0627\u0644 \u0644\u06cc\u06ba\u06d4 <code>req<\/code>\/<code>res<\/code><\/p>\n<\/li>\n<\/ul>\n<p>\u0628\u0646\u0627\u0646\u0627 <code>.env<\/code> \u0641\u0627\u0626\u0644:<\/p>\n<pre><code class=\"language-bash\">MONGODB_URI=mongodb:\/\/127.0.0.1:27017\/scholarship_research\nPORT=3000\nHOST=127.0.0.1\n<\/code><\/pre>\n<p>\u0627\u0636\u0627\u0641\u06c1 <code>.gitignore<\/code> \u062e\u0627\u0631\u062c <code>node_modules<\/code> \u0627\u0648\u0631 <code>.env<\/code>.<\/p>\n<p>\u0622\u067e \u0633\u0648\u0631\u0633 \u0644\u06d2 \u0622\u0624\u0679 \u06a9\u0648 \u0686\u06be\u0648\u0679\u0627 \u0631\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-text\">src\/\n  index.js\n  config.js\n  db.js\n  models\/\n  services\/\n  mcp\/\n  utils\/\ndata\/\n  scholarships.json\nscripts\/\n  seed.js\n  smoke-test.js\n<\/code><\/pre>\n<p><code>src\/config.js<\/code>    \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0627\u0642\u062f\u0627\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u0627\u062d\u0648\u0644\u06cc\u0627\u062a\u06cc \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u067e\u0691\u06be\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">export const config = {\n  mongodbUri: process.env.MONGODB_URI ?? \"mongodb:\/\/127.0.0.1:27017\/scholarship_research\",\n  port: Number(process.env.PORT ?? 3000),\n  host: process.env.HOST ?? \"127.0.0.1\",\n};\n<\/code><\/pre>\n<p>\u0627\u067e\u0646\u06cc \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0648 \u0627\u06cc\u06a9 \u0641\u0627\u0626\u0644 \u0645\u06cc\u06ba \u0631\u06a9\u06be\u06cc\u06ba\u06d4 \u0679\u0648\u0644\u0632 \u06a9\u0648 \u0646\u06c1\u06cc\u06ba \u067e\u0691\u06be\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u06d4 <code>process.env<\/code> \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a<\/p>\n<h2 id=\"heading-how-to-connect-mongodb\">MongoDB \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062c\u0648\u0691\u06cc\u06ba\u06d4<\/h2>\n<p>Mongoose 9 ESM \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0627\u0644\u06a9\u0644 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u062e\u062a\u0635\u0631 <code>src\/db.js<\/code> \u06a9\u0627\u0641\u06cc:<\/p>\n<pre><code class=\"language-javascript\">import mongoose from \"mongoose\";\nimport { config } from \".\/config.js\";\n\nexport async function connectDatabase() {\n  mongoose.set(\"strictQuery\", true);\n  await mongoose.connect(config.mongodbUri);\n  return mongoose.connection;\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u06af\u0627\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 <code>src\/index.js<\/code> \u067e\u06c1\u0644\u06d2 <code>app.listen<\/code>. \u0627\u06af\u0631 \u06a9\u0646\u06a9\u0634\u0646 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0639\u0645\u0644 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631 \u062f\u06cc\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0627\u06cc\u06a9 \u063a\u06cc\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0686\u0644\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0646\u0627\u06a9\u0627\u0645 \u0627\u0633\u0679\u0627\u0631\u0679 \u0627\u067e \u0633\u06d2 \u0688\u06cc\u0628\u06af \u06a9\u0631\u0646\u0627 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0634\u06a9\u0644 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-model-scholarship-data\">\u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0645\u0627\u0688\u0644 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h2>\n<p>\u0622\u067e \u06a9\u0648 \u062a\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639\u0648\u06ba \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06af\u06cc\u06d4<\/p>\n<h3 id=\"heading-scholarship\">\u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e<\/h3>\n<p>\u06cc\u06c1 \u0627\u06cc\u06a9 \u06a9\u06cc\u0679\u0644\u0627\u06af \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0646 \u0641\u06cc\u0644\u0688\u0632 \u06a9\u0648 \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0645\u0627\u0631\u06a9 \u0688\u0627\u0648\u0646 \u06a9\u06d2 \u0679\u06a9\u0691\u0648\u06ba \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0645\u0645\u0627\u062b\u0644 \u0627\u0646\u062c\u0646 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">import mongoose from \"mongoose\";\n\nconst scholarshipSchema = new mongoose.Schema(\n  {\n    title: { type: String, required: true, trim: true },\n    provider: { type: String, required: true, trim: true },\n    description: { type: String, required: true },\n    amountMin: { type: Number, default: 0 },\n    amountMax: { type: Number, default: 0 },\n    currency: { type: String, default: \"USD\" },\n    deadline: { type: Date, default: null },\n    rolling: { type: Boolean, default: false },\n    educationLevels: { type: [String], default: [\"undergraduate\"] },\n    fieldsOfStudy: { type: [String], default: [\"any\"] },\n    gpaMinimum: { type: Number, default: null },\n    citizenship: { type: [String], default: [\"any\"] },\n    countries: { type: [String], default: [\"any\"] },\n    firstGenerationOnly: { type: Boolean, default: false },\n    womenOnly: { type: Boolean, default: false },\n    numberOfAwards: { type: Number, default: 1 },\n    renewable: { type: Boolean, default: false },\n    applicationUrl: { type: String, required: true },\n    applicationRequirements: { type: [String], default: [] },\n  },\n  { timestamps: true },\n);\n\nscholarshipSchema.index({\n  title: \"text\",\n  provider: \"text\",\n  description: \"text\",\n  fieldsOfStudy: \"text\",\n});\nscholarshipSchema.index({ deadline: 1 });\nscholarshipSchema.index({ amountMax: -1 });\n\nexport const Scholarship = mongoose.model(\"Scholarship\", scholarshipSchema);\n<\/code><\/pre>\n<p>\u0686\u0646\u062f \u0641\u06cc\u0644\u0688 \u0633\u0644\u06cc\u06a9\u0634\u0646 \u0627\u0635\u0644 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p><code>fieldsOfStudy: [\"any\"]<\/code>    \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0627\u06cc\u0648\u0627\u0631\u0688 \u06a9\u0648 \u0633\u0627\u0626\u0679 \u067e\u0631 \u0639\u0648\u0627\u0645\u06cc \u06a9\u0631 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u0645\u06cc\u0686\u0631 \u0627\u0633\u06d2 \u0633\u0646\u0628\u06be\u0627\u0644\u062a\u0627 \u06c1\u06d2\u06d4 <code>any<\/code> \u0648\u0627\u0626\u0644\u0688 \u06a9\u0627\u0631\u0688 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u06d4<\/p>\n<\/li>\n<li>\n<p><code>deadline: null<\/code>    \u067e\u0644\u0633 <code>rolling: true<\/code> \u06c1\u0645 \u0627\u06cc\u0633\u06d2 \u067e\u0631\u0648\u06af\u0631\u0627\u0645\u0648\u06ba \u06a9\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u0633\u0627\u0644 \u0628\u06be\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc\u06ba \u0642\u0628\u0648\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><code>applicationUrl<\/code>    \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u06d4 \u062a\u0645\u0627\u0645 \u0679\u0648\u0644 \u06a9\u06d2 \u0646\u062a\u0627\u0626\u062c \u06a9\u0648 \u0627\u0646\u0633\u0627\u0646\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0630\u0631\u06cc\u0639\u06c1 \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><code>gpaMinimum: null<\/code>    \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1 \u0646\u06d2 \u06a9\u0679 \u0622\u0641 \u0634\u0627\u0626\u0639 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0633 \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u06c1\u06d2\u06d4 <code>0<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-saved-scholarship\">\u0645\u062d\u0641\u0648\u0638 \u0634\u062f\u06c1 \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e<\/h3>\n<p>\u0648\u0627\u0686 \u0644\u0633\u0679 \u0627\u0641\u0631\u0627\u062f \u0627\u0648\u0631 \u06a9\u06cc\u0679\u0644\u0627\u06af \u06a9\u06cc \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0627\u06cc\u06a9 \u062c\u0648\u0691 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">const savedScholarshipSchema = new mongoose.Schema(\n  {\n    researcherId: { type: String, required: true, default: \"default\" },\n    scholarship: {\n      type: mongoose.Schema.Types.ObjectId,\n      ref: \"Scholarship\",\n      required: true,\n    },\n    status: {\n      type: String,\n      enum: [\"saved\", \"applying\", \"submitted\", \"won\", \"rejected\"],\n      default: \"saved\",\n    },\n  },\n  { timestamps: true },\n);\n\nsavedScholarshipSchema.index({ researcherId: 1, scholarship: 1 }, { unique: true });\n<\/code><\/pre>\n<p>\u0645\u0646\u0641\u0631\u062f \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06c1\u06d2\u06d4 <code>save_scholarship<\/code> \u0628\u06d2 \u062d\u0633\u06cc \u0627\u06af\u0631 \u0622\u067e \u0627\u06cc\u06a9 \u06c1\u06cc \u0627\u06cc\u0648\u0627\u0631\u0688 \u06a9\u0648 \u062f\u0648 \u0628\u0627\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u0688\u067e\u0644\u06cc\u06a9\u06cc\u0679 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u0633\u0679\u06cc\u0679\u0633 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p><code>researcherId<\/code>    \u06cc\u06c1 \u0627\u06cc\u06a9 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 \u062a\u0627\u0631 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0633\u0628\u0642 \u06a9\u06d2 \u0644\u0626\u06d2\u060c \u06cc\u06c1 \u06a9\u0627\u0641\u06cc \u06c1\u06d2. \u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u0645\u06cc\u06ba \u06cc\u06c1 \u062a\u0648\u062b\u06cc\u0642 \u0679\u0648\u06a9\u0646 \u0633\u06d2 \u0622\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-research-note\">\u0645\u0637\u0627\u0644\u0639\u06c1 \u06a9\u06d2 \u0646\u0648\u0679\u0633<\/h3>\n<p>\u0646\u0648\u0679 \u0627\u0644\u06af \u0627\u0644\u06af \u0645\u062c\u0645\u0648\u0639\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06c1\u0630\u0627 \u0627\u06cc\u06a9 \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0645\u06cc\u06ba \u0645\u062a\u0639\u062f\u062f \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">const researchNoteSchema = new mongoose.Schema(\n  {\n    researcherId: { type: String, required: true, default: \"default\" },\n    scholarship: {\n      type: mongoose.Schema.Types.ObjectId,\n      ref: \"Scholarship\",\n      required: true,\n    },\n    body: { type: String, required: true, trim: true },\n  },\n  { timestamps: true },\n);\n<\/code><\/pre>\n<p>\u0627\u0628 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u06cc\u06a9 \u06a9\u06cc\u0679\u0644\u0627\u06af\u060c \u0627\u06cc\u06a9 \u0634\u0627\u0631\u0679 \u0644\u0633\u0679\u060c \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0646\u0648\u0679 \u0628\u06a9 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u067e\u0648\u0631\u06cc \u067e\u0631\u0648\u0688\u06a9\u0679 \u06a9\u06cc \u0633\u0637\u062d \u06c1\u06d2 \u062c\u0633\u06d2 MCP \u0679\u0648\u0644 \u0644\u067e\u06cc\u0679 \u062f\u06d2 \u06af\u0627\u06d4<\/p>\n<h2 id=\"heading-how-to-write-the-scholarship-service\">\u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0633\u0631\u0648\u0633 \u06a9\u06cc\u0633\u06d2 \u0644\u06a9\u06be\u06cc\u06ba\u06d4<\/h2>\n<p>MCP \u067e\u0631\u062a \u0645\u06cc\u06ba MongoDB \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u06cc\u06ba\u06d4 \u0679\u0648\u0644 \u06a9\u0648 \u0633\u0631\u0648\u0633\u0632 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u0646\u0627\u060c \u0639\u0627\u0645 \u0627\u0634\u06cc\u0627\u0621 \u06a9\u0648 \u0648\u0627\u067e\u0633 \u0644\u06cc\u0646\u0627\u060c \u0627\u0648\u0631 \u0679\u06cc\u06a9\u0633\u0679 \u0641\u0627\u0631\u0645\u06cc\u0679 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u06cc\u06c1 \u0622\u067e \u06a9\u0648 \u0633\u06cc\u0688 \u0627\u0633\u06a9\u0631\u067e\u0679\u0633\u060c \u0627\u0633\u0645\u0648\u06a9 \u0679\u06cc\u0633\u0679\u0633\u060c \u06cc\u0627 \u0645\u0633\u062a\u0642\u0628\u0644 \u06a9\u06d2 REST \u0631\u0627\u0633\u062a\u0648\u06ba \u0645\u06cc\u06ba \u0627\u0633\u06cc \u0641\u0639\u0627\u0644\u06cc\u062a \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-search\">\u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba<\/h3>\n<p>\u062a\u0644\u0627\u0634 \u0627\u06cc\u06a9 \u0641\u0644\u0679\u0631 \u0628\u0644\u0688\u0631 \u06c1\u06d2\u06d4 \u06c1\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u062f\u0644\u06cc\u0644 \u0627\u06cc\u06a9 \u0634\u0642 \u06a9\u0627 \u0627\u0636\u0627\u0641\u06c1 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0648\u067e\u0646 \u06cc\u0627 \u0631\u0648\u0644\u0646\u06af \u0627\u06cc\u0648\u0627\u0631\u0688\u0632 \u0631\u0632\u0644\u0679 \u0633\u06cc\u0679 \u0645\u06cc\u06ba \u0628\u0631\u0642\u0631\u0627\u0631 \u06c1\u06cc\u06ba\u06d4 \u0622\u062e\u0631\u06cc \u062a\u0627\u0631\u06cc\u062e \u06a9\u0648 \u062d\u0630\u0641 \u06a9\u0631 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">const OPEN_DEADLINE_FILTER = {\n  $or: [{ rolling: true }, { deadline: null }, { deadline: { $gte: new Date() } }],\n};\n\nexport async function searchScholarships(filters) {\n  const query = { ...OPEN_DEADLINE_FILTER };\n  const and = [query];\n\n  if (filters.keyword) {\n    and.push({\n      $or: [\n        { title: { $regex: escapeRegex(filters.keyword), $options: \"i\" } },\n        { provider: { $regex: escapeRegex(filters.keyword), $options: \"i\" } },\n        { description: { $regex: escapeRegex(filters.keyword), $options: \"i\" } },\n        { fieldsOfStudy: { $regex: escapeRegex(filters.keyword), $options: \"i\" } },\n      ],\n    });\n  }\n\n  if (filters.fieldOfStudy) {\n    and.push({\n      $or: [\n        { fieldsOfStudy: { $regex: `^any$`, $options: \"i\" } },\n        { fieldsOfStudy: { $regex: escapeRegex(filters.fieldOfStudy), $options: \"i\" } },\n      ],\n    });\n  }\n\n  \/\/ educationLevel, citizenship, country, minAmount, gpa, flags...\n\n  const results = await Scholarship.find({ $and: and })\n    .sort({ deadline: 1, amountMax: -1 })\n    .limit(100)\n    .lean();\n\n  return rankByFieldMatch(results, filters.fieldOfStudy).slice(0, filters.limit ?? 10);\n}\n<\/code><\/pre>\n<p>\u062f\u0648 \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u06a9\u0648 \u0686\u06be\u0648\u0691\u0646\u0627 \u0622\u0633\u0627\u0646 \u0627\u0648\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633\u06d2 \u0686\u06be\u0648\u0691\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u0627\u0646 \u067e\u0679 \u0633\u06d2 \u0628\u0686\u06cc\u06ba\u06d4 <code>$regex<\/code>. \u06a9\u0644\u06cc\u062f\u06cc \u0644\u0641\u0638 \u06c1\u06d2\u06d4 <code>(<\/code> \u06cc\u06c1 \u062e\u0631\u0627\u0628 \u0631\u06cc\u06af\u0648\u0644\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0634\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p>\u062c\u0628 \u06a9\u0648\u0626\u06cc \u0637\u0627\u0644\u0628 \u0639\u0644\u0645 \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>computer science<\/code>\u0622\u0646 \u0633\u0627\u0626\u0679 \u067e\u0628\u0644\u06a9 \u0627\u06cc\u0648\u0627\u0631\u0688 (<code>any<\/code>) \u0627\u06c1\u0644\u060c \u0644\u06cc\u06a9\u0646 \u0645\u062e\u0635\u0648\u0635 CS \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u067e\u06c1\u0644\u06d2 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2\u06d4 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06d2 \u0628\u0639\u062f \u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u06cc \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 MongoDB \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0627\u06c1\u0644\u06cc\u062a \u06a9\u0627 \u0641\u0644\u0679\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0645 \u0635\u0631\u0641 \u0688\u0633\u067e\u0644\u06d2 \u0622\u0631\u0688\u0631 \u06a9\u0648 \u0627\u06cc\u0688\u062c\u0633\u0679 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-match\">\u0645\u06cc\u0686\u0632<\/h3>\n<p>\u0645\u0644\u0627\u067e \u062a\u0644\u0627\u0634 \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u06c1\u06d2\u06d4 \u062a\u0644\u0627\u0634 \u06c1\u06d2 &quot;\u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba \u062c\u0648 \u0627\u0633 \u0637\u0631\u062d \u0646\u0638\u0631 \u0622\u0626\u06cc\u06ba\u06d4&#8221; \u0645\u0645\u0627\u062b\u0644\u062a \u0627\u0633 \u0637\u0631\u062d \u06c1\u06d2\u060c &quot;\u06cc\u06c1 \u0631\u06c1\u0627 \u0627\u06cc\u06a9 \u0637\u0627\u0644\u0628 \u0639\u0644\u0645\u06d4 \u062a\u0645\u0627\u0645 \u0639\u0648\u0627\u0645\u06cc \u0627\u06cc\u0648\u0627\u0631\u0688\u0632 \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba\u06d4&#8221;<\/p>\n<p>\u06cc\u06c1 \u0633\u0631\u0648\u0633 \u0639\u0648\u0627\u0645\u06cc \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u06a9\u0648 \u0644\u0648\u0688 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u067e\u06be\u0631 \u0633\u062e\u062a \u0641\u0644\u0679\u0631\u0632 \u0627\u0648\u0631 \u0627\u0633\u06a9\u0648\u0631\u0632 \u06a9\u0627 \u0627\u0637\u0644\u0627\u0642 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<table>\n<thead>\n<tr>\n<th>\u0633\u06af\u0646\u0644<\/th>\n<th>\u0627\u062b\u0631<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u062a\u0639\u0644\u06cc\u0645\u06cc \u0633\u0637\u062d \u0645\u06cc\u06ba \u0645\u0645\u0627\u062b\u0644\u062a<\/td>\n<td>\u0686\u06be\u0648\u0691\u06cc\u06ba<\/td>\n<\/tr>\n<tr>\n<td>\u06a9\u0645 \u0627\u0632 \u06a9\u0645 GPA \u0633\u06d2 \u0646\u06cc\u0686\u06d2<\/td>\n<td>\u0686\u06be\u0648\u0691\u06cc\u06ba<\/td>\n<\/tr>\n<tr>\n<td>\u0634\u06c1\u0631\u06cc\u062a \u06a9\u06cc \u0645\u0645\u0627\u062b\u0644\u062a<\/td>\n<td>\u0686\u06be\u0648\u0691\u06cc\u06ba<\/td>\n<\/tr>\n<tr>\n<td>\u06cc\u06c1 \u0635\u0631\u0641 \u067e\u06c1\u0644\u06cc \u0646\u0633\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u06d2 \u0627\u0648\u0631 \u0637\u0644\u0628\u0627\u0621 \u067e\u0631 \u0644\u0627\u06af\u0648 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/td>\n<td>\u0686\u06be\u0648\u0691\u06cc\u06ba<\/td>\n<\/tr>\n<tr>\n<td>\u0635\u0631\u0641 \u062e\u0648\u0627\u062a\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0648\u0631 \u0637\u0644\u0628\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0646\u06c1\u06cc\u06ba\u06d4<\/td>\n<td>\u0686\u06be\u0648\u0691\u06cc\u06ba<\/td>\n<\/tr>\n<tr>\n<td>\u062a\u0639\u0644\u06cc\u0645\u06cc \u0633\u0637\u062d \u06a9\u06cc \u0645\u0645\u0627\u062b\u0644\u062a<\/td>\n<td>+20<\/td>\n<\/tr>\n<tr>\n<td>GPA \u0627\u06c1\u0644<\/td>\n<td>+15<\/td>\n<\/tr>\n<tr>\n<td>\u0634\u06c1\u0631\u06cc\u062a \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06d2\u06d4<\/td>\n<td>+15<\/td>\n<\/tr>\n<tr>\n<td>\u0645\u06cc\u0686 \u0645\u06cc\u062c\u0631<\/td>\n<td>+30<\/td>\n<\/tr>\n<tr>\n<td>\u0627\u067e\u0646\u06d2 \u067e\u0633\u0646\u062f\u06cc\u062f\u06c1 \u0645\u0644\u06a9 \u0633\u06d2 \u0645\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/td>\n<td>+10<\/td>\n<\/tr>\n<tr>\n<td>\u0631\u0642\u0645 \u0637\u0627\u0644\u0628 \u0639\u0644\u0645 \u06a9\u06cc \u06a9\u0645 \u0627\u0632 \u06a9\u0645 \u0631\u0642\u0645 \u06a9\u0648 \u067e\u0648\u0631\u0627 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/td>\n<td>+10<\/td>\n<\/tr>\n<tr>\n<td>\u067e\u06c1\u0644\u06cc \u0646\u0633\u0644 \u06cc\u0627 \u0635\u0631\u0641 \u062e\u0648\u0627\u062a\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0642\u0627\u0628\u0644\u06c1<\/td>\n<td>+10<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u0633\u062e\u062a \u0641\u0644\u0679\u0631\u0632 \u062c\u06be\u0648\u0679\u06cc \u0627\u0645\u06cc\u062f\u0648\u06ba \u06a9\u0648 \u0631\u0648\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0646\u0631\u0645 \u0627\u0633\u06a9\u0648\u0631 \u0628\u0627\u0642\u06cc \u06a9\u06cc \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06c1\u0631 \u0627\u06cc\u06a9 \u0646\u062a\u06cc\u062c\u06c1 \u0628\u06be\u06cc \u06c1\u06d2 <code>reasons<\/code> \u0635\u0641\u0648\u06ba \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2\u060c \u0645\u0627\u0688\u0644 \u0627\u0646 \u06a9\u0648 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0645\u06cc\u0686\u0648\u06ba \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u062e\u0631\u06cc \u0646\u06a9\u062a\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u06c1\u0645 \u0633\u0631\u0648\u0631\u0632 \u067e\u0631 \u0645\u0645\u0627\u062b\u0644\u062a \u06a9\u0627 \u0627\u0637\u0644\u0627\u0642 \u06a9\u06cc\u0648\u06ba \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0635\u0631\u0641 \u062e\u0627\u0645 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0645\u0627\u0688\u0644 \u0645\u06cc\u06ba \u0628\u0639\u0636 \u0627\u0648\u0642\u0627\u062a &quot;\u0645\u0641\u06cc\u062f \u0637\u0648\u0631 \u067e\u0631&#8221; \u0627\u06cc\u0633\u06d2 \u0627\u06cc\u0648\u0627\u0631\u0688\u0632 \u0634\u0627\u0645\u0644 \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0637\u0644\u0628\u0627\u0621 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0646\u06c1\u06cc\u06ba \u062f\u06d2 \u0633\u06a9\u062a\u06d2\u06d4 \u0648\u0627\u067e\u0633\u06cc \u06a9\u06d2 \u0631\u0627\u0633\u062a\u06d2 \u0645\u06cc\u06ba <code>score<\/code> \u0627\u0648\u0631 <code>reasons<\/code> \u06a9\u0648\u0688 \u067e\u0631 \u0645\u0628\u0646\u06cc \u0648\u0636\u0627\u062d\u062a\u06cc\u06ba \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-save-notes-deadlines-compare\">\u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u06cc\u06ba\u060c \u0646\u0648\u0679 \u06a9\u0631\u06cc\u06ba\u060c \u0645\u0642\u0631\u0631\u06c1 \u062a\u0627\u0631\u06cc\u062e\u06cc\u06ba\u060c \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0628\u0627\u0642\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u067e\u062a\u0644\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p><code>saveScholarship<\/code>    \u0627\u0648\u067e\u0631\u0679 <code>(researcherId, scholarshipId)<\/code><\/p>\n<\/li>\n<li>\n<p><code>addResearchNote<\/code>    \u0686\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u06c1 \u0622\u06cc\u0627 \u06a9\u0648\u0626\u06cc \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u06c1\u06d2\u060c \u0627\u06cc\u06a9 \u0646\u0648\u0679 \u0688\u0627\u0644\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><code>getUpcomingDeadlines<\/code>    \u0627\u0633\u062a\u0641\u0633\u0627\u0631 <code>deadline<\/code> \u0627\u0628 \u0627\u0648\u0631 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 <code>now + N days<\/code><\/p>\n<\/li>\n<li>\n<p><code>compareScholarships<\/code>    \u062f\u0648 \u06cc\u0627 \u062a\u06cc\u0646 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u0644\u0648\u0688 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u06c1\u06cc \u0641\u06cc\u0644\u0688 \u0648\u0627\u067e\u0633 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u067e\u0646\u06cc MongoDB \u0634\u0646\u0627\u062e\u062a \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0631\u06cc\u06ba: <code>mongoose.Types.ObjectId.isValid<\/code> \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u06d4 LLM \u0628\u0639\u0636 \u0627\u0648\u0642\u0627\u062a \u0627\u06cc\u0633\u06d2 \u0639\u0646\u0648\u0627\u0646\u0627\u062a \u06a9\u0648 \u0622\u06af\u06d2 \u0628\u06be\u06cc\u062c \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062c\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u0646\u06d2 ID \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u06c1\u06d2\u06d4 \u06cc\u0642\u06cc\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0646\u0627\u06a9\u0627\u0645\u06d4 MCP \u0679\u0631\u0627\u0646\u0633\u0645\u06cc\u0634\u0646 \u0645\u06cc\u06ba CastError \u0646\u06c1 \u0628\u0691\u06be\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<p>\u0628\u0646\u0627\u0646\u0627 <code>src\/mcp\/server.js<\/code> \u0641\u06cc\u06a9\u0679\u0631\u06cc \u06a9\u0648\u06d4 HTTP \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06c1\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u06d2 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">import { McpServer } from \"@modelcontextprotocol\/server\";\nimport { registerPrompts } from \".\/prompts.js\";\nimport { registerResources } from \".\/resources.js\";\nimport { registerTools } from \".\/tools.js\";\n\nexport function createScholarshipServer() {\n  const server = new McpServer({\n    name: \"scholarship-research\",\n    version: \"1.0.0\",\n  });\n\n  registerTools(server);\n  registerResources(server);\n  registerPrompts(server);\n\n  return server;\n}\n<\/code><\/pre>\n<p>\u0627\u0633 \u067e\u0648\u062f\u06d2 \u06a9\u0648 \u0633\u0633\u062a\u06cc \u0631\u06a9\u06be\u06cc\u06ba\u06d4 \u06a9\u0648\u0626\u06cc \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u0646\u06a9\u0634\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u06a9\u0648\u0626\u06cc \u0641\u0627\u0626\u0644\u06cc\u06ba \u0646\u06c1\u06cc\u06ba \u067e\u0691\u06be\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u06a9\u0648\u0626\u06cc \u0645\u0627\u0688\u06cc\u0648\u0644 \u0627\u0633\u06a9\u0648\u067e\u0688 \u06a9\u06cc\u0686\u0632 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 HTTP \u0633\u0631\u0648\u0646\u06af \u06af\u0627\u0626\u06cc\u0688 \u0627\u0633 \u06a9\u06cc \u0648\u0627\u0636\u062d \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0633\u0679\u0627\u0631\u0679 \u0627\u067e \u067e\u0631 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u06a9\u0646\u06a9\u0634\u0646 \u067e\u0648\u0644 \u0628\u0646\u0627 \u0627\u0648\u0631 \u0628\u0646\u062f \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-one-tool-fully\">\u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0627\u06cc\u06a9 \u0679\u0648\u0644 \u0645\u06cc\u06ba<\/h3>\n<p><code>registerTool<\/code>    \u0646\u0627\u0645\u060c \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0622\u0628\u062c\u06cc\u06a9\u0679\u060c \u0627\u0648\u0631 \u06c1\u06cc\u0646\u0688\u0644\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06a9\u06c1 <code>inputSchema<\/code> \u0632\u0648\u062f \u0622\u0628\u062c\u06cc\u06a9\u0679\u06d4 SDK \u0627\u0633 \u0627\u0633\u06a9\u06cc\u0645\u0627 \u06a9\u0648 JSON \u0627\u0633\u06a9\u06cc\u0645\u0627 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>tools\/list<\/code>\u06c1\u06cc\u0646\u0688\u0644\u0631 \u067e\u0631 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062f\u0644\u0627\u0626\u0644 \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06af\u0631 TypeScript \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u0642\u0633\u0645 \u06a9\u0627 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">import * as z from \"zod\/v4\";\n\nserver.registerTool(\n  \"search_scholarships\",\n  {\n    title: \"Search scholarships\",\n    description:\n      \"Search the scholarship catalog by keyword, field of study, education level, citizenship, country, GPA, and award amount.\",\n    inputSchema: z.object({\n      keyword: z.string().min(1).optional().describe(\"Free-text search across title, provider, description, and fields\"),\n      fieldOfStudy: z.string().optional().describe(\"For example computer science, public health, or engineering\"),\n      educationLevel: z.enum([\"undergraduate\", \"graduate\", \"doctoral\"]).optional(),\n      citizenship: z.string().optional(),\n      country: z.string().optional(),\n      minAmount: z.number().nonnegative().optional(),\n      gpa: z.number().min(0).max(4).optional(),\n      firstGeneration: z.boolean().optional(),\n      womenOnly: z.boolean().optional(),\n      limit: z.number().int().min(1).max(25).optional(),\n    }),\n    annotations: { readOnlyHint: true, openWorldHint: false },\n  },\n  async (args) => {\n    const results = await searchScholarships(args);\n    return toolText(formatScholarshipList(results));\n  },\n);\n<\/code><\/pre>\n<p>\u0627\u067e\u0646\u06cc \u062a\u0641\u0635\u06cc\u0644 \u0644\u06a9\u06be\u06cc\u06ba \u06af\u0648\u06cc\u0627 \u0645\u0627\u0688\u0644 \u0648\u0627\u062d\u062f \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06c1\u06d2 \u062c\u0648 \u0622\u067e \u06a9\u0648 \u0679\u0648\u0644 \u0633\u06d2 \u0645\u0644\u06d2 \u06af\u06cc\u06d4 <code>.describe()<\/code> \u0632\u0648\u0688 \u0641\u06cc\u0644\u0688\u0632 \u06a9\u0648 JSON \u0627\u0633\u06a9\u06cc\u0645\u0627 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u067e\u0631 \u0645\u062d\u0641\u0648\u0638 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0645\u0627\u0688\u0644 \u0633\u06d2 \u06a9\u06c1\u062a\u0627 \u06c1\u06d2: <code>fieldOfStudy<\/code> \u0637\u0631\u06cc\u0642\u06c1<\/p>\n<p><code>title<\/code>    \u0627\u0646\u0633\u0627\u0646\u06cc \u0644\u06cc\u0628\u0644\u06d4 <code>description<\/code> \u06cc\u06c1 \u0627\u06cc\u06a9 \u0645\u0627\u0688\u0644 \u067e\u0631 \u0645\u0628\u0646\u06cc \u0645\u0639\u0627\u06c1\u062f\u06c1 \u06c1\u06d2\u06d4 \u0648\u06c1 \u0627\u06cc\u06a9 \u06c1\u06cc \u062a\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-annotations\">\u062a\u0634\u0631\u06cc\u062d<\/h3>\n<p>\u062a\u0634\u0631\u06cc\u062d\u0627\u062a \u062a\u0628\u062f\u06cc\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba \u06a9\u06c1 SDK \u0679\u0648\u0644 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0686\u0644\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0627\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06cc\u06c1 \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0646\u06c1\u06cc\u06ba \u06a9\u062a\u0646\u0627 \u0645\u062d\u062a\u0627\u0637 \u0631\u06c1\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<ul>\n<li>\n<p><code>readOnlyHint: true<\/code>    \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u060c \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u0645\u06cc\u0686 \u06a9\u0631\u06cc\u06ba\u060c \u0641\u06c1\u0631\u0633\u062a \u0628\u0646\u0627\u0626\u06cc\u06ba\u060c \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0645\u0642\u0631\u0631\u06c1 \u062a\u0627\u0631\u06cc\u062e<\/p>\n<\/li>\n<li>\n<p><code>readOnlyHint: false<\/code>    \u0646\u0648\u0679 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2<\/p>\n<\/li>\n<li>\n<p><code>idempotentHint: true<\/code>    \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u0645\u0646\u0641\u0631\u062f \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u0633\u06d2<\/p>\n<\/li>\n<li>\n<p><code>openWorldHint: false<\/code>    \u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u0633\u0631\u0648\u0631 \u0627\u06cc\u06a9 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0633\u06d2 \u0631\u0627\u0628\u0637\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0646\u06c1 \u06a9\u06c1 \u0639\u0648\u0627\u0645\u06cc \u0648\u06cc\u0628 \u0633\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0645\u06cc\u0632\u0628\u0627\u0646 \u0635\u0631\u0641 \u067e\u0691\u06be\u0646\u06d2 \u0648\u0627\u0644\u06cc \u062a\u0644\u0627\u0634\u0648\u06ba \u06a9\u0648 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0646\u0638\u0648\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0644\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0635\u0627\u0631\u0641 \u0633\u06d2 \u067e\u0648\u0686\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0622\u067e \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba 5 \u0627\u0636\u0627\u0641\u06cc \u0686\u0627\u0628\u06cc\u0627\u06ba \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-return-shape\">\u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u0634\u06a9\u0644<\/h3>\n<p>\u062a\u0645\u0627\u0645 \u0679\u0648\u0644\u0632 MCP \u0645\u0648\u0627\u062f \u06a9\u06d2 \u0628\u0644\u0627\u06a9\u0633 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">export function toolText(text, isError = false) {\n  return {\n    content: [{ type: \"text\", text }],\n    isError,\n  };\n}\n<\/code><\/pre>\n<p>\u0648\u0627\u067e\u0633\u06cc <code>isError: true<\/code> \u0688\u0648\u0645\u06cc\u0646 \u06a9\u06cc \u062e\u0631\u0627\u0628\u06cc\u0648\u06ba \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u062c\u06cc\u0633\u06d2 &quot;\u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0646\u06c1\u06cc\u06ba \u0645\u0644\u0627&#8221;\u06d4 \u0635\u0631\u0641 \u0627\u0633 \u0648\u0642\u062a \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u06a9\u0648\u0626\u06cc \u063a\u06cc\u0631 \u0645\u062a\u0648\u0642\u0639 \u062e\u0631\u0627\u0628\u06cc \u0648\u0627\u0642\u0639 \u06c1\u0648\u06d4 \u0642\u06cc\u0627\u0633 \u0627\u0633 \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0633\u0644\u0648\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 Zod \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u06cc \u063a\u0644\u0637\u06cc\u0627\u06ba \u06c1\u06cc\u0646\u0688\u0644\u0631 \u062a\u06a9 \u06a9\u0628\u06be\u06cc \u0646\u06c1\u06cc\u06ba \u067e\u06c1\u0646\u0686\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 SDK \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u06cc\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>isError<\/code> \u0646\u062a\u06cc\u062c\u06c1<\/p>\n<p>\u0622\u067e \u06a9\u06cc \u0686\u06cc\u0679 \u06a9\u06cc \u0633\u0631\u06af\u0632\u0634\u062a \u06a9\u0648 \u0633\u06a9\u06cc\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0644\u0648\u06af\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0641\u06c1\u0631\u0633\u062a \u0641\u0627\u0631\u0645\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 MongoDB ID \u06a9\u0648 \u06c1\u0631 \u0642\u0637\u0627\u0631 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u06d2 \u0679\u0648\u0644\u0632 \u06a9\u0648 \u0627\u0633 ID \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06af\u06cc \u0627\u0648\u0631 \u0645\u0627\u0688\u0644 \u0627\u06cc\u06a9 \u062f\u0631\u0633\u062a ObjectId \u067e\u06cc\u062f\u0627 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u06d2 \u06af\u0627\u06d4<\/p>\n<h3 id=\"heading-the-full-tool-set\">\u0679\u0648\u0644\u0632 \u06a9\u0627 \u0645\u06a9\u0645\u0644 \u0633\u06cc\u0679<\/h3>\n<p>\u0633\u0631\u0648\u0631 9 \u0679\u0648\u0644\u0632 \u06a9\u0648 \u0631\u062c\u0633\u0679\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<table>\n<thead>\n<tr>\n<th>\u0633\u0627\u0645\u0627\u0646<\/th>\n<th>\u0641\u0646\u06a9\u0634\u0646<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>search_scholarships<\/code><\/td>\n<td>\u06a9\u06cc\u0679\u0644\u0627\u06af \u0641\u0644\u0679\u0631\u0646\u06af<\/td>\n<\/tr>\n<tr>\n<td><code>get_scholarship<\/code><\/td>\n<td>\u0627\u06cc\u06a9 \u067e\u0648\u0631\u0627 \u0631\u06cc\u06a9\u0627\u0631\u0688 \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/td>\n<\/tr>\n<tr>\n<td><code>match_scholarships<\/code><\/td>\n<td>\u0633\u0679\u0648\u0688\u0646\u0679 \u067e\u0631\u0648\u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u0648\u0627\u0626\u0646\u0679\u0633 \u0627\u06cc\u0648\u0627\u0631\u0688<\/td>\n<\/tr>\n<tr>\n<td><code>save_scholarship<\/code><\/td>\n<td>\u06c1\u0645\u0627\u0631\u06d2 \u0627\u06cc\u0648\u0627\u0631\u0688\u0632 \u06a9\u0648 \u0628\u06a9 \u0645\u0627\u0631\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/td>\n<\/tr>\n<tr>\n<td><code>list_saved_scholarships<\/code><\/td>\n<td>\u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0648\u06ba \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u062f\u06a9\u06be\u0627\u0626\u06cc\u06ba\u06d4<\/td>\n<\/tr>\n<tr>\n<td><code>add_research_note<\/code><\/td>\n<td>\u0627\u06cc\u06a9 \u0646\u0648\u0679 \u0645\u0646\u0633\u0644\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/td>\n<\/tr>\n<tr>\n<td><code>list_research_notes<\/code><\/td>\n<td>\u0627\u067e\u0646\u06d2 \u0646\u0648\u0679 \u062f\u0648\u0628\u0627\u0631\u06c1 \u067e\u0691\u06be\u06cc\u06ba<\/td>\n<\/tr>\n<tr>\n<td><code>get_upcoming_deadlines<\/code><\/td>\n<td>\u0645\u0642\u0631\u0631\u06c1 \u062a\u0627\u0631\u06cc\u062e \u0648\u0646\u0688\u0648<\/td>\n<\/tr>\n<tr>\n<td><code>compare_scholarships<\/code><\/td>\n<td>2 \u06cc\u0627 3 IDs \u06a9\u0648 \u0633\u0627\u062a\u06be \u0633\u0627\u062a\u06be \u0631\u06a9\u06be\u06cc\u06ba<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u06cc\u06c1 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2\u060c \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u0631\u0646\u06d2\u060c \u0645\u0644\u0627\u067e \u06a9\u0631\u0646\u06d2\u060c \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0631\u0646\u06d2\u060c \u062a\u0634\u0631\u06cc\u062d \u06a9\u0631\u0646\u06d2 \u0627\u0648\u0631 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0631\u06cc\u0633\u0631\u0686 \u0644\u0648\u067e \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0641\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u062e\u0648\u0627\u06c1\u0634 \u06a9\u06d2 \u062e\u0644\u0627\u0641 \u0645\u0632\u0627\u062d\u0645\u062a \u06a9\u0631\u06cc\u06ba\u06d4 <code>delete_everything<\/code> \u0633\u0627\u0645\u0627\u0646 \u062a\u0628\u0627\u06c1 \u06a9\u0646 \u0679\u0648\u0644\u0632 \u06a9\u0648 \u0627\u0636\u0627\u0641\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0648\u06c1 \u0627\u0633 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-how-to-expose-resources-and-prompts\">\u0648\u0633\u0627\u0626\u0644 \u0627\u0648\u0631 \u0627\u0634\u0627\u0631\u06d2 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0628\u06d2 \u0646\u0642\u0627\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0645\u06cc\u0632\u0628\u0627\u0646\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u06cc\u06c1 \u0645\u0639\u0644\u0648\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0648\u0627\u062d\u062f \u0637\u0631\u06cc\u0642\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u06a9\u06c1 \u06a9\u06cc\u0627 \u06c1\u0648 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-resources\">\u0648\u0633\u0627\u0626\u0644<\/h3>\n<p>\u0627\u06cc\u06a9 \u0645\u0633\u062a\u062d\u06a9\u0645 \u0648\u0633\u06cc\u0644\u06c1 \u0627\u06cc\u06a9 \u0645\u0642\u0631\u0631\u06c1 URI \u06c1\u06d2\u06d4 \u06a9\u06cc\u0679\u0644\u0627\u06af \u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u0632\u0648\u06ba \u06c1\u06d2:<\/p>\n<pre><code class=\"language-javascript\">server.registerResource(\n  \"scholarship-catalog\",\n  \"scholarship:\/\/catalog\",\n  {\n    title: \"Scholarship catalog\",\n    description: \"Open scholarships currently stored in MongoDB\",\n    mimeType: \"application\/json\",\n  },\n  async (uri) => {\n    const catalog = await listCatalog();\n    return {\n      contents: [\n        {\n          uri: uri.href,\n          mimeType: \"application\/json\",\n          text: JSON.stringify(catalog, null, 2),\n        },\n      ],\n    };\n  },\n);\n<\/code><\/pre>\n<p>\u0631\u06cc\u0633\u0648\u0631\u0633 \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679\u0633 \u0645\u06cc\u06ba URI \u0641\u06cc\u0645\u0644\u06cc \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>scholarship:\/\/item\/{id}<\/code> \u0628\u0644\u06a9\u06c1 <code>scholarship:\/\/{id}<\/code>. \u0627\u06af\u0631 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0646\u0645\u0648\u0646\u06c1 \u06c1\u06d2\u06d4 <code>scholarship:\/\/{id}<\/code>URI <code>scholarship:\/\/catalog<\/code> \u06cc\u06c1 \u0645\u0628\u06c1\u0645 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">import { ResourceTemplate } from \"@modelcontextprotocol\/server\";\n\nserver.registerResource(\n  \"scholarship-record\",\n  new ResourceTemplate(\"scholarship:\/\/item\/{id}\", {\n    list: async () => {\n      const catalog = await listCatalog(20);\n      return {\n        resources: catalog.map((scholarship) => ({\n          uri: `scholarship:\/\/item\/${scholarship._id}`,\n          name: scholarship.title,\n          mimeType: \"text\/plain\",\n        })),\n      };\n    },\n  }),\n  {\n    title: \"Scholarship record\",\n    description: \"Full details for one scholarship\",\n    mimeType: \"text\/plain\",\n  },\n  async (uri, { id }) => {\n    const scholarship = await getScholarshipById(id);\n    return {\n      contents: [\n        {\n          uri: uri.href,\n          mimeType: \"text\/plain\",\n          text: scholarship\n            ? formatScholarship(scholarship)\n            : `No scholarship found with id ${id}.`,\n        },\n      ],\n    };\n  },\n);\n<\/code><\/pre>\n<p><code>list<\/code>    \u0679\u06cc\u0645\u067e\u0644\u06cc\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u06d4 \u067e\u0627\u0633 <code>undefined<\/code> \u0627\u06af\u0631 \u0645\u062b\u0627\u0644\u06cc\u06ba \u0634\u0645\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc \u062c\u0627 \u0633\u06a9\u062a\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0648\u06c1 \u062c\u06af\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0645\u06cc\u0632\u0628\u0627\u0646 \u0633\u0644\u06cc\u06a9\u0679\u0631 \u062f\u06a9\u06be\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-prompts\">\u0641\u0648\u0631\u06cc<\/h3>\n<p>\u0627\u06cc\u06a9 \u067e\u0631\u0627\u0645\u067e\u0679 \u0627\u06cc\u06a9 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06c1\u06d2 \u062c\u0633\u06d2 \u0622\u067e \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0635\u0627\u0631\u0641 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06d2\u06d4 \u0627\u0633\u0679\u0688\u06cc \u067e\u0644\u0627\u0646 \u067e\u0631\u0627\u0645\u067e\u0679 \u062e\u0648\u062f MongoDB \u0633\u06d2 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u0627\u0688\u0644 \u06a9\u0648 \u0679\u0648\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06c1\u062f\u0627\u06cc\u062a \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u0627\u0633 \u06a9\u06d2 \u062c\u0648\u0627\u0628 \u06a9\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-javascript\">server.registerPrompt(\n  \"research-plan\",\n  {\n    title: \"Scholarship research plan\",\n    description: \"Build a week-by-week research and application plan from a student profile.\",\n    argsSchema: z.object({\n      fieldOfStudy: z.string(),\n      educationLevel: z.string(),\n      citizenship: z.string(),\n      gpa: z.string(),\n      weeks: z.string().optional(),\n    }),\n  },\n  ({ fieldOfStudy, educationLevel, citizenship, gpa, weeks }) => ({\n    messages: [\n      {\n        role: \"user\",\n        content: {\n          type: \"text\",\n          text: `Create a ${weeks || \"6\"}-week scholarship research plan for this student.\n\nField of study: ${fieldOfStudy}\nEducation level: ${educationLevel}\nCitizenship: ${citizenship}\nGPA: ${gpa}\n\nUse the scholarship research tools to find real awards first. Then produce a shortlist, a week-by-week plan, and risks. Name actual scholarships and dates from the tool results.`,\n        },\n      },\n    ],\n  }),\n);\n<\/code><\/pre>\n<p>&quot;\u06c1\u0645\u0627\u0631\u0627 \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0631\u06cc\u0633\u0631\u0686 \u0679\u0648\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba&#8221; \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u062f\u0627\u06cc\u0627\u062a \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4 \u0627\u0634\u0627\u0631\u06d2 \u0679\u0648\u0644\u0632 \u06a9\u0627 \u0645\u062a\u0628\u0627\u062f\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 \u0627\u06cc\u06a9 \u0627\u0633\u06a9\u0631\u067e\u0679 \u062c\u0648 \u0679\u0648\u0644 \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0642\u0627\u0628\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0633\u062a\u0642\u0644 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062f\u0648\u0633\u0631\u0627 \u0627\u0634\u0627\u0631\u06c1\u060c <code>application-checklist<\/code>\u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e ID \u062d\u0627\u0635\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u0627\u0648\u0631 \u0679\u0631\u0627\u0646\u0633\u0641\u0631 \u06a9\u06cc\u0644\u0646\u0688\u0631 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u06c1 \u062f\u06c1\u0631\u0627\u06cc\u0627 \u062c\u0627\u0646\u06d2 \u0648\u0627\u0644\u0627 \u06a9\u0627\u0645 \u06c1\u06d2 \u062c\u0633\u06d2 MCP \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0686\u06be\u06cc \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0627 \u0645\u0638\u0627\u06c1\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u0631\u0627\u0645\u067e\u0679 \u062f\u0644\u06cc\u0644 \u0628\u06c1\u062a \u0633\u06d2 \u0645\u06cc\u0632\u0628\u0627\u0646\u0648\u06ba \u067e\u0631 \u0627\u06cc\u06a9 \u062a\u0627\u0631 \u06c1\u06d2\u060c \u0686\u0627\u06c1\u06d2 \u0642\u062f\u0631 \u0639\u062f\u062f\u06cc \u06c1\u0648\u06d4 \u0628\u0644\u06d2 \u0628\u0627\u0632 <code>gpa<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u062a\u0627\u0631 \u0645\u0627\u06cc\u0648\u0633\u06cc \u06a9\u0648 \u0631\u0648\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>expected number, received string<\/code> \u0633\u0644\u06cc\u0634 \u06a9\u0645\u0627\u0646\u0688 \u0641\u0627\u0631\u0645\u06cc\u0679 \u0645\u06cc\u06ba \u062e\u0631\u0627\u0628\u06cc\u06d4<\/p>\n<h2 id=\"heading-how-to-serve-mcp-over-express\">\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u067e\u0631 \u0627\u06cc\u0645 \u0633\u06cc \u067e\u06cc \u06a9\u06cc \u0641\u0631\u0627\u06c1\u0645\u06cc \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h2>\n<p>\u06cc\u06c1 \u0633\u06cc\u0634\u0646 \u06c1\u06cc\u0646\u0688\u0644\u0646\u06af \u06a9\u0648\u0688 \u06a9\u0627 \u0635\u0641\u062d\u06c1 \u06c1\u06d2\u06d4 SDK v2 \u0645\u06cc\u06ba \u06cc\u06c1 \u0627\u06cc\u06a9 \u0641\u06cc\u06a9\u0679\u0631\u06cc \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0631\u0627\u0633\u062a\u06c1 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-javascript\">import \"dotenv\/config\";\nimport { createMcpExpressApp } from \"@modelcontextprotocol\/express\";\nimport { toNodeHandler } from \"@modelcontextprotocol\/node\";\nimport { createMcpHandler } from \"@modelcontextprotocol\/server\";\nimport { config } from \".\/config.js\";\nimport { connectDatabase } from \".\/db.js\";\nimport { createScholarshipServer } from \".\/mcp\/server.js\";\n\nconst mcpHandler = createMcpHandler(() => createScholarshipServer());\nconst nodeHandler = toNodeHandler(mcpHandler);\n\nconst app = createMcpExpressApp({\n  host: config.host,\n  allowedHosts: [\"127.0.0.1\", \"localhost\"],\n});\n\napp.get(\"\/health\", (_req, res) => {\n  res.json({\n    status: \"ok\",\n    service: \"scholarship-research-mcp\",\n    transport: \"streamable-http\",\n  });\n});\n\napp.all(\"\/mcp\", (req, res) => {\n  void nodeHandler(req, res, req.body);\n});\n\nasync function start() {\n  await connectDatabase();\n  app.listen(config.port, config.host, () => {\n    console.log(`Scholarship research MCP server listening on http:\/\/${config.host}:${config.port}\/mcp`);\n  });\n}\n\nstart();\n<\/code><\/pre>\n<p>\u06c1\u0631 \u0627\u0633\u0633\u0679\u0646\u0679 \u06a9\u06cc\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0633 \u067e\u0631 \u0627\u06cc\u06a9 \u0646\u0638\u0631 \u0688\u0627\u0644\u06cc\u06ba\u06d4<\/p>\n<p><code>createMcpHandler<\/code>    \u06cc\u06c1 \u0627\u06cc\u06a9 \u0641\u0646\u06a9\u0634\u0646 \u0644\u06cc\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u06a9\u0686\u06be \u0646\u06cc\u0627 \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>McpServer<\/code>. \u0648\u06cc\u0628 \u0645\u0639\u06cc\u0627\u0631\u0627\u062a \u06a9\u0648 \u0628\u06d2 \u0646\u0642\u0627\u0628 \u06a9\u0631\u06cc\u06ba\u06d4 <code>fetch<\/code>. \u06cc\u06c1 \u0648\u06c1\u06cc \u06c1\u06cc\u0646\u0688\u0644\u0631 \u06c1\u06d2 \u062c\u0633\u06d2 Cloudflare \u0648\u0631\u06a9\u0631 \u0628\u0631\u0622\u0645\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><code>toNodeHandler<\/code>    \u0627\u0633 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0628\u0646\u0627\u0626\u06cc\u06ba <code>fetch<\/code> \u0627\u0638\u06c1\u0627\u0631 <code>(req, res)<\/code>. \u062a\u0645 \u06af\u0632\u0631 \u062c\u0627\u0624 <code>req.body<\/code> \u062a\u06cc\u0633\u0631\u06cc \u062f\u0644\u06cc\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 <code>createMcpExpressApp<\/code> \u0645\u06cc\u06ba \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0628\u06be\u0627\u06af \u06af\u06cc\u0627 \u062a\u06be\u0627\u06d4 <code>express.json()<\/code>. \u0627\u06af\u0631 \u0622\u067e \u0628\u0627\u0688\u06cc \u06a9\u0648 \u0686\u06be\u0648\u0691 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0627\u0688\u0627\u067e\u0679\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0633\u0679\u0631\u06cc\u0645 \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u06d2 \u06af\u0627 \u062c\u0648 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648 \u0686\u06a9\u06cc \u06c1\u06d2\u06d4<\/p>\n<p><code>createMcpExpressApp<\/code>    \u06c1\u06d2 <code>express()<\/code> \u062f\u0648 \u0627\u0636\u0627\u0641\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a: JSON \u067e\u0627\u0631\u0633\u0646\u06af \u0627\u0648\u0631 \u0645\u06cc\u0632\u0628\u0627\u0646\/\u0627\u0635\u0644 \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642\u06d4 \u06cc\u06c1 \u0686\u06cc\u06a9 DNS \u0631\u06cc \u0628\u0627\u0626\u0646\u0688\u0646\u06af \u06a9\u06cc \u0648\u062c\u06c1 \u0633\u06d2 \u0645\u0648\u062c\u0648\u062f \u06c1\u06cc\u06ba\u06d4 \u0628\u062f\u0646\u06cc\u062a\u06cc \u067e\u0631 \u0645\u0628\u0646\u06cc \u0635\u0641\u062d\u0627\u062a \u0627\u0646 \u06a9\u06d2 \u0627\u067e\u0646\u06d2 \u0688\u0648\u0645\u06cc\u0646 \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>127.0.0.1<\/code> \u0645\u06cc\u0632\u0628\u0627\u0646 \u0631\u06cc\u0632\u0648\u0644\u0648\u0634\u0646 \u06a9\u06d2 \u0628\u063a\u06cc\u0631\u060c \u0628\u0631\u0627\u0624\u0632\u0631 \u0645\u0642\u0627\u0645\u06cc MCP \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0627\u06cc\u06a9 \u06c1\u06cc \u0627\u0635\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0627\u0646\u06cc\u06ba \u06af\u06d2\u06d4 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0628\u0627\u0626\u0646\u0688\u0646\u06af \u06c1\u06d2\u06d4 <code>127.0.0.1<\/code> \u0627\u0633 \u0644\u06cc\u06d2 \u06c1\u0645\u0627\u0631\u06cc \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0688\u06cc\u0644\u06cc\u0648\u0631\u06cc \u06af\u0627\u0626\u06cc\u0688 \u0627\u0633 \u06a9\u0627 \u0645\u0632\u06cc\u062f \u062a\u0641\u0635\u06cc\u0644 \u0633\u06d2 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p><code>app.all(\"\/mcp\", ...)<\/code>    \u06cc\u06c1 \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u06c1\u06d2\u06d4 \u0633\u0679\u0631\u06cc\u0645 \u0627\u06cc\u0628\u0644 HTTP JSON-RPC \u06a9\u06d2 \u0644\u06cc\u06d2 POST \u0627\u0648\u0631 SSE \u0627\u0633\u0679\u0631\u06cc\u0645\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 GET \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0635\u0631\u0641 POST \u06a9\u06d2 \u0644\u06cc\u06d2 \u0631\u062c\u0633\u0679\u0631 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u06a9\u0686\u06be \u06a9\u0644\u0627\u0626\u0646\u0679\u0633 \u0679\u0648\u0679 \u062c\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u0646\u0688 \u06c1\u06cc\u0646\u0688\u0644\u0631 <code>SIGINT<\/code>:<\/p>\n<pre><code class=\"language-javascript\">process.on(\"SIGINT\", async () => {\n  await mcpHandler.close();\n  process.exit(0);\n});\n<\/code><\/pre>\n<p><code>close()<\/code>    \u06c1\u0645 \u0622\u067e \u06a9\u06cc \u067e\u0631\u0648\u0627\u0632 \u0645\u06cc\u06ba \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0622\u067e \u0686\u06be\u0648\u0691 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u0646 \u067e\u06cc \u0627\u06cc\u0645 \u0627\u0633\u06a9\u0631\u067e\u0679 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-json\">{\n  \"scripts\": {\n    \"start\": \"node src\/index.js\",\n    \"dev\": \"node --watch src\/index.js\",\n    \"seed\": \"node scripts\/seed.js\",\n    \"smoke\": \"node scripts\/smoke-test.js\"\n  }\n}\n<\/code><\/pre>\n<p><code>node --watch<\/code>    \u06cc\u06c1 \u0645\u0642\u0627\u0645\u06cc \u062a\u0631\u0642\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0641\u06cc \u06c1\u06d2\u06d4 \u0627\u0633 \u0645\u0646\u0635\u0648\u0628\u06d2 \u06a9\u0648 \u0646\u0648\u0688\u06cc\u0645\u0648\u0646 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-seed-the-catalog\">\u06a9\u06cc\u0679\u0644\u0627\u06af \u06a9\u0648 \u0628\u06cc\u062c \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h2>\n<p>\u062e\u0627\u0644\u06cc \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 MCP \u0679\u0648\u0644 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 &quot;\u06a9\u0648\u0626\u06cc \u0645\u0645\u0627\u062b\u0644 \u0648\u0638\u0627\u0626\u0641 \u0646\u06c1\u06cc\u06ba&#8221; \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0633\u0686 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u0627\u0686\u06be\u0627 \u067e\u06c1\u0644\u0627 \u062a\u0627\u062b\u0631 \u0646\u06c1\u06cc\u06ba \u0628\u0646\u0627\u062a\u0627\u06d4<\/p>\n<p>20 \u0633\u06d2 30 \u062d\u0642\u06cc\u0642\u062a \u067e\u0633\u0646\u062f\u0627\u0646\u06c1 \u0631\u06cc\u06a9\u0627\u0631\u0688\u0632 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 <code>data\/scholarships.json<\/code>. \u0645\u06a9\u0633:<\/p>\n<ul>\n<li>\n<p>\u0627\u0646\u0688\u0631\u06af\u0631\u06cc\u062c\u0648\u06cc\u0679 \u0627\u0648\u0631 \u06af\u0631\u06cc\u062c\u0648\u06cc\u0679 \u0627\u06cc\u0648\u0627\u0631\u0688\u0632<\/p>\n<\/li>\n<li>\n<p>STEM \u0627\u0648\u0631 \u0641\u06cc\u0644\u0688 \u067e\u0628\u0644\u06a9 \u0627\u06cc\u0648\u0627\u0631\u0688\u0632<\/p>\n<\/li>\n<li>\n<p>\u0645\u0644\u06a9 \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642 \u0627\u0648\u0631 \u0639\u0627\u0644\u0645\u06cc \u067e\u0631\u0648\u06af\u0631\u0627\u0645<\/p>\n<\/li>\n<li>\n<p>\u0631\u0648\u0644\u0646\u06af \u0688\u06cc\u0688 \u0644\u0627\u0626\u0646\u0632 \u0627\u0648\u0631 \u0633\u062e\u062a \u062a\u0627\u0631\u06cc\u062e\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u067e\u06c1\u0644\u06cc \u0646\u0633\u0644 \u0627\u0648\u0631 \u0635\u0631\u0641 \u062e\u0648\u0627\u062a\u06cc\u0646 \u06a9\u06d2 \u062c\u06be\u0646\u0688\u06d2<\/p>\n<\/li>\n<\/ul>\n<p>\u0628\u06cc\u062c \u0627\u0633\u06a9\u0631\u067e\u0679 \u06a9\u0648 \u06a9\u06cc\u0679\u0644\u0627\u06af \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u060c \u0634\u0627\u0645\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2:<\/p>\n<pre><code class=\"language-javascript\">import \"dotenv\/config\";\nimport { readFile } from \"node:fs\/promises\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { connectDatabase } from \"..\/src\/db.js\";\nimport { Scholarship } from \"..\/src\/models\/index.js\";\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nasync function seed() {\n  await connectDatabase();\n  const raw = await readFile(path.join(__dirname, \"..\", \"data\", \"scholarships.json\"), \"utf8\");\n  await Scholarship.deleteMany({});\n  const inserted = await Scholarship.insertMany(JSON.parse(raw));\n  console.log(`Seeded ${inserted.length} scholarships.`);\n  process.exit(0);\n}\n\nseed();\n<\/code><\/pre>\n<p>\u0686\u0644\u0627\u0626\u06cc\u06ba:<\/p>\n<pre><code class=\"language-bash\">npm run seed\n<\/code><\/pre>\n<p>\u0646\u0645\u0648\u0646\u06c1 \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 JSON \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u06cc\u06ba\u06d4 \u0645\u0639\u0631\u0648\u0641 \u067e\u0631\u0648\u06af\u0631\u0627\u0645\u0648\u06ba \u06a9\u06d2 \u0646\u0627\u0645 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u06a9\u0648 \u062d\u0642\u06cc\u0642\u062a \u067e\u0633\u0646\u062f\u0627\u0646\u06c1 \u0627\u062d\u0633\u0627\u0633 \u062f\u0644\u0627\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0628\u06be\u06cc \u06c1\u0645\u0627\u0631\u0627 \u0641\u0631\u0636 \u06c1\u06d2 \u06a9\u06c1 \u06c1\u0645 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0628\u062a\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u0637\u0644\u0628\u0627\u0621 \u06a9\u0648 \u0633\u0631\u06a9\u0627\u0631\u06cc \u0648\u06cc\u0628 \u0633\u0627\u0626\u0679 \u067e\u0631 \u062a\u0645\u0627\u0645 \u0646\u0645\u0628\u0631\u0632 \u0627\u0648\u0631 \u062a\u0627\u0631\u06cc\u062e\u0648\u06ba \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u06a9\u06c1 <code>applicationUrl<\/code> \u0641\u06cc\u0644\u0688 \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0646\u0648\u0679\u06cc\u0641\u06a9\u06cc\u0634\u0646 \u06a9\u06c1\u06cc\u06ba \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0628\u0639\u062f \u0645\u06cc\u06ba \u0627\u067e\u0646\u06d2 JSON \u06a9\u0648 \u0644\u0627\u0626\u06cc\u0648 \u0633\u0648\u0631\u0633 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u0648\u06c1\u06cc \u0627\u0633\u06a9\u06cc\u0645\u0627 \u0631\u06a9\u06be\u06cc\u06ba\u06d4 MCP \u0679\u0648\u0644\u0632 \u06a9\u0648 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u067e\u0631\u0648\u0627\u06c1 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2 \u06a9\u06c1 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06c1\u0627\u06ba \u0633\u06d2 \u0622\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-how-to-test-the-server\">\u0627\u067e\u0646\u06d2 \u0633\u0631\u0648\u0631 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>MongoDB \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0628\u06cc\u062c \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0639\u0645\u0644 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-bash\">npm run seed\nnpm start\n<\/code><\/pre>\n<p>\u0622\u067e \u06a9\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2:<\/p>\n<pre><code class=\"language-text\">Scholarship research MCP server listening on http:\/\/127.0.0.1:3000\/mcp\n<\/code><\/pre>\n<h3 id=\"heading-health-check\">\u0635\u062d\u062a \u06a9\u06cc \u062c\u0627\u0646\u0686<\/h3>\n<pre><code class=\"language-bash\">curl -s http:\/\/127.0.0.1:3000\/health\n<\/code><\/pre>\n<p>JSON <code>status: ok<\/code> \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u06cc \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u06a9\u06c1 MCP \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u062c\u0691\u0627 \u06c1\u0648\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u0633\u0627 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06c1\u0645 JSON-RPC \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u06be\u06cc\u062c\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-list-tools\">\u0641\u06c1\u0631\u0633\u062a \u06a9\u0627 \u0622\u0644\u06c1<\/h3>\n<pre><code class=\"language-bash\">curl -s -X POST http:\/\/127.0.0.1:3000\/mcp \\\n  -H 'Content-Type: application\/json' \\\n  -H 'Accept: application\/json, text\/event-stream' \\\n  -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools\/list\"}'\n<\/code><\/pre>\n<p>\u062c\u0648\u0627\u0628 \u0627\u06cc\u06a9 SSE \u0648\u0627\u0642\u0639\u06c1 \u06c1\u06d2\u06d4 <code>data:<\/code> \u0642\u0637\u0627\u0631 JSON-RPC \u0646\u062a\u06cc\u062c\u06c1 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u06d2\u06d4 \u0622\u067e \u06a9\u0648 Zod \u0633\u06d2 \u0645\u0627\u062e\u0648\u0630 JSON \u0627\u0633\u06a9\u06cc\u0645\u0627 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0645\u0627\u0645 \u0646\u0648 \u0679\u0648\u0644\u0632 \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>Accept<\/code> \u06c1\u06cc\u0688\u0631\u0632 \u0627\u06c1\u0645 \u06c1\u06cc\u06ba\u06d4 MCP Streamable HTTP JSON \u06cc\u0627 \u0627\u06cc\u0648\u0646\u0679 \u06a9\u06d2 \u0633\u0644\u0633\u0644\u06d2 \u06a9\u0648 \u0648\u0627\u067e\u0633 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u062f\u0648\u0646\u0648\u06ba \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0627\u06cc\u06a9 \u06c1\u0645 \u0622\u06c1\u0646\u06af \u0627\u0646\u062a\u062e\u0627\u0628 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-call-a-tool\">\u0679\u0648\u0644 \u06a9\u0627\u0644<\/h3>\n<pre><code class=\"language-bash\">curl -s -X POST http:\/\/127.0.0.1:3000\/mcp \\\n  -H 'Content-Type: application\/json' \\\n  -H 'Accept: application\/json, text\/event-stream' \\\n  -d '{\n    \"jsonrpc\":\"2.0\",\n    \"id\":2,\n    \"method\":\"tools\/call\",\n    \"params\": {\n      \"name\": \"search_scholarships\",\n      \"arguments\": {\n        \"fieldOfStudy\": \"computer science\",\n        \"limit\": 3\n      }\n    }\n  }'\n<\/code><\/pre>\n<p>\u0622\u067e \u06a9\u0648 ID\u060c \u0645\u0642\u0631\u0631\u06c1 \u062a\u0627\u0631\u06cc\u062e\u060c \u0627\u0648\u0631 \u06a9\u0645 \u0627\u0632 \u06a9\u0645 GPA \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0646\u0645\u0628\u0631 \u0648\u0627\u0644\u06cc \u0641\u06c1\u0631\u0633\u062a \u0645\u0648\u0635\u0648\u0644 \u06c1\u0648\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0627\u06cc\u06a9 \u0622\u0626\u06cc \u0688\u06cc \u06a9\u0627\u067e\u06cc \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u06d2 \u067e\u0627\u0633 \u06a9\u0631\u06cc\u06ba\u06d4 <code>get_scholarship<\/code>.<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0645\u062a\u0639\u062f\u062f \u0637\u0631\u06cc\u0642\u0648\u06ba \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u0686\u06be\u0648\u0679\u06d2 \u0646\u0648\u0688 \u062f\u06be\u0648\u0626\u06cc\u06ba \u06a9\u06d2 \u0679\u06cc\u0633\u0679 \u062e\u0627\u0645 \u06a9\u0631\u0644 \u0633\u06d2 \u0628\u06c1\u062a\u0631 \u06c1\u06cc\u06ba\u06d4 \u062a\u0639\u0628\u06cc\u0631 \u06a9\u0631\u0646\u0627 <code>data:<\/code> \u0628\u0633 \u0644\u0627\u0626\u0646\u06cc\u06ba \u06a9\u06be\u06cc\u0646\u0686\u06cc\u06ba \u0627\u0648\u0631 \u067e\u0631\u0646\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 <code>result.content[0].text<\/code>. \u0630\u062e\u06cc\u0631\u06c1 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba: <code>scripts\/smoke-test.js<\/code> \u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2\u06d4<\/p>\n<h3 id=\"heading-inspector\">\u0627\u0646\u0633\u067e\u06a9\u0679\u0631<\/h3>\n<p>MCP \u0627\u0646\u0633\u067e\u06a9\u0679\u0631 \u0633\u0631\u0648\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0631\u06a9\u0627\u0631\u06cc GUI \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>http:\/\/127.0.0.1:3000\/mcp<\/code> \u0622\u067e \u0679\u0648\u0644\u0632 \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062f\u0644\u0627\u0626\u0644 \u062f\u0631\u062c \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0627\u06cc\u067e \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u0648\u0633\u0627\u0626\u0644 \u067e\u0691\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0633\u0631\u0648\u0631 \u06a9\u0648 &quot;\u062f\u06cc\u06a9\u06be&#8221; \u0646\u06c1\u06cc\u06ba \u0633\u06a9\u062a\u0627 \u062a\u0648 \u0627\u0646\u0633\u067e\u06a9\u0679\u0631 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0627\u0646\u0633\u067e\u06a9\u0679\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0644\u06cc\u06a9\u0646 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062a\u0648\u060c \u0628\u06af \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0627\u0646\u0633\u067e\u06a9\u0679\u0631 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u067e\u06cc\u0634 \u0631\u0641\u062a \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0628\u06af \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-connect-cursor-and-claude-desktop\">\u0627\u067e\u0646\u06d2 \u06a9\u0631\u0633\u0631 \u06a9\u0648 \u06a9\u0644\u0627\u0688 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e \u0633\u06d2 \u06a9\u06cc\u0633\u06d2 \u062c\u0648\u0691\u06cc\u06ba\u06d4<\/h2>\n<p>\u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u0627 <code>npm start<\/code> \u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2 MCP \u0627\u0648\u0648\u0631 HTTP \u0627\u06cc\u06a9 \u0644\u0627\u0626\u06cc\u0648 \u0633\u0631\u0648\u0631 \u06c1\u06d2\u060c \u0627\u06cc\u06a9 \u0634\u0627\u0679 CLI \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-cursor\">\u06a9\u0631\u0633\u0631<\/h3>\n<p>\u06a9\u0631\u0633\u0631 \u06a9\u06cc MCP \u0633\u06cc\u0679\u0646\u06af\u0632 \u0645\u06cc\u06ba \u0633\u0631\u0648\u0631 \u06a9\u0627 \u0627\u0646\u062f\u0631\u0627\u062c \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0633\u0679\u0631\u06cc\u0645\u0646\u06af \u06a9\u06d2 \u0642\u0627\u0628\u0644 HTTP \u0633\u0631\u0648\u0631\u0632 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-json\">{\n  \"mcpServers\": {\n    \"scholarship-research\": {\n      \"url\": \"http:\/\/127.0.0.1:3000\/mcp\"\n    }\n  }\n}\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u06a9\u0631\u0633\u0631 \u06a9\u0627 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0646\u0627\u06a9\u0627\u0645 \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u06cc\u0634 \u0634\u062f\u06c1 \u06c1\u06d2\u060c \u062a\u0648 MCP \u0633\u06cc\u0634\u0646 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4 \u067e\u06be\u0631 \u0633\u0648\u0627\u0644 \u067e\u0648\u0686\u06be\u06cc\u06ba\u06d4<\/p>\n<blockquote>\n<p>\u0645\u06cc\u06ba \u067e\u06c1\u0644\u06cc \u0646\u0633\u0644 \u06a9\u0627 \u0627\u0646\u0688\u0631\u06af\u0631\u06cc\u062c\u0648\u06cc\u0679 \u0637\u0627\u0644\u0628 \u0639\u0644\u0645 \u06c1\u0648\u06ba \u062c\u0648 \u0627\u0645\u0631\u06cc\u06a9\u06c1 \u0645\u06cc\u06ba \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u0646\u06af \u06a9\u0627 \u0645\u0637\u0627\u0644\u0639\u06c1 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u0648\u06ba\u06d4 \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc 3.6 \u06c1\u06d2\u06d4 \u0634\u0627\u0631\u0679 \u0644\u0633\u0679 \u0627\u0648\u0631 \u0686\u06be \u06c1\u0641\u062a\u06d2 \u06a9\u0627 \u0645\u0646\u0635\u0648\u0628\u06c1 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u0645\u0627\u0631\u06d2 \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0631\u06cc\u0633\u0631\u0686 \u0679\u0648\u0644 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/blockquote>\n<p>\u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u0627\u0644 \u062f\u06cc\u06a9\u06be\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u06d4 <code>match_scholarships<\/code> \u06cc\u0627 <code>search_scholarships<\/code>\u067e\u06be\u0631 <code>get_scholarship<\/code> \u0627\u06cc\u06a9 \u062f\u0644\u0686\u0633\u067e \u0644\u0627\u0626\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0634\u0627\u06cc\u062f <code>save_scholarship<\/code>. \u0627\u06af\u0631 \u0622\u067e \u0679\u0648\u0644 \u06a9\u0648 \u06a9\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0633\u0631\u0648\u0631 \u0648\u0627\u0642\u0639\u06cc \u0645\u0646\u0633\u0644\u06a9 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0627\u067e\u0646\u0627 \u06a9\u0648\u0688 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u067e\u0646\u06d2 \u06a9\u0631\u0633\u0631 \u067e\u0631 MCP \u0644\u0627\u06af \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0628\u06be\u06cc <code>research-plan<\/code> \u062c\u0628 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u062a\u0648 \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u06d2 \u067e\u0631\u0627\u0645\u067e\u0679 \u0645\u06cc\u0646\u0648 \u0633\u06d2 \u067e\u0631\u0627\u0645\u067e\u0679 \u0688\u0633\u067e\u0644\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-claude-desktop\">\u06a9\u0644\u0627\u0688 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e<\/h3>\n<p>\u06a9\u0644\u0627\u0688 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0641\u0627\u0626\u0644\u06cc\u06ba \u06cc\u06c1\u0627\u06ba \u0645\u0648\u062c\u0648\u062f \u06c1\u06cc\u06ba:<\/p>\n<p>\u06a9\u0644\u0627\u0688 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e stdio \u06a9\u0648 \u062a\u0631\u062c\u06cc\u062d \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u067e\u0646\u06d2 HTTP \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0627\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u0631\u0628\u0648\u0637 \u06a9\u0631\u06cc\u06ba: <code>mcp-remote<\/code>:<\/p>\n<pre><code class=\"language-json\">{\n  \"mcpServers\": {\n    \"scholarship-research\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mcp-remote\", \"http:\/\/127.0.0.1:3000\/mcp\"]\n    }\n  }\n}\n<\/code><\/pre>\n<p>\u0641\u0627\u0626\u0644 \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f\u060c \u06a9\u0644\u0627\u0688 \u0688\u06cc\u0633\u06a9 \u0679\u0627\u067e \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba. \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u06a9\u0627 \u0622\u0644\u06c1 \u0679\u0648\u0644\u0632 \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u0645\u06cc\u06ba \u0638\u0627\u06c1\u0631 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u06d4<\/p>\n<p>\u0627\u067e\u0646\u06cc \u06a9\u0644\u0627\u0688 \u06a9\u0646\u0641\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0645\u06cc\u06ba MongoDB \u0627\u0633\u0646\u0627\u062f \u0646\u06c1 \u0688\u0627\u0644\u06cc\u06ba\u06d4 \u0646\u0648\u0688 \u06a9\u0627 \u0639\u0645\u0644 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0628\u06be\u0631\u0627 \u06c1\u0648\u0627 \u06c1\u06d2\u06d4 <code>.env<\/code>. \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u0648 \u0635\u0631\u0641 \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-a-research-session-runs\">\u0645\u0637\u0627\u0644\u0639\u06c1 \u06a9\u0627 \u0633\u06cc\u0634\u0646 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h2>\n<p>\u06cc\u06c1\u0627\u06ba \u0628\u06cc\u062c \u06a9\u06cc\u0679\u0644\u0627\u06af \u067e\u0631 \u0627\u06cc\u06a9 \u062d\u0642\u06cc\u0642\u062a \u067e\u0633\u0646\u062f\u0627\u0646\u06c1 \u0633\u06cc\u0634\u0646 \u06c1\u06d2\u06d4 \u0637\u0627\u0644\u0628 \u0639\u0644\u0645 \u0627\u0645\u0631\u06cc\u06a9\u06cc \u0634\u06c1\u0631\u06cc \u06c1\u06d2 \u0627\u0648\u0631 3.6 GPA \u06a9\u06d2 \u0633\u0627\u062a\u06be \u067e\u06c1\u0644\u06cc \u0646\u0633\u0644 \u06a9\u0627 \u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u0633\u0627\u0626\u0646\u0633 \u0627\u0646\u0688\u0631\u06af\u0631\u06cc\u062c\u0648\u06cc\u0679 \u0637\u0627\u0644\u0628 \u0639\u0644\u0645 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>match_scholarships<\/code> \u0627\u0633 \u067e\u0631\u0648\u0641\u0627\u0626\u0644 \u06a9\u06d2 \u0633\u0627\u062a\u06be\u06d4 \u0633\u0631\u0648\u0631 \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u0648\u0627\u0644\u06cc \u0642\u0637\u0627\u0631\u06cc\u06ba \u0644\u0648\u0679\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0648\u06cc\u0645\u0646 \u0627\u0646 \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc \u0627\u06cc\u0648\u0627\u0631\u0688 \u0627\u0648\u0631 \u0641\u0631\u0633\u0679 \u062c\u0646\u0631\u06cc\u0634\u0646 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u062f\u0648\u0646\u0648\u06ba \u0646\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0648\u062c\u0648\u06c1\u0627\u062a \u06a9\u06cc \u0628\u0646\u0627 \u067e\u0631 \u0627\u0686\u06be\u0627 \u0627\u0633\u06a9\u0648\u0631 \u06a9\u06cc\u0627\u06d4 \u0635\u0631\u0641 \u06af\u0631\u06cc\u062c\u0648\u06cc\u0679 \u0627\u06cc\u0648\u0627\u0631\u0688\u0632 \u0638\u0627\u06c1\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u06ba \u06af\u06d2\u06d4<\/p>\n<p>\u067e\u06be\u0631 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0622\u067e \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u06d2 \u06af\u0627\u06d4 <code>get_scholarship<\/code> \u0633\u0628 \u0633\u06d2 \u0627\u0648\u067e\u0631 \u062f\u0648 IDs \u067e\u0631. \u06c1\u0631 \u0646\u062a\u06cc\u062c\u06c1 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0622\u0641\u06cc\u0634\u0644 \u06cc\u0648 \u0622\u0631 \u0627\u06cc\u0644\u060c \u0636\u0631\u0648\u0631\u06cc\u0627\u062a \u06a9\u06cc \u0627\u06cc\u06a9 \u0641\u06c1\u0631\u0633\u062a \u0627\u0648\u0631 \u0645\u0642\u0631\u0631\u06c1 \u062a\u0627\u0631\u06cc\u062e \u0634\u0627\u0645\u0644 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0648\u06c1 \u0644\u0645\u062d\u06c1 \u06c1\u06d2 \u062c\u0628 \u0622\u067e \u0627\u067e\u0646\u06d2 \u0637\u0627\u0644\u0628 \u0639\u0644\u0645 \u06a9\u0648 URL \u06a9\u06be\u0648\u0644\u0646\u06d2 \u06a9\u0648 \u06a9\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0645\u0627\u0688\u0644 \u06a9\u0648 \u0627\u06c1\u0644\u06cc\u062a \u06a9\u0627 \u062d\u062a\u0645\u06cc \u0641\u06cc\u0635\u0644\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u06a9\u0648\u0626\u06cc \u0627\u0646\u0639\u0627\u0645 \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u06d2 \u062a\u0648 \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u0627\u0644 \u06a9\u0631\u06d2 \u06af\u0627\u06d4 <code>save_scholarship<\/code> \u0627\u0648\u0631 <code>researcherId<\/code> \u067e\u0633\u0646\u062f <code>ada<\/code> \u0627\u0648\u0631 \u062d\u06cc\u062b\u06cc\u062a <code>saved<\/code>. \u0622\u067e \u0627\u0633\u06d2 \u0628\u0639\u062f \u0645\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>applying<\/code>. <code>list_saved_scholarships<\/code> \u0627\u0633 \u0637\u0631\u062d \u0646\u0626\u06cc \u0686\u06cc\u0679 \u0634\u0627\u0631\u0679 \u0644\u0633\u0679 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 MongoDB \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06cc\u06c1\u0627\u06ba \u0627\u0633\u062a\u0642\u0627\u0645\u062a \u06a9\u0644\u06cc\u062f \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u063a\u06cc\u0631\u060c \u062a\u0645\u0627\u0645 \u06af\u0641\u062a\u06af\u0648 \u0635\u0641\u0631 \u0633\u06d2 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p><code>add_research_note<\/code>    \u06cc\u06c1 \u06af\u0646\u062f\u0627 \u0627\u0646\u0633\u0627\u0646\u06cc \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4 &quot;\u0688\u0627\u06a9\u0679\u0631 \u0686\u0646 \u0633\u06d2 1 \u0627\u06a9\u062a\u0648\u0628\u0631 \u062a\u06a9 \u0633\u0641\u0627\u0631\u0634 \u0637\u0644\u0628 \u06a9\u0631\u06cc\u06ba\u06d4&#8221; <code>get_upcoming_deadlines<\/code> \u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 \u0635\u0641\u0627\u0626\u06cc\u06d4 <code>compare_scholarships<\/code> \u0645\u0648\u062c\u0648\u062f\u06c1 \u0637\u0644\u0628\u0627\u0621 \u06a9\u06d2 \u067e\u0627\u0633 \u062f\u0648 \u0641\u0627\u0626\u0646\u0644\u0633\u0679 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0646 \u06a9\u06cc \u0631\u0642\u0645\u060c GPA\u060c \u0627\u0648\u0631 \u0636\u0631\u0648\u0631\u06cc\u0627\u062a \u06a9\u0648 \u0627\u06cc\u06a9 \u0646\u0638\u0631 \u0645\u06cc\u06ba \u062f\u06a9\u06be\u0627\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u06c1 <code>research-plan<\/code> \u0641\u0648\u0631\u06cc \u067e\u06cc\u06a9\u06cc\u062c \u06a9\u0648 \u062f\u06c1\u0631\u0627\u0646\u0627\u06d4 \u06c1\u0645 \u067e\u06c1\u0644\u06d2 \u0679\u0648\u0644 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u0635\u0627\u0631\u0641 \u06a9\u06d2 \u067e\u06cc\u063a\u0627\u0645 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u067e\u0631\u0648\u0641\u0627\u0626\u0644 \u062f\u0627\u062e\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u0645\u0627\u0688\u0644 \u06a9\u0648 \u06c1\u0641\u062a\u06c1 \u0648\u0627\u0631 \u067e\u0644\u0627\u0646 \u0628\u0646\u0627\u0646\u06d2 \u06a9\u06cc \u06c1\u062f\u0627\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u0633\u06cc \u0645\u0631\u0628\u0648\u0637 \u0633\u0631\u0648\u0631 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u067e\u0631\u0627\u0645\u067e\u0679 \u067e\u0631 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 \u0645\u0636\u0645\u0648\u0646 \u0645\u0648\u0635\u0648\u0644 \u06c1\u0648\u06af\u0627\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0633\u0631\u0648\u0631 \u06a9\u06d2 \u0686\u0644\u0646\u06d2 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0627\u0633\u06d2 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u06a9\u0648 \u0646\u0627\u0645\u0632\u062f \u0627\u0646\u0639\u0627\u0645 \u0627\u0648\u0631 \u0627\u0635\u0644 \u062a\u0627\u0631\u06cc\u062e \u0645\u0644\u06d2 \u06af\u06cc\u06d4<\/p>\n<p>\u067e\u0631\u0648\u0688\u06a9\u0679 \u0627\u06cc\u06a9 \u06a9\u06cc\u0679\u0644\u0627\u06af \u06c1\u06d2 \u062c\u0633 \u0633\u06d2 \u0645\u0627\u0688\u0644 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u0627\u06cc\u06a9 \u0634\u0627\u0631\u0679 \u0644\u0633\u0679 \u062c\u0633\u06d2 \u0641\u0631\u0627\u0645\u0648\u0634 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627\u060c \u0627\u0648\u0631 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0642\u0627\u0628\u0644 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-the-matching-logic-works\">\u0645\u06cc\u0686 \u06a9\u06cc \u0645\u0646\u0637\u0642 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/h2>\n<p>\u06cc\u06c1 \u0645\u0645\u0627\u062b\u0644\u062a \u06a9\u0648 \u06a9\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0648\u06c1 \u062c\u06af\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0644\u0648\u06af\u0648\u06ba \u06a9\u0648 \u0645\u0627\u0688\u0644 \u067e\u0631 \u06c1\u0627\u062a\u06be \u0627\u0679\u06be\u0627\u0646\u06d2 \u06a9\u0627 \u0644\u0627\u0644\u0686 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u0637\u0627\u0644\u0628 \u0639\u0644\u0645 \u0641\u0631\u0636 \u06a9\u0631\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc 3.6<\/p>\n<\/li>\n<li>\n<p>\u06a9\u0645\u067e\u06cc\u0648\u0679\u0631 \u0633\u0627\u0626\u0646\u0633<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u0688\u0631\u06af\u0631\u06cc\u062c\u0648\u06cc\u0679<\/p>\n<\/li>\n<li>\n<p>\u0627\u0645\u0631\u06cc\u06a9\u06cc \u0634\u06c1\u0631\u06cc<\/p>\n<\/li>\n<li>\n<p>\u067e\u06c1\u0644\u06cc \u0646\u0633\u0644<\/p>\n<\/li>\n<li>\n<p>\u062e\u0627\u062a\u0648\u0646<\/p>\n<\/li>\n<\/ul>\n<p>\u0645\u06cc\u0686\u0631 \u062a\u0645\u0627\u0645 \u0639\u0648\u0627\u0645\u06cc \u0627\u06cc\u0648\u0627\u0631\u0688\u0632 \u0686\u0644\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u06a9\u0645 \u0627\u0632 \u06a9\u0645 3.3 GPA \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062e\u0648\u0627\u062a\u06cc\u0646 \u06a9\u06cc \u062a\u06a9\u0646\u06cc\u06a9\u06cc \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e\u060c CS \u062f\u0631\u062c \u0634\u062f\u06c1 \u0641\u06cc\u0644\u0688\u060c \u0627\u0639\u0644\u06cc \u0627\u0645\u0631\u06cc\u06a9\u06cc \u06a9\u0648\u0627\u0644\u06cc\u0641\u0627\u0626\u0646\u06af \u0627\u0633\u06a9\u0648\u0631 (\u062a\u0639\u0644\u06cc\u0645\u060c GPA\u060c \u0634\u06c1\u0631\u06cc\u062a\u060c \u0635\u0631\u0641 \u062e\u0648\u0627\u062a\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u06be\u0646\u0688\u0627 \u0627\u0648\u0631 \u0641\u06cc\u0644\u0688 \u0633\u0628 \u06c1\u0679)\u06d4 \u0633\u0627\u0626\u0679 \u067e\u0631 \u06a9\u06be\u0644\u06d2 \u0641\u0631\u0633\u0679 \u062c\u0646\u0631\u06cc\u0634\u0646 \u067e\u0631\u0648\u06af\u0631\u0627\u0645 \u0628\u06be\u06cc \u0627\u0639\u0644\u06cc\u0670 \u0646\u0645\u0628\u0631 \u062d\u0627\u0635\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>any<\/code> \u06cc\u06c1 \u0627\u06cc\u06a9 \u0641\u06cc\u0644\u0688 \u0645\u06cc\u0686 \u0633\u0645\u062c\u06be\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0635\u0631\u0641 \u06af\u0631\u06cc\u062c\u0648\u06cc\u0679 \u0627\u06cc\u0648\u0627\u0631\u0688\u0632 \u06a9\u0648 \u0686\u06be\u0648\u0691\u06cc\u06ba\u060c \u06cc\u06c1\u0627\u06ba \u062a\u06a9 \u06a9\u06c1 \u0627\u06af\u0631 \u0639\u0646\u0648\u0627\u0646 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0644\u06af\u062a\u0627 \u06c1\u06d2\u06d4 3.8 GPA \u06a9\u0679 \u0622\u0641 \u06a9\u0648 \u0686\u06be\u0648\u0691\u06cc\u06ba \u0686\u0627\u06c1\u06d2 \u0628\u0627\u0642\u06cc \u0633\u0628 \u06a9\u0686\u06be \u0641\u0679 \u0628\u06cc\u0679\u06be\u062a\u0627 \u06c1\u0648\u06d4<\/p>\n<p>\u0679\u0648\u0644 \u067e\u06be\u0631 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0648\u062c\u0648\u06c1\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u0648\u0627\u0644\u06cc \u0642\u0637\u0627\u0631\u06cc\u06ba \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-text\">1. Palantir Women in Technology Scholarship \u2014 score 90\n   Why: education level matches; GPA 3.6 meets the 3.3 minimum; citizenship is eligible; women-only award matches; field of study matches\n<\/code><\/pre>\n<p>\u0645\u0627\u0688\u0644 \u0627\u0628 \u0628\u06be\u06cc \u0627\u0633 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06af\u0631\u0645 \u067e\u06cc\u0631\u0627\u06af\u0631\u0627\u0641 \u0644\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0627\u06c1\u0644\u06cc\u062a \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0639\u0646\u0635\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0628\u0639\u062f \u0645\u06cc\u06ba \u062a\u0648\u0633\u06cc\u0639 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0648\u06c1\u06cc \u062a\u0642\u0633\u06cc\u0645 \u0631\u06a9\u06be\u06cc\u06ba\u06d4 \u0627\u06c1\u0644\u06cc\u062a \u06a9\u06d2 \u0646\u0626\u06d2 \u0627\u0635\u0648\u0644 \u0633\u0631\u0648\u0633 \u0633\u06d2 \u062a\u0639\u0644\u0642 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0646\u06cc\u0627 \u0646\u062b\u0631 \u067e\u0631\u0627\u0645\u067e\u0679 \u0633\u06d2 \u062a\u0639\u0644\u0642 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-what-you-can-build-next\">\u0622\u067e \u0622\u06af\u06d2 \u06a9\u06cc\u0627 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/h2>\n<p>\u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u062c\u0648 \u0633\u0631\u0648\u0631 \u06c1\u06d2 \u0648\u06c1 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0641\u0639\u0627\u0644 \u0627\u0648\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0627\u0631 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u0646\u062c\u06cc\u062f\u06c1 \u062a\u062d\u0642\u06cc\u0642\u06cc \u0679\u0648\u0644\u0632 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u0628\u06be\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0622\u067e \u0633\u06cc\u0688 \u0641\u0627\u0626\u0644 \u06a9\u0648 \u0644\u0627\u0626\u06cc\u0648 \u0633\u0648\u0631\u0633 \u0633\u06d2 \u0628\u062f\u0644 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0633\u0631\u06a9\u0627\u0631\u06cc \u0641\u06cc\u0688\u0632\u060c \u062c\u06cc\u0633\u06d2 Grants.gov \u0627\u0648\u0631 \u06cc\u0648\u0646\u06cc\u0648\u0631\u0633\u0679\u06cc \u06a9\u06d2 \u0632\u06cc\u0631 \u0627\u0646\u062a\u0638\u0627\u0645 \u0641\u06c1\u0631\u0633\u062a\u06cc\u06ba\u060c \u062a\u062c\u0627\u0631\u062a\u06cc \u062c\u0645\u0639 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0648\u06ba \u06a9\u0648 \u0633\u06a9\u0631\u06cc\u067e \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u062d\u0641\u0648\u0638 \u06c1\u06cc\u06ba\u06d4 \u0627\u067e\u0646\u06cc \u0627\u0633\u06a9\u06cc\u0645\u0627 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u06cc\u06ba\u06d4 \u0627\u06cc\u06a9 \u062f\u0631\u0622\u0645\u062f\u06cc \u0679\u0648\u0644 \u0644\u06a9\u06be\u06cc\u06ba \u062c\u0648 \u0645\u0633\u062a\u062d\u06a9\u0645 \u0628\u06cc\u0631\u0648\u0646\u06cc ID \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u067e \u0688\u06cc\u0679 \u06c1\u0648\u06d4<\/p>\n<p>\u0622\u067e \u062a\u0635\u062f\u06cc\u0642 \u0628\u06be\u06cc \u0634\u0627\u0645\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>createMcpExpressApp<\/code> \u0645\u0644 \u06a9\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u06cc\u06ba <code>requireBearerAuth<\/code>. \u0646\u0642\u0634\u06c1 <code>researcherId<\/code> \u0679\u0648\u0644 \u062f\u0644\u06cc\u0644 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0634\u0646\u0627\u062e\u062a \u0634\u062f\u06c1 \u0679\u0648\u06a9\u0646 \u0633\u06d2\u06d4 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u0688\u0627\u067e\u0679\u0631 \u0627\u067e\u0646\u06d2 \u0645\u0688\u0644 \u0648\u06cc\u0626\u0631 \u06a9\u0648 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u06a9\u0645\u0644 \u0645\u062a\u0646 \u06a9\u06cc \u062a\u0644\u0627\u0634 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u0633\u06a9\u06cc\u0645\u0627 \u0645\u06cc\u06ba \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0679\u06cc\u06a9\u0633\u0679 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2\u06d4 \u0628\u0691\u06d2 \u06a9\u06cc\u0679\u0644\u0627\u06af \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u0679\u0644\u0633 \u0633\u0631\u0686 \u06cc\u0627 \u0627\u06cc\u06a9 \u0633\u0631\u0634\u0627\u0631 \u0633\u0631\u0686 \u0627\u0646\u062c\u0646 \u0645\u062a\u0639\u062f\u062f \u0631\u06cc\u06af\u0648\u0644\u0631 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0634\u0646 \u0641\u0644\u0679\u0631\u0632 \u06a9\u0648 \u067e\u06cc\u0686\u06be\u06d2 \u0686\u06be\u0648\u0691 \u062f\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u0622\u067e \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0633\u0627\u062a\u06be \u0646\u0648\u0679\u0648\u06ba \u06a9\u0648 \u0628\u06be\u06cc \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06a9\u0648\u0626\u06cc \u0631\u0627\u0633\u062a\u06c1 \u0646\u06c1\u06cc\u06ba <code>documents<\/code> \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u0622\u067e \u0679\u0631\u0627\u0646\u0633\u06a9\u0631\u067e\u0679\u0633\u060c \u0633\u0641\u0627\u0631\u0634 \u06a9\u06cc \u062d\u06cc\u062b\u06cc\u062a\u060c \u0627\u0648\u0631 \u0645\u0636\u0645\u0648\u0646 \u06a9\u06d2 \u0645\u0633\u0648\u062f\u06d2 \u062c\u0645\u0639 \u06a9\u0631 \u0644\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u06a9\u06cc \u0634\u0627\u0631\u0679 \u0644\u0633\u0679 \u06a9\u0648 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0679\u0631\u06cc\u06a9\u0631 \u0645\u06cc\u06ba \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u0622\u067e \u0645\u06cc\u0686\u0631\u0632 \u06a9\u06d2 \u0627\u0631\u062f \u06af\u0631\u062f \u0679\u06cc\u0633\u0679 \u0628\u06be\u06cc \u0644\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633\u062a\u062d\u0642\u0627\u0642 \u06a9\u0648\u0688 \u0648\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u062e\u0627\u0645\u0648\u0634 \u06a9\u06cc\u0691\u06d2 \u0644\u0648\u06af\u0648\u06ba \u06a9\u0648 \u062a\u06a9\u0644\u06cc\u0641 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u067e\u0631\u0648\u0641\u0627\u0626\u0644 \u0679\u06cc\u0628\u0644\u0632 \u0627\u0648\u0631 \u0645\u062a\u0648\u0642\u0639 \u0634\u0645\u0648\u0644\u06cc\u062a\/ \u0627\u062e\u0631\u0627\u062c \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a\u06cc\u06ba \u062e\u0648\u062f \u0627\u062f\u0627\u0626\u06cc\u06af\u06cc \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0648\u0631 \u0622\u067e \u0627\u0633\u06d2 \u062a\u0642\u0633\u06cc\u0645 \u0628\u06be\u06cc \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0628\u0627\u0646\u062f\u06be\u0646\u0627 <code>127.0.0.1<\/code> \u0627\u067e\u0646\u06d2 \u0644\u06cc\u067e \u0679\u0627\u067e \u067e\u0631\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0627\u0633\u06d2 \u06a9\u0633\u06cc \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u0633\u06d2 \u062c\u0648\u0691 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0633\u06cc\u0679 \u06a9\u0631\u06cc\u06ba: <code>allowedHosts<\/code>TLS \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0628\u06cc\u0626\u0631\u0631 \u0679\u0648\u06a9\u0646 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 \u0627\u0648\u067e\u0646 \u0627\u06cc\u0645 \u0633\u06cc \u067e\u06cc \u0633\u0631\u0648\u0631 \u0627\u06cc\u06a9 \u0645\u0641\u06cc\u062f \u0627\u0646\u06af\u0631\u06cc\u0632\u06cc \u0627\u0646\u0679\u0631\u0641\u06cc\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u06a9\u06be\u0644\u0627 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-conclusion\">\u0646\u062a\u06cc\u062c\u06c1<\/h2>\n<p>\u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba\u060c \u06c1\u0645 \u0646\u06d2 \u0627\u06cc\u06a9 \u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u0631\u06cc\u0633\u0631\u0686 MCP \u0633\u0631\u0648\u0631 \u0628\u0646\u0627\u06cc\u0627 \u06c1\u06d2 \u062c\u0648 \u06a9\u06be\u0644\u0648\u0646\u0627 \u0679\u0648\u0644\u0632 \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06c1\u06d2\u06d4<\/p>\n<p>\u06c1\u0645 \u0646\u06d2 \u062c\u06cc\u062a\u0646\u06d2 \u0648\u0627\u0644\u0648\u06ba\u060c \u0646\u0627\u0645\u0632\u062f\u06af\u06cc\u0648\u06ba \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a\u060c \u0627\u0648\u0631 \u0646\u0648\u0679\u0648\u06ba \u06a9\u0648 MongoDB \u0645\u06cc\u06ba \u0645\u062d\u0641\u0648\u0638 \u06a9\u06cc\u0627\u06d4 \u06c1\u0645 \u0646\u06d2 \u0632\u0648\u0688 \u0627\u0633\u06a9\u06cc\u0645\u0627 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 MCP \u0679\u0648\u0644\u0632 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062a\u0644\u0627\u0634\u060c \u0645\u0645\u0627\u062b\u0644\u062a \u0627\u0648\u0631 \u0631\u06cc\u0633\u0631\u0686 \u0679\u0631\u06cc\u06a9\u0646\u06af \u06a9\u0648 \u0628\u06d2 \u0646\u0642\u0627\u0628 \u06a9\u06cc\u0627\u060c \u062c\u0648 \u0645\u06cc\u0632\u0628\u0627\u0646\u0648\u06ba \u06a9\u0648 \u0645\u0627\u0688\u0644\u0632 \u06a9\u06cc \u062a\u0634\u06c1\u06cc\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0645 \u0646\u06d2 \u0627\u067e\u0646\u06d2 \u06a9\u06cc\u0679\u0644\u0627\u06af \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u0633\u0627\u0626\u0644 \u0634\u0627\u0645\u0644 \u06a9\u06cc\u06d2 \u0627\u0648\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0642\u0627\u0628\u0644 \u06a9\u0627\u0645 \u0641\u0644\u0648 \u06a9\u0627 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u06cc\u0627\u06d4 \u06c1\u0645 \u0646\u06d2 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0633\u0679\u0631\u06cc\u0645 \u0627\u06cc\u0628\u0644 HTTP \u067e\u0631 \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u06cc \u062e\u062f\u0645\u062a \u06a9\u06cc\u060c \u0628\u0634\u0645\u0648\u0644 \u0645\u06cc\u0632\u0628\u0627\u0646 \u06c1\u06cc\u0688\u0631 \u06cc\u06c1 \u0686\u06cc\u06a9 \u06a9\u06c1 SDK \u0644\u0648\u06a9\u0644 \u06c1\u0648\u0633\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0642\u0627\u0628\u0644 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u06cc\u0679\u0631\u0646 \u0628\u06be\u06cc\u062c \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u06a9\u06cc\u0679\u0644\u0627\u06af \u0627\u0648\u0631 \u067e\u0631\u0627\u0626\u06cc\u0648\u06cc\u0679 \u0648\u0631\u06a9\u0646\u06af \u0633\u06cc\u0679 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0645\u0627\u0645 \u062a\u062d\u0642\u06cc\u0642\u06cc \u0648\u0631\u06a9 \u0641\u0644\u0648 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u062c\u06cc\u0633\u06cc \u062a\u06cc\u0646 \u067e\u0631\u062a\u06cc\u06ba \u06c1\u06cc\u06ba: \u0627\u06cc\u06a9 \u0633\u0631\u0648\u0633 \u062c\u0648 \u0642\u0648\u0627\u0639\u062f \u06a9\u06cc \u0645\u0627\u0644\u06a9 \u06c1\u06d2\u06d4 <code>McpServer<\/code> \u06cc\u06c1 \u0627\u06cc\u06a9 \u0686\u06be\u0648\u0679\u06cc \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0633 \u0627\u06cc\u067e \u06c1\u06d2 \u062c\u0648 \u067e\u0631\u0648\u0679\u0648\u06a9\u0648\u0644\u0632 \u0627\u0648\u0631 \u0641\u06cc\u06a9\u0679\u0631\u06cc\u0648\u06ba \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0628\u0627\u062a \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062c\u0648 \u0642\u062f\u06cc\u0645 \u0686\u06cc\u0632\u0648\u06ba \u06a9\u0648 \u0631\u062c\u0633\u0679\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0633\u06d2 \u0627\u06cc\u06a9 \u0622\u0626\u06cc\u0688\u06cc\u0627 \u0644\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u0627\u06af\u0644\u0627 \u0622\u0626\u06cc\u0688\u06cc\u0627 \u0644\u06cc\u06ba\u06d4 \u0645\u0627\u0688\u0644 \u06a9\u0648 \u0645\u0646\u0635\u0648\u0628\u06c1 \u0644\u06a9\u06be\u0646\u06d2 \u062f\u06cc\u06ba \u0627\u0648\u0631 \u0633\u0631\u0648\u0631 \u06a9\u0648 \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u0646\u06d2 \u062f\u06cc\u06ba \u06a9\u06c1 \u06a9\u06cc\u0627 \u0633\u0686 \u06c1\u06d2\u06d4<\/p>\n<p>\u0646\u0645\u0648\u0646\u06c1 \u06a9\u06cc\u0679\u0644\u0627\u06af \u0635\u0631\u0641 \u062a\u0639\u0644\u06cc\u0645\u06cc \u0645\u0642\u0627\u0635\u062f \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u067e\u0644\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0648\u0631 \u06a9\u0633\u06cc \u0627\u0648\u0631 \u06a9\u0648 \u0627\u067e\u0644\u0627\u0626\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u0648 \u06a9\u06c1\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u0645\u0627\u0631\u06d2 \u0622\u0641\u06cc\u0634\u0644 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u06cc\u062c \u067e\u0631 \u0645\u0648\u062c\u0648\u062f \u062a\u0645\u0627\u0645 \u0648\u0638\u0627\u0626\u0641 \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u0633\u06a9\u0627\u0644\u0631\u0634\u067e \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627 \u0627\u06cc\u06a9 \u062a\u062d\u0642\u06cc\u0642\u06cc \u06a9\u0627\u0645 \u06c1\u06d2\u060c \u06a9\u0633\u06cc \u0627\u06cc\u06a9 \u0633\u0631\u0686 \u0628\u0627\u06a9\u0633 \u06a9\u0627 \u0646\u06c1\u06cc\u06ba\u06d4 \u0641\u06cc\u0644\u0688\u060c GPA\u060c \u0634\u06c1\u0631\u06cc\u062a\u060c \u0627\u0648\u0631 \u0622\u062e\u0631\u06cc \u062a\u0627\u0631\u06cc\u062e \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0627\u06cc\u0648\u0627\u0631\u0688\u0632 \u06a9\u0648 \u0641\u0644\u0679\u0631 \u06a9\u0631\u06cc\u06ba\u06d4 \u0622\u067e \u0634\u0627\u0631\u0679 \u0644\u0633\u0679 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u06cc\u06ba\u06d4 \u0645\u0636\u0645\u0648\u0646 \u0627\u0648\u0631 \u0633\u0641\u0627\u0631\u0634 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0648\u06ba \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0646\u0648\u0679 \u0644\u06a9\u06be\u06cc\u06ba\u06d4 \u067e\u06be\u0631 \u0622\u067e \u0627\u06cc\u06a9 \u06c1\u0641\u062a\u06c1 \u0628\u0639\u062f \u0648\u0627\u067e\u0633 \u0622\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u06cc\u0627\u062f \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u062a\u06d2 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-28820","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/28820","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/comments?post=28820"}],"version-history":[{"count":0,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/28820\/revisions"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=28820"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=28820"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=28820"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}