A night city of developers: search people and projects, read project rooms, see who is live.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Short description of Byteland: what buildings, rooms and lights stand for, units, privacy rules and supported languages. A good first call.
This tool takes no arguments.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http byteland https://byteland.dev/mcp
Short description of Byteland: what buildings, rooms and lights stand for, units, privacy rules and supported languages. A good first call.
No arguments.
{
"type": "object",
"properties": {}
}Public detail of one building: the owner’s profile, rooms and their states, machine-readable parts and the building recipe.
| Argument | Type | Description |
|---|---|---|
| ref* | string | number | Door number (e.g. 5) or username (e.g. "@kaanisthatyou"). |
| lang | string | Language of text fields (recipe, badges, topic names). Default: en. |
| mode | string | kume (default): the founder’s real building with vacant buildings; bos: topic city, everyone vacant; ornek: demo street full of sample profiles. |
| seed | string | Street seed. Default: gece-sehri. |
{
"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."
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| lang | string | Language of text fields (recipe, badges, topic names). Default: en. |
| mode | string | kume (default): the founder’s real building with vacant buildings; bos: topic city, everyone vacant; ornek: demo street full of sample profiles. |
| seed | string | Street seed. Default: gece-sehri. |
| github | boolean | Look up GitHub’s public data. Default: true. |
| handle* | string | Username, with or without @. |
{
"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 @."
}
}
}A single project of a profile. Returns nothing for private projects.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language of text fields (recipe, badges, topic names). Default: en. |
| mode | string | kume (default): the founder’s real building with vacant buildings; bos: topic city, everyone vacant; ornek: demo street full of sample profiles. |
| seed | string | Street seed. Default: gece-sehri. |
| github | boolean | Look up GitHub’s public data. Default: true. |
| handle* | string | |
| project* | string | Project name or id. |
{
"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."
}
}
}Unique visits (all time and this week), project views, weekly rank and the last 14 days for one username.
| Argument | Type | Description |
|---|---|---|
| handle* | string |
{
"type": "object",
"required": [
"handle"
],
"properties": {
"handle": {
"type": "string"
}
}
}Buildings in a range (owner, type, floors, light counts) and gaps (alleys, empty lots). Positions in centimetres, at most 80000 cm.
| Argument | Type | Description |
|---|---|---|
| to | number | End x (cm). Default 12000. |
| from | number | Start x (cm). Default -3000. |
| lang | string | Language of text fields (recipe, badges, topic names). Default: en. |
| mode | string | kume (default): the founder’s real building with vacant buildings; bos: topic city, everyone vacant; ornek: demo street full of sample profiles. |
| seed | string | Street seed. Default: gece-sehri. |
{
"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."
}
}
}A profile’s projects: state, description, stack, links (repo, site) plus open-source contributions. Private projects appear only as hidden:true.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language of text fields (recipe, badges, topic names). Default: en. |
| mode | string | kume (default): the founder’s real building with vacant buildings; bos: topic city, everyone vacant; ornek: demo street full of sample profiles. |
| seed | string | Street seed. Default: gece-sehri. |
| github | boolean | Look up GitHub’s public data. Default: true. |
| handle* | string |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| handle* | string | Username, with or without @. |
{
"type": "object",
"required": [
"handle"
],
"properties": {
"handle": {
"type": "string",
"description": "Username, with or without @."
}
}
}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.
No arguments.
{
"type": "object",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| period | string |
{
"type": "object",
"properties": {
"period": {
"enum": [
"week",
"all"
],
"type": "string"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language of text fields (recipe, badges, topic names). Default: en. |
| github | boolean | Look up GitHub’s public data. Default: true. |
| handle* | string |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | How many recent messages. Default 30. |
| handle* | string | |
| channel | string | Channel name or id. Default: the first channel. |
| project* | string | Project id (the repository name for GitHub projects). |
{
"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)."
}
}
}One forum thread of a project room with all of its replies and reactions.
| Argument | Type | Description |
|---|---|---|
| handle* | string | |
| thread* | integer | Thread id (from read_room). |
| project* | string |
{
"type": "object",
"required": [
"handle",
"project",
"thread"
],
"properties": {
"handle": {
"type": "string"
},
"thread": {
"type": "integer",
"description": "Thread id (from read_room)."
},
"project": {
"type": "string"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language of text fields (recipe, badges, topic names). Default: en. |
| mode | string | kume (default): the founder’s real building with vacant buildings; bos: topic city, everyone vacant; ornek: demo street full of sample profiles. |
| seed | string | Street seed. Default: gece-sehri. |
| query* | string | |
| radius | integer | Street chunks to scan on both sides (1 chunk = 80 m). Default 4. |
{
"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."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 1, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.