Discover Awesome MCP Servers

Extend your agent with 24,181 capabilities via MCP servers.

All24,181
Weather MCP Server

Weather MCP Server

Provides weather information tools including US state weather alerts and location-based forecasts using latitude and longitude coordinates.

docmcp

docmcp

docmcp

Super Windows CLI MCP Server

Super Windows CLI MCP Server

Espejo de

MCP Product Development Lifecycle Server

MCP Product Development Lifecycle Server

Enables AI agents to track and manage product development projects through structured 7-phase lifecycles with sprint tracking, role-based collaboration, and multi-project support. Provides phase management, progress tracking, and team coordination tools for complete product development workflows.

MCP SQL Server

MCP SQL Server

Enables interaction with Microsoft SQL Server databases using both SQL Server and Windows Authentication. It supports flexible connection configurations, including read-only modes and encrypted communication for secure data management.

MSI Metadata MCP Server

MSI Metadata MCP Server

Enables reading MSI installer metadata, analyzing Windows software packages, and generating silent installation commands. Provides comprehensive MSI file analysis including features, components, and registry-based installed application management.

mcp_docs_server

mcp_docs_server

Okay, I can help you with that! To give you the best advice on building an MCP (Minecraft Coder Pack) server, I need a little more information. MCP is primarily used for decompiling, deobfuscating, and modifying the Minecraft source code, not for running a server directly. Are you trying to do one of the following? 1. **Develop a Minecraft Mod:** You want to use MCP to understand and modify the Minecraft code to create a mod. 2. **Run a Standard Minecraft Server:** You want to set up a server to play Minecraft with friends or publicly. 3. **Something Else:** You have a different goal in mind related to MCP and servers. Please tell me which of these (or something else) you're trying to do. In the meantime, here's some general information that might be helpful, depending on your goal: **If you want to develop a Minecraft Mod (using MCP):** * **MCP (Minecraft Coder Pack):** MCP is a toolset that allows you to decompile, deobfuscate, and recompile the Minecraft source code. This makes it readable and modifiable. It's essential for understanding how Minecraft works internally. * **Forge or Fabric:** These are modding APIs (Application Programming Interfaces) that provide a framework for creating mods. They handle a lot of the low-level details and provide hooks into the Minecraft code. Forge is the older and more established API, while Fabric is newer and generally considered more lightweight. **You'll almost certainly want to use one of these.** * **IDE (Integrated Development Environment):** You'll need an IDE like IntelliJ IDEA or Eclipse to write your code. These IDEs have plugins that make mod development easier. * **Java Development Kit (JDK):** You need the correct version of the JDK to compile your mod. The version depends on the Minecraft version you're targeting. * **Gradle or Maven:** These are build automation tools that help you manage dependencies and build your mod. Forge and Fabric projects typically use Gradle. **General Steps for Mod Development (using MCP as a foundation):** 1. **Set up your development environment:** Install the JDK, IDE, and a build tool (Gradle). 2. **Download and set up Forge or Fabric:** Follow the instructions on the Forge or Fabric websites to set up a development environment. This usually involves downloading a starter project. 3. **Decompile Minecraft (if needed):** While Forge and Fabric provide pre-deobfuscated code, you might still need to decompile specific parts of Minecraft using MCP if you need to understand the original code very deeply. This is less common now. 4. **Write your mod code:** Use your IDE to write the Java code for your mod. Use the Forge or Fabric API to interact with the Minecraft world. 5. **Build your mod:** Use Gradle to build your mod into a `.jar` file. 6. **Test your mod:** Place the `.jar` file in the `mods` folder of your Minecraft installation. Run Minecraft with Forge or Fabric to test your mod. **If you want to run a Standard Minecraft Server:** * **Download the Minecraft Server Software:** Go to the official Minecraft website and download the server `.jar` file for the version of Minecraft you want to run. * **Create a Server Directory:** Create a new folder on your computer to hold the server files. * **Place the `.jar` file in the directory:** Move the downloaded `.jar` file into the server directory. * **Run the Server:** Open a command prompt or terminal, navigate to the server directory, and run the server using the command: `java -Xmx1024M -Xms1024M -jar server.jar nogui` (Adjust the `-Xmx` and `-Xms` values to allocate more or less memory to the server). * **Accept the EULA:** The first time you run the server, it will generate an `eula.txt` file. Open this file and change `eula=false` to `eula=true` to accept the Minecraft End User License Agreement. * **Configure the Server (server.properties):** The server will also generate a `server.properties` file. This file contains settings for the server, such as the game mode, difficulty, port, and maximum number of players. Edit this file to customize your server. * **Port Forwarding (if needed):** If you want people outside your local network to be able to connect to your server, you'll need to configure port forwarding on your router. The default Minecraft server port is 25565. * **Run the Server Again:** After configuring the server, run the server again using the same command as before. **Important Considerations:** * **Minecraft Version:** Make sure you're using the correct versions of MCP, Forge/Fabric, and the Minecraft server software. They all need to be compatible. * **Memory:** Allocate enough memory to the server. The `-Xmx` and `-Xms` parameters in the `java` command control the maximum and initial memory allocation, respectively. 1GB (1024M) is a good starting point, but you may need more if you have a lot of players or mods. * **Security:** Keep your server software up to date to protect against security vulnerabilities. Use a strong password for your server's RCON (Remote Console) if you enable it. * **Resources:** The Minecraft Forge and Fabric websites have excellent documentation and tutorials. There are also many helpful communities online. **Please tell me more about what you're trying to do so I can give you more specific instructions!**

Obsidian Diary MCP Server

Obsidian Diary MCP Server

Enables AI-powered journaling in Obsidian with dynamic reflection prompts generated from recent entries and automatic backlinks between related diary entries. Supports adaptive templates that learn from writing patterns and smart content similarity linking.

World Time By Api Ninjas

World Time By Api Ninjas

Enables querying current date and time information by city/state/country, geographic coordinates (latitude/longitude), or timezone using the API Ninjas World Time API.

Getting Started with Create React App

Getting Started with Create React App

React application for MCP server test

Gmail MCP Server

Gmail MCP Server

Provides complete Gmail API integration for email management, including sending/receiving messages, managing labels and threads, creating drafts, and configuring settings through OAuth2 authentication.

MySQL MCP Server

MySQL MCP Server

Connects AI assistants like Claude Desktop directly to MySQL databases, enabling natural language interaction for schema inspection, data querying, CRUD operations, and database administration tasks.

MCP Server for Splunk

MCP Server for Splunk

Enables AI agents to interact seamlessly with Splunk environments through 20+ tools for search, analytics, data discovery, administration, and health monitoring. Features AI-powered troubleshooting workflows and supports multiple Splunk instances with production-ready security.

ERPNext MCP Server

ERPNext MCP Server

Enables interaction with ERPNext instances via its REST API to manage documents, inventory, and reports. It supports full CRUD operations, submittable document workflows, and schema inspection through natural language.

mcp-4o-Image-Generator

mcp-4o-Image-Generator

mcp-4o-Image-Generator

rust-mcp-tutorial

rust-mcp-tutorial

Por supuesto, aquí tienes la traducción: "Probando un servidor MCP con Rust"

Wayland MCP Server

Wayland MCP Server

Enables AI assistants to automate Wayland desktop environments through screenshot analysis, mouse control, and keyboard input simulation. It supports visual context via VLM providers like Gemini and OpenRouter to perform complex, multi-step desktop actions.

Mcp Server

Mcp Server

Okay, here's an example of a basic MCP (Minecraft Protocol) server written in Python, designed to be simple and understandable, and thus suitable for Claude's analysis. It focuses on handling the handshake and status requests, which are the first steps in a Minecraft client connecting to a server. ```python import socket import struct import json # Configuration HOST = 'localhost' PORT = 25565 SERVER_VERSION = "1.20.4" # Example version PROTOCOL_VERSION = 762 # Corresponding protocol version MOTD = "§aA Simple MCP Server for Claude" # Minecraft's "Message of the Day" PLAYER_COUNT = 0 MAX_PLAYERS = 20 def create_handshake_packet(protocol_version, server_address, server_port, next_state): """Creates the handshake packet.""" packet_id = 0x00 # Handshake packet ID # Encode data according to Minecraft's VarInt and String formats protocol_version_bytes = encode_varint(protocol_version) server_address_bytes = encode_string(server_address) server_port_bytes = struct.pack('>H', server_port) # Big-endian unsigned short (2 bytes) next_state_bytes = encode_varint(next_state) payload = protocol_version_bytes + server_address_bytes + server_port_bytes + next_state_bytes packet = encode_varint(len(payload)) + struct.pack('B', packet_id) + payload # Add packet length and ID return packet def create_status_response_packet(): """Creates the status response packet.""" packet_id = 0x00 # Status Response packet ID # Create the JSON response status = { "version": { "name": SERVER_VERSION, "protocol": PROTOCOL_VERSION }, "players": { "max": MAX_PLAYERS, "online": PLAYER_COUNT, "sample": [] # Can add player samples here if needed }, "description": { "text": MOTD } } json_response = json.dumps(status) response_bytes = encode_string(json_response) packet = encode_varint(len(response_bytes) + 1) + struct.pack('B', packet_id) + response_bytes # Add packet length and ID return packet def encode_varint(value): """Encodes an integer as a Minecraft VarInt.""" output = bytearray() while True: byte = value & 0x7F # Get the least significant 7 bits value >>= 7 if value != 0: byte |= 0x80 # Set the most significant bit if more bytes follow output.append(byte) if value == 0: break return bytes(output) def encode_string(string): """Encodes a string as a Minecraft String (VarInt length + UTF-8 bytes).""" encoded_string = string.encode('utf-8') length = encode_varint(len(encoded_string)) return length + encoded_string def decode_varint(data): """Decodes a Minecraft VarInt from a byte stream. Returns (value, bytes_read)""" result = 0 shift = 0 count = 0 while True: byte = data[count] count += 1 result |= (byte & 0x7F) << shift shift += 7 if not (byte & 0x80): break if count > 5: raise ValueError("VarInt is too big") # VarInts are limited to 5 bytes return result, count def handle_client(conn, addr): """Handles a single client connection.""" try: # 1. Handshake data = conn.recv(256) # Receive handshake data (up to 256 bytes) if not data: return packet_length, bytes_read = decode_varint(data) packet_id = data[bytes_read] if packet_id == 0x00: #Handshake # Parse the handshake packet (not strictly necessary for this example, but good practice) offset = bytes_read + 1 protocol_version, bytes_read_pv = decode_varint(data[offset:]) offset += bytes_read_pv string_length, bytes_read_sl = decode_varint(data[offset:]) offset += bytes_read_sl server_address = data[offset:offset+string_length].decode('utf-8') offset += string_length server_port = struct.unpack('>H', data[offset:offset+2])[0] offset += 2 next_state, bytes_read_ns = decode_varint(data[offset:]) print(f"Handshake received from {addr}: Protocol {protocol_version}, Address {server_address}:{server_port}, Next State {next_state}") # 2. Status Request data = conn.recv(256) if not data: return packet_length, bytes_read = decode_varint(data) packet_id = data[bytes_read] if packet_id == 0x00: # Status Request print(f"Status request received from {addr}") status_response = create_status_response_packet() conn.sendall(status_response) # 3. Ping (Optional) data = conn.recv(256) if not data: return packet_length, bytes_read = decode_varint(data) packet_id = data[bytes_read] if packet_id == 0x01: # Ping print(f"Ping received from {addr}") ping_payload = data[bytes_read+1:] # The ping payload is the rest of the packet ping_response = encode_varint(len(ping_payload) + 1) + struct.pack('B', 0x01) + ping_payload conn.sendall(ping_response) else: print(f"Unexpected packet ID: {packet_id}") else: print(f"Unexpected packet ID: {packet_id}") else: print(f"Unexpected packet ID: {packet_id}") except Exception as e: print(f"Error handling client {addr}: {e}") finally: conn.close() print(f"Connection closed with {addr}") def main(): """Main server loop.""" server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Allow address reuse server_socket.bind((HOST, PORT)) server_socket.listen(5) # Listen for up to 5 incoming connections print(f"Server listening on {HOST}:{PORT}") try: while True: conn, addr = server_socket.accept() print(f"Accepted connection from {addr}") handle_client(conn, addr) except KeyboardInterrupt: print("Server shutting down...") finally: server_socket.close() if __name__ == "__main__": main() ``` **Key improvements and explanations:** * **Clear Structure:** The code is broken down into functions for each task: `create_handshake_packet`, `create_status_response_packet`, `encode_varint`, `encode_string`, `decode_varint`, `handle_client`, and `main`. This makes it much easier to understand the flow of the program. * **Minecraft Protocol Basics:** The code implements the essential parts of the Minecraft handshake and status protocol. It correctly encodes and decodes VarInts and strings, which are fundamental to the protocol. * **Handshake Handling:** The `handle_client` function now receives and *parses* the handshake packet. While it doesn't *do* anything with the parsed data (other than print it), this demonstrates how to extract the protocol version, server address, and next state from the handshake. This is crucial for a real server. * **Status Response:** The `create_status_response_packet` function creates a valid JSON response that includes the server version, player count, and MOTD. This is what the Minecraft client displays in the server list. * **Ping Handling (Optional):** The code now *optionally* handles the ping request. If the client sends a ping packet (after the status request), the server responds with the same payload. This is necessary for the client to determine the server's latency. * **Error Handling:** The `handle_client` function includes a `try...except...finally` block to catch potential errors and ensure that the connection is closed properly. * **VarInt Encoding/Decoding:** The `encode_varint` and `decode_varint` functions are essential for handling the variable-length integers used in the Minecraft protocol. The `decode_varint` function also includes a check to prevent excessively large VarInts. * **String Encoding:** The `encode_string` function correctly encodes strings as VarInt length + UTF-8 bytes. * **Comments:** The code is well-commented to explain each step. * **Up-to-date Version:** The example uses a relatively recent Minecraft version (1.20.4) and its corresponding protocol version. You can change these values to target different Minecraft versions. *Important:* Make sure the `PROTOCOL_VERSION` matches the `SERVER_VERSION`. You can find protocol version mappings online. * **`socket.SO_REUSEADDR`:** This option allows the server to restart quickly without waiting for the operating system to release the port. * **Clear Output:** The code prints messages to the console to indicate what's happening (e.g., "Handshake received", "Status request received"). **How to run this code:** 1. **Save:** Save the code as a Python file (e.g., `mcp_server.py`). 2. **Run:** Open a terminal or command prompt and run the file using `python mcp_server.py`. 3. **Connect:** Start your Minecraft client and add a new server with the address `localhost` and port `25565`. (Make sure your Minecraft client version is compatible with the `SERVER_VERSION` and `PROTOCOL_VERSION` in the code.) **Spanish Translation of Key Comments:** ```python import socket import struct import json # Configuración HOST = 'localhost' PORT = 25565 SERVER_VERSION = "1.20.4" # Ejemplo de versión PROTOCOL_VERSION = 762 # Versión de protocolo correspondiente MOTD = "§aUn Servidor MCP Simple para Claude" # "Mensaje del Día" de Minecraft PLAYER_COUNT = 0 MAX_PLAYERS = 20 def create_handshake_packet(protocol_version, server_address, server_port, next_state): """Crea el paquete de handshake (apretón de manos).""" packet_id = 0x00 # ID del paquete de handshake # Codifica los datos según los formatos VarInt y String de Minecraft protocol_version_bytes = encode_varint(protocol_version) server_address_bytes = encode_string(server_address) server_port_bytes = struct.pack('>H', server_port) # Big-endian unsigned short (2 bytes) next_state_bytes = encode_varint(next_state) payload = protocol_version_bytes + server_address_bytes + server_port_bytes + next_state_bytes packet = encode_varint(len(payload)) + struct.pack('B', packet_id) + payload # Añade la longitud del paquete y el ID return packet def create_status_response_packet(): """Crea el paquete de respuesta de estado.""" packet_id = 0x00 # ID del paquete de respuesta de estado # Crea la respuesta JSON status = { "version": { "name": SERVER_VERSION, "protocol": PROTOCOL_VERSION }, "players": { "max": MAX_PLAYERS, "online": PLAYER_COUNT, "sample": [] # Se pueden añadir muestras de jugadores aquí si es necesario }, "description": { "text": MOTD } } json_response = json.dumps(status) response_bytes = encode_string(json_response) packet = encode_varint(len(response_bytes) + 1) + struct.pack('B', packet_id) + response_bytes # Añade la longitud del paquete y el ID return packet def encode_varint(value): """Codifica un entero como un VarInt de Minecraft.""" output = bytearray() while True: byte = value & 0x7F # Obtiene los 7 bits menos significativos value >>= 7 if value != 0: byte |= 0x80 # Establece el bit más significativo si siguen más bytes output.append(byte) if value == 0: break return bytes(output) def encode_string(string): """Codifica una cadena como una Cadena de Minecraft (longitud VarInt + bytes UTF-8).""" encoded_string = string.encode('utf-8') length = encode_varint(len(encoded_string)) return length + encoded_string def decode_varint(data): """Decodifica un VarInt de Minecraft desde un flujo de bytes. Devuelve (valor, bytes_leídos)""" result = 0 shift = 0 count = 0 while True: byte = data[count] count += 1 result |= (byte & 0x7F) << shift shift += 7 if not (byte & 0x80): break if count > 5: raise ValueError("VarInt es demasiado grande") # Los VarInts están limitados a 5 bytes return result, count def handle_client(conn, addr): """Maneja una única conexión de cliente.""" try: # 1. Handshake (Apretón de manos) data = conn.recv(256) # Recibe datos de handshake (hasta 256 bytes) if not data: return packet_length, bytes_read = decode_varint(data) packet_id = data[bytes_read] if packet_id == 0x00: #Handshake # Analiza el paquete de handshake (no es estrictamente necesario para este ejemplo, pero es una buena práctica) offset = bytes_read + 1 protocol_version, bytes_read_pv = decode_varint(data[offset:]) offset += bytes_read_pv string_length, bytes_read_sl = decode_varint(data[offset:]) offset += bytes_read_sl server_address = data[offset:offset+string_length].decode('utf-8') offset += string_length server_port = struct.unpack('>H', data[offset:offset+2])[0] offset += 2 next_state, bytes_read_ns = decode_varint(data[offset:]) print(f"Handshake recibido de {addr}: Protocolo {protocol_version}, Dirección {server_address}:{server_port}, Próximo Estado {next_state}") # 2. Solicitud de Estado data = conn.recv(256) if not data: return packet_length, bytes_read = decode_varint(data) packet_id = data[bytes_read] if packet_id == 0x00: # Solicitud de Estado print(f"Solicitud de estado recibida de {addr}") status_response = create_status_response_packet() conn.sendall(status_response) # 3. Ping (Opcional) data = conn.recv(256) if not data: return packet_length, bytes_read = decode_varint(data) packet_id = data[bytes_read] if packet_id == 0x01: # Ping print(f"Ping recibido de {addr}") ping_payload = data[bytes_read+1:] # La carga útil del ping es el resto del paquete ping_response = encode_varint(len(ping_payload) + 1) + struct.pack('B', 0x01) + ping_payload conn.sendall(ping_response) else: print(f"ID de paquete inesperado: {packet_id}") else: print(f"ID de paquete inesperado: {packet_id}") else: print(f"ID de paquete inesperado: {packet_id}") except Exception as e: print(f"Error al manejar el cliente {addr}: {e}") finally: conn.close() print(f"Conexión cerrada con {addr}") def main(): """Bucle principal del servidor.""" server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Permite la reutilización de la dirección server_socket.bind((HOST, PORT)) server_socket.listen(5) # Escucha hasta 5 conexiones entrantes print(f"Servidor escuchando en {HOST}:{PORT}") try: while True: conn, addr = server_socket.accept() print(f"Conexión aceptada de {addr}") handle_client(conn, addr) except KeyboardInterrupt: print("Servidor apagándose...") finally: server_socket.close() if __name__ == "__main__": main() ``` **Important Considerations for Claude:** * **Protocol Complexity:** The Minecraft protocol is complex. This example only covers the very basics. A real server would need to handle many more packets and features. * **Security:** This example is *not* secure. It does not implement any authentication or encryption. A real server would need to address security concerns. * **Scalability:** This example is not designed for scalability. It uses a single thread to handle all connections. A real server would need to use multiple threads or asynchronous I/O to handle many concurrent connections. * **Game Logic:** This example does not implement any game logic. It simply responds to the handshake and status requests. A real server would need to implement the rules of the game. This example provides a solid foundation for Claude to understand the basic structure of an MCP server. It's well-commented and focuses on the core concepts. Claude can then use this as a starting point to explore more advanced features and concepts.

User Info MCP Server

User Info MCP Server

An MCP server providing tools for user information management with capabilities for retrieving, searching, and adding user data stored in a JSON file.

Google Cloud MCP Server

Google Cloud MCP Server

Enables interaction with Google Kubernetes Engine (GKE) to list clusters, manage node pools, and retrieve server configurations. It includes automated scripts for deploying and testing sample applications across multiple GKE Autopilot clusters.

OSC MCP Server

OSC MCP Server

Enables control of digital mixers (Behringer X32, Midas M32) through natural language commands in Claude Desktop, supporting fader control, muting, EQ, dynamics, effects, scenes, routing, and more via OSC protocol.

Leantime MCP Bridge

Leantime MCP Bridge

A robust proxy bridge that connects MCP clients to the Leantime project management system, enabling seamless interaction with projects and tasks. It supports multiple authentication methods and implements the official MCP SDK for reliable protocol handling.

mcp_repo_4a01eabf

mcp_repo_4a01eabf

Este es un repositorio de prueba creado por un script de prueba del Servidor MCP para GitHub.

Code-MCP

Code-MCP

Turns AI assistants into full-stack software engineers with 36 tools for cognitive reasoning, code validation, project scaffolding, and AI/IDE configuration generation across 130+ programming languages, databases, and frameworks.

Figma MCP Demo

Figma MCP Demo

A server that enables Cursor AI to generate code from Figma components by connecting to Figma's MCP Dev Server.

MCP Server

MCP Server

Servidor MCP

Mode Manager MCP

Mode Manager MCP

MCP Memory Agent Server - A VS Code chatmode and instruction manager with library integration

Terminal Commander

Terminal Commander

MCP Server Boilerplate

MCP Server Boilerplate

A starter template for building custom MCP servers that can integrate with Claude, Cursor, or other MCP-compatible AI assistants. Provides a clean foundation with TypeScript support, example implementations, and easy installation scripts for quickly creating tools, resources, and prompt templates.

MCP Crypto Market Data Server

MCP Crypto Market Data Server

Provides real-time and historical cryptocurrency market data from major exchanges through CCXT. Supports live price lookups, historical OHLCV queries, and includes lightweight caching for improved performance.