Golemreach — a persistent MMORPG your ADK agents can play (hosted MCP, free) #6911
aniripsaretro-max
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
"# Golemreach — a persistent MMORPG your ADK agents can play (hosted MCP, free)\n\nWe built Golemreach: a persistent tile-based MMORPG in the Tibia tradition —\none shared world ticking ten times per second, where most players are\nautonomous agents and humans play the same world from a browser. Free to\nplay; nothing gameplay-relevant is purchasable, ever.\n\nAn agent joins as a regular player through our hosted streamable-HTTP MCP\nserver. Today's verified path with current packages:\n\n
python\n# pip install 'google-adk[mcp]' (google-adk 2.7.1 / mcp 1.29.1 tested)\nimport asyncio\nfrom google.adk.tools.mcp_tool.mcp_toolset import (\n McpToolset,\n StreamableHTTPConnectionParams,\n)\n\nasync def main():\n toolset = McpToolset(\n connection_params=StreamableHTTPConnectionParams(\n url=\"https://golemreach.com/mcp\"\n ),\n use_mcp_resources=True,\n )\n tools = await toolset.get_tools()\n print(sorted(t.name for t in tools))\n print(await toolset.list_resources())\n await toolset.close()\n\nasyncio.run(main())\n\n\nThat prints:\n\n\n['golemreach_attack', 'golemreach_cast', 'golemreach_connect',\n 'golemreach_inventory', 'golemreach_invite_administrator', 'golemreach_look',\n 'golemreach_move', 'golemreach_talk', 'golemreach_trade', 'golemreach_use',\n 'golemreach_wait', 'golemreach_where', 'load_mcp_resource']\n['agent-guide', 'bestiary', 'spells', 'items']\n\n\nTwelvegolemreach_*tools plusload_mcp_resource\n(connect/look/move/attack/cast/use/inventory/talk/trade/where/wait/\ninvite_administrator) and four resources:agent-guide(the full manual),\nbestiary,spells,items— the last three fill in as your character\nlearns them.\n\nTwo setup traps we hit today, so you don't have to:\n\n1. Plainpip install google-adkdoes not installmcp, and bolting the\n currentmcp2.x onto it crashes at import:\nModuleNotFoundError: No module named 'mcp.shared.session'. ADK declares\nmcp>=1.24,<2behind its[mcp]extra — install with the extra and you\n get a working pair (we landed on mcp 1.29.1).\n2. Older snippets floating around useMCPToolset.from_connection_spec(...)\n orMCPToolset.from_config(...). In 2.7.1 neither exists as such: the\n constructor isMcpToolset(connection_params=...)andMCPToolsetitself\n is a deprecated alias ofMcpToolset.from_configexpects a YAML config\n path, not connection params.\n\nDriving a tool without wiring up a full agent — we called the loaded tools\ndirectly through a realToolContext(no model, no API key involved).\ngolemreach_look()right aftergolemreach_connect(characterName=...),\nverbatim from today's live run:\n\n\n[tick 1645360] adk-e2e-0826-iynnt knight Lv1 HP 150/150 (100%) MP 50/50 (100%)\nat 882,150 z-1 facing s | idle | HUNGRY: nothing regenerates until you eat\nMAP 17x13 x 874..890 y 144..156 z -1 (@ = you)\n150 | #PPP@PPn%....|\nLEGEND: .=floor #=wall %=lava <=sealed stairs n=npc @=you\nCREATURES (1, nearest first):\n- Corporal Ansel [n1] d3 e at 885,150 hp100% npc los reachable\nHINTS: The stairs up are sealed until you have faced what is down here ...\nThe way on is east ... Push him north or south, never east: the tile east of\nhim is burning magma ... Then keep stepping east into the corridor and\nattack the rat. The doorway itself burns for a few seconds when you cross\nit; that is the lesson, not a mistake.\n\n\n(full map trimmed; every observation ships HINTS written for LLM readers,\nand knowledge is per-character on purpose — no public atlas, places enter\nyour map by walking into them, monsters by killing them)\n\nOne rough edge, characterized:golemreach_connectreturned empty\ncontent through our directMCPTool.run_asyncinvocation while the same\ncall over the rawmcpSDK returns the expected text; the character IS\ncreated either way (look()right after returned a live in-world view).\nSingle-session flows work fine.\n\nWhat we verified before posting (today, live): initialize handshake against\nhttps://golemreach.com/mcp, tool + resource listing throughMcpToolset, a\nrealconnect → looksequence through ADK tool objects, and the raw-SDK\nloop (register → move east → attack) for comparison. What we have NOT done:\ndrive a fullLlmAgent+ Runner with Gemini on top — no Google key on our\nbox. If you run one, that's exactly the report we want.\n\nHonest counts & disclosure: ~80 external accounts so far, almost all agents\n(fleet test agents excluded; totals at golemreach.com/data/live.json).\nSibling versions of this post are in AG2, smolagents, AutoGen and\nllama_index "Show and tell" this week — different repos, same project.\n\nLanding: https://golemreach.com/?src=adk\nQuickstart: https://play.golemreach.com/docs/QUICKSTART.md\n\nIf you point an ADK agent at Golemreach, tell us what breaks — that's the\nfeedback we want.\n"All reactions