{"id":108338,"date":"2025-05-10T06:22:11","date_gmt":"2025-05-10T02:52:11","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/how-to-make-meme-generating-mcp-cline-and-cursor-3mpo\/"},"modified":"2025-05-10T06:22:11","modified_gmt":"2025-05-10T02:52:11","slug":"how-to-make-meme-generating-mcp-cline-and-cursor-3mpo","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/how-to-make-meme-generating-mcp-cline-and-cursor-3mpo\/","title":{"rendered":"\ud83e\udde0\ud83e\udd77 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646 MEME \u062a\u0648\u0644\u06cc\u062f MCP (Cline and Cursor) \u0631\u0627 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0631\u062f"},"content":{"rendered":"<div data-article-id=\"2460029\" id=\"article-body\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/how-to-make-meme-generating-mcp-cline-and-cursor-3mpo\/#%D9%85%D9%82%D8%AF%D9%85%D9%87\" >\u0645\u0642\u062f\u0645\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/how-to-make-meme-generating-mcp-cline-and-cursor-3mpo\/#%D8%A7%D9%84%DA%AF%D9%88%DB%8C_%D8%B1%D9%81%D8%AA%D8%A7%D8%B1%DB%8C_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\" >\u0627\u0644\u06af\u0648\u06cc \u0631\u0641\u062a\u0627\u0631\u06cc \u0686\u06cc\u0633\u062a\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/how-to-make-meme-generating-mcp-cline-and-cursor-3mpo\/#%D8%AF%D8%B1_%D9%87%D9%86%DA%AF%D8%A7%D9%85_%D8%AA%D9%87%DB%8C%D9%87_MEME_MCP\" >\u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u062a\u0647\u06cc\u0647 MEME MCP.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/how-to-make-meme-generating-mcp-cline-and-cursor-3mpo\/#%D8%B1%D8%A6%D9%88%D8%B3_%D9%85%D8%B7%D8%A7%D9%84%D8%A8\" >\u0631\u0626\u0648\u0633 \u0645\u0637\u0627\u0644\u0628<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/how-to-make-meme-generating-mcp-cline-and-cursor-3mpo\/#%D9%86%D8%AD%D9%88%D9%87_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_Nextjs\" >\u0646\u062d\u0648\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0628\u0631\u0646\u0627\u0645\u0647 Next.js<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/how-to-make-meme-generating-mcp-cline-and-cursor-3mpo\/#%D9%86%D8%AD%D9%88%D9%87_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_MEME_MCP\" >\u0646\u062d\u0648\u0647 \u062a\u0646\u0638\u06cc\u0645 MEME MCP<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/how-to-make-meme-generating-mcp-cline-and-cursor-3mpo\/#%D9%86%D8%AD%D9%88%D9%87_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87\" >\u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/how-to-make-meme-generating-mcp-cline-and-cursor-3mpo\/#%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA_%D9%87%D8%A7%DB%8C_%D8%A2%DB%8C%D9%86%D8%AF%D9%87\" >\u067e\u06cc\u0634\u0631\u0641\u062a \u0647\u0627\u06cc \u0622\u06cc\u0646\u062f\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/how-to-make-meme-generating-mcp-cline-and-cursor-3mpo\/#%D8%AF%DB%8C%DA%AF%D8%B1\" >\u062f\u06cc\u06af\u0631<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D9%82%D8%AF%D9%85%D9%87\"><\/span>\n<p>  \u0645\u0642\u062f\u0645\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0633\u0644\u0627\u0645! \u0645\u0646 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 \u0648\u0628 \u0646\u06cc\u0646\u062c\u0627 \u0647\u0633\u062a\u0645. \u0633\u0644\u0627\u0645-\u06cc\u0627\u0647! \ud83e\udd77<\/p>\n<p>\u0645\u0646 \u0628\u0648\u062f\u0647 \u0627\u0645 <del>\u0628\u0627\u0632\u06cc \u0628\u0627<\/del> \u0627\u062e\u06cc\u0631\u0627\u064b \u0645\u0637\u0627\u0644\u0639\u0647 MCP. \u2193<br \/>&#8211; \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646 AI Avatar 2 \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0631\u062f (Vroid MCP + Cline \u0648 \u0645\u06a9\u0627\u0646 \u0646\u0645\u0627 + \u0648\u062d\u062f\u062a)<br \/>\ud83e\udde0\ud83e\udd77 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627\u0632\u06cc \u0646\u06cc\u0646\u062c\u0627 \u062e\u0646\u06a9 (Unity MCP + Blender MCP (Cline and Cursor))<br \/>\u0686\u06af\u0648\u0646\u0647 \u0646\u06cc\u0646\u062c\u0627 \u062e\u0646\u06a9 (\u0645\u062e\u0644\u0648\u0637 \u06a9\u0646 MCP (Cline and Cursor))<\/p>\n<p>\u0627\u0648\u0644 \u060c \u0645\u0646 \u06cc\u06a9 \u062a\u0648\u0644\u06cc\u062f \u062a\u0635\u0648\u06cc\u0631 \u0648 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 Next.js \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0645.<br \/>\ud83e\udde0\ud83e\udd77GEMINI API 2 (\u062a\u0648\u0644\u06cc\u062f \u0648 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062a\u0635\u0648\u06cc\u0631 (\u0631\u0627\u06cc\u06af\u0627\u0646 \u0648 \u0633\u0631\u06cc\u0639))<br \/>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f \u060c \u0645\u0646 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u062a\u0648\u0644\u06cc\u062f \u062a\u0635\u0648\u06cc\u0631 \u0648 \u0648\u06cc\u0631\u0627\u06cc\u0634 MCP \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u062f\u0645.<br \/>&#8211; \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062a\u0648\u0644\u06cc\u062f \u062a\u0635\u0648\u06cc\u0631 \u0648 \u0648\u06cc\u0631\u0627\u06cc\u0634 MCP (Gemini API + Cline \u0648 \u0645\u06a9\u0627\u0646 \u0646\u0645\u0627)<br \/>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0627\u06cc\u0646 \u0628\u0627\u0631 \u060c \u0645\u0646 \u0622\u0646 \u0631\u0627 \u0628\u0647 Meme \u062a\u0648\u0644\u06cc\u062f MCP \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u062f\u0647\u0645!<br \/>\u062e\u0648\u0628 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D9%84%DA%AF%D9%88%DB%8C_%D8%B1%D9%81%D8%AA%D8%A7%D8%B1%DB%8C_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\"><\/span>\n<p>  \u0627\u0644\u06af\u0648\u06cc \u0631\u0641\u062a\u0627\u0631\u06cc \u0686\u06cc\u0633\u062a\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><strong>Meme \u06cc\u06a9 \u067e\u062f\u06cc\u062f\u0647 \u0641\u0631\u0647\u0646\u06af\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u067e\u062e\u0634 \u0645\u06cc \u0634\u0648\u062f \u060c \u0645\u0627\u0646\u0646\u062f \u062a\u0635\u0627\u0648\u06cc\u0631 \u062e\u0646\u062f\u0647 \u062f\u0627\u0631 \u060c \u0641\u06cc\u0644\u0645 \u0647\u0627 \u0648 \u0645\u062a\u0646.<\/strong><br \/>\u0627\u0641\u0631\u0627\u062f\u06cc \u06a9\u0647 \u062a\u0645\u0627\u0634\u0627 \u0645\u06cc \u06a9\u0646\u0646\u062f \u060c \u0645\u0632\u0627\u06cc\u0627\u06cc\u06cc \u062e\u0648\u0627\u0647\u0646\u062f \u062f\u0627\u0634\u062a \u060c \u0645\u0627\u0646\u0646\u062f \u06a9\u0627\u0647\u0634 \u0627\u0633\u062a\u0631\u0633 \u060c \u062e\u0648\u0627\u0628 \u062e\u0648\u0628 \u0648 \u0627\u0632 \u067e\u0627\u06cc\u06cc\u0646 \u0642\u0644\u0628 \u0645\u06cc \u062e\u0646\u062f\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0635\u0627\u062d\u0628\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 Meme \u0631\u0627 \u062a\u0645\u0627\u0634\u0627 \u06a9\u0631\u062f\u0647 \u0627\u0646\u062f.<\/p>\n<blockquote>\n<p>\u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 \u0648\u0628 C: \u0628\u0639\u062f \u0627\u0632 \u062a\u0645\u0627\u0634\u0627\u06cc Meme \u060c \u0645\u063a\u0632 \u06a9\u0648\u0686\u06a9 \u0642\u062f\u06cc\u0645\u06cc \u0645\u0646 \u06a9\u0627\u0645\u0644\u0627\u064b \u062c\u062f\u06cc\u062f \u0627\u0633\u062a \u0648 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u0631\u0627\u0647 \u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u062d\u0644 \u0627\u0634\u06a9\u0627\u0644\u0627\u062a \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u06a9\u062f \u067e\u06cc\u062f\u0627 \u06a9\u0646\u0645.<\/p>\n<\/blockquote>\n<p>*\u062a\u0648\u062c\u0647: \u062a\u0623\u062b\u06cc\u0631 Meme \u062a\u0641\u0627\u0648\u062a \u0647\u0627\u06cc \u0641\u0631\u062f\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AF%D8%B1_%D9%87%D9%86%DA%AF%D8%A7%D9%85_%D8%AA%D9%87%DB%8C%D9%87_MEME_MCP\"><\/span>\n<p>  \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u062a\u0647\u06cc\u0647 MEME MCP.<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0648\u0644 \u060c \u0645\u0646 \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0627\u0644\u06af\u0648\u06cc \u0645\u0639\u0631\u0648\u0641 \u0631\u0627 \u062a\u0647\u06cc\u0647 \u06a9\u0631\u062f\u0645.<br \/>\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644 \u060c \u0645\u0646 \u0645\u06cc \u062e\u0648\u0627\u0633\u062a\u0645 \u0627\u0632 \u06a9\u067e\u06cc \u063a\u06cc\u0631\u0642\u0627\u0646\u0648\u0646\u06cc \u062e\u0648\u062f\u062f\u0627\u0631\u06cc \u06a9\u0646\u0645 \u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u0633\u0628\u06a9 \u0627\u0646\u06cc\u0645\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u062f\u0645.<br \/><br \/>\u0645\u0646 \u0647\u0646\u0648\u0632 \u0641\u06a9\u0631 \u0645\u06cc \u06a9\u0631\u062f\u0645 \u062e\u06cc\u0644\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0627\u0644\u06af\u0648\u06cc \u0627\u0635\u0644\u06cc \u0627\u0633\u062a \u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0646 \u0645\u0627\u0631\u06a9 \u067e\u0631\u0634 \u0633\u06cc\u0627\u0647 \u0631\u0627 \u062f\u0631 \u062a\u06cc \u0634\u0631\u062a \u062d\u0630\u0641 \u06a9\u0631\u062f\u0645 \u0648 \u0631\u0646\u06af \u0645\u0648 \u0648 \u0644\u0628\u0627\u0633 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u062f\u0645. \u2193<br \/><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9roybxdo8h7obqio5uct.png\" alt=\"\u0634\u0631\u062d \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"680\" height=\"1024\" title=\"\"><br \/>\u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u0647\u0627 \u060c \u0645\u0646 \u0627\u0632 \u062a\u0648\u0644\u06cc\u062f \u062a\u0635\u0648\u06cc\u0631 \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0645 \u0648 MCP \u06cc\u0627 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0641\u0639\u0647 \u0642\u0628\u0644 \u0633\u0627\u062e\u062a\u0647 \u0627\u0645 \u060c \u0648\u06cc\u0631\u0627\u06cc\u0634 \u06a9\u0631\u062f\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A6%D9%88%D8%B3_%D9%85%D8%B7%D8%A7%D9%84%D8%A8\"><\/span>\n<p>  \u0631\u0626\u0648\u0633 \u0645\u0637\u0627\u0644\u0628<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06cc\u0646 \u0633\u06cc\u0633\u062a\u0645 \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631 \u0633\u0647 \u0644\u0627\u06cc\u0647 \u0633\u0627\u062f\u0647 \u062f\u0627\u0631\u062f.<br \/><strong>Cline \u06cc\u0627 \u0645\u06a9\u0627\u0646 \u0646\u0645\u0627 \u2192 MCP \u2192 Next.JS \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628<\/strong><br \/>1\u20e3 CLINE \u06cc\u0627 CURSOR PART \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 \u0631\u0627 \u0628\u0647 MCP \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f.<br \/>\u0642\u0633\u0645\u062a 2 \u20e3 MCP \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 \u0631\u0627 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 Next.js \u0645\u0646\u062a\u0642\u0644 \u0645\u06cc \u06a9\u0646\u062f.<br \/>3\u20e3 Next.js \u0642\u0633\u0645\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 Meme \u0631\u0627 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0646\u0645\u0627\u06cc\u0634 \u0645\u06cc \u062f\u0647\u062f.<br \/>\u062e\u0648\u0628 \u0628\u06cc\u0627\u06cc\u06cc\u062f Meme MCP \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AD%D9%88%D9%87_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_Nextjs\"><\/span>\n<p>  \u0646\u062d\u0648\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0628\u0631\u0646\u0627\u0645\u0647 Next.js<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>1\u20e3 \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 Next.js \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>npx create-next-app@latest\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>https:\/\/nextjs.org\/docs\/app\/getting-started\/installation<\/p>\n<p>2\u20e3 \u06a9\u062f\u0647\u0627 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f<br \/>\u06a9\u062f Frontend (App\/Page.tsx)<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight tsx\"><code><span class=\"dl\">\"<\/span><span class=\"s2\">use client<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">useState<\/span><span class=\"p\">,<\/span> <span class=\"nx\">useEffect<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">react<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">Home<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">noText<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setNoText<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"\"<\/span><span class=\"p\">);<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">yesText<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setYesText<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">useState<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"\"<\/span><span class=\"p\">);<\/span>\n  <span class=\"kd\">const<\/span> <span class=\"p\">[<\/span><span class=\"nx\">error<\/span><span class=\"p\">,<\/span> <span class=\"nx\">setError<\/span><span class=\"p\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">useState<\/span><span class=\"o\">&lt;<\/span><span class=\"kr\">string<\/span> <span class=\"o\">|<\/span> <span class=\"kc\">null<\/span><span class=\"o\">&gt;<\/span><span class=\"p\">(<\/span><span class=\"kc\">null<\/span><span class=\"p\">);<\/span>\n\n  <span class=\"kd\">const<\/span> <span class=\"nx\">fetchMemeText<\/span> <span class=\"o\">=<\/span> <span class=\"k\">async <\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nf\">setError<\/span><span class=\"p\">(<\/span><span class=\"kc\">null<\/span><span class=\"p\">);<\/span>\n    <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n      <span class=\"kd\">const<\/span> <span class=\"nx\">response<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">fetch<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">\/api\/generate-meme<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span>\n        <span class=\"na\">method<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">GET<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n      <span class=\"p\">});<\/span>\n\n      <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"o\">!<\/span><span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">ok<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"nx\">errorText<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">text<\/span><span class=\"p\">();<\/span>\n        <span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Error<\/span><span class=\"p\">(<\/span>\n          <span class=\"s2\">`HTTP error! status: <\/span><span class=\"p\">${<\/span><span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nx\">status<\/span><span class=\"p\">}<\/span><span class=\"s2\">, body: <\/span><span class=\"p\">${<\/span><span class=\"nx\">errorText<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span>\n        <span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span>\n\n      <span class=\"kd\">const<\/span> <span class=\"nx\">data<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">response<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">();<\/span>\n      <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">receivedText<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nf\">setNoText<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">receivedText<\/span><span class=\"p\">.<\/span><span class=\"nx\">noText<\/span><span class=\"p\">);<\/span>\n        <span class=\"nf\">setYesText<\/span><span class=\"p\">(<\/span><span class=\"nx\">data<\/span><span class=\"p\">.<\/span><span class=\"nx\">receivedText<\/span><span class=\"p\">.<\/span><span class=\"nx\">yesText<\/span><span class=\"p\">);<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Error fetching meme text:<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span><span class=\"p\">);<\/span>\n      <span class=\"kd\">const<\/span> <span class=\"nx\">errorMessage<\/span> <span class=\"o\">=<\/span>\n        <span class=\"nx\">error<\/span> <span class=\"k\">instanceof<\/span> <span class=\"nb\">Error<\/span> <span class=\"p\">?<\/span> <span class=\"nx\">error<\/span><span class=\"p\">.<\/span><span class=\"nx\">message<\/span> <span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">An unknown error occurred<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n      <span class=\"nf\">setError<\/span><span class=\"p\">(<\/span><span class=\"nx\">errorMessage<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">}<\/span>\n  <span class=\"p\">};<\/span>\n\n  <span class=\"nf\">useEffect<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">intervalId<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">setInterval<\/span><span class=\"p\">(()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"nf\">fetchMemeText<\/span><span class=\"p\">();<\/span>\n    <span class=\"p\">},<\/span> <span class=\"mi\">4000<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"k\">return <\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">clearInterval<\/span><span class=\"p\">(<\/span><span class=\"nx\">intervalId<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">},<\/span> <span class=\"p\">[]);<\/span>\n\n  <span class=\"k\">return <\/span><span class=\"p\">(<\/span>\n    <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"flex flex-col items-center justify-center min-h-screen py-2\"<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">&lt;<\/span><span class=\"nt\">h1<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"text-6xl font-bold mb-4\"<\/span><span class=\"p\">&gt;<\/span>Meme Generating MCP<span class=\"p\"\/><span class=\"nt\">h1<\/span><span class=\"p\">&gt;<\/span>\n\n      <span class=\"si\">{<\/span><span class=\"nx\">error<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"p\">&lt;<\/span><span class=\"nt\">p<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"text-red-500\"<\/span><span class=\"p\">&gt;<\/span>Error: <span class=\"si\">{<\/span><span class=\"nx\">error<\/span><span class=\"si\">}<\/span><span class=\"p\"\/><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span><span class=\"si\">}<\/span>\n\n      <span class=\"si\">{<\/span><span class=\"nx\">noText<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"nx\">yesText<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"p\">(<\/span>\n        <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n          <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"flex items-center\"<\/span><span class=\"p\">&gt;<\/span>\n            <span class=\"p\">&lt;<\/span><span class=\"nt\">img<\/span> <span class=\"na\">src<\/span><span class=\"p\">=<\/span><span class=\"s\">\"\/template_no.png\"<\/span> <span class=\"na\">alt<\/span><span class=\"p\">=<\/span><span class=\"s\">\"template_no\"<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"mr-4\"<\/span> <span class=\"p\">\/&gt;<\/span>\n            <span class=\"p\">&lt;<\/span><span class=\"nt\">p<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"text-6xl font-bold\"<\/span><span class=\"p\">&gt;<\/span><span class=\"si\">{<\/span><span class=\"nx\">noText<\/span><span class=\"si\">}<\/span><span class=\"p\"\/><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>\n          <span class=\"p\"\/><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n          <span class=\"p\">&lt;<\/span><span class=\"nt\">div<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"flex items-center\"<\/span><span class=\"p\">&gt;<\/span>\n            <span class=\"p\">&lt;<\/span><span class=\"nt\">img<\/span> <span class=\"na\">src<\/span><span class=\"p\">=<\/span><span class=\"s\">\"\/template_yes.png\"<\/span> <span class=\"na\">alt<\/span><span class=\"p\">=<\/span><span class=\"s\">\"template_yes\"<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"mr-4\"<\/span> <span class=\"p\">\/&gt;<\/span>\n            <span class=\"p\">&lt;<\/span><span class=\"nt\">p<\/span> <span class=\"na\">className<\/span><span class=\"p\">=<\/span><span class=\"s\">\"text-6xl font-bold\"<\/span><span class=\"p\">&gt;<\/span><span class=\"si\">{<\/span><span class=\"nx\">yesText<\/span><span class=\"si\">}<\/span><span class=\"p\"\/><span class=\"nt\">p<\/span><span class=\"p\">&gt;<\/span>\n          <span class=\"p\"\/><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n        <span class=\"p\"\/><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n      <span class=\"p\">)<\/span><span class=\"si\">}<\/span>\n    <span class=\"p\"\/><span class=\"nt\">div<\/span><span class=\"p\">&gt;<\/span>\n  <span class=\"p\">);<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06a9\u062f \u062a\u0648\u0644\u06cc\u062f Meme (APP\/API\/GENERE-MEME\/ROUTE.TS)<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">NextResponse<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">next\/server<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">let<\/span> <span class=\"nx\">storedNoText<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"\"<\/span><span class=\"p\">;<\/span>\n<span class=\"kd\">let<\/span> <span class=\"nx\">storedYesText<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">POST<\/span><span class=\"p\">(<\/span><span class=\"nx\">request<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Request<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">noText<\/span><span class=\"p\">,<\/span> <span class=\"nx\">yesText<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">();<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Received text in Next.js API:<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">noText<\/span><span class=\"p\">,<\/span> <span class=\"nx\">yesText<\/span> <span class=\"p\">});<\/span>\n\n    <span class=\"nx\">storedNoText<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">noText<\/span><span class=\"p\">;<\/span>\n    <span class=\"nx\">storedYesText<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">yesText<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"nx\">NextResponse<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">({<\/span>\n      <span class=\"na\">message<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Text received successfully<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n      <span class=\"na\">receivedText<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">noText<\/span><span class=\"p\">,<\/span> <span class=\"nx\">yesText<\/span> <span class=\"p\">},<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Error processing request in Next.js API:<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span><span class=\"p\">);<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">errorMessage<\/span> <span class=\"o\">=<\/span>\n      <span class=\"nx\">error<\/span> <span class=\"k\">instanceof<\/span> <span class=\"nb\">Error<\/span> <span class=\"p\">?<\/span> <span class=\"nx\">error<\/span><span class=\"p\">.<\/span><span class=\"nx\">message<\/span> <span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">An unknown error occurred<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nx\">NextResponse<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">(<\/span>\n      <span class=\"p\">{<\/span>\n        <span class=\"na\">message<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Error processing request<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">error<\/span><span class=\"p\">:<\/span> <span class=\"nx\">errorMessage<\/span><span class=\"p\">,<\/span>\n      <span class=\"p\">},<\/span>\n      <span class=\"p\">{<\/span> <span class=\"na\">status<\/span><span class=\"p\">:<\/span> <span class=\"mi\">500<\/span> <span class=\"p\">}<\/span>\n    <span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">export<\/span> <span class=\"k\">async<\/span> <span class=\"kd\">function<\/span> <span class=\"nf\">GET<\/span><span class=\"p\">(<\/span><span class=\"nx\">request<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Request<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">return<\/span> <span class=\"nx\">NextResponse<\/span><span class=\"p\">.<\/span><span class=\"nf\">json<\/span><span class=\"p\">({<\/span>\n    <span class=\"na\">message<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Text retrieved successfully<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n    <span class=\"na\">receivedText<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span> <span class=\"na\">noText<\/span><span class=\"p\">:<\/span> <span class=\"nx\">storedNoText<\/span><span class=\"p\">,<\/span> <span class=\"na\">yesText<\/span><span class=\"p\">:<\/span> <span class=\"nx\">storedYesText<\/span> <span class=\"p\">},<\/span>\n  <span class=\"p\">});<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u0646 <code>template_no.png<\/code> \u0648\u062a <code>template_yes.png<\/code> \u062f\u0631\u0648\u0646 <code>public<\/code> \u067e\u0648\u0634\u0647<br \/>template_no.png \u2193<br \/><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5g7suhn0lr3u0was9db.png\" alt=\"\u0634\u0631\u062d \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"680\" height=\"516\" title=\"\"><br \/>template_yes.png \u2193<br \/><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqqksidkkt8gb2ak0k51d.png\" alt=\"\u0634\u0631\u062d \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"680\" height=\"512\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AD%D9%88%D9%87_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_MEME_MCP\"><\/span>\n<p>  \u0646\u062d\u0648\u0647 \u062a\u0646\u0638\u06cc\u0645 MEME MCP<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>1\u20e3 \u067e\u0648\u0634\u0647 \u0627\u06cc \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u0631 Meme MCP \u062f\u0631\u0633\u062a \u06a9\u0646\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u062e\u0648\u062f \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>2 \u0633\u0627\u062e\u062a\u0646 <code>package.json<\/code>.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>npm init\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>3\u20e3 \u0646\u0635\u0628 <code>MCP SDK<\/code>.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>npm install @modelcontextprotocol\/sdk\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>4\u20e3 \u0633\u0627\u062e\u062a <code>tsconfig.json<\/code>.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>tsc --init\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>5\u20e3 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 <code>\"build\": \"tsc\",<\/code> \u0628\u0647 <code>scripts<\/code> \u0627\u0632 <code>package.json<\/code>\u0628\u0634\u0631<\/p>\n<p>6\u20e3 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 <code>index.ts<\/code> \u0627\u0632 \u0633\u0631\u0648\u0631 Meme MCP. \u2193<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight typescript\"><code><span class=\"cp\">#!\/usr\/bin\/env node\n<\/span><span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Server<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">@modelcontextprotocol\/sdk\/server\/index.js<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">StdioServerTransport<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">@modelcontextprotocol\/sdk\/server\/stdio.js<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nx\">CallToolRequestSchema<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">ErrorCode<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">ListToolsRequestSchema<\/span><span class=\"p\">,<\/span>\n  <span class=\"nx\">McpError<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">@modelcontextprotocol\/sdk\/types.js<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"kd\">class<\/span> <span class=\"nc\">MemeServer<\/span> <span class=\"p\">{<\/span>\n  <span class=\"k\">private<\/span> <span class=\"nx\">server<\/span><span class=\"p\">:<\/span> <span class=\"nx\">Server<\/span><span class=\"p\">;<\/span>\n\n  <span class=\"nf\">constructor<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">server<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Server<\/span><span class=\"p\">(<\/span>\n      <span class=\"p\">{<\/span>\n        <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">meme-mcp-server<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n        <span class=\"na\">version<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">0.1.0<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n      <span class=\"p\">},<\/span>\n      <span class=\"p\">{<\/span>\n        <span class=\"na\">capabilities<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n          <span class=\"na\">resources<\/span><span class=\"p\">:<\/span> <span class=\"p\">{},<\/span>\n          <span class=\"na\">tools<\/span><span class=\"p\">:<\/span> <span class=\"p\">{},<\/span>\n        <span class=\"p\">},<\/span>\n      <span class=\"p\">}<\/span>\n    <span class=\"p\">);<\/span>\n\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nf\">setupToolHandlers<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">server<\/span><span class=\"p\">.<\/span><span class=\"nx\">onerror<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">error<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">[MCP Error]<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span><span class=\"p\">);<\/span>\n    <span class=\"nx\">process<\/span><span class=\"p\">.<\/span><span class=\"nf\">on<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">SIGINT<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">async <\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">await<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">server<\/span><span class=\"p\">.<\/span><span class=\"nf\">close<\/span><span class=\"p\">();<\/span>\n      <span class=\"nx\">process<\/span><span class=\"p\">.<\/span><span class=\"nf\">exit<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">);<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">private<\/span> <span class=\"nf\">setupToolHandlers<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">server<\/span><span class=\"p\">.<\/span><span class=\"nf\">setRequestHandler<\/span><span class=\"p\">(<\/span><span class=\"nx\">ListToolsRequestSchema<\/span><span class=\"p\">,<\/span> <span class=\"k\">async <\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">({<\/span>\n      <span class=\"na\">tools<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\n        <span class=\"p\">{<\/span>\n          <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">generate_meme<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n          <span class=\"na\">description<\/span><span class=\"p\">:<\/span>\n            <span class=\"dl\">\"<\/span><span class=\"s2\">Generates a meme by sending text to the Next.js backend.<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n          <span class=\"na\">inputSchema<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n            <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">object<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n            <span class=\"na\">properties<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n              <span class=\"na\">noText<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n                <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">string<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n                <span class=\"na\">description<\/span><span class=\"p\">:<\/span>\n                  <span class=\"dl\">\"<\/span><span class=\"s2\">The text to display at the top of the meme (No text).<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n              <span class=\"p\">},<\/span>\n              <span class=\"na\">yesText<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n                <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">string<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n                <span class=\"na\">description<\/span><span class=\"p\">:<\/span>\n                  <span class=\"dl\">\"<\/span><span class=\"s2\">The text to display at the bottom of the meme (Yes text).<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n              <span class=\"p\">},<\/span>\n            <span class=\"p\">},<\/span>\n            <span class=\"na\">required<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">noText<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">yesText<\/span><span class=\"dl\">\"<\/span><span class=\"p\">],<\/span>\n          <span class=\"p\">},<\/span>\n        <span class=\"p\">},<\/span>\n      <span class=\"p\">],<\/span>\n    <span class=\"p\">}));<\/span>\n\n    <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">server<\/span><span class=\"p\">.<\/span><span class=\"nf\">setRequestHandler<\/span><span class=\"p\">(<\/span><span class=\"nx\">CallToolRequestSchema<\/span><span class=\"p\">,<\/span> <span class=\"k\">async <\/span><span class=\"p\">(<\/span><span class=\"nx\">request<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">{<\/span>\n      <span class=\"k\">if <\/span><span class=\"p\">(<\/span><span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nx\">params<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span> <span class=\"o\">===<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">generate_meme<\/span><span class=\"dl\">\"<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"kd\">const<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">noText<\/span><span class=\"p\">,<\/span> <span class=\"nx\">yesText<\/span> <span class=\"p\">}<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nx\">params<\/span><span class=\"p\">.<\/span><span class=\"nx\">arguments<\/span> <span class=\"k\">as<\/span> <span class=\"p\">{<\/span>\n          <span class=\"na\">noText<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">;<\/span>\n          <span class=\"nl\">yesText<\/span><span class=\"p\">:<\/span> <span class=\"kr\">string<\/span><span class=\"p\">;<\/span>\n        <span class=\"p\">};<\/span>\n\n        <span class=\"k\">try<\/span> <span class=\"p\">{<\/span>\n          <span class=\"kd\">const<\/span> <span class=\"nx\">response<\/span> <span class=\"o\">=<\/span> <span class=\"k\">await<\/span> <span class=\"nf\">fetch<\/span><span class=\"p\">(<\/span>\n            <span class=\"dl\">\"<\/span><span class=\"s2\">http:\/\/localhost:3000\/api\/generate-meme<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n            <span class=\"p\">{<\/span>\n              <span class=\"na\">method<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">POST<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n              <span class=\"na\">headers<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\n                <span class=\"dl\">\"<\/span><span class=\"s2\">Content-Type<\/span><span class=\"dl\">\"<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">application\/json<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n              <span class=\"p\">},<\/span>\n              <span class=\"na\">body<\/span><span class=\"p\">:<\/span> <span class=\"nx\">JSON<\/span><span class=\"p\">.<\/span><span class=\"nf\">stringify<\/span><span class=\"p\">({<\/span> <span class=\"nx\">noText<\/span><span class=\"p\">,<\/span> <span class=\"nx\">yesText<\/span> <span class=\"p\">}),<\/span>\n            <span class=\"p\">}<\/span>\n          <span class=\"p\">);<\/span>\n\n          <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n            <span class=\"na\">content<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\n              <span class=\"p\">{<\/span>\n                <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">text<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n                <span class=\"na\">text<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Meme generated successfully<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n              <span class=\"p\">},<\/span>\n            <span class=\"p\">],<\/span>\n          <span class=\"p\">};<\/span>\n        <span class=\"p\">}<\/span> <span class=\"k\">catch <\/span><span class=\"p\">(<\/span><span class=\"na\">error<\/span><span class=\"p\">:<\/span> <span class=\"kr\">any<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n          <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Error calling Next.js API:<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"nx\">error<\/span><span class=\"p\">);<\/span>\n          <span class=\"k\">return<\/span> <span class=\"p\">{<\/span>\n            <span class=\"na\">content<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\n              <span class=\"p\">{<\/span>\n                <span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">text<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\n                <span class=\"na\">text<\/span><span class=\"p\">:<\/span> <span class=\"s2\">`Error generating meme: <\/span><span class=\"p\">${<\/span><span class=\"nx\">error<\/span><span class=\"p\">.<\/span><span class=\"nx\">message<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span><span class=\"p\">,<\/span>\n              <span class=\"p\">},<\/span>\n            <span class=\"p\">],<\/span>\n            <span class=\"na\">isError<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\n          <span class=\"p\">};<\/span>\n        <span class=\"p\">}<\/span>\n      <span class=\"p\">}<\/span>\n      <span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">McpError<\/span><span class=\"p\">(<\/span>\n        <span class=\"nx\">ErrorCode<\/span><span class=\"p\">.<\/span><span class=\"nx\">MethodNotFound<\/span><span class=\"p\">,<\/span>\n        <span class=\"s2\">`Unknown tool: <\/span><span class=\"p\">${<\/span><span class=\"nx\">request<\/span><span class=\"p\">.<\/span><span class=\"nx\">params<\/span><span class=\"p\">.<\/span><span class=\"nx\">name<\/span><span class=\"p\">}<\/span><span class=\"s2\">`<\/span>\n      <span class=\"p\">);<\/span>\n    <span class=\"p\">});<\/span>\n  <span class=\"p\">}<\/span>\n\n  <span class=\"k\">async<\/span> <span class=\"nf\">run<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"kd\">const<\/span> <span class=\"nx\">transport<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">StdioServerTransport<\/span><span class=\"p\">();<\/span>\n    <span class=\"k\">await<\/span> <span class=\"k\">this<\/span><span class=\"p\">.<\/span><span class=\"nx\">server<\/span><span class=\"p\">.<\/span><span class=\"nf\">connect<\/span><span class=\"p\">(<\/span><span class=\"nx\">transport<\/span><span class=\"p\">);<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">error<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">Meme MCP server running on stdio<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n    <span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nf\">log<\/span><span class=\"p\">(<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">mcp ok!<\/span><span class=\"dl\">\"<\/span><span class=\"p\">);<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"kd\">const<\/span> <span class=\"nx\">server<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">MemeServer<\/span><span class=\"p\">();<\/span>\n<span class=\"nx\">server<\/span><span class=\"p\">.<\/span><span class=\"nf\">run<\/span><span class=\"p\">().<\/span><span class=\"k\">catch<\/span><span class=\"p\">(<\/span><span class=\"nx\">console<\/span><span class=\"p\">.<\/span><span class=\"nx\">error<\/span><span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>7 \u0633\u0627\u062e\u062a <code>index.ts<\/code> \u0628\u0647 <code>index.js<\/code>.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>run npm build\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>8 \u20e3 \u0645\u062c\u0645\u0648\u0639\u0647 <code>cline_mcp_settings.json<\/code> \u0628\u0631\u0627\u06cc \u06a9\u0644\u06cc\u0646 \u0648 <code>mcp.json<\/code> \u0628\u0631\u0627\u06cc \u0645\u06a9\u0627\u0646 \u0646\u0645\u0627. \u2193<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"mcpServers\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"meme-mcp-server\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"command\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"node\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"args\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"s2\">\"path to index.js\"<\/span><span class=\"p\">]<\/span><span class=\"w\">\n    <\/span><span class=\"p\">}<\/span><span class=\"w\">\n  <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AD%D9%88%D9%87_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87\"><\/span>\n<p>  \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>1\u20e3 <code>npm run dev<\/code>\u060c \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 Next.js \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f <code>http:\/\/localhost:3000<\/code>\u0628\u0634\u0631<\/p>\n<p>2\u20e3 \u0627\u0632 \u0645\u062c\u0645\u0648\u0639\u0647 \u06cc\u0627 \u0645\u06a9\u0627\u0646 \u0646\u0645\u0627 \u062e\u0648\u062f \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0647 \u06cc\u06a9 \u0627\u0644\u06af\u0648\u06cc \u0631\u0641\u062a \u0648 \u0622\u0645\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u062f.<br \/>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>Use \"generate_meme\" tool of \"meme-mcp-server\",\n and send \"noText\": \u201cBefore watching Meme Monday\u201d\n and \u201cyesText\u201d: \u201cAfter watching Meme Monday\u201d.\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh2rnbo3cv0xad0q7rq67.png\" alt=\"\u0634\u0631\u062d \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"330\" title=\"\"><\/p>\n<p>3\u20e3 \u06cc\u0627 \u0627\u0632 \u0645\u062c\u0645\u0648\u0639\u0647 \u06cc\u0627 \u0645\u06a9\u0627\u0646 \u0646\u0645\u0627 \u062e\u0648\u062f \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u062c\u0627\u06cc \u0634\u0645\u0627 \u06cc\u06a9\u06cc \u0627\u0632 \u0645\u062a\u0646 \u0647\u0627 \u0631\u0627 \u0641\u06a9\u0631 \u06a9\u0646\u062f.<br \/>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>Use \"generate_meme\" tool of \"meme-mcp-server\",\n and send \"noText\": \u201c\u201d\n and \u201cyesText\u201d: \u201cAfter watching Meme Monday\u201d. \nThink the noText part and fill in the text.\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fimpgdcqskchrx4vgh11u.png\" alt=\"\u0634\u0631\u062d \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"574\" title=\"\"><\/p>\n<p>4\u20e3 \u06cc\u0627 \u0627\u0632 \u0645\u062c\u0645\u0648\u0639\u0647 \u06cc\u0627 \u0645\u06a9\u0627\u0646 \u0646\u0645\u0627 \u062e\u0648\u062f \u0628\u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u062c\u0627\u06cc \u0634\u0645\u0627 \u0647\u0631 \u062f\u0648 \u0645\u062a\u0646 \u0631\u0627 \u0641\u06a9\u0631 \u06a9\u0646\u06cc\u062f.<br \/>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>Use \"generate_meme\" tool of \"meme-mcp-server\",\n and send \"noText\": \u201cBefore watching Meme Monday\u201d\n and \u201cyesText\u201d: \u201cAfter watching Meme Monday\u201d. \nThink unique and humorous texts and replace noText and yesText.\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9yozjyg7d8a034nierue.png\" alt=\"\u0634\u0631\u062d \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"339\" title=\"\"><\/p>\n<p>5\u20e3 \u0628\u0644\u0647! \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 cline \u0648 \u0645\u06a9\u0627\u0646 \u0646\u0645\u0627 \u06cc\u0627\u062f \u0628\u06af\u06cc\u0631\u06cc\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA_%D9%87%D8%A7%DB%8C_%D8%A2%DB%8C%D9%86%D8%AF%D9%87\"><\/span>\n<p>  \u067e\u06cc\u0634\u0631\u0641\u062a \u0647\u0627\u06cc \u0622\u06cc\u0646\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06af\u0631 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u060c \u0633\u0631\u06af\u0631\u0645 \u06a9\u0646\u0646\u062f\u0647 \u062a\u0631 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<br \/>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644<br \/><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvrwxp458r67p0pr4g47p.png\" alt=\"\u0634\u0631\u062d \u062a\u0635\u0648\u06cc\u0631\" loading=\"lazy\" width=\"800\" height=\"1200\" title=\"\"><br \/>\u0646\u0645\u0648\u0646\u0647 \u0645\u062a\u0646<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>Boy: Web Developer\nGirl in right: Concentrate on Work\nGirl in left: Watch Meme Monday.\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>2\u20e3 \u0633\u0627\u062e\u062a \u062a\u0635\u0648\u06cc\u0631 Meme \u062a\u0648\u0633\u0637 AI \u0646\u06cc\u0632 \u0633\u0631\u06af\u0631\u0645 \u06a9\u0646\u0646\u062f\u0647 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AF%DB%8C%DA%AF%D8%B1\"><\/span>\n<p>  \u062f\u06cc\u06af\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Meme \u062f\u0631 \u0632\u0646\u062f\u06af\u06cc \u0631\u0648\u0632\u0645\u0631\u0647 \u0645\u0627 \u0634\u0627\u062f\u06cc \u0648 \u062e\u0648\u0634\u0628\u062e\u062a\u06cc \u06a9\u0645\u06cc \u0628\u0631\u0627\u06cc \u0645\u0627 \u0628\u0647 \u0627\u0631\u0645\u063a\u0627\u0646 \u0645\u06cc \u0622\u0648\u0631\u062f.<br \/>\u0686\u06cc\u0632\u0647\u0627\u06cc \u0628\u06cc \u0627\u0647\u0645\u06cc\u062a \u062f\u0631 \u0627\u0637\u0631\u0627\u0641 \u0645\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u06cc\u062f\u0647 \u062e\u0648\u0628\u06cc \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u06cc\u0627\u062f\u062f\u0627\u0634\u062a \u062c\u062f\u06cc\u062f \u0628\u0627\u0634\u062f.<\/p>\n<p>\u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0645 \u0627\u0632 \u0627\u06cc\u0646 \u067e\u0633\u062a \u0686\u06cc\u0632\u06cc \u06cc\u0627\u062f \u0628\u06af\u06cc\u0631\u06cc\u062f \u060c \u06cc\u0627 \u0634\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u06cc\u0627\u062f \u0646\u06af\u06cc\u0631\u06cc\u062f \u0627\u0645\u0627 \u06a9\u0645\u06cc \u0644\u0630\u062a \u0628\u0628\u0631\u06cc\u062f.<br \/>\u0627\u0632 \u062e\u0648\u0627\u0646\u062f\u0646 \u0634\u0645\u0627 \u0645\u062a\u0634\u06a9\u0631\u0645<br \/>\u06a9\u062f \u0646\u0648\u06cc\u0633\u06cc AI \u0645\u0628\u0627\u0631\u06a9! \ud83e\udd16 \u0633\u0644\u0627\u0645-\u06cc\u0627\u0647!<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 \u0633\u0644\u0627\u0645! \u0645\u0646 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 \u0648\u0628 \u0646\u06cc\u0646\u062c\u0627 \u0647\u0633\u062a\u0645. \u0633\u0644\u0627\u0645-\u06cc\u0627\u0647! \ud83e\udd77 \u0645\u0646 \u0628\u0648\u062f\u0647 \u0627\u0645 \u0628\u0627\u0632\u06cc \u0628\u0627 \u0627\u062e\u06cc\u0631\u0627\u064b \u0645\u0637\u0627\u0644\u0639\u0647 MCP. \u2193&#8211; \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646 AI Avatar 2 \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0631\u062f (Vroid MCP + Cline \u0648 \u0645\u06a9\u0627\u0646 \u0646\u0645\u0627 + \u0648\u062d\u062f\u062a)\ud83e\udde0\ud83e\udd77 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627\u0632\u06cc \u0646\u06cc\u0646\u062c\u0627 \u062e\u0646\u06a9 (Unity MCP + Blender MCP (Cline and Cursor))\u0686\u06af\u0648\u0646\u0647 \u0646\u06cc\u0646\u062c\u0627 \u062e\u0646\u06a9 (\u0645\u062e\u0644\u0648\u0637 \u06a9\u0646 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":108340,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-108338","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/108338","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=108338"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/108338\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/108340"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=108338"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=108338"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=108338"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}