Discover Awesome MCP Servers

Extend your agent with 19,496 capabilities via MCP servers.

All19,496
Malaysia Prayer Time for Claude Desktop

Malaysia Prayer Time for Claude Desktop

말레이시아 기도 시간 데이터를 위한 모델 컨텍스트 프로토콜 (MCP) 서버

Filesystem MCP Server

Filesystem MCP Server

Mirror of

Time-MCP

Time-MCP

MCP 서버 시간 및 날짜

Postgers_MCP_for_AWS_RDS

Postgers_MCP_for_AWS_RDS

AWS RDS의 Postgres DB에 접근하기 위한 MCP 서버입니다.

Weather MCP Server

Weather MCP Server

Okay, here's an example of a simple weather MCP (Minecraft Protocol) server in Python. This is a very basic example and doesn't implement the full Minecraft protocol. It focuses on sending a custom packet to change the weather in the game. **Important Considerations:** * **Minecraft Protocol Complexity:** The Minecraft protocol is complex. This example is a simplified illustration. A real-world server would need to handle many more packets, authentication, player management, world loading, etc. * **MCP (Minecraft Protocol) Libraries:** For a more robust server, you'd typically use a library that handles the low-level protocol details. Popular options include `mcstatus`, `python-minecraft-nbt`, and others. This example avoids external libraries for simplicity. * **Version Compatibility:** Minecraft protocols change between versions. This example is unlikely to work without modification for different Minecraft versions. You'll need to adapt the packet structure to match the specific version you're targeting. * **Security:** This example is not secure. It doesn't handle authentication or prevent malicious clients. Do not expose this to the public internet. ```python import socket import struct import time # Configuration HOST = '127.0.0.1' # Listen on localhost PORT = 25565 # Default Minecraft port (can be changed) PROTOCOL_VERSION = 763 # Example: 1.16.5 (Check the wiki for your version) SERVER_VERSION_NAME = "My Weather Server" MAX_PLAYERS = 10 # Weather IDs (Example) WEATHER_CLEAR = 0 WEATHER_RAIN = 1 WEATHER_THUNDER = 2 def create_handshake_packet(host, port): """Creates the handshake packet.""" packet_id = 0x00 # Handshake packet ID protocol_version = struct.pack(">i", PROTOCOL_VERSION) server_address = struct.pack(">b", len(host)) + host.encode('utf-8') + struct.pack(">i", port) next_state = struct.pack(">b", 1) # 1 for status, 2 for login packet_data = protocol_version + server_address + next_state packet_length = struct.pack(">i", len(packet_data)) return struct.pack(">i", len(packet_length + struct.pack(">b", packet_id) + packet_data)) + packet_length + struct.pack(">b", packet_id) + packet_data def create_status_response_packet(): """Creates the status response packet.""" import json status = { "version": { "name": SERVER_VERSION_NAME, "protocol": PROTOCOL_VERSION }, "players": { "max": MAX_PLAYERS, "online": 0, "sample": [] }, "description": { "text": "A simple weather server" } } status_json = json.dumps(status) packet_id = 0x00 # Status Response packet ID status_data = status_json.encode('utf-8') packet_length = struct.pack(">i", len(status_data)) return struct.pack(">i", len(packet_length + struct.pack(">b", packet_id) + status_data)) + packet_length + struct.pack(">b", packet_id) + status_data def create_ping_response_packet(payload): """Creates the ping response packet.""" packet_id = 0x01 # Ping Response packet ID packet_data = struct.pack(">q", payload) # Payload is a long (8 bytes) packet_length = struct.pack(">i", len(packet_data)) return struct.pack(">i", len(packet_length + struct.pack(">b", packet_id) + packet_data)) + packet_length + struct.pack(">b", packet_id) + packet_data def create_change_weather_packet(weather_id): """Creates a custom packet to change the weather.""" packet_id = 0x2E # Example packet ID (choose an unused one) - IMPORTANT: This is just an example. The actual packet ID for weather changes varies by Minecraft version. dimension = struct.pack(">i", 0) # Overworld weather = struct.pack(">i", weather_id) # Weather ID packet_data = dimension + weather packet_length = struct.pack(">i", len(packet_data)) return struct.pack(">i", len(packet_length + struct.pack(">b", packet_id) + packet_data)) + packet_length + struct.pack(">b", packet_id) + packet_data def handle_client(conn, addr): """Handles a client connection.""" print(f"Connected by {addr}") try: # Handshake data = conn.recv(4096) if not data: return # Parse the handshake packet (very basic) # In a real server, you'd need to properly parse the packet # to get the protocol version and next state. # For this example, we just assume it's a valid handshake. handshake_packet = data # Status Request data = conn.recv(4096) if not data: return status_request_packet = data status_response = create_status_response_packet() conn.sendall(status_response) # Ping Request data = conn.recv(4096) if not data: return ping_request_packet = data payload = struct.unpack(">i", ping_request_packet[5:9])[0] # Extract the payload (example) ping_response = create_ping_response_packet(payload) conn.sendall(ping_response) # Wait a bit before sending the weather change time.sleep(1) # Change the weather to rain weather_packet = create_change_weather_packet(WEATHER_RAIN) conn.sendall(weather_packet) print("Sent weather change packet (rain)") except Exception as e: print(f"Error handling client: {e}") finally: conn.close() print(f"Connection closed with {addr}") def main(): """Main server function.""" with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Allow address reuse s.bind((HOST, PORT)) s.listen() print(f"Listening on {HOST}:{PORT}") while True: conn, addr = s.accept() handle_client(conn, addr) if __name__ == "__main__": main() ``` **How to Use:** 1. **Save:** Save the code as a Python file (e.g., `weather_server.py`). 2. **Run:** Execute the script from your terminal: `python weather_server.py` 3. **Minecraft Setup:** * Start Minecraft. * Create a new single-player world (or use an existing one). Make sure cheats are enabled. * Open the world to LAN (Esc -> Open to LAN -> Allow Cheats: ON -> Start LAN World). Note the port number that Minecraft displays (it's usually a random port). 4. **Modify the Script (Important):** * **Change `PORT`:** In the Python script, change the `PORT` variable to match the port number that Minecraft displayed when you opened the world to LAN. * **Change `PROTOCOL_VERSION`:** Find the protocol version for your Minecraft version. A good resource is the Minecraft Wiki. Update the `PROTOCOL_VERSION` variable in the script. * **Change `packet_id`:** The `packet_id` in `create_change_weather_packet` is just an example. You need to find the correct packet ID for your Minecraft version. 5. **Run Again:** Stop the Python script (if it's still running) and run it again with the updated port number. 6. **Connect:** In Minecraft, go to Multiplayer -> Direct Connect and enter `localhost:<your_port>` (replace `<your_port>` with the port number). 7. **Observe:** If everything is set up correctly, after you connect, the server should send a packet to change the weather to rain. You might need to wait a few seconds for the change to take effect. **Explanation:** * **`create_handshake_packet()`:** Creates the initial handshake packet that the client (Minecraft) sends to the server. This tells the server the protocol version and what the client wants to do (status or login). * **`create_status_response_packet()`:** Creates the status response packet. This is what the server sends back to the client when the client requests the server's status (e.g., name, number of players). * **`create_ping_response_packet()`:** Creates the ping response packet. The client sends a ping request to measure the latency to the server. * **`create_change_weather_packet()`:** This is the most important part. It creates a custom packet that (ideally) tells the Minecraft client to change the weather. **This is where you'll need to do the most research to get it working for your specific Minecraft version.** The packet ID and the data format will vary. * **`handle_client()`:** Handles the connection with a client. It receives the handshake, status request, and ping request, and sends back the appropriate responses. It then sends the weather change packet. * **`main()`:** The main function that creates the socket, binds it to an address and port, and listens for incoming connections. **Troubleshooting:** * **Minecraft Client Errors:** If you get errors in the Minecraft client when connecting, it usually means there's a problem with the handshake or status response packets. Double-check the protocol version and the format of the JSON data. * **No Weather Change:** If you connect successfully but the weather doesn't change, it means there's a problem with the `create_change_weather_packet()` function. The packet ID or the data format is likely incorrect. Use a packet sniffer (like Wireshark) to examine the packets that Minecraft sends and receives to figure out the correct format. * **Connection Refused:** If you get a "Connection Refused" error, it means the server isn't running or is listening on a different port. Make sure the Python script is running and that the `PORT` variable is set correctly. **Next Steps:** * **Use a Library:** Use a Minecraft protocol library to handle the low-level details of the protocol. This will make your code much simpler and more robust. * **Implement Login:** Implement the login sequence so that players can authenticate with the server. * **World Management:** Load and manage a Minecraft world. * **Player Management:** Keep track of connected players and their positions. * **More Packets:** Implement more packets to handle player movement, chat messages, block updates, etc. * **Threading:** Use threading to handle multiple clients concurrently. This example provides a starting point for building a more complete Minecraft server in Python. Be prepared to spend a lot of time researching the Minecraft protocol and debugging your code. Good luck!

Hello, MCP server.

Hello, MCP server.

기본적인 MCP 서버

SQLGenius - AI-Powered SQL Assistant

SQLGenius - AI-Powered SQL Assistant

SQLGenius는 AI 기반 SQL 어시스턴트로, Vertex AI의 Gemini Pro를 사용하여 자연어를 SQL 쿼리로 변환합니다. MCP와 Streamlit으로 구축되었으며, 실시간 시각화 및 스키마 관리를 통해 BigQuery 데이터 탐색을 위한 직관적인 인터페이스를 제공합니다.

spotify_mcp_server_claude

spotify_mcp_server_claude

a custom mcp server built using mcp framework

MCP Custom Servers Collection

MCP Custom Servers Collection

Collection of custom MCP servers for multiple installations

mcp-server-wechat

mcp-server-wechat

实现pc端微信的mcp服务功能

Effect CLI - Model Context Protocol

Effect CLI - Model Context Protocol

MCP Servers, exposed as a CLI tool

Weather MCP Server

Weather MCP Server

캐나다 정부 날씨 API에서 날씨 예보 데이터를 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 위도와 경도를 사용하여 캐나다 내 모든 지역에 대한 정확한 5일 예보를 가져올 수 있습니다. Claude Desktop 및 기타 MCP 호환 클라이언트와 쉽게 통합됩니다.

Configurable Puppeteer MCP Server

Configurable Puppeteer MCP Server

Puppeteer를 사용하여 브라우저 자동화 기능을 제공하고, 환경 변수를 통해 구성 가능한 옵션을 제공하여 LLM이 웹 페이지와 상호 작용하고, 스크린샷을 찍고, 브라우저 환경에서 JavaScript를 실행할 수 있도록 하는 모델 컨텍스트 프로토콜 서버입니다.

Structured Thinking

Structured Thinking

템플릿 사고 및 검증 사고를 포함한 구조적 사고 도구를 위한 통합 MCP 서버

Thirdweb Mcp

Thirdweb Mcp

GitHub MCP Server for Cursor IDE

GitHub MCP Server for Cursor IDE

GitHub MCP server for Cursor IDE

MCP-Forge

MCP-Forge

MCP 서버를 위한 편리한 발판 도구

ClickUp MCP Server

ClickUp MCP Server

거울

CyberSecMCP

CyberSecMCP

Secure Messages Control Plane (MCP) Server - A robust platform for managing communication between AI agents

holaspirit-mcp-server

holaspirit-mcp-server

Mirror of

Vite MCP Server

Vite MCP Server

Armor Mcp

Armor Mcp

블록체인, 스왑, 전략적 계획 등과 상호 작용하기 위한 MCP 서버입니다.

mcp-server-taiwan-aqi

mcp-server-taiwan-aqi

현재 및 지난 24시간 동안 대만(중화민국)의 대기 질 측정소 데이터를 가져와 주세요.

Harvester MCP Server

Harvester MCP Server

Model Context Protocol (MCP) server for Harvester HCI

Google Search Console MCP Server

Google Search Console MCP Server

MCP Server from Scratch using Python

MCP Server from Scratch using Python

MCP Postgres Server

MCP Postgres Server

거울

Sample Mcp Servers

Sample Mcp Servers

🖥️ Shell MCP Server

🖥️ Shell MCP Server

Mirror of

Telegram-bot-rcon-for-mcpe-servers

Telegram-bot-rcon-for-mcpe-servers

Control Minecraft remotely using the RCON Telegram bot