DDNet MCP Server
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., "@DDNet MCP Serverstart the DDNet game"
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.
DDNet MCP Server
一个基于FastMCP的Model Context Protocol服务器,提供DDNet游戏进程管理和配置文件操作功能。
功能
游戏进程管理:获取DDNet游戏状态、启动和关闭DDNet游戏
配置文件操作:检查按键绑定、添加和删除按键绑定
Related MCP server: MCP Configurator Server
安装
使用uv安装
uv install ddnet-mcpserver使用方法
使用uv运行
uv run -m ddnet_mcpserver在MCP客户端中配置
在您的MCP客户端配置文件中添加以下配置:
{
"mcpServers": {
"ddnet": {
"command": "uvx",
"args": ["ddnet-mcpserver"],
"env": {},
"disabled": false
}
}
}可用工具
get_ddnet_game_status(): 获取DDNet进程状态stop_ddnet_game(): 关闭DDNet进程start_ddnet_game(): 启动DDNet进程check_bind(bindkey: str): 检查按键是否被占用add_bind(bindkey: str, bindvalue: str): 增加按键绑定delete_bind(bindkey: str): 删除按键绑定
开发
设置开发环境
git clone https://github.com/silverhi/ddnet-mcpserver.git
cd ddnet-mcpserver
uv pip install -e .本地开发指南
使用uv运行服务器
uv run -m ddnet_mcpserver使用MCP Inspector调试
npx -y @modelcontextprotocol/inspector uv run -m ddnet_mcpserver安装Node.js(Windows环境)
winget install jasongin.nvs
nvs add lts
nvs use lts使用pre-commit进行代码检查
uv pip install pre-commit
pre-commit install构建和发布包
python -m build
twine upload dist/*许可证
MIT
Available Tools
5 toolsadd_bindD
增加bind
| Name | Required | Description | Default |
|---|---|---|---|
| bindkey | Yes | ||
| bindvalue | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist and the description lacks any behavioral context such as side effects, permissions, or return behavior, leaving the agent uninformed about the tool's impact.
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 extremely short but this is under-specification rather than conciseness; it fails to convey necessary information that would justify its brevity.
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?
Given the low schema coverage, no output schema, and lack of annotations, the description is completely inadequate for an agent to understand and use the tool effectively.
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 0%, and the description does not explain what 'bindkey' and 'bindvalue' represent, providing no additional meaning beyond the schema.
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 '增加bind' is a tautology with the tool name 'add_bind' and does not specify the resource or context, offering no meaningful differentiation from siblings like 'check_bind' or 'delete_bind'.
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?
No usage guidelines provided; no information on when to use this tool versus alternatives or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_bindC
检查按键是否被占用
| Name | Required | Description | Default |
|---|---|---|---|
| bindkey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It implies a read-only operation ('check'), but does not explicitly state that no modifications occur, what happens if the key is occupied, or any side effects. The absence of such details is a gap.
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, efficient sentence with no unnecessary words. It is concise, but the brevity sacrifices necessary detail, making it slightly less effective.
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?
Given the lack of output schema and annotations, the description should explain return values or outcomes. It only describes the action, not what the tool returns (e.g., boolean, message). This incompleteness significantly hinders an agent's ability to use the tool correctly.
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?
With 0% schema description coverage, the description does not add any meaning to the single parameter 'bindkey'. It fails to explain the format, possible values, or examples, leaving the agent with no guidance on how to provide valid input.
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 checks if a key is occupied, which is a specific verb+resource. However, it does not explicitly differentiate from sibling tools like add_bind or delete_bind, but the purpose is still unambiguous.
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?
No guidance is provided on when to use this tool versus alternatives such as add_bind or delete_bind. The description lacks any context for appropriate use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_bindD
删除bind
| Name | Required | Description | Default |
|---|---|---|---|
| bindkey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose any behavioral traits such as irreversibility, scope of deletion, or potential side effects; it only states the action.
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?
Extremely brief but at the expense of completeness; the single sentence is tautological and provides no useful information, making it under-specified rather than concise.
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 delete tool with one parameter, the description should at least clarify what 'bindkey' represents and the effect of deletion; it does neither, leaving the agent uninformed.
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 parameter 'bindkey' is completely unexplained despite 0% schema coverage; the description adds no meaning beyond the raw JSON schema.
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 '删除bind' is a direct tautology of the tool name 'delete_bind', restating the verb and resource without adding new information.
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?
No guidance on when to use this tool versus siblings like add_bind or check_bind; no context for when deletion is appropriate or what prerequisites exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ddnet_game_statusB
获取ddnet进程状态
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations present; description fails to disclose behavioral traits such as whether it is a read-only operation, side effects, or rate limits.
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?
Single sentence, front-loaded, no redundant information. However, it may be too terse for completeness.
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?
Given no parameters and no output schema, the description is minimal and does not explain what the returned status includes, any edge cases, or expected behavior.
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?
Tool has zero parameters and schema coverage is 100% (vacuously). Description does not need to add parameter meaning; baseline score of 4 applies.
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?
Description clearly states the tool retrieves ddnet process status, using a specific verb and resource. It distinguishes from siblings which are about binds and friends, but could be more specific about what 'status' entails.
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?
No guidance on when to use this tool vs alternatives, no prerequisites or usage context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_friend_listD
获取好友列表
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as whether it is a read operation, authentication requirements, or what the response contains.
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 extremely brief (one phrase), but it lacks informative content. Conciseness without substance is under-specification.
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?
Given no output schema, no parameters, and no annotations, the description is critically incomplete. It does not explain what the tool returns or its behavior.
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?
There are no parameters, so the description does not need to add meaning beyond the schema. Baseline 4 applies per rules for 0 parameters.
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 is a direct translation of the tool name ('Get friend list'), providing no additional information about the resource or scope. It is a tautology.
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?
No usage guidance is provided. There is no indication of when to use this tool versus siblings like add_bind or get_ddnet_game_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
All tools have distinct purposes: three bind operations (add, check, delete), one game status, and one friend list. No overlap.
All tools follow consistent snake_case verb_noun pattern (e.g., add_bind, get_ddnet_game_status), making predictions easy.
5 tools is appropriate for this domain, covering both bind management and game status without being too few or too many.
Covers core bind lifecycle (add, check, delete) but misses update/edit. Status and friend list are present, so only a minor gap.
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
Manage FadeHost game servers, Discord bots and VPS: console, stats, backups, logs, lifecycle.
Manage Sprites: sandboxed compute environments with exec, services, and checkpoints.
Run and manage H Company's Computer-Use Agents from any MCP client.
Create, configure, manage Minecraft servers — plugins, files, console, modpacks, backups, metrics.
Related MCP Servers
- FlicenseAqualityAmaintenanceManages llama.cpp llama-server instances with tools for lifecycle management, configuration CRUD, and orphan detection, enabling LLM agents to control local or remote inference servers.152
- FlicenseAqualityCmaintenanceManages, edits, backups, and validates Claude Desktop and other client JSON configurations.5
- AlicenseNot gradedqualityBmaintenanceEnables management of long-running development processes (such as dev servers, compilers, and watchers) from MCP hosts. Provides tools to start, stop, restart, check status, view logs, and send input to managed processes.MIT
- AlicenseNot gradedqualityBmaintenanceCentral daemon for managing local app processes, enabling multiple Claude Code sessions to coordinate starts, stops, and restarts with conflict resolution and a web dashboard.1MIT
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/SilverHi/ddnet-mcpserver'
If you have feedback or need assistance with the MCP directory API, please join our Discord server