Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Search rule34.xxx posts by tag through the site's own API. Needs a rule34.xxx API key.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
RULE34_USER_ID, RULE34_API_KEY, RULE34_MIN_INTERVAL_MS, RULE34_LOG_LEVELValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Download the maker’s .mcpb file
The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.
Run this in your terminal
claude mcp add rule34 --env RULE34_USER_ID=your-value --env RULE34_API_KEY=your-value --env RULE34_MIN_INTERVAL_MS=your-value --env RULE34_LOG_LEVEL=your-value -- npx -y mcp-rule34Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"rule34": {
"command": "npx",
"args": [
"-y",
"mcp-rule34"
],
"env": {
"RULE34_USER_ID": "your-value",
"RULE34_API_KEY": "your-value",
"RULE34_MIN_INTERVAL_MS": "your-value",
"RULE34_LOG_LEVEL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"rule34": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-rule34"
],
"env": {
"RULE34_USER_ID": "your-value",
"RULE34_API_KEY": "your-value",
"RULE34_MIN_INTERVAL_MS": "your-value",
"RULE34_LOG_LEVEL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
RULE34_MIN_INTERVAL_MS envRULE34_LOG_LEVEL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account smeet666, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: RULE34_USER_ID, RULE34_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (2.1.0) reached the registry 9 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js, MCPB on your computer.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
rule34.xxx is a large image board whose posts are indexed entirely by tags, and it publishes an API for reading them. A post carries its identifier, the address of its page and of its file, its dimensions, the score its viewers gave it, its rating, and the full list of tags it was filed under. The site holds tens of millions of posts and answers a tag search with the number it matched.
This server connects a chat client to that index. You can search the posts by tags, combining required tags, alternatives and exclusions, read one post's record by its identifier, and look up how the site spells a tag before searching on it. It needs an account and an API key, which the site issues per person.
_Version française_
Claude Code
claude mcp add rule34 --env RULE34_USER_ID=your-id --env RULE34_API_KEY=your-key -- npx -y mcp-rule34
Claude Desktop, Cursor, and any client using the standard config format
{
"mcpServers": { "rule34": { "command": "npx", "args": ["-y", "mcp-rule34"], "env": { "RULE34_USER_ID": "your-id", "RULE34_API_KEY": "your-key" } } } }
Node 24 or later is required. The two credentials are required; everything else under Configuration is optional.
{
"mcpServers": { "rule34": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "RULE34_USER_ID", "-e", "RULE34_API_KEY", "ghcr.io/smeet666/mcp-rule34:2.1.0" ] } } }
-i keeps stdin open, which is where the protocol travels, and -t is left out because a TTY rewrites the stream. The container needs outbound HTTPS to api.rule34.xxx and rule34.xxx, and the two credentials from your environment: no volume, no port.
Download mcp-rule34-2.1.0.mcpb from the latest release and open it. A client that supports MCP bundles installs it on its own, with no npm to run. The credentials are still set in the client's configuration.
The ordinary path runs from a tag lookup to a search: find_tags gives the spelling the site uses, and search_posts takes it.
| Tool | What it does |
|---|---|
find_tags | Finds how the site spells a tag, and how many posts carry it. |
search_posts | Searches the posts by tags, with alternatives and exclusions. |
get_post | Reads one post's record by its identifier or its address. |
Look a tag up before searching on it. The site indexes by tag alone, and a tag it does not hold matches nothing, which reads as an empty result rather than as a misspelling.
find_tagsFinds how the site spells a tag.
| Argument | Type | Required | What it does |
|---|---|---|---|
query | string, up to 60 characters | yes | The text to look up. |
In return: query as it was sent, and tags, each with the spelling the site uses and the number of posts carrying it.
search_postsSearches the posts by tags.
| Argument | Type | Required | What it does |
|---|---|---|---|
tags | array of 1 to 10 tag names | yes | Tags a post must carry. |
any_of | array of 1 to 10 tag names | no | Tags a post must carry at least one of. |
exclude | array of 1 to 10 tag names | no | Tags a post must carry none of. |
media_type | image, animated, video or any, default any | no | Stills, GIFs or MP4. |
rating | questionable or explicit | no | Both are searched when this is left out. |
sort | score, id, updated or random, default score | no | The order the site sorts by. |
limit | integer, 1 to 100, default 20 | no | Posts to serve. |
page | integer, 1 to 200, default 1 | no | Which page of posts. |
media_type is read off the site's own tags, so the classification is as good as the tagging. The two ratings above are the only ones the site holds: any other value answers zero posts and no error, which would hand back an absence the site never had.
In return: tags, any_of and exclude as the site spells them; query, the search as it was sent in the site's own language; total, the posts the whole search matches as counted by the site; and the posts themselves, each with its id, post_url, file_url, preview_url, sample_url, width, height, score, rating and tags. The score is the site's own and it is updated once a day.
get_postReads one post's record.
| Argument | Type | Required | What it does |
|---|---|---|---|
id | integer, 1 or more | one of two | The post identifier. |
url | a rule34.xxx post URL | one of two | The address of the post's page. |
In return: the post a search row carries, with its full tag list.
The two credentials are required. Everything else is optional, and all of it goes in the env block of your client config.
| Variable | Default | What it does |
|---|---|---|
RULE34_USER_ID | none, required | Your numeric account id. |
RULE34_API_KEY | none, required | Your API key, which is personal. |
RULE34_USER_AGENT | the project identity | Names your application to the site, with an address where a person can be reached. |
RULE34_MIN_INTERVAL_MS | 1000 | Gap between two requests, from 1000 to 60000. |
RULE34_TIMEOUT_MS | 20000 | Deadline for one request, from 1000 to 120000. |
RULE34_MAX_RETRIES | 3 | Attempts after a transient failure, from 0 to 10. |
RULE34_CACHE_TTL_MS | 300000 | How long an answer stays in memory, from 0 to 86400000. |
RULE34_CACHE_MAX_ENTRIES | 300 | Answers held in memory at once, from 0 to 10000. |
RULE34_LOG_LEVEL | error | silent, error, info or debug, written to stderr. |
Where the credentials come from. Sign in, open Account options, and find the row named _API Access Credentials_. It shows &api_key=…&user_id=…, and those two values are what goes in the configuration above. If the key is empty, tick _Generate New Key?_ and save.
The site issues one key per person, and asks that applications serving its content display no advertising and put it behind no paywall. This server ships no key of its own, and each user brings their own. Started without credentials, it runs, publishes its tools, and answers every call by naming the two variables to set: it sends no request it knows the site will refuse.
A value outside its range falls back to the default, and the reason is written to stderr.
Every failure carries one of six codes, a message, and where it helps a hint naming the next move.
| Code | What happened | What to do |
|---|---|---|
not_found | The site answered, and holds nothing at that address. | Check the identifier with search_posts. |
invalid_input | The arguments were refused before any request went out. | Read the message, which names the argument. A missing credential is reported here. |
rate_limited | The site asked this client to slow down. | Wait the number of seconds the hint names and call again with the same arguments. The post is still there. |
parse_failure | The answer arrived in a shape this client cannot read. | Report it at the issue tracker. |
network_error | The request did not complete. | Try again shortly. |
timeout | The request passed its deadline. | Raise RULE34_TIMEOUT_MS, or ask for fewer posts. |
The layer reading the site is published on its own, with its pacing, its cache and its errors, and with no protocol attached.
import { Rule34Client } from "mcp-rule34/client";
const client = new Rule34Client({ credentials: { userId: "…", apiKey: "…" } }); const { data, cached } = await client.searchPosts({ tags: ["example"], limit: 5 }); console.log(data.total, cached);
Each read answers { data, cached }, and throws an error carrying one of the six codes. The one-second floor between two requests holds here as well.
Requests go out one at a time with at least a second between them, and that floor holds however the server is configured. The User-Agent always ends with the project identity and an address where a person can be reached.
Reads go to the API the site documents, and the credentials it issues are what its terms ask automated reading to use. Every result carries the address of the post's page. Nothing is downloaded: a file address travels through an answer as a string.
This MCP server is an unofficial project, with no affiliation to rule34.xxx.
This server collects nothing about you and sends nothing to its author. It runs on your machine, contacts api.rule34.xxx and rule34.xxx and nothing else, holds its answers in memory while it runs, and writes nothing to disk. Your credentials are read from the environment and sent to that site alone. PRIVACY.md
Only the beginning is shown; read the rest in the repo