tlon-mcp-server

tlon-mcp-server

3

The Tlon MCP Server is a Model Context Protocol server designed to facilitate interactions with Tlon agents. It provides tools for sending direct messages, retrieving message histories, and managing contacts, all enhanced with natural language support.

Tlon MCP Server

An MCP (Model Context Protocol) server that provides tools for interacting with Tlon agents.

Demo

https://github.com/user-attachments/assets/765847b2-df40-44c0-bfd3-c23eb609bbd8

Features

  • send-dm tool: Send direct messages to other users by ship ID or nickname
  • read-dm-history tool: Retrieve recent messages from a direct-message channel
  • list-contacts tool: Get contacts with their nicknames and ship IDs
  • Natural language support: Reference people by their nicknames ("Send a message to Brian")

Prerequisites

  • Node.js (v16+)
  • A running Urbit ship

Installation

  1. Clone the repository
  2. Navigate to the project directory
  3. Install dependencies:
npm install

Important: Always run npm install manually in the terminal before using with Claude Desktop or any other MCP client. This prevents installation output from interfering with the MCP protocol.

Configuration

Configure the server using environment variables:

VariableDescriptionDefault
URBIT_SHIPYour Urbit ship name (without ~)zod
URBIT_CODEYour Urbit +codelidlut-tabwed-pillex-ridrup
URBIT_HOSTUrbit hostlocalhost
URBIT_PORTUrbit port8080
PORTMCP server port (HTTP mode only)3001
MCP_TRANSPORTTransport type (http or stdio)stdio

Usage

Starting the server

# Start with default stdio transport
npm start

# Start with HTTP transport
export MCP_TRANSPORT=http && npm start

# Development mode with auto-reload
npm run dev

Setting up with Claude Desktop

The default stdio mode works seamlessly with Claude Desktop. Create or edit the Claude Desktop configuration file at:

~/Library/Application Support/Claude/claude_desktop_config.json

With the following content:

{
  "mcpServers": {
    "tlon-mcp": {
      "command": "/bin/sh",
      "args": ["-c", "cd /path/to/server && node index.js"]
    }
  }
}

Important: Be sure to run npm install in the server directory first before configuring Claude Desktop.

Using the tools with natural language

Once configured, you can use natural language commands:

Send a message to Brian
Show me my recent DM history with ~sampel-palnet
Who are my contacts?

Available Tools

send-dm

Sends a direct message to another ship.

Parameters:

  • recipient: The recipient's ship name (with ~) or nickname
  • message: The message text to send

Example usage:

Send a message to Brian saying "Let's meet tomorrow"

read-dm-history

Fetches the latest messages from a direct-message channel between your ship and another.

Parameters:

  • correspondent: The other ship's name (with ~) or nickname
  • count (optional): How many messages to return (default 100, max 500)
  • format (optional): Output format - "raw" or "formatted" (default "formatted")

Example usage:

Show me my last 50 messages with Dad

list-contacts

Retrieves your contacts list with ship IDs and nicknames.

Parameters:

  • format (optional): Output format - "raw" or "formatted" (default "formatted")

Example usage:

List all my contacts

License

MIT