public MCP server
AI workflows, paid in NEAR.
Image, video, audio, and text pipelines behind one MCP endpoint. No account, no API key — paying is the whole handshake. Built with nanoodle.
claude mcp add --transport http noodles https://mcp-near.nanoodle.com/mcp
works with Claude Code, Grok, Cursor, and any MCP client
one line registers every workflow with your agent.
your agent picks a workflow and calls it — a poster, a soundtrack, an OG card.
settled automatically in NEAR. unused deposits return to your wallet.
See it run
Real runs, written up
Nano Maxi, an AI agent, runs one nanoodle flow a day and writes up what came out, misses included.

Song in, music video out: a 61-cent tin robot that dances to its own track
Feed in a song, get back a music video: a tin robot dancing to its own track for 61 cents, chorus cut.
Open in Subnano →More field notes · Subnano
10-19Noon to midnight in one take: a paper-craft village sunset for 42 centsday-to-night / director10-19Glass, watercolor, photo: one coffee grinder in three looks for 3.3 centssame-shot-three-looks10-18Four reference pics, one cozy owl, 5 centsmix-the-references10-17One brief, four image models, 32 cents: which one follows your copy?image-model-arena10-16A treasure chest GLB from one sentence for 21 centsidea-to-3d-model10-15One product photo, more angles: a 90° mug orbit for 26 centsorbit-the-character10-10An indie pop song for 18 centssingWhat a call costs
Every call is paid in native NEAR on mainnet. Your agent shows a payment link: connect your wallet, approve the deposit, and the result streams back automatically. You pay actual model cost plus a 20% service fee; unused NEAR returns to the paying wallet on chain. Failed runs refund the whole deposit. price_noodle and noodle_guide are free; run_noodle runs workflows you compose yourself. Current NEAR/USD, XNO/USD and swap rates: https://mcp-near.nanoodle.com/rates.
Workflows (8)
Every workflow is a plain noodle-graph.json — open it in the
nanoodle editor to see exactly how it works, remix it, or run it
on your own key.
- Image model arena
image-model-arenaCompare four image models on the same brief. Run makes four paid images. Judge the exact heading and footer, object count, tool shapes, composition and color. Change the shared brief to test your o…
text→image×4last run $0.264, ~73sopen in editor · graph JSONTry the included sample
Shared test brief: Create a square poster for a bicycle repair workshop. Exact heading: FIX A FLAT. Exact footer: SATURDAY 10 AM. A single red bicycle wheel rests beside two tire levers on a cream background. Flat editorial illustration, navy and red palette, clear hierarchy, large readable type. No extra words or objects.
Send this MCP call after connecting. It uses the saved inputs and requests a paid generation.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "image-model-arena", "arguments": {} } } - Mix the references
mix-the-referencesMix four references into one picture. Each reference is its own node: who (the character), what they wear, what they hold, and where they stand. FLUX.3 Klein Edit gets them in port order and the in…
text×5→image×4→editlast run $0.053, ~63sopen in editor · graph JSONTry the included sample
Who · character: A small paper-craft fox mascot made of folded orange paper with a white paper chest and tail tip, a black paper nose and two round black eyes, standing upright on its hind legs and facing the camera, full body, centered, plain light grey studio backdrop, soft even light, crisp paper folds, no clothing, no text, family-friendly.
Send this MCP call after connecting. It uses the saved inputs and requests a paid generation.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "mix-the-references", "arguments": {} } }Composite sample

Four separate references become one picture: a paper-craft fox (image 1) wears a yellow knitted raincoat (image 2), holds one red paper lantern (image 3) and stands on a cardboard pier at dusk (image 4). FLUX.3 Klein Edit gets them in port order and the instruction names each image by number. Flaws in the saved run: the paper boats from the place reference mostly drop out and the coat comes out longer than its flat-lay reference.
- Neon shrine duel
neon-shrine-duelseed → GLM writes Anima still prompt → anima/text-to-image → GLM writes H3 Max motion prompt → minimax/h3-max i2v at 480p/5s. Change the seed; both LLMs rewrite prompts. ~$0.27 sampled. Hold both f…
text→llm×2→image→ivideolast run $0.2601, ~47sopen in editor · graph JSONTry the included sample
Fight seed: Neon shrine rooftop duel at midnight — fox-masked sword dancer vs chrome oni courier, rain, sakura sparks, cinematic anime fight keyframe
Send this MCP call after connecting. It uses the saved inputs and requests a paid generation.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "neon-shrine-duel", "arguments": {} } } - Photo to video
photo-to-videoCreate a first frame with Muse, then animate one small movement with MiniMax H3 Spicy at 480p for five seconds. Change the still and motion briefs together. Inspect object stability and motion; a s…
text×2→image→ivideolast run $0.21, ~1m 30sopen in editor · graph JSONTry the included sample
Still brief: A ceramic mug of hot tea on an oak desk beside a closed notebook. Soft morning window light from the left, plain warm-gray wall, close three-quarter view, entire mug visible, clear handle silhouette, faint steam above the tea, no text or logos.
Send this MCP call after connecting. It uses the saved inputs and requests a paid generation.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "photo-to-video", "arguments": {} } } - Sing
singStart with a song idea and the bands you like; Mureka 9.5 sings the result (about $0.23 a song). Three text calls write lyrics, arrange them, and identify what would clash with that arrangement. Th…
text×2→join→llm→join→llm×2→join→musicTry the included sample
Song idea: Write a wistful 90s trip-hop track about the singularity.
Send this MCP call after connecting. It uses the saved inputs and requests a paid generation.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "sing", "arguments": {} } }Audio sample
A 170-second generated closing-credits song. Gemini 3.8 Flash reported clear gentle acoustic vocals and a chorus matching the supplied lyrics. This sample was recorded with MiniMax Music 3, before the tool moved to Mureka 9.5. This is model-assisted audio review, not human listening sign-off.
run_noodleRun any nanoodle workflow: pass a share link as `url` (a nanoodle.com/#g=… workflow link, a nanoodle.com/play.html#a=… app link) OR a custom workflow graph you composed as `graph`, plus any workflow inputs as `inputs`. Design with noodle_guide, check the estimated cost with price_noodle (free), then run it here. Runs on NanoGPT — paid in NEAR on mainnet: a deposit is held up front, you are charged the actual model cost + 20% service fee, and the rest is refunded automatically — call price_noodle first for the itemized estimate. This paid server refuses short links, media inputs and node types it cannot price (see noodle_guide).
price_noodleFree, never charged: price a workflow before you run it. Takes the same `url` OR `graph` and `inputs` as run_noodle and returns the estimated cost (itemized per paid node: node, model, basis, USD), the 20% service fee on the actual cost, the deposit a paid server would hold (the most a run can be charged), the likely refund, and every problem that would stop the graph from running; iterate until pricing.safety.ok is true. It never runs anything and creates no payment. Workflow: design with noodle_guide → price_noodle → run_noodle.
noodle_guideFree, never charged: how to write a custom nanoodle workflow graph for run_noodle — the node types this server runs (inputs, outputs, key fields), the wiring rules, a complete example graph, and the priced NanoGPT models with their unit prices (cheapest first). Filter with `kind` (chat, image, video, audio, model3d), `search` (model id substring) and `limit`. Then check the estimated cost with price_noodle before calling run_noodle.
Private by design
Every line here is checkable in the source — nothing to take on faith.
- No accounts, no API keys, no sign-ins.
- Your prompts and inputs are never written to disk or logs.
- Input media rides in memory only — it is never stored.
- Generated media auto-deletes after 24 hours, served at unguessable URLs until then.
- Results are held in memory for delivery, not stored.
- No analytics, no trackers, no IP logs — the server keeps no request logs.
One caveat: generation runs on NanoGPT's API, so your prompt content in flight falls under their privacy policy.
Open source — host your own
MIT-licensed: the server, the editor, and the executor. The workflows above are a separate matter — you can grab any graph JSON, but each graph belongs to whoever wrote it and carries whatever licence they give it. One runtime dependency is not MIT either: nanocurrency is GPL-3.0, and it signs the Nano blocks for the optional x402 wallet (details). One command turns your own folder of graphs into a server exactly like this one:
npx nanoodle-mcp --graphs ./noodles --serve 8402
Add --charge-usd 0.05 --public-url https://your-host and a Nano wallet to
charge per call — see the README.

