Discover Awesome MCP Servers
Extend your agent with 84,516 capabilities via MCP servers.
- All84,516
- 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
Agent Sense
Provides AI agents with environmental sensing capabilities including current time, IP-based geolocation, system information, and hardware details. Enables more contextual and accurate AI responses based on user's environment.
Harvest MCP Server
A Model Context Protocol server that integrates with the Harvest API v2, enabling time tracking management including listing, creating, updating, and deleting time entries, as well as managing projects, tasks, users and generating reports.
Secret MCP
Enables evidence-grounded web design analysis by searching GDWEB references and generating isolated, per-reference DESIGN_INDEX specification documents for LLM-driven frontend development.
puzzletide-mcp
MCP server for puzzle generation: word search generator, crossword generator, and sudoku generator + solver, with printable PDF worksheets, themed word banks, and verifiable LLM evals. Works with Claude Desktop, Cursor, Windsurf, and any Model Context Protocol client. From the makers of puzzletide.com.
sshops
A lightweight, zero-agent SSH operations tool that enables remote command execution, file transfer, and audit logging. It integrates as an MCP server for AI-driven infrastructure management.
mcp-hackernews
Enables searching and retrieving top stories and individual items from Hacker News, with access to scores, comments, authors, and timestamps.
Proto Server
Enables AI assistants to explore and understand Protocol Buffer (.proto) files through fuzzy search, service definitions, and message structure analysis. Integrates with Cursor IDE to provide natural language queries about protobuf schemas and API definitions.
Faker MCP Server
Generates realistic, context-aware synthetic data for AI agents to populate databases, mock APIs, and create test scenarios without exposing real PII.
mcp-riksdagen-se
Enables AI agents to query Swedish Parliament open data through natural language.
Texas Grocery MCP
Enables AI agents to manage H-E-B grocery shopping tasks including product search, cart management, and coupon clipping through natural language.
MCPKG - Model Context Protocol Knowledge Graph
Um servidor MCP (Protocolo de Contexto de Modelo) que expõe primitivas para interagir com um Grafo de Conhecimento.
binance-mcp-server
Provides comprehensive Binance trading capabilities through Claude Desktop, including account management, spot and futures trading, market data, and advanced analysis tools.
Prometheus MCP Server
Enables AI assistants to query Prometheus metrics, monitor alerts, and analyze system health through read-only access to your Prometheus server with built-in query safety and optional AI-powered metric analysis.
AgentValet
Identity and credential governance for AI agents. Every agent gets its own cryptographic identity, scoped short-lived credentials per platform, human approval on sensitive actions, and an immutable audit log.
odds-mcp
MCP server for odds data that provides tools to query consensus odds, fair prices, and outliers, and to safely propose, approve, and publish boosts with audit logging.
gdbmcp
Attaches to a running C++ process and exposes tools to inspect live memory via a resident GDB subprocess, enabling LLMs to read fields, follow pointers, and access STL containers without modifying target code.
todo-full
A todo list MCP server with Tools, Resources, and Prompts, demonstrating MCP features and compatible with DeepSeek and Claude Code.
Weather MCP Server
Provides weather alerts and forecasts via the National Weather Service API, enabling Claude to answer weather-related queries.
Skool MCP
Gives Claude access to your Skool community, enabling reading and writing posts, comments, members, classroom content, and DMs using your own login.
fred-mcp-server
An MCP server that provides access to the full FRED API (Federal Reserve Economic Data), including the Maps API for regional and geographic data.
TFS MCP Server
Bridges Claude Code with an on-premise Azure DevOps Server / TFS collection, enabling work item and Git operations via PAT authentication.
Ace Context MCP
Persistent, local-first memory for your AI chats. Save context in one chat, load it in another — across Claude web, Claude Code, Cursor, Cline, and Claude Desktop. One store, on your own disk, reachable from every tool via MCP, CLI, REST, or SDK.
grok-bot-rooms-server
Hosted MCP registry for grok-bot-rooms, enabling room creation, membership, and messaging via tools and slash commands. Deployable on Vercel with Turso, it serves as the backend for guest plugins.
mcp-utility-server
A Python-based MCP server providing essential utility tools: web fetching, current time, and calculator functionality.
VseGPT MCP Servers
Servidor MCP para VseGPT
mcp-openalex
MCP server for the OpenAlex scholarly database, providing AI agents with tools to search and retrieve academic works, authors, and institutions via natural language queries.
@cyanheads/chembl-mcp-server
Link compounds to protein targets, rank bioactivity (IC50/Ki/EC50), and look up drug mechanisms and indications over ChEMBL via MCP.
Argos-MCP
Enables Claude Code to securely interact with PostgreSQL, MySQL, SQLite, and SQL Server databases, featuring read-only mode, query validation, SSH tunneling, and field redaction for production-safe data access.
mcp-yt-dlp
MCP server wrapping yt-dlp for downloading videos and audio from URLs, providing tools to check dependencies, retrieve video metadata, and perform downloads.
MCP Server - VSCode Tutorial
## Tutorial: Construindo um Servidor MCP e Usando o VS Code como Cliente MCP Este tutorial irá guiá-lo através do processo de construção de um servidor MCP (Minecraft Protocol) e da utilização do VS Code como um cliente para interagir com ele. **O que é MCP (Minecraft Protocol)?** O Minecraft Protocol é o protocolo de comunicação usado entre o cliente Minecraft e o servidor Minecraft. Ele define como os dados são formatados e trocados para permitir que o cliente e o servidor interajam. **Por que construir um servidor MCP?** Construir um servidor MCP permite que você: * **Entenda o protocolo Minecraft:** Aprenda como o cliente e o servidor se comunicam. * **Crie ferramentas personalizadas:** Desenvolva ferramentas para analisar o tráfego de rede do Minecraft, automatizar tarefas ou criar mods. * **Experimente com o protocolo:** Explore as possibilidades do protocolo e crie novas funcionalidades. **Pré-requisitos:** * **Node.js e npm:** Certifique-se de ter o Node.js e o npm (Node Package Manager) instalados em seu sistema. Você pode baixá-los em [https://nodejs.org/](https://nodejs.org/). * **VS Code:** O Visual Studio Code é um editor de código popular e gratuito. Você pode baixá-lo em [https://code.visualstudio.com/](https://code.visualstudio.com/). * **Conhecimento básico de JavaScript:** Este tutorial usará JavaScript para construir o servidor e o cliente. **Passo 1: Criando o Servidor MCP** 1. **Crie um diretório para o seu projeto:** ```bash mkdir mcp-server cd mcp-server ``` 2. **Inicialize um projeto Node.js:** ```bash npm init -y ``` 3. **Instale as dependências:** Precisaremos de algumas bibliotecas para lidar com a comunicação de rede e o protocolo Minecraft. Usaremos `node-minecraft-protocol` para lidar com o protocolo e `ws` para websockets. ```bash npm install node-minecraft-protocol ws ``` 4. **Crie o arquivo `server.js`:** ```bash touch server.js ``` 5. **Adicione o seguinte código ao `server.js`:** ```javascript const mc = require('node-minecraft-protocol'); const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 }); // Porta para a conexão WebSocket const server = mc.createServer({ 'online-mode': false, // Desabilita a verificação de autenticação (para testes locais) host: '0.0.0.0', // Escuta em todas as interfaces port: 25565, // Porta padrão do Minecraft version: '1.19.4', // Versão do Minecraft (ajuste conforme necessário) motd: 'Meu Servidor MCP', 'max-players': 10 }); server.on('login', function(client) { console.log(`${client.username} se conectou!`); client.on('end', function() { console.log(`${client.username} desconectou.`); }); // Envie uma mensagem ao cliente client.write('chat', { message: JSON.stringify({ translate: 'chat.type.announcement', with: [ 'Servidor', 'Bem-vindo ao servidor MCP!' ] }), position: 0, sender: '0' }); // Envie a lista de jogadores (necessário para o cliente funcionar corretamente) client.write('player_info', { action: 0, // Add player data: [{ UUID: client.uuid, name: client.username, properties: [], gamemode: 0, ping: 0, displayName: undefined }] }); client.write('position', { x: 0, y: 0, z: 0, yaw: 0, pitch: 0, flags: 0, teleportId: 0 }); client.write('respawn', { dimension: 0, worldName: 'minecraft:overworld', hashedSeed: 0, gamemode: 0, previousGamemode: 0, isDebug: false, isFlat: false, copyMetadata: true }); client.write('entity_status', { entityId: 0, entityStatus: 22 }); client.write('time_update', { worldAge: [BigInt(0), BigInt(0)], timeOfDay: [BigInt(6000), BigInt(6000)] }); client.write('game_event', { event: 3, value: 0 }); client.write('difficulty', { difficulty: 2, difficultyLocked: false }); client.write('world_event', { effectId: 2001, location: { x: 0, y: 0, z: 0 }, data: 0, disableRelativeVolume: false }); client.write('world_event', { effectId: 2001, location: { x: 0, y: 0, z: 0 }, data: 0, disableRelativeVolume: false }); client.write('player_abilities', { flags: 2, flyingSpeed: 0.05, walkingSpeed: 0.1 }); client.write('held_item_change', { slot: 0 }); client.write('update_view_position', { chunkX: 0, chunkZ: 0 }); client.write('update_view_distance', { viewDistance: 8 }); client.write('synchronize_recipes', { recipes: [] }); client.write('tags', { tags: [] }); client.write('entity_metadata', { entityId: 0, metadata: [ { "key": 0, "type": 0, "value": 0 } ] }); client.write('update_health', { health: 20, food: 20, foodSaturation: 5 }); client.write('player_list_header_and_footer', { header: JSON.stringify({ text: 'Bem-vindo!' }), footer: JSON.stringify({ text: 'Divirta-se!' }) }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0 }); client.write('unload_chunk', { chunkX: 0, chunkZ: 0