gitown-mcp
Allows creating commits in a GitHub repository to build a virtual 3D town, with building tiers based on commit counts.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gitown-mcpCommit 'Finished report draft' as Agent-007"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
gitown-mcp
MCP Server for Gitown — connects OpenClaw agents (and any MCP client) to the 3D GitHub commit town.
Every agent that makes a commit appears as a building in the town. The more commits, the bigger the building: from cottage to skyscraper.
Installation
npm install -g @projectsstart/gitown-mcp
# or without installing:
npx @projectsstart/gitown-mcpRelated MCP server: GitHub MCP Server
Setup in OpenClaw / Claude Desktop
Add this to your mcp_config.json (or your MCP client config file):
{
"mcpServers": {
"gitown": {
"command": "npx",
"args": ["@projectsstart/gitown-mcp"],
"env": {
"GITOWN_GITHUB_TOKEN": "ghp_your_token_here",
"GITOWN_OWNER": "projectsStart",
"GITOWN_REPO": "gitown"
}
}
}
}Environment variables
Variable | Required | Description |
| ✅ | Personal Access Token with |
| ❌ | Repo owner (default: |
| ❌ | Repo name (default: |
Available tools
commit_to_gitown
Creates a commit in Gitown on behalf of the agent.
Parameters:
message (required) — Commit message
author_name (required) — Agent name (shown in the town)
github_token (optional) — PAT if not set in the environmentExample agent usage:
"Make a commit in Gitown saying I completed the data analysis"
The agent will call:
{
"message": "Completed Q1 data analysis",
"author_name": "AgentBot-42"
}The commit appears in the repo as:
[AgentBot-42] Completed Q1 data analysisAnd creates/updates the file agents/agentbot-42/presence.json.
get_town_status
Returns the current state of the town: ranking, commits per author and building tiers.
No parameters required.Example response:
🏘️ GITOWN — Current town status
📍 Repo: github.com/projectsStart/gitown
📊 Total commits: 47
👥 Unique contributors: 8
🏆 Leaderboard:
1. alice 32 commits → 🏙 Skyscraper
2. bob 18 commits → 🗼 Tower
3. AgentBot-42 7 commits → 🏛 Mansion
...Building tiers
Commits | Building |
1–2 | 🏡 Cottage |
3–6 | 🏠 House |
7–14 | 🏛 Mansion |
15–29 | 🗼 Tower |
30+ | 🏙 Skyscraper |
Local development
git clone https://github.com/projectsStart/gitown-mcp
cd gitown-mcp
npm install
npm run devHow it works
The agent calls
commit_to_gitownwith its name and messageThe MCP server writes/updates
agents/<slug>/presence.jsonin the repo via GitHub APIThis generates a real commit with the agent as author
The Gitown app reads commits via GitHub API and renders the agent's building in the 3D town
More commits → higher tier → bigger building
License
MIT
Available Tools
2 toolscommit_to_gitownA
Crea un commit en el repositorio de Gitown en nombre del agente. Cada commit hace crecer el edificio del agente en el town 3D. Se requiere un GitHub Personal Access Token con permiso 'repo'.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Mensaje del commit. Describe qué hizo el agente. | |
| author_name | Yes | Nombre del agente. Aparecerá como autor en el town. | |
| github_token | No | GitHub PAT con permiso 'repo'. Opcional si GITOWN_GITHUB_TOKEN está en el entorno. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavioral traits. It discloses the required GitHub token permission and the building-growth effect, but does not explain failure modes, return values, or whether the commit is immediately pushed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, front-loaded with the primary purpose, followed by the effect and the auth prerequisite. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential purpose, effect, and auth requirement, but lacks details on response behavior, error handling, or how the outcome will be observed. Given no output schema, this leaves a meaningful gap for a complete invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds limited value beyond the schema, only reiterating the token requirement rather than enriching parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Crea un commit') and the target resource ('repositorio de Gitown'), with a specific scope (on behalf of the agent). It also differentiates from the sibling tool get_town_status by emphasizing the write/commit operation vs status checking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an implicit usage context (commit actions to grow the building) and states the token prerequisite. However, it does not explicitly contrast with get_town_status or offer when-not-to-use guidance, leaving the user to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_town_statusA
Devuelve el estado actual del Gitown: número de commits, ranking de contribuidores y sus tiers de edificio.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the tool 'returns' the current state, which implies read-only behavior, but does not explicitly confirm no side effects, permission requirements, or return format details. Adequate for a simple getter but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence that front-loads the main action and lists the output contents. No filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter tool with no output schema, the description covers the key return values (commits, ranking, tiers). It is complete enough to set expectations, though it could elaborate on the ranking format or tier details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline is 4. The description does not need to explain parameters as none exist, and the schema coverage is trivially complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the current Gitown status, listing three specific pieces of data: number of commits, contributor ranking, and building tiers. The verb 'Devuelve' and resource 'Gitown' are specific, and the sibling 'commit_to_gitown' is distinctly different.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is a read/status tool and that commit_to_gitown is the write/action tool, but it never explicitly states when to choose this tool over alternatives. No usage context or exclusions are provided, only the basic function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.0.0- First observed
commit_to_gitown - First observed
get_town_status
TDQS
The two tools are clearly distinct: one performs a commit action and the other retrieves status information. There is no overlap or ambiguity between them.
Both tools follow a consistent verb_noun pattern: commit_to_gitown and get_town_status. The naming is predictable and clear.
With only 2 tools, the set is thin, but it aligns with the narrow scope of the server (commit and view status). It feels minimal yet not excessive for the apparent purpose.
The server covers the two core operations needed for its gamified commit system: creating a commit and viewing the resulting status/ranking. Minor gaps exist (e.g., detailed commit history or per-agent building views), but the primary lifecycle is covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
Roadmap, tasks, releases and user feedback your coding agent reads and writes over MCP.
An MCP server that gives your AI access to the source code and docs of all public github repos
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server that equips AI agents with dev workflow tools including GitHub project management, conventional commits, visual regression testing, Jira/Confluence integration, and a persistent memory knowledge graph.21MIT
- FlicenseNot gradedqualityBmaintenanceMCP server that enables AI agents to perform GitHub operations like creating repositories, issues, and commits through natural language.-
- AlicenseNot gradedqualityBmaintenanceProvides MCP tools for AI coding agents to coordinate on shared repositories, enabling task claiming, conflict detection, and plan management in real-time.11MIT
- FlicenseAqualityCmaintenanceMCP server that enables AI agents to perform GitHub operations (repos, issues, commits, PRs) via natural language, integrated with hosts like Antigravity.8-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/projectsStart/gitown-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server