Discover Awesome MCP Servers
Extend your agent with 19,496 capabilities via MCP servers.
- All19,496
- Developer Tools3,867
- Search1,714
- Research & Data1,557
- AI Integration Systems229
- Cloud Platforms219
- Data & App Analysis181
- Database Interaction177
- Remote Shell Execution165
- Browser Automation147
- Databases145
- Communication137
- AI Content Generation127
- OS Automation120
- Programming Docs Access109
- Content Fetching108
- Note Taking97
- File Systems96
- Version Control93
- Finance91
- Knowledge & Memory90
- Monitoring79
- Security71
- Image & Video Processing69
- Digital Note Management66
- AI Memory Systems62
- Advanced AI Reasoning59
- Git Management Tools58
- Cloud Storage51
- Entertainment & Media43
- Virtualization42
- Location Services35
- Web Automation & Stealth32
- Media Content Processing32
- Calendar Management26
- Ecommerce & Retail18
- Speech Processing18
- Customer Data Platforms16
- Travel & Transportation14
- Education & Learning Tools13
- Home Automation & IoT13
- Web Search Integration12
- Health & Wellness10
- Customer Support10
- Marketing9
- Games & Gamification8
- Google Cloud Integrations7
- Art & Culture4
- Language Translation3
- Legal & Compliance2
Malaysia Prayer Time for Claude Desktop
말레이시아 기도 시간 데이터를 위한 모델 컨텍스트 프로토콜 (MCP) 서버
Filesystem MCP Server
Mirror of
Time-MCP
MCP 서버 시간 및 날짜
Postgers_MCP_for_AWS_RDS
AWS RDS의 Postgres DB에 접근하기 위한 MCP 서버입니다.
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.
기본적인 MCP 서버
SQLGenius - AI-Powered SQL Assistant
SQLGenius는 AI 기반 SQL 어시스턴트로, Vertex AI의 Gemini Pro를 사용하여 자연어를 SQL 쿼리로 변환합니다. MCP와 Streamlit으로 구축되었으며, 실시간 시각화 및 스키마 관리를 통해 BigQuery 데이터 탐색을 위한 직관적인 인터페이스를 제공합니다.
spotify_mcp_server_claude
a custom mcp server built using mcp framework
MCP Custom Servers Collection
Collection of custom MCP servers for multiple installations
mcp-server-wechat
实现pc端微信的mcp服务功能
Effect CLI - Model Context Protocol
MCP Servers, exposed as a CLI tool
Weather MCP Server
캐나다 정부 날씨 API에서 날씨 예보 데이터를 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 위도와 경도를 사용하여 캐나다 내 모든 지역에 대한 정확한 5일 예보를 가져올 수 있습니다. Claude Desktop 및 기타 MCP 호환 클라이언트와 쉽게 통합됩니다.
Configurable Puppeteer MCP Server
Puppeteer를 사용하여 브라우저 자동화 기능을 제공하고, 환경 변수를 통해 구성 가능한 옵션을 제공하여 LLM이 웹 페이지와 상호 작용하고, 스크린샷을 찍고, 브라우저 환경에서 JavaScript를 실행할 수 있도록 하는 모델 컨텍스트 프로토콜 서버입니다.
Structured Thinking
템플릿 사고 및 검증 사고를 포함한 구조적 사고 도구를 위한 통합 MCP 서버
Thirdweb Mcp
GitHub MCP Server for Cursor IDE
GitHub MCP server for Cursor IDE
MCP-Forge
MCP 서버를 위한 편리한 발판 도구
ClickUp MCP Server
거울
CyberSecMCP
Secure Messages Control Plane (MCP) Server - A robust platform for managing communication between AI agents
holaspirit-mcp-server
Mirror of
Vite MCP Server
Armor Mcp
블록체인, 스왑, 전략적 계획 등과 상호 작용하기 위한 MCP 서버입니다.
mcp-server-taiwan-aqi
현재 및 지난 24시간 동안 대만(중화민국)의 대기 질 측정소 데이터를 가져와 주세요.
Harvester MCP Server
Model Context Protocol (MCP) server for Harvester HCI
Google Search Console MCP Server
MCP Server from Scratch using Python
MCP Postgres Server
거울
Sample Mcp Servers
🖥️ Shell MCP Server
Mirror of
Telegram-bot-rcon-for-mcpe-servers
Control Minecraft remotely using the RCON Telegram bot