Discover Awesome MCP Servers

Extend your agent with 23,601 capabilities via MCP servers.

All23,601
Random-Generator

Random-Generator

An encrypted and secure random number generation server that complies with the MCP protocol, suitable for AI applications, LLMS, and other systems that require high-quality random numbers.

Trademark Big Data MCP Server

Trademark Big Data MCP Server

Provides comprehensive trademark information services, including fuzzy company search, detailed trademark status tracking, and statistical analysis. Users can analyze trademark portfolios by tracking application trends, registration data, and category distributions for specific companies.

Laravel MCP Companion

Laravel MCP Companion

Provides instant access to comprehensive Laravel ecosystem documentation including multi-version core docs (6.x-latest), Laravel services (Forge, Vapor, Nova, Envoyer), and 42,000+ lines of community package documentation with intelligent search and use-case mapping.

OPC UA MCP Server

OPC UA MCP Server

Connects AI agents to OPC UA-enabled industrial systems for real-time monitoring and control of operational data. It enables users to read, write, and browse industrial device nodes through natural language interactions.

Appwrite MCP Server

Appwrite MCP Server

Enables interaction with Appwrite's backend services through natural language. Provides tools to manage databases, users, functions, teams, storage, and other Appwrite project resources via API integration.

HAPI-MCP

HAPI-MCP

A Model Context Protocol server that enables querying FHIR healthcare data using natural language, allowing doctors to retrieve patient information, medications, observations, and other healthcare records.

mcp-server-upstox-api

mcp-server-upstox-api

Professional Penetration Testing MCP Server

Professional Penetration Testing MCP Server

Provides access to over 40 industry-standard penetration testing tools, including Nmap, SQLMap, and Metasploit, within an isolated Kali Linux Docker container. It enables security professionals to perform comprehensive network reconnaissance, web application testing, and vulnerability research through natural language commands.

🤖 MCP Server Examples with AutoGen

🤖 MCP Server Examples with AutoGen

这个仓库演示了如何使用AutoGen来集成本地和远程的MCP(模型上下文协议)服务器。它展示了一个使用Stdio的本地数学工具(math_server.py)和一个通过SSE的远程Apify工具(RAG Web Browser Actor),用于执行诸如算术和网页浏览等任务。

MCP Quickstart Weather Server

MCP Quickstart Weather Server

A basic MCP server adapted from the official quickstart guide that provides weather data functionality and works with OpenAI chat completions API. Demonstrates MCP server setup with configuration examples for Claude Desktop and development tools.

MCP Chess Server

MCP Chess Server

Provides Chess.com player data integration, enabling AI assistants to fetch real-time chess player profiles and comprehensive statistics including ratings, game counts, and performance metrics from Chess.com's public API.

system-prompts-mcp-server

system-prompts-mcp-server

Model Context Protocol server exposing system prompt files and summaries.

Dev MCP Prompt Server

Dev MCP Prompt Server

A lightweight server that provides curated, high-quality prompts for common development tasks like UI/UX design, project setup, and debugging to enhance AI-powered development workflows.

Gmail MCP Server

Gmail MCP Server

Enables sending emails through Gmail using Google's Gmail API. Requires OAuth authentication setup through Google Cloud Console.

Financial MCP Server

Financial MCP Server

Provides mock financial data including bank transactions, credit reports, and EPF details for the Finarrator application through authenticated API endpoints.

trykittai-mcp-server

trykittai-mcp-server

trykittai-mcp-server

Jokes MCP Server

Jokes MCP Server

Enables users to retrieve jokes from various categories including Chuck Norris jokes and dad jokes. Provides a humor-focused tool that can be integrated into Microsoft Copilot Studio agents for delivering appropriate and engaging jokes upon request.

Tool-Plaid

Tool-Plaid

Enables interaction with Plaid's financial data API to sync bank transactions and retrieve account balances with secure encrypted token storage.

Compass

Compass

MCP Compass 是一种发现和推荐服务,它通过自然语言查询来帮助 AI 助手查找和理解模型上下文协议 (Model Context Protocol) 服务器。

Hands-on MCP (Message Control Protocols) Guide

Hands-on MCP (Message Control Protocols) Guide

MCP 基础 (MCP jīchǔ)

MCP Weather SSE Server

MCP Weather SSE Server

一个 MCP 服务器,通过服务器发送事件(Server-Sent Events)和 OpenWeatherMap API 将 AI 助手连接到实时天气数据。

AgentGo MCP Service

AgentGo MCP Service

A Model Context Protocol service that enables agent authentication and integration with TrustGo platform, providing access to real-time data like price, sigma score, and mindshare bubble analytics.

GoCardless MCP Server

GoCardless MCP Server

Enables AI assistants to interact with GoCardless payment data, providing tools to manage customers, payments, mandates, subscriptions, and payouts. Includes Xero integration support for automatic parsing of metadata.

Mnemosyne MCP

Mnemosyne MCP

An active, stateful software knowledge graph engine that serves as an 'all-knowing development partner' for AI agents and human developers by modeling software projects into queryable knowledge graphs.

CucumberStudio MCP Server

CucumberStudio MCP Server

实现一个模型上下文协议服务器,该服务器从 CucumberStudio 向 AI 助手提供上下文,使它们能够获取数据并生成或修改测试场景、特性和其他 CucumberStudio 资源。

simple-mcp-server

simple-mcp-server

Okay, here's a basic outline and code snippets for a simple MCP (Minecraft Protocol) server implementation using Java Spring Boot. This will be a *very* simplified version, focusing on the core concepts of receiving and responding to a handshake packet. It won't handle full game logic, world data, or player interactions. This is a starting point. **Important Considerations:** * **Complexity:** The Minecraft Protocol is complex. This example only covers the initial handshake. Implementing a full server requires significant effort. * **Security:** This example is *not* secure. Real-world servers need proper authentication, encryption, and anti-cheat measures. * **Libraries:** While Spring Boot simplifies things, you'll likely need a library to handle the low-level details of the Minecraft Protocol (packet encoding/decoding). I'll show a basic example without a dedicated library, but for a real server, consider libraries like `minecraft-server-util` or similar. * **Asynchronous Handling:** Use asynchronous processing (e.g., `CompletableFuture`, `ExecutorService`) to avoid blocking the main thread when handling network operations. **1. Project Setup (Spring Boot)** * Create a new Spring Boot project using Spring Initializr ([https://start.spring.io/](https://start.spring.io/)). * Dependencies: You'll need at least `spring-boot-starter-web`. Consider adding `spring-boot-starter-logging` for better logging. **2. Core Components** * **MinecraftServer Class:** This class will manage the server socket and handle incoming connections. * **Packet Handling:** Functions to read and write Minecraft Protocol packets. * **Data Structures:** Classes to represent the data in the packets (e.g., Handshake). **3. Code Example (Simplified)** ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.stereotype.Component; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.nio.charset.StandardCharsets; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @SpringBootApplication public class MinecraftServerApplication { public static void main(String[] args) { SpringApplication.run(MinecraftServerApplication.class, args); } } @Component class MinecraftServer { private static final Logger logger = LoggerFactory.getLogger(MinecraftServer.class); private final int port = 25565; // Default Minecraft port private final ExecutorService executor = Executors.newFixedThreadPool(10); // Thread pool private ServerSocket serverSocket; public MinecraftServer() { startServer(); } private void startServer() { try { serverSocket = new ServerSocket(port); logger.info("Minecraft server started on port " + port); while (true) { Socket clientSocket = serverSocket.accept(); executor.submit(() -> handleClient(clientSocket)); // Handle in a separate thread } } catch (IOException e) { logger.error("Error starting server: " + e.getMessage(), e); } finally { if (serverSocket != null) { try { serverSocket.close(); } catch (IOException e) { logger.error("Error closing server socket: " + e.getMessage(), e); } } } } private void handleClient(Socket clientSocket) { try (DataInputStream in = new DataInputStream(clientSocket.getInputStream()); DataOutputStream out = new DataOutputStream(clientSocket.getOutputStream())) { logger.info("Client connected from " + clientSocket.getInetAddress()); // 1. Read the Handshake packet Handshake handshake = readHandshake(in); logger.info("Received handshake: " + handshake); // 2. Respond to the handshake (Status Response) sendStatusResponse(out); //3. Handle Ping handlePing(in, out); } catch (IOException e) { logger.error("Error handling client: " + e.getMessage(), e); } finally { try { clientSocket.close(); logger.info("Client disconnected from " + clientSocket.getInetAddress()); } catch (IOException e) { logger.error("Error closing client socket: " + e.getMessage(), e); } } } private Handshake readHandshake(DataInputStream in) throws IOException { // Read packet length (VarInt) int packetLength = readVarInt(in); // Read packet ID (VarInt) int packetId = readVarInt(in); if (packetId != 0x00) { throw new IOException("Expected handshake packet (ID 0x00), got " + packetId); } // Read protocol version (VarInt) int protocolVersion = readVarInt(in); // Read server address (String) String serverAddress = readString(in); // Read server port (Unsigned Short) int serverPort = in.readUnsignedShort(); // Read next state (VarInt) int nextState = readVarInt(in); return new Handshake(protocolVersion, serverAddress, serverPort, nextState); } private void sendStatusResponse(DataOutputStream out) throws IOException { // Create a simple JSON response String jsonResponse = "{\n" + " \"version\": {\n" + " \"name\": \"My Simple Server\",\n" + " \"protocol\": 757\n" + // Example protocol version " },\n" + " \"players\": {\n" + " \"max\": 100,\n" + " \"online\": 0\n" + " },\n" + " \"description\": {\n" + " \"text\": \"A simple Minecraft server\"\n" + " }\n" + "}"; byte[] jsonBytes = jsonResponse.getBytes(StandardCharsets.UTF_8); int dataLength = jsonBytes.length; // Packet ID for Status Response is 0x00 byte[] packetData = new byte[dataLength + varIntSize(dataLength) + varIntSize(0x00)]; int offset = 0; offset = writeVarInt(packetData, offset, dataLength + varIntSize(0x00)); // Packet Length offset = writeVarInt(packetData, offset, 0x00); // Packet ID System.arraycopy(jsonBytes, 0, packetData, offset, dataLength); // JSON Data out.write(packetData); out.flush(); } private void handlePing(DataInputStream in, DataOutputStream out) throws IOException { // Read packet length (VarInt) int packetLength = readVarInt(in); // Read packet ID (VarInt) int packetId = readVarInt(in); if (packetId != 0x01) { throw new IOException("Expected Ping packet (ID 0x01), got " + packetId); } // Read payload (long) long payload = in.readLong(); // Send Pong response sendPongResponse(out, payload); } private void sendPongResponse(DataOutputStream out, long payload) throws IOException { // Packet ID for Pong Response is 0x01 byte[] packetData = new byte[8 + varIntSize(8) + varIntSize(0x01)]; // 8 bytes for long payload int offset = 0; offset = writeVarInt(packetData, offset, 8 + varIntSize(0x01)); // Packet Length offset = writeVarInt(packetData, offset, 0x01); // Packet ID writeLong(packetData, offset, payload); // Payload out.write(packetData); out.flush(); } // Helper methods for reading and writing VarInts and Strings (Minecraft Protocol) private int readVarInt(DataInputStream in) throws IOException { int numRead = 0; int result = 0; byte read; do { read = in.readByte(); int value = (read & 0x7f); result |= (value << (7 * numRead)); numRead++; if (numRead > 5) { throw new RuntimeException("VarInt is too big"); } } while ((read & 0x80) != 0); return result; } private String readString(DataInputStream in) throws IOException { int length = readVarInt(in); byte[] bytes = new byte[length]; in.readFully(bytes); return new String(bytes, StandardCharsets.UTF_8); } private int writeVarInt(byte[] buffer, int offset, int value) { while (true) { if ((value & ~0x7F) == 0) { buffer[offset++] = (byte) value; return offset; } else { buffer[offset++] = (byte) ((value & 0x7F) | 0x80); value >>>= 7; } } } private int varIntSize(int value) { int size = 0; do { value >>>= 7; size++; } while (value != 0); return size; } private void writeLong(byte[] buffer, int offset, long value) { buffer[offset++] = (byte) (value >>> 0); buffer[offset++] = (byte) (value >>> 8); buffer[offset++] = (byte) (value >>> 16); buffer[offset++] = (byte) (value >>> 24); buffer[offset++] = (byte) (value >>> 32); buffer[offset++] = (byte) (value >>> 40); buffer[offset++] = (byte) (value >>> 48); buffer[offset++] = (byte) (value >>> 56); } } // Data class for the Handshake packet class Handshake { public int protocolVersion; public String serverAddress; public int serverPort; public int nextState; public Handshake(int protocolVersion, String serverAddress, int serverPort, int nextState) { this.protocolVersion = protocolVersion; this.serverAddress = serverAddress; this.serverPort = serverPort; this.nextState = nextState; } @Override public String toString() { return "Handshake{" + "protocolVersion=" + protocolVersion + ", serverAddress='" + serverAddress + '\'' + ", serverPort=" + serverPort + ", nextState=" + nextState + '}'; } } ``` **Explanation:** 1. **`MinecraftServerApplication`:** Standard Spring Boot application entry point. 2. **`MinecraftServer`:** * `@Component`: Makes this a Spring-managed bean. * `startServer()`: Creates a `ServerSocket` and listens for incoming connections. Uses a thread pool (`ExecutorService`) to handle each client connection asynchronously. * `handleClient()`: This is where the magic happens. It reads the handshake packet, sends a status response, and handles the ping. * `readHandshake()`: Reads the handshake packet data from the input stream. It reads VarInts and Strings according to the Minecraft Protocol. * `sendStatusResponse()`: Creates a simple JSON response (the server status) and sends it back to the client. This is what you see when you add a server to your Minecraft client. * `handlePing()`: Reads the ping packet and sends a pong response. * `readVarInt()`, `readString()`, `writeVarInt()`: Helper methods to read and write VarInts and Strings, which are used extensively in the Minecraft Protocol. VarInts are variable-length integers. 3. **`Handshake`:** A simple data class to hold the handshake information. **How to Run:** 1. Build the Spring Boot project (e.g., using Maven or Gradle). 2. Run the resulting JAR file. 3. In your Minecraft client, add a new server with the address `localhost` (or the IP address of your server). 4. You should see the server in the server list with the status information you provided in the `sendStatusResponse()` method. **Key Improvements and Next Steps:** * **Error Handling:** Add more robust error handling and logging. * **Configuration:** Externalize the server port and other settings using Spring Boot's configuration mechanisms. * **Minecraft Protocol Library:** Use a dedicated Minecraft Protocol library to simplify packet handling and ensure correctness. This will handle the complexities of VarInts, strings, and other data types. * **State Management:** Implement proper state management to track the client's connection state (handshake, status, login, play). * **Login:** Implement the login sequence to authenticate players. * **World Generation:** Generate or load a Minecraft world. * **Game Logic:** Implement the core game logic (player movement, block updates, etc.). * **Security:** Implement encryption (e.g., using the `net.minecraft.network.Encryption` class from a Minecraft server library) and authentication. * **Asynchronous I/O:** Use non-blocking I/O (NIO) for better performance. **Chinese Translation of Key Concepts:** * **Minecraft Protocol (MCP):** 我的世界协议 (Wǒ de Shìjiè Xiéyì) * **Handshake:** 握手 (Wòshǒu) * **Packet:** 数据包 (Shùjùbāo) * **Server:** 服务器 (Fúwùqì) * **Client:** 客户端 (Kèhùduān) * **VarInt:** 变长整数 (Biàn cháng zhěngshù) * **Status Response:** 状态响应 (Zhuàngtài xiǎngyìng) * **Ping:** 延迟测试 (Yánchí cèshì) / 心跳 (Xīntiào) * **Pong:** 延迟测试回应 (Yánchí cèshì huíyìng) / 心跳回应 (Xīntiào huíyìng) * **Thread Pool:** 线程池 (Xiànchéng chí) * **Asynchronous:** 异步 (Yìbù) * **Socket:** 套接字 (Tàojiēzì) This example provides a basic foundation. Building a full Minecraft server is a complex undertaking, but this should give you a good starting point. Remember to prioritize security and use appropriate libraries to handle the Minecraft Protocol correctly. Good luck!

Hacker News Companion MCP

Hacker News Companion MCP

抓取并处理 Hacker News 讨论,以便为 Claude 生成高质量的摘要做准备,处理评论结构和元数据,以帮助 Claude 理解不同评论的相对重要性。

NutriAI MCP Server

NutriAI MCP Server

Enables nutritional analysis of food descriptions by integrating with OpenAI's API to provide calorie estimates, macronutrient breakdowns, and dietary insights. Designed for educational purposes and follows OpenAI Apps SDK design guidelines.

MCP Test Server

MCP Test Server

A TypeScript-based test implementation for the Model Context Protocol (MCP) with example configurations and Jest test cases. Provides a development foundation for building and testing MCP server functionality.

Iceland News MCP Server

Iceland News MCP Server

Fetches latest news from 6 Icelandic sources via 60+ RSS feeds across categories in Icelandic, English, and Polish, with configurable article limits and feed discovery.