About memecub
memecub is an MCP server for AI agents to search memes and automatically place them in articles. It covers English memes and Chinese reaction images, with license, source, and attribution details for each result.
Key features
- 01Search images by feeling or character
- 02Automatically place memes in articles
- 03Filter for commercial-use images
- 04View license, source, and attribution
- 05Exclude images with profanity
Use cases
- 01Select and insert reaction images in articles
- 02Find Chinese reaction images by feeling
- 03Filter images for commercial use
- 04Check image sources and attribution requirements
MCP support
It provides a remote MCP server with the `search_memes`, `match_article`, `get_meme`, and `list_categories` tools. Searching works without a key; `match_article` requires one.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://memecub.com/mcpclaude mcp add --transport http com-memecub-memecub https://memecub.com/mcp{"mcpServers":{"com-memecub-memecub":{"type":"http","url":"https://memecub.com/mcp"}}}Open in Cursor{"servers":{"com-memecub-memecub":{"type":"http","url":"https://memecub.com/mcp"}}}Open in VS Code{"mcpServers":{"com-memecub-memecub":{"type":"http","url":"https://memecub.com/mcp"}}}{"mcpServers":{"com-memecub-memecub":{"serverUrl":"https://memecub.com/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
4| Parameter | Type | Required | Description |
|---|---|---|---|
| kind | enum | No | meme = meme or 表情包 image, gif = animated meme, upload = the caller's own uploadsmeme | gif | emoji | artwork | photo | upload |
| limit | integer | No | |
| query | string | Yes | Reaction or concept, e.g. 'facepalm', 'mind blown', '无语', '摸鱼' |
| min_size | integer | No | Skip images smaller than this many pixels on either side; 150 suits articles |
| no_credit | boolean | No | Only commercially usable images that need no attribution |
| private_only | boolean | No | Only the caller's private library |
| commercial_only | boolean | No | Only images cleared for commercial use. Web-collected memes have commercial_use=false. |
| include_profanity | boolean | No | Also return memes whose captions contain swearing (common in 斗图). Off by default. |
Details
From the project README
memecub
Meme search and automatic meme placement for AI agents.
Give Claude Code, Cursor, Codex or Claude Desktop a meme library. Search reaction memes by feeling, or hand over an article and get it back with the right meme after the right sentence.
English · 简体中文

Real output of match_article. The model picks the moments; memecub finds the meme and inserts it as Markdown.
Why memecub
- It places memes, not just finds them.
match_articlereads a whole post, picks the sentences worth a meme and returns the article with images inserted. Your agent doesn't have to guess where they go. - Search by feeling. Ask for
facepalm,this is fine,it works on my machine,无语or摸鱼and get the reaction you meant, not a keyword lookalike. - English memes and Chinese 表情包 in one library. Drake, This Is Fine, Doge and Surprised Pikachu next to 熊猫头, 奶龙, 蘑菇头, 金馆长 and DeepSeek 鲸鱼娘. Chinese queries match whole phrases, so a character name returns that character.
- Zero install. A remote MCP server over Streamable HTTP, or a plain-curl Agent Skill. Searching works without a key.
- License-aware results. Every image says whether it is cleared for commercial use, links its source, and ships a ready Markdown snippet with the credit line when one is required. Ask for commercial-safe only and that's all you get.
- Safe defaults for agents. Memes whose captions contain swearing are left out of agent results unless you ask for them.
Quick start
The server is https://memecub.com/mcp. Pick your client:
Claude Code
claude mcp add --transport http memecub https://memecub.com/mcp
Cursor (~/.cursor/mcp.json)
{ "mcpServers": { "memecub": { "url": "https://memecub.com/mcp" } } }
VS Code (.vscode/mcp.json)
{ "servers": { "memecub": { "type": "http", "url": "https://memecub.com/mcp" } } }
Claude Desktop / claude.ai: Settings → Connectors → Add custom connector → https://memecub.com/mcp
Codex and any agent that reads skills: use the Agent Skill below.
Then just ask:
Add 3 memes to draft.md where they fit.
Find me a facepalm meme, commercial use only.
给这篇文章配几张表情包。
MCP tools
| Tool | What it does |
|---|---|
search_memes | Search by reaction, feeling or character. Filters: commercial_only, no_credit, kind (meme, gif, emoji, artwork, photo), min_size |
match_article | Read an article, pick the spots that deserve a meme, return the article with images inserted (needs a key) |
get_meme | Full details for one image: license, source, author, credit line, tags |
list_categories | Library categories |
You can try it without a key (20 searches a day per IP). Add Authorization: Bearer <key> (run npx memecub login, or create one at memecub.com/dashboard) to use your credits: a free account gets 1,000 a month, a search costs 1 and match_article costs 10. Plans and credit packs: memecub.com/pricing.
Agent skill
skills/memecub/SKILL.md teaches an agent to place memes into writing with plain curl. No MCP, no dependencies, works in Claude Code, Codex and Cursor.
npx skills add liyupi/memecub
Or by hand:
# Claude Code: ~/.claude/skills Codex: ~/.codex/skills Cursor: ~/.cursor/skills
mkdir -p ~/.claude/skills/memecub
curl -s https://memecub.com/skill.md -o ~/.claude/skills/memecub/SKILL.md
REST API
curl -sG https://memecub.com/api/v1/search --data-urlencode "q=facepalm" -d limit=1
{
"data": [{
"title": "Facepalm",
"url": "https://gpic.code-nav.cn/memecub/public/12vw20qg0awo.jpg",
"page_url": "https://memecub.com/meme/12vw20qg0awo-facepalm",
"width": 679, "height": 600, "kind": "meme",
"license": { "code": "web", "commercial_use": false, "attribution_required": false },
"markdown": ""
}]
}
All endpoints and limits: memecub.com/developers.
CLI and JS client
memecub on npm, source in cli/. Node 18+.
npx memecub search "facepalm" --limit 5
npm i -g memecub # or install the `memecub` command
memecub search "facepalm" --limit 5
memecub search "mind blown" --commercial # only images cleared for commercial use
memecub match ./article.md --count 4 > article.with-memes.md
import { MemecubClient } from "memecub";
const client = new MemecubClient("https://memecub.com", process.env.MEMECUB_API_KEY);
const { data } = await client.search({ q: "mind blown", limit: 5, commercialOnly: true });
The website
Everything the agent sees is also browsable at memecub.com: search, topic pages, one-click copy and download, and the article tool in the browser.
| Home | Topic page | Agent setup |
|---|---|---|
![]() | ![]() | ![]() |
FAQ
Is it free? Browsing memecub.com is free, and so is light API use: 20 keyless searches a day, or 1,000 credits a month with a free account. Heavier use runs on plans and credit packs.
Can I use the images commercially? Check license.commercial_use on each result. Memes collected from the web are false: copyright belongs to their creators and the source link is kept. Openly licensed images (CC0, public domain, CC BY and similar) are true and come with the credit line when the license needs one. Pass commercial_only: true (MCP) or commercial=1 (REST) to get only those.
Is the website open source? No. This repository holds the integrations (MCP descriptor, Agent Skill, CLI and client). The site and its data pipeline are run by memecub.
Found a problem with an image? Use the report button on its page, or see memecub.com/dmca.
License
Code in this repository is MIT. Images are not covered by MIT; each result carries its own license.
If memecub saves your agent a trip to the image search, a ⭐ helps others find it.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.


