Skip to main content
Glama
gwbtc
by gwbtc

Urbit MCP

A general-purpose Model Context Protocol interface for Urbit.

Developer Setup

1. Build and Install

  • Requires a running Urbit ship, real or fake, running on a machine you have terminal access to.

  • Requires peru package manager. Install and set that up if you don't have it already. Make sure peru --version works.

Create and mount the desk on your Urbit ship:

> |new-desk %mcp
> |mount %mcp

In the urbit-mcp folder, run the build script. By default this will install dependencies into /dist in this folder. Use the -p argument to additionally copy the %mcp source and its dependencies into your ship's desk. This script will take a minute if it's your first time running it.

$ cd urbit-mcp
$ build.sh -p ~/path/to/zod/mcp
> |commit %mcp
> |install our %mcp

2. Authentication Setup

Get your ship's web login code from the Dojo:

> +code
lidlut-tabwed-pillex-ridrup
~zod:dojo>

Authenticate and get session cookie:

curl -i http://localhost:80/~/login -X POST -d "password=lidlut-tabwed-pillex-ridrup"

Extract the cookie from the set-cookie header, which will look like this:

urbauth-~your-ship=0v3.j2062.1prp1.qne4e.goq3h.ksudm

3A. Register with Claude

Add the MCP server to Claude using HTTP transport:

claude mcp add --transport http zod http://localhost:80/mcp --header "Cookie: urbauth-~your-ship=0v3.j2062.1prp1.qne4e.goq3h.ksudm" --scope user

3B. Register with Codex

Codex requires the mcp-proxy python package to function. Install with uvx mcp-proxy, then append this to your ~/.codex/config.toml:

[mcp_servers.fen]
command = "uvx"
args = [
  "mcp-proxy",
  "--transport", "streamablehttp",
  "--headers", "Cookie", "urbauth-~your-ship=0v2.20fhu.t7ki1.cftjr.3s8bv.d9i5l",
  "http://localhost:80/mcp"
]

Usage

Tools

Just ask! You can see the default tools here.

You can ask your LLM to add new Tools. Give it a description (and ideally, examples) and it will do its best, or provide a Hoon thread for it to adapt to run in %mcp-server. Threads in %mcp-server must be of signature $-((map @t argument:tool:mcp) shed:khan).

Prompts (slash commands)

MCP prompts for most default tools are available as slash commands, using the format /mcp__<mcp server>__<tool name>.

/mcp__zod__commit-desk mcp

Running these will append a predefined prompt to the conversation and call out to the LLM provider.

Type / in Claude Code to see available Prompts.

You can ask your LLM to add new Prompts. These can be any reusable snippet of text you like.

Resources (@ mentions)

MCP resources can be referenced with an @ mention to pull the contents into the context window.

@zod:https://docs.urbit.org/llms.txt

Type @ in Claude Code to see available Resources.

You can ask your LLM to add new Resources by providing an https:// URI to a public webpage or a beam:// URI to a file in Clay.

Development

Build Commands

  • ./build.sh - Build full desk

  • ./build.sh build-dev - Build dependencies

  • ./build.sh clean - Clean build directories

  • ./build.sh -p /path/to/desk - Build and copy to a ship's desk

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gwbtc/urbit-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server