MineMCP
FreeNot checkedMinecraft Paper plugin enabling AI agents to control servers through world manipulation, command execution, file operations, and player monitoring via HTTP/SSE
About
Minecraft Paper plugin enabling AI agents to control servers through world manipulation, command execution, file operations, and player monitoring via HTTP/SSE API.
README
License: MIT Minecraft Version Paper API
A Minecraft Paper plugin that implements the Model Context Protocol (MCP) server, enabling AI agents to control and monitor a Minecraft 1.21 server via HTTP.
🛠️ Available Tools
World Manipulation
pose_block- Place a block at specific coordinatesbreak_block- Break a block at specific coordinatesfill_block- Fill a region with blocks
Command Execution
execute_command- Execute any Minecraft command with output capture
File System
read_file- Read text files from the serverwrite_file- Write text files to the serverread_file_base64- Read binary files as Base64write_file_base64- Write binary files from Base64list_directory- List directory contents
Server Information
list_plugins- Get all installed pluginsget_logs- Retrieve recent server logsget_online_players- List all online playersget_player- Get detailed information about a specific player (health, inventory, location, effects, etc.)
📋 Requirements
- Java 21 or higher
- Minecraft 1.21 server
- Paper or Purpur server software (Spigot may work but not officially supported)
🚀 Installation
Download Pre-built JAR
- Download the latest release from the Releases page
- Place
MineMCP-1.0.0-all.jarin your server'splugins/folder - Start/restart your server
- Configure the token in
plugins/MineMCP/config.yml
⚙️ Configuration
After the first run, edit plugins/MineMCP/config.yml:
server:
port: 3000
token: "your-secret-token-here" # Change this to a secure random token!
Important: Always change the default token for security!
Generating a Secure Token
# Linux/macOS
openssl rand -hex 32
# Or use any password generator to create a strong token
🔌 Usage
Starting the Server
- Start your Minecraft server with MineMCP installed
- The MCP server will automatically start on port 3000 (configurable)
- Check the console for:
[MineMCP] MCP server started on port 3000
Connecting with an MCP Client
Using VS Code with MCP Extension
Create or edit .vscode/mcp.json in your project:
{
"mcpServers": {
"minecraft": {
"url": "http://localhost:3000/sse?token=your-secret-token-here"
}
}
}
📚 API Examples
Execute a Command
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "execute_command",
"arguments": {
"command": "time set day"
}
}
}
Place a Block
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "pose_block",
"arguments": {
"world": "world",
"x": 100,
"y": 64,
"z": 200,
"material": "DIAMOND_BLOCK"
}
}
}
Get Player Information
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_player",
"arguments": {
"player": "PlayerName",
...
}
}
}
🔒 Security Considerations
- Token Protection: Never commit your token to version control
- Network Security: By default, the server binds to
0.0.0.0(all interfaces) - Firewall Rules: Restrict port 3000 access to trusted IPs only
- File System Access: Tools have access to the entire server directory - use with caution
🤝 Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Adding a New Tool
- Create a new class extending
McpToolinsrc/main/java/me/axeno/minemcp/tools/impl/ - Implement the required methods (
getSchema()andexecute()) - Register the tool in
ToolHandler.javaconstructor
Example:
public class MyTool extends McpTool {
public MyTool() {
super("my_tool", "Description of my tool");
}
@Override
public ObjectNode getSchema() {
ObjectNode schema = mapper.createObjectNode();
schema.put("type", "object");
// Define your schema...
return schema;
}
@Override
public ObjectNode execute(JsonNode args) throws Exception {
CompletableFuture<String> future = new CompletableFuture<>();
Bukkit.getScheduler().runTask(MineMCP.getInstance(), () -> {
try {
// Your Bukkit operations here
future.complete("Success!");
} catch (Exception e) {
future.completeExceptionally(e);
}
});
String result = future.get(10, TimeUnit.SECONDS);
return createTextResult(result);
}
}
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
📞 Support
- Issues: GitHub Issues
Made with ❤️ for the Minecraft and AI communities
Installing MineMCP
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/axenodev/minemcpFAQ
Is MineMCP MCP free?
Yes, MineMCP MCP is free — one-click install via Unyly at no cost.
Does MineMCP need an API key?
No, MineMCP runs without API keys or environment variables.
Is MineMCP hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install MineMCP in Claude Desktop, Claude Code or Cursor?
Open MineMCP on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare MineMCP with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
