🧠🥷 چگونه می توان MEME تولید MCP (Cline and Cursor) را تولید کرد

مقدمه
سلام! من توسعه دهنده وب نینجا هستم. سلام-یاه! 🥷
من بوده ام بازی با اخیراً مطالعه MCP. ↓
– چگونه می توان AI Avatar 2 را کنترل کرد (Vroid MCP + Cline و مکان نما + وحدت)
🧠🥷 چگونه می توان بازی نینجا خنک (Unity MCP + Blender MCP (Cline and Cursor))
چگونه نینجا خنک (مخلوط کن MCP (Cline and Cursor))
اول ، من یک تولید تصویر و ویرایش برنامه وب Next.js ایجاد کردم.
🧠🥷GEMINI API 2 (تولید و ویرایش تصویر (رایگان و سریع))
در مرحله بعد ، من آن را به تولید تصویر و ویرایش MCP تغییر دادم.
– چگونه می توان تولید تصویر و ویرایش MCP (Gemini API + Cline و مکان نما)
بنابراین این بار ، من آن را به Meme تولید MCP تغییر می دهم!
خوب بیایید شروع کنیم!
الگوی رفتاری چیست؟
Meme یک پدیده فرهنگی است که در اینترنت پخش می شود ، مانند تصاویر خنده دار ، فیلم ها و متن.
افرادی که تماشا می کنند ، مزایایی خواهند داشت ، مانند کاهش استرس ، خواب خوب و از پایین قلب می خندند.
در اینجا مصاحبه هایی است که Meme را تماشا کرده اند.
توسعه دهنده وب C: بعد از تماشای Meme ، مغز کوچک قدیمی من کاملاً جدید است و می توانم راه هایی برای حل اشکالات موجود در کد پیدا کنم.
*توجه: تأثیر Meme تفاوت های فردی دارد.
در هنگام تهیه MEME MCP.
اول ، من یک الگوی الگوی معروف را تهیه کردم.
با این حال ، من می خواستم از کپی غیرقانونی خودداری کنم ، بنابراین آن را به سبک انیمه تغییر دادم.
من هنوز فکر می کردم خیلی شبیه به الگوی اصلی است ، بنابراین من مارک پرش سیاه را در تی شرت حذف کردم و رنگ مو و لباس را تغییر دادم. ↓
برای این ویرایش ها ، من از تولید تصویر خود استفاده کردم و MCP یا برنامه ای را که دفعه قبل ساخته ام ، ویرایش کردم.
رئوس مطالب
این سیستم یک ساختار سه لایه ساده دارد.
Cline یا مکان نما → MCP → Next.JS برنامه وب
1⃣ CLINE یا CURSOR PART دستورالعمل را به MCP ارسال می کند.
قسمت 2 ⃣ MCP دستورالعمل را به برنامه وب Next.js منتقل می کند.
3⃣ Next.js قسمت برنامه وب Meme را در مرورگر نمایش می دهد.
خوب بیایید Meme MCP را تنظیم کنیم.
نحوه تنظیم برنامه Next.js
1⃣ یک پروژه Next.js را بسازید
npx create-next-app@latest
https://nextjs.org/docs/app/getting-started/installation
2⃣ کدها را تنظیم کنید
کد Frontend (App/Page.tsx)
"use client";
import { useState, useEffect } from "react";
export default function Home() {
const [noText, setNoText] = useState("");
const [yesText, setYesText] = useState("");
const [error, setError] = useState<string | null>(null);
const fetchMemeText = async () => {
setError(null);
try {
const response = await fetch("/api/generate-meme", {
method: "GET",
});
if (!response.ok) {
const errorText = await response.text();
throw new Error(
`HTTP error! status: ${response.status}, body: ${errorText}`
);
}
const data = await response.json();
if (data.receivedText) {
setNoText(data.receivedText.noText);
setYesText(data.receivedText.yesText);
}
} catch (error) {
console.error("Error fetching meme text:", error);
const errorMessage =
error instanceof Error ? error.message : "An unknown error occurred";
setError(errorMessage);
}
};
useEffect(() => {
const intervalId = setInterval(() => {
fetchMemeText();
}, 4000);
return () => clearInterval(intervalId);
}, []);
return (
<div className="flex flex-col items-center justify-center min-h-screen py-2">
<h1 className="text-6xl font-bold mb-4">Meme Generating MCPh1>
{error && <p className="text-red-500">Error: {error}p>}
{noText && yesText && (
<div>
<div className="flex items-center">
<img src="/template_no.png" alt="template_no" className="mr-4" />
<p className="text-6xl font-bold">{noText}p>
div>
<div className="flex items-center">
<img src="/template_yes.png" alt="template_yes" className="mr-4" />
<p className="text-6xl font-bold">{yesText}p>
div>
div>
)}
div>
);
}
کد تولید Meme (APP/API/GENERE-MEME/ROUTE.TS)
import { NextResponse } from "next/server";
let storedNoText: string = "";
let storedYesText: string = "";
export async function POST(request: Request) {
try {
const { noText, yesText } = await request.json();
console.log("Received text in Next.js API:", { noText, yesText });
storedNoText = noText;
storedYesText = yesText;
return NextResponse.json({
message: "Text received successfully",
receivedText: { noText, yesText },
});
} catch (error) {
console.error("Error processing request in Next.js API:", error);
const errorMessage =
error instanceof Error ? error.message : "An unknown error occurred";
return NextResponse.json(
{
message: "Error processing request",
error: errorMessage,
},
{ status: 500 }
);
}
}
export async function GET(request: Request) {
return NextResponse.json({
message: "Text retrieved successfully",
receivedText: { noText: storedNoText, yesText: storedYesText },
});
}
تنظیم کردن template_no.png
وت template_yes.png
درون public
پوشه
template_no.png ↓
template_yes.png ↓
نحوه تنظیم MEME MCP
1⃣ پوشه ای برای سرور Meme MCP درست کنید و آن را از ویرایشگر خود باز کنید.
2 ساختن package.json
.
npm init
3⃣ نصب MCP SDK
.
npm install @modelcontextprotocol/sdk
4⃣ ساخت tsconfig.json
.
tsc --init
5⃣ اضافه کردن "build": "tsc",
به scripts
از package.json
بشر
6⃣ اضافه کردن index.ts
از سرور Meme MCP. ↓
#!/usr/bin/env node
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import {
CallToolRequestSchema,
ErrorCode,
ListToolsRequestSchema,
McpError,
} from "@modelcontextprotocol/sdk/types.js";
class MemeServer {
private server: Server;
constructor() {
this.server = new Server(
{
name: "meme-mcp-server",
version: "0.1.0",
},
{
capabilities: {
resources: {},
tools: {},
},
}
);
this.setupToolHandlers();
this.server.onerror = (error) => console.error("[MCP Error]", error);
process.on("SIGINT", async () => {
await this.server.close();
process.exit(0);
});
}
private setupToolHandlers() {
this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [
{
name: "generate_meme",
description:
"Generates a meme by sending text to the Next.js backend.",
inputSchema: {
type: "object",
properties: {
noText: {
type: "string",
description:
"The text to display at the top of the meme (No text).",
},
yesText: {
type: "string",
description:
"The text to display at the bottom of the meme (Yes text).",
},
},
required: ["noText", "yesText"],
},
},
],
}));
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === "generate_meme") {
const { noText, yesText } = request.params.arguments as {
noText: string;
yesText: string;
};
try {
const response = await fetch(
"http://localhost:3000/api/generate-meme",
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ noText, yesText }),
}
);
return {
content: [
{
type: "text",
text: "Meme generated successfully",
},
],
};
} catch (error: any) {
console.error("Error calling Next.js API:", error);
return {
content: [
{
type: "text",
text: `Error generating meme: ${error.message}`,
},
],
isError: true,
};
}
}
throw new McpError(
ErrorCode.MethodNotFound,
`Unknown tool: ${request.params.name}`
);
});
}
async run() {
const transport = new StdioServerTransport();
await this.server.connect(transport);
console.error("Meme MCP server running on stdio");
console.log("mcp ok!");
}
}
const server = new MemeServer();
server.run().catch(console.error);
7 ساخت index.ts
به index.js
.
run npm build
8 ⃣ مجموعه cline_mcp_settings.json
برای کلین و mcp.json
برای مکان نما. ↓
{
"mcpServers": {
"meme-mcp-server": {
"command": "node",
"args": ["path to index.js"]
}
}
}
نحوه استفاده
1⃣ npm run dev
، و برنامه Next.js را شروع کنید و دسترسی داشته باشید http://localhost:3000
بشر
2⃣ از مجموعه یا مکان نما خود بخواهید که یک الگوی رفت و آمد ایجاد کند.
به عنوان مثال ،
Use "generate_meme" tool of "meme-mcp-server",
and send "noText": “Before watching Meme Monday”
and “yesText”: “After watching Meme Monday”.
3⃣ یا از مجموعه یا مکان نما خود بخواهید که به جای شما یکی از متن ها را فکر کند.
به عنوان مثال ،
Use "generate_meme" tool of "meme-mcp-server",
and send "noText": “”
and “yesText”: “After watching Meme Monday”.
Think the noText part and fill in the text.
4⃣ یا از مجموعه یا مکان نما خود بخواهید که به جای شما هر دو متن را فکر کنید.
به عنوان مثال ،
Use "generate_meme" tool of "meme-mcp-server",
and send "noText": “Before watching Meme Monday”
and “yesText”: “After watching Meme Monday”.
Think unique and humorous texts and replace noText and yesText.
5⃣ بله! ما می توانیم از cline و مکان نما یاد بگیریم.
پیشرفت های آینده
اگر الگوهای دیگری وجود داشته باشد ، سرگرم کننده تر خواهد بود.
به عنوان مثال
نمونه متن
Boy: Web Developer
Girl in right: Concentrate on Work
Girl in left: Watch Meme Monday.
2⃣ ساخت تصویر Meme توسط AI نیز سرگرم کننده خواهد بود.
دیگر
Meme در زندگی روزمره ما شادی و خوشبختی کمی برای ما به ارمغان می آورد.
چیزهای بی اهمیت در اطراف ما ممکن است ایده خوبی برای یک یادداشت جدید باشد.
امیدوارم از این پست چیزی یاد بگیرید ، یا شاید چیزی یاد نگیرید اما کمی لذت ببرید.
از خواندن شما متشکرم
کد نویسی AI مبارک! 🤖 سلام-یاه!