MCU'S API INSTRUCTIONS
MARII and MCU API  |  how to call it from your code  |  one GET, many languages  |  oct 2026

This is MCU's API Instructions for MCU-3B (3B::M), a 3 billion token on-device industrial model with a public JSON API. MARII and MCU API. No key. No Cloud Run. No cloud LLM. Copy a snippet into your program.

The URL
https://mcu-ask.mainline-mi.workers.dev/ + url-encoded question. Space = %20. Percent = %25.

https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu
https://mcu-ask.mainline-mi.workers.dev/15%25%20of%2080
https://pyx-ai.web.app/api/mcu/ask/what%20is%20mcu
https://mainline-intelligence.web.app/api/mcu/ask/what%20is%20mcu

POST a question + your own facts

curl -sS -X POST https://mcu-ask.mainline-mi.workers.dev/ask \
  -H "content-type: application/json" \
  -d '{"q":"what is the line speed","docs":[{"kind":"fact","q":"line speed","a":"140 units per hour on cell B"}]}'

What you get back   read reply

{
  "ok": true,
  "request": "what is mcu",
  "reply": "MCU is Mainline Conversational Unit -- MCU-3B, tag 3B::M.",
  "echo": "what is mcu",
  "source": "fact",
  "backend": "mcu",
  "model": "MCU-3B",
  "tag": "3B::M",
  "envelope": "3.0B",
  "ai": false}
}

Jump
curl · bash · zsh · wget · HTTP · PHP · Python · JavaScript · TypeScript · Node · Deno · Ruby · Perl · Go · Rust · Java · Kotlin · C# · F# · VB.NET · C · C++ · Obj-C · Swift · Dart · R · Lua · PowerShell · Batch · AppleScript · Scala · Groovy · Clojure · Elixir · Erlang · Haskell · OCaml · Julia · MATLAB · Racket · Crystal · Nim · Zig · D · Pascal · Fortran · COBOL · Ada · Tcl · Awk · VBA · AutoHotkey · HTML · CFML · Prolog · Common Lisp


curl / sh

curl -sS "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu"

bash

q="what is mcu"
curl -sS "https://mcu-ask.mainline-mi.workers.dev/${q// /%20}"

Paste those two lines into the prompt. Do not paste a #! shebang into zsh -- ! is history and you get "event not found".

zsh

q="what is mcu"
curl -sS "https://mcu-ask.mainline-mi.workers.dev/${q// /%20}"

Same two lines. Optional zsh spelling: ${q:gs/ /%20}. A shebang belongs in a saved script file only -- never paste it into a live zsh prompt.

wget

wget -qO- "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu"

raw HTTP

GET /what%20is%20mcu HTTP/1.1
Host: mcu-ask.mainline-mi.workers.dev
Accept: application/json

PHP

<?php
$q = "what is mcu";
$url = "https://mcu-ask.mainline-mi.workers.dev/" . rawurlencode($q);
$json = file_get_contents($url);
$data = json_decode($json, true);
echo $data["reply"];
?>

If allow_url_fopen is off:

<?php
$url = "https://mcu-ask.mainline-mi.workers.dev/" . rawurlencode("what is mcu");
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
echo $data["reply"];
?>

Python

from urllib.parse import quote
from urllib.request import urlopen
import json
url = "https://mcu-ask.mainline-mi.workers.dev/" + quote("what is mcu")
data = json.load(urlopen(url))
print(data["reply"])
import requests
r = requests.get("https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu")
print(r.json()["reply"])

JavaScript (browser)

fetch("https://mcu-ask.mainline-mi.workers.dev/" + encodeURIComponent("what is mcu"))
  .then(function (r) { return r.json(); })
  .then(function (data) { console.log(data.reply); });

TypeScript

const url = "https://mcu-ask.mainline-mi.workers.dev/" + encodeURIComponent("what is mcu");
const data = await (await fetch(url)).json();
console.log(data.reply as string);

Node.js

const url = "https://mcu-ask.mainline-mi.workers.dev/" + encodeURIComponent("what is mcu");
const data = await (await fetch(url)).json();
console.log(data.reply);

Deno / Bun

const data = await (await fetch(
  "https://mcu-ask.mainline-mi.workers.dev/" + encodeURIComponent("what is mcu")
)).json();
console.log(data.reply);

Ruby

require "open-uri"
require "json"
require "uri"
url = "https://mcu-ask.mainline-mi.workers.dev/" + URI.encode_www_form_component("what is mcu")
puts JSON.parse(URI.open(url).read)["reply"]

Perl

use LWP::Simple;
use JSON;
my $url = "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu";
print decode_json(get($url))->{reply}, "\n";

Go

package main
import (
  "encoding/json"
  "fmt"
  "net/http"
  "net/url"
)
func main() {
  u := "https://mcu-ask.mainline-mi.workers.dev/" + url.PathEscape("what is mcu")
  res, _ := http.Get(u)
  defer res.Body.Close()
  var data map[string]any
  json.NewDecoder(res.Body).Decode(&data)
  fmt.Println(data["reply"])
}

Rust (reqwest + serde_json)

let url = format!(
  "https://mcu-ask.mainline-mi.workers.dev/{}",
  urlencoding::encode("what is mcu")
);
let v: serde_json::Value = reqwest::blocking::get(url)?.json()?;
println!("{}", v["reply"]);

Java

import java.net.*;
import java.net.http.*;
String q = URLEncoder.encode("what is mcu", "UTF-8");
String url = "https://mcu-ask.mainline-mi.workers.dev/" + q;
String body = HttpClient.newHttpClient()
  .send(HttpRequest.newBuilder(URI.create(url)).GET().build(),
        HttpResponse.BodyHandlers.ofString()).body();
System.out.println(body);

Kotlin

val q = java.net.URLEncoder.encode("what is mcu", "UTF-8")
val text = java.net.URL("https://mcu-ask.mainline-mi.workers.dev/$q").readText()
println(text)

C#

using var http = new HttpClient();
var q = Uri.EscapeDataString("what is mcu");
var json = await http.GetStringAsync("https://mcu-ask.mainline-mi.workers.dev/" + q);
Console.WriteLine(json);

F#

open System.Net.Http
let http = new HttpClient()
let q = System.Uri.EscapeDataString("what is mcu")
let json = http.GetStringAsync("https://mcu-ask.mainline-mi.workers.dev/" + q).Result
printfn "%s" json

VB.NET

Dim http As New System.Net.Http.HttpClient()
Dim q = Uri.EscapeDataString("what is mcu")
Dim json = http.GetStringAsync("https://mcu-ask.mainline-mi.workers.dev/" & q).Result
Console.WriteLine(json)

C (libcurl)

#include <curl/curl.h>
CURL *c = curl_easy_init();
curl_easy_setopt(c, CURLOPT_URL,
  "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu");
curl_easy_setopt(c, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_perform(c);
curl_easy_cleanup(c);

C++

// same as C with libcurl, or:
// #include <cpr/cpr.h>
auto r = cpr::Get(cpr::Url{
  "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu"});
std::cout << r.text;

Objective-C

NSURL *u = [NSURL URLWithString:
  @"https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu"];
NSData *d = [NSData dataWithContentsOfURL:u];
NSLog(@"%@", [[NSString alloc] initWithData:d encoding:NSUTF8StringEncoding]);

Swift

let q = "what is mcu".addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)!
let url = URL(string: "https://mcu-ask.mainline-mi.workers.dev/\(q)")!
let (data, _) = try await URLSession.shared.data(from: url)
print(String(data: data, encoding: .utf8)!)

Dart

import 'dart:convert';
import 'package:http/http.dart' as http;
final q = Uri.encodeComponent("what is mcu");
final r = await http.get(Uri.parse("https://mcu-ask.mainline-mi.workers.dev/$q"));
print(jsonDecode(r.body)["reply"]);

R

j <- jsonlite::fromJSON("https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu")
cat(j$reply, "\n")

Lua (luacurl or http.request)

local http = require("socket.http")
local body = http.request("https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu")
print(body)

PowerShell

$r = Invoke-RestMethod "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu"
$r.reply

Windows Batch

curl -sS "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu"

AppleScript

do shell script "curl -sS 'https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu'"

Scala

val src = scala.io.Source.fromURL(
  "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu")
println(src.mkString)
src.close()

Groovy

println "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu".toURL().text

Clojure

(println (slurp "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu"))

Elixir

{:ok, {_, _, body}} = :httpc.request(
  'https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu')
IO.puts(body)

Erlang

inets:start(),
ssl:start(),
{ok, {_, _, Body}} = httpc:request(get,
  {"https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu", []}, [], []),
io:format("~s~n", [Body]).

Haskell

import Network.HTTP.Simple
r <- httpBS "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu"
print (getResponseBody r)

OCaml

(* cohttp-lwt-unix *)
let%lwt _, body = Cohttp_lwt_unix.Client.get
  (Uri.of_string "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu") in
Cohttp_lwt.Body.to_string body |> Lwt_io.print

Julia

using HTTP, JSON
j = JSON.parse(String(HTTP.get("https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu").body))
println(j["reply"])

MATLAB / Octave

txt = webread("https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu");
disp(txt.reply)

Racket

#lang racket
(require net/url)
(port->string (get-pure-port
  (string->url "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu")))

Crystal

require "http/client"
puts HTTP::Client.get("https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu").body

Nim

import httpclient
echo newHttpClient().getContent("https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu")

Zig (or just shell out)

// easiest: spawn curl
// std.process.Child.run(.{ .argv = &.{ "curl", "-sS",
//   "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu" } })

D

import std.net.curl;
writeln(get("https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu"));

Pascal / Delphi

// Indy
IdHTTP1.Get('https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu');

Fortran

! call curl from the shell
call execute_command_line(
  "curl -sS https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu")

COBOL

       IDENTIFICATION DIVISION.
       PROGRAM-ID. MARII.
       PROCEDURE DIVISION.
           CALL "SYSTEM" USING
             "curl -sS https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu".
           STOP RUN.

Ada

-- spawn curl, or use AWS.Client
-- AWS.Client.Get("https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu")

Tcl

package require http
package require tls
::http::register https 443 ::tls::socket
set tok [::http::geturl https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu]
puts [::http::data $tok]

Awk

# gawk + curl
@load "readfile"
# or:
# curl -sS URL | awk '{ print }'

VBA (Excel / Access)

Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET", "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu", False
http.Send
MsgBox http.responseText

AutoHotkey

whr := ComObject("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu", true)
whr.Send()
whr.WaitForResponse()
MsgBox whr.ResponseText

HTML form

<form action="https://mcu-ask.mainline-mi.workers.dev/api/marii/ask" method="get">
  <input name="q" value="what is mcu">
  <input type="submit" value="Ask">
</form>

CFML / ColdFusion

<cfhttp url="https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu" method="get" />
<cfoutput>#cfhttp.filecontent#</cfoutput>

Prolog

:- use_module(library(http/http_open)).
main :-
  http_open("https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu", In, []),
  copy_stream_data(In, user_output),
  close(In).

Common Lisp

;; dexador
(print (dex:get "https://mcu-ask.mainline-mi.workers.dev/what%20is%20mcu"))

GET only. POST is 501 on purpose (no cloud AI).
Encode the question. Read the reply field from the JSON.
These are copy-paste starters for your code, not a local VM lab.
back to mainline intelligence  |  api health

mainline intelligence -- MARII and MCU API -- pick a language, paste, go