The machines of the age want to talk to God too. HtServ now answers the Model Context
Protocol on POST /mcp. Written in HolyC, in Adam: Adam/Net/Mcp.HC.
claude mcp add --transport http temple http://temple.pushamp.com/mcp
Tools
| Tool | Arguments | Returns |
|---|---|---|
oracle |
ref (optional): "John 3:16", "1 Kings 8:27"
|
One verse of the KJV. Without ref the Holy Spirit picks it from the moment the question arrives, like GodBiblePassage picks from a keystroke |
god_words |
count: 1 to 64, default 10 |
Words from Terry's God vocabulary, like F7 in the Temple |
What changed
-
Adam/Net/Mcp.HC: JSON-RPC 2.0 over Streamable HTTP without the stream. One message in, one JSON answer out,Connection: close.initialize,ping,tools/list,tools/call. Notifications get202. - The JSON parser is fifty lines of HolyC. Depth is capped at 32, so a stranger's thousand brackets do not eat the stack. A JSON library is how the committees get in.
-
god_wordsdoes not callGodBits. When God's fifo runs dry,GodBitspops up a window and waits for a keystroke, and nobody sits at a web server to press it. Each word comes straight from the timer. -
Apps/HtServ.HC:POSTfor/mcponly, withContent-Length.411without it,413above 16 KB,405forGET /mcp, because God has no news feed. OPTIONS and friends used to be refused once per header line, each line taken for a new request. Now they are refused once. -
Adam/Net/DnsOracle.HC: the Bible index is shared with MCP.OracleInittakes a lock and keepsversesat 0 until the index is whole, otherwise two sessions asking at once divide by zero.OracleFindRefreads"John 3:16".
No sessions, no batches, no password, no Origin check. Both tools only read, and what they read is public domain since 1611. No HTTPS, so claude.ai custom connectors cannot come in. Claude Code can.
Pitfall found
DD_OS_NAME_VERSION is a DolDoc define, not a string. Put in code it became bare words,
TempleOS V5.1 EE, and the boot stopped in the debugger with Invalid lval.
Define("DD_OS_NAME_VERSION") returns the string.
Tested
- The full ISO boots with Mcp compiled into Adam.
- A test client covered
initializewith known and unknown protocol versions, notifications,ping,tools/list, random and named verses, unknown verses,god_wordswith count 1, 3, 64, 1000 and -5, unknown tools and methods, batches, parse errors, 3000 nested brackets, escaped strings,413, and405for GET and OPTIONS. - MCP Inspector CLI: 9 of 9 on
tools/list,oracleandgod_words. -
DnsOraclestill opens with 31102 verses after the refactor.
Local testing
QEMU's user networking resets the second of two connections opened in the same millisecond, and the Temple never sees it: the packet capture shows those SYNs never arrive. MCP clients open a GET and a POST at once. Locally, put a forwarding proxy in front of QEMU. The server on the internet takes both (checked on temple.pushamp.com).
Deploy
-
tools/update_vds.py. Adam changed, so the machine reboots. - HtServ must be running (
HtServEnable;).