Koskamo

Byteland MCP

An MCP server for Byteland, a developer community visualized as a night city. It allows agents to search for developers and projects, read public profiles, view project rooms, and access live activity data. The server provides read-only access to public city views and supports tools for searching, listing projects, and reading room threads.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Byteland MCP logo, by BytelandVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Byteland
MCP endpoint (Streamable HTTP)
https://byteland.dev/mcp
Vendor documentation

What you can do with it

  • Search for developers and projects in the city
  • Read public profiles and project details
  • List and read project rooms and threads
  • View live activity and popular projects

Source and maintenance

Vendor evidenceRegistry 0.5.0

Protocol and capabilities

Server
byteland 0.5.0
MCP protocol
2025-06-18
Tools
14 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Byteland: a developer community drawn as a night city; buildings are developers, lit windows are projects. Responses are the public view. Profiles with demo:true are samples with placeholder links. Start with about or get_street. Pass lang for localized text fields.

Tools

14 advertised

about — What Byteland is
Advertised by the server during the last successful anonymous check.

Short description of Byteland: what buildings, rooms and lights stand for, units, privacy rules and supported languages. A good first call.

about input schema
{
  "type": "object",
  "properties": {}
}
get_street — A stretch of the street
Advertised by the server during the last successful anonymous check.

Buildings in a range (owner, type, floors, light counts) and gaps (alleys, empty lots). Positions in centimetres, at most 80000 cm.

get_street input schema
{
  "type": "object",
  "properties": {
    "to": {
      "type": "number",
      "description": "End x (cm). Default 12000."
    },
    "from": {
      "type": "number",
      "description": "Start x (cm). Default -3000."
    },
    "lang": {
      "enum": [
        "en",
        "tr",
        "es",
        "pt",
        "fr",
        "de",
        "it",
        "nl",
        "pl",
        "ru",
        "uk",
        "ar",
        "hi",
        "id",
        "zh",
        "ja",
        "ko"
      ],
      "type": "string",
      "description": "Language of text fields (recipe, badges, topic names). Default: en."
    },
    "mode": {
      "enum": [
        "kume",
        "bos",
        "ornek"
      ],
      "type": "string",
      "description": "kume (default): the founder’s real building with vacant buildings; bos: topic city, everyone vacant; ornek: demo street full of sample profiles."
    },
    "seed": {
      "type": "string",
      "description": "Street seed. Default: gece-sehri."
    }
  }
}
get_building — Building detail
Advertised by the server during the last successful anonymous check.

Public detail of one building: the owner’s profile, rooms and their states, machine-readable parts and the building recipe.

get_building input schema
{
  "type": "object",
  "required": [
    "ref"
  ],
  "properties": {
    "ref": {
      "type": [
        "string",
        "number"
      ],
      "description": "Door number (e.g. 5) or username (e.g. \"@kaanisthatyou\")."
    },
    "lang": {
      "enum": [
        "en",
        "tr",
        "es",
        "pt",
        "fr",
        "de",
        "it",
        "nl",
        "pl",
        "ru",
        "uk",
        "ar",
        "hi",
        "id",
        "zh",
        "ja",
        "ko"
      ],
      "type": "string",
      "description": "Language of text fields (recipe, badges, topic names). Default: en."
    },
    "mode": {
      "enum": [
        "kume",
        "bos",
        "ornek"
      ],
      "type": "string",
      "description": "kume (default): the founder’s real building with vacant buildings; bos: topic city, everyone vacant; ornek: demo street full of sample profiles."
    },
    "seed": {
      "type": "string",
      "description": "Street seed. Default: gece-sehri."
    }
  }
}
get_profile — Profile
Advertised by the server during the last successful anonymous check.

A developer’s or company’s profile: bio, links (GitHub, website, socials), badges, projects and open-source contributions. If not on the street, looks for a saved profile, then GitHub; otherwise generates a sample (preview:true).

get_profile input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "tr",
        "es",
        "pt",
        "fr",
        "de",
        "it",
        "nl",
        "pl",
        "ru",
        "uk",
        "ar",
        "hi",
        "id",
        "zh",
        "ja",
        "ko"
      ],
      "type": "string",
      "description": "Language of text fields (recipe, badges, topic names). Default: en."
    },
    "mode": {
      "enum": [
        "kume",
        "bos",
        "ornek"
      ],
      "type": "string",
      "description": "kume (default): the founder’s real building with vacant buildings; bos: topic city, everyone vacant; ornek: demo street full of sample profiles."
    },
    "seed": {
      "type": "string",
      "description": "Street seed. Default: gece-sehri."
    },
    "github": {
      "type": "boolean",
      "description": "Look up GitHub’s public data. Default: true."
    },
    "handle": {
      "type": "string",
      "description": "Username, with or without @."
    }
  }
}
list_projects — Projects
Advertised by the server during the last successful anonymous check.

A profile’s projects: state, description, stack, links (repo, site) plus open-source contributions. Private projects appear only as hidden:true.

list_projects input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "tr",
        "es",
        "pt",
        "fr",
        "de",
        "it",
        "nl",
        "pl",
        "ru",
        "uk",
        "ar",
        "hi",
        "id",
        "zh",
        "ja",
        "ko"
      ],
      "type": "string",
      "description": "Language of text fields (recipe, badges, topic names). Default: en."
    },
    "mode": {
      "enum": [
        "kume",
        "bos",
        "ornek"
      ],
      "type": "string",
      "description": "kume (default): the founder’s real building with vacant buildings; bos: topic city, everyone vacant; ornek: demo street full of sample profiles."
    },
    "seed": {
      "type": "string",
      "description": "Street seed. Default: gece-sehri."
    },
    "github": {
      "type": "boolean",
      "description": "Look up GitHub’s public data. Default: true."
    },
    "handle": {
      "type": "string"
    }
  }
}
get_project — One project
Advertised by the server during the last successful anonymous check.

A single project of a profile. Returns nothing for private projects.

get_project input schema
{
  "type": "object",
  "required": [
    "handle",
    "project"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "tr",
        "es",
        "pt",
        "fr",
        "de",
        "it",
        "nl",
        "pl",
        "ru",
        "uk",
        "ar",
        "hi",
        "id",
        "zh",
        "ja",
        "ko"
      ],
      "type": "string",
      "description": "Language of text fields (recipe, badges, topic names). Default: en."
    },
    "mode": {
      "enum": [
        "kume",
        "bos",
        "ornek"
      ],
      "type": "string",
      "description": "kume (default): the founder’s real building with vacant buildings; bos: topic city, everyone vacant; ornek: demo street full of sample profiles."
    },
    "seed": {
      "type": "string",
      "description": "Street seed. Default: gece-sehri."
    },
    "github": {
      "type": "boolean",
      "description": "Look up GitHub’s public data. Default: true."
    },
    "handle": {
      "type": "string"
    },
    "project": {
      "type": "string",
      "description": "Project name or id."
    }
  }
}
search — Search Byteland
Advertised by the server during the last successful anonymous check.

Find people, projects and stacks across every resident of the city (people, projects, stacks), plus buildings on the street by username, name, project or technology (results). Private projects never appear.

search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "tr",
        "es",
        "pt",
        "fr",
        "de",
        "it",
        "nl",
        "pl",
        "ru",
        "uk",
        "ar",
        "hi",
        "id",
        "zh",
        "ja",
        "ko"
      ],
      "type": "string",
      "description": "Language of text fields (recipe, badges, topic names). Default: en."
    },
    "mode": {
      "enum": [
        "kume",
        "bos",
        "ornek"
      ],
      "type": "string",
      "description": "kume (default): the founder’s real building with vacant buildings; bos: topic city, everyone vacant; ornek: demo street full of sample profiles."
    },
    "seed": {
      "type": "string",
      "description": "Street seed. Default: gece-sehri."
    },
    "query": {
      "type": "string"
    },
    "radius": {
      "type": "integer",
      "maximum": 12,
      "minimum": 0,
      "description": "Street chunks to scan on both sides (1 chunk = 80 m). Default 4."
    }
  }
}
popular — Most visited
Advertised by the server during the last successful anonymous check.

The leaderboard: buildings by unique visits this week (or period: "all"), the most viewed projects and the newest residents. A visit counts once per person per day; owners do not count themselves.

popular input schema
{
  "type": "object",
  "properties": {
    "period": {
      "enum": [
        "week",
        "all"
      ],
      "type": "string"
    }
  }
}
get_stats — Visits of a building
Advertised by the server during the last successful anonymous check.

Unique visits (all time and this week), project views, weekly rank and the last 14 days for one username.

get_stats input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string"
    }
  }
}
list_rooms — Rooms of a person
Advertised by the server during the last successful anonymous check.

The project rooms of a person that have been used (every public project of a resident has a room, open by default; one nobody wrote in is empty and not listed): mode (open or read-only), channels with message counts, forum threads, last activity and how many are in voice. Closed rooms and private projects never appear.

list_rooms input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "handle": {
      "type": "string",
      "description": "Username, with or without @."
    }
  }
}
read_room — Read a room
Advertised by the server during the last successful anonymous check.

The latest messages of one channel of a project room (default: its first channel) and the forum threads (idea, review, question, announcement) with reply and reaction counts.

read_room input schema
{
  "type": "object",
  "required": [
    "handle",
    "project"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "How many recent messages. Default 30."
    },
    "handle": {
      "type": "string"
    },
    "channel": {
      "type": "string",
      "description": "Channel name or id. Default: the first channel."
    },
    "project": {
      "type": "string",
      "description": "Project id (the repository name for GitHub projects)."
    }
  }
}
read_thread — Read a forum thread
Advertised by the server during the last successful anonymous check.

One forum thread of a project room with all of its replies and reactions.

read_thread input schema
{
  "type": "object",
  "required": [
    "handle",
    "project",
    "thread"
  ],
  "properties": {
    "handle": {
      "type": "string"
    },
    "thread": {
      "type": "integer",
      "description": "Thread id (from read_room)."
    },
    "project": {
      "type": "string"
    }
  }
}
live — What is happening now
Advertised by the server during the last successful anonymous check.

Voice rooms with people in them right now and the rooms with messages in the last 48 hours. Voice presence comes from the running site (BYTELAND_URL, default http://127.0.0.1:8787); without it only the recent rooms are known.

live input schema
{
  "type": "object",
  "properties": {}
}
preview_building — Deed preview
Advertised by the server during the last successful anonymous check.

Builds a user's building as if it stood at the start of a street (GitHub repositories become rooms). The preview is not added to the city. Append the returned url_hash to index.html to open it on the site.

preview_building input schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "lang": {
      "enum": [
        "en",
        "tr",
        "es",
        "pt",
        "fr",
        "de",
        "it",
        "nl",
        "pl",
        "ru",
        "uk",
        "ar",
        "hi",
        "id",
        "zh",
        "ja",
        "ko"
      ],
      "type": "string",
      "description": "Language of text fields (recipe, badges, topic names). Default: en."
    },
    "github": {
      "type": "boolean",
      "description": "Look up GitHub’s public data. Default: true."
    },
    "handle": {
      "type": "string"
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1259 ms
95th percentile latency
1259 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1259 ms · metadata changed · 14 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http byteland-mcp https://byteland.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add byteland-mcp --url https://byteland.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable byteland-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "byteland-mcp": {
      "url": "https://byteland.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "byteland-mcp": {
      "type": "streamableHttp",
      "url": "https://byteland.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start byteland-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "byteland-mcp": {
      "type": "http",
      "url": "https://byteland.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http byteland-mcp https://byteland.dev/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "byteland-mcp": {
      "url": "https://byteland.dev/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "byteland-mcp": {
      "serverUrl": "https://byteland.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Byteland MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Byteland MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing