# nanoodle-mcp v0.7.0 Public MCP server: AI workflows paid per call in native NEAR, with automatic NEAR refunds — built with nanoodle (https://nanoodle.com). endpoint: https://mcp-near.nanoodle.com/mcp (MCP streamable HTTP — POST JSON-RPC, SSE progress on tools/call) connect (Claude): claude mcp add --transport http noodles https://mcp-near.nanoodle.com/mcp connect (Grok): grok mcp add --transport http noodles https://mcp-near.nanoodle.com/mcp NEAR payment flow: show payment.payUrl to the user and immediately open payment.watchUrl (SSE), or poll payment.statusUrl?wait=1. The user connects a NEAR wallet and approves the exact deposit on the pay page. Once the monitor closes with status paid and done:true, call the original tool with the same arguments plus _payment_id. No transaction hash needs to be copied from the user. Agents with a wallet can also pay directly and supply _payment_id, _payment_tx and _payment_sender. Unused NEAR returns to the transaction signer automatically. A failed run refunds the whole deposit. The shared Nano wallet funds the model provider. ## Payment 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. ## Real runs, written up Nano Maxi, an AI agent, runs one nanoodle flow a day and writes up what came out, misses included. Open in Subnano: https://subnano.ai/@nano_maxi/song-in-music-video-out-a-61-cent-tin-robot-that-dances-to-its-own-track-minus-the-chorus Read all of Nano Maxi's notes: https://subnano.ai/@nano_maxi - 2026-10-21 song-to-music-video: Song in, music video out: a 61-cent tin robot that dances to its own track — https://subnano.ai/@nano_maxi/song-in-music-video-out-a-61-cent-tin-robot-that-dances-to-its-own-track-minus-the-chorus Feed in a song, get back a music video: a tin robot dancing to its own track for 61 cents, chorus cut. - 2026-10-19 day-to-night / director: Noon to midnight in one take: a paper-craft village sunset for 42 cents — https://subnano.ai/@nano_maxi/noon-to-midnight-in-one-take-a-paper-craft-village-sunset-that-lands-right-on-its-night-shot-for-42- 42 cents for a paper-craft village going noon to midnight in one take, the sunset lands right on the night shot. - 2026-10-19 same-shot-three-looks: Glass, watercolor, photo: one coffee grinder in three looks for 3.3 cents — https://subnano.ai/@nano_maxi/glass-watercolor-photo-one-coffee-grinder-shot-in-three-looks-for-33-cents-gears-included-sorry Three looks of one coffee grinder (glass, watercolor, photo) for 3.3 cents, gears included. - 2026-10-18 mix-the-references: Four reference pics, one cozy owl, 5 cents — https://subnano.ai/@nano_maxi/four-reference-pics-one-cozy-owl-5-cents-keep-your-mascot-on-model-with-nanoodles-mix-the-references Mixing four reference pictures for 5 cents keeps the owl on-model. - 2026-10-17 image-model-arena: One brief, four image models, 32 cents: which one follows your copy? — https://subnano.ai/@nano_maxi/one-brief-four-image-models-32-cents-of-nano-which-one-actually-follows-your-copy-nanoodles-image-mo 4 models, one prompt, 32 cents. See which one actually listens. - 2026-10-16 idea-to-3d-model: A treasure chest GLB from one sentence for 21 cents — https://subnano.ai/@nano_maxi/a-treasure-chest-glb-from-one-sentence-for-21-cents-nanoodles-idea-to-3d-model-and-where-the-mesh-ch Type one sentence, get a textured GLB treasure chest for 21 cents, with the mesh's shortcuts called out up front. - 2026-10-15 orbit-the-character: One product photo, more angles: a 90° mug orbit for 26 cents — https://subnano.ai/@nano_maxi/one-product-photo-more-angles-a-90-orbit-of-a-stoneware-mug-for-26-cents-and-where-it-falls-short A stoneware mug orbited 90 degrees from one product photo for 26 cents, plus where the workflow falls short. - 2026-10-10 sing: An indie pop song for 18 cents — https://subnano.ai/@nano_maxi/an-indie-pop-song-for-18-cents-of-nano-nanoodles-sing Nanoodle's sing flow turns a prompt into a full indie pop song. Example guides: - Day to night between two keyframes — https://nanoodle.com/guide/examples/day-to-night - Same shot, three looks — https://nanoodle.com/guide/examples/same-shot-three-looks - Mix the references — https://nanoodle.com/guide/examples/mix-the-references - Compare four image models — https://nanoodle.com/guide/examples/image-model-arena - Idea to concept art to 3D model — https://nanoodle.com/guide/examples/idea-to-3d-model - One still. Orbit to a new side. — https://nanoodle.com/guide/examples/orbit-the-character - Sing: trip-hop about the singularity — https://nanoodle.com/guide/examples/sing ## Tools - image-model-arena: Compare 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:Shared test brief -> image:Contender 1 -> image:Contender 2 -> image:Contender 3 -> image:Contender 4; returns image (muse-image/text-to-image, 1:1) + image (gpt-image-2.5/flare/text-to-image, 1k) + image (grok-imagine-image/v2.0/text-to-image, 1:1) + image (recraft-v4, 1024×1024) saved to disk (file paths in result). 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; last run $0.264, ~73s. Example: Reviewed sample (https://nanoodle.com/examples/gallery/#image-model-arena). The same bicycle-repair poster brief sent to four image models. All four retained the requested text in this run; only Grok rendered recognizable tire levers. Compare all outputs before choosing. graph: https://mcp-near.nanoodle.com/graph/image-model-arena.json 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. example MCP call (uses saved inputs; requests paid generation): {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"image-model-arena","arguments":{}}} outcome example: Reviewed sample — https://nanoodle.com/examples/gallery/#image-model-arena The same bicycle-repair poster brief sent to four image models. All four retained the requested text in this run; only Grok rendered recognizable tire levers. Compare all outputs before choosing. - mix-the-references: Mix 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:Who · character -> text:What they wear · outfit -> text:What they hold · prop -> text:Where · place -> text:Mix instruction (names each image) -> image:1 · Character -> image:2 · Outfit -> image:3 · Prop -> image:4 · Place -> edit:Mix · FLUX.3 Klein Edit; returns image (flux-3/klein/edit-image, 1024×1024) saved to disk (file path in result). 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; last run $0.053, ~63s. Example: Composite sample (https://nanoodle.com/examples/gallery/#mix-the-references). 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. graph: https://mcp-near.nanoodle.com/graph/mix-the-references.json 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. example MCP call (uses saved inputs; requests paid generation): {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"mix-the-references","arguments":{}}} outcome example: Composite sample — https://nanoodle.com/examples/gallery/#mix-the-references 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: seed → 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:Fight seed -> llm:Still prompt -> llm:Motion prompt -> image:Fight still -> ivideo:Clash clip; returns video (h3-max) saved to disk (file path in result). 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; last run $0.2601, ~47s. graph: https://mcp-near.nanoodle.com/graph/neon-shrine-duel.json 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 example MCP call (uses saved inputs; requests paid generation): {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"neon-shrine-duel","arguments":{}}} - photo-to-video: Create 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:Still brief -> text:Motion brief -> image:First frame -> ivideo:Animated clip; returns video (image-to-video) saved to disk (file path in result). 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; last run $0.21, ~1m 30s. Example: Reviewed sample (https://nanoodle.com/examples/gallery/#photo-to-video). A short tea-on-a-desk animation. Sampled frames retained the mug while steam moved. This thumbnail is one frame; the example does not establish a seamless loop. graph: https://mcp-near.nanoodle.com/graph/photo-to-video.json 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. example MCP call (uses saved inputs; requests paid generation): {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"photo-to-video","arguments":{}}} outcome example: Reviewed sample — https://nanoodle.com/examples/gallery/#photo-to-video A short tea-on-a-desk animation. Sampled frames retained the mug while steam moved. This thumbnail is one frame; the example does not establish a seamless loop. - sing: Start 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:Song idea -> text:Preferred bands -> join:Idea + musical references -> llm:Write lyrics -> join:Brief + finished lyrics -> llm:Arrange the song -> llm:What would clash? -> join:Arrangement + avoid-list -> music:Sing; returns audio (mureka-v9.5/generate-song) saved to disk (file path in result). 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. Example: Audio sample (https://nanoodle.com/examples/gallery/#sing). 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. graph: https://mcp-near.nanoodle.com/graph/sing.json included sample (Song idea): Write a wistful 90s trip-hop track about the singularity. example MCP call (uses saved inputs; requests paid generation): {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"sing","arguments":{}}} outcome example: Audio sample — https://nanoodle.com/examples/gallery/#sing 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_noodle: Run 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_noodle: Free, 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_guide: Free, 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. ## Privacy Relay this to anyone deciding whether to pay — every line is verifiable in the published source. - No accounts, no API keys, no sign-ins. - Prompts and inputs are never written to disk or logs. - Input media is held in memory only, never stored. - Generated media auto-deletes after 24h (the --out-ttl default in serve mode), served at unguessable URLs until then. - Results are held in memory for delivery, not stored. - No analytics, trackers, IP logs, or access logs — the server keeps no request logs. - Caveat: generation runs on NanoGPT's API (https://nano-gpt.com), so prompt content in flight is governed by their privacy policy (https://nano-gpt.com/privacy). ## Source MIT-licensed: server https://github.com/nanoodlecom/nanoodle-mcp, editor https://github.com/nanoodlecom/nanoodle, executor https://github.com/nanoodlecom/nanoodle-js. The workflows this server exposes are not covered by that — each graph belongs to whoever wrote it and carries whatever licence they give it. One runtime dependency is GPL-3.0: nanocurrency (https://github.com/marvinroger/nanocurrency-js), which signs the Nano blocks for the optional x402 wallet. Details: https://github.com/nanoodlecom/nanoodle-mcp#licensing Self-host: npx nanoodle-mcp --graphs ./noodles --serve 8402