Discover Awesome MCP Servers

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

All23,553
robot-mcp-server

robot-mcp-server

LinkedIn MCP Server

LinkedIn MCP Server

A Model Context Protocol implementation that bridges language models with LinkedIn's API, enabling profile access, posting content, searching people, and retrieving company information through standardized tools.

Report Builder MCP Server

Report Builder MCP Server

Formats AI agent outputs into professional reports, emails, and documents with branding, quality validation, and executive summaries for enterprise AI operations.

MCP-Add-Weather

MCP-Add-Weather

A multi-agent system that connects a math server and weather server, allowing users to perform mathematical operations and retrieve weather information based on the numerical results.

Refine Prompt

Refine Prompt

An MCP server that uses Claude 3.5 Sonnet to transform ordinary prompts into structured, professionally engineered instructions for any LLM. It enhances AI interactions by adding context, requirements, and structural clarity to raw user inputs.

Chrome History & Bookmarks MCP Server

Chrome History & Bookmarks MCP Server

Enables AI assistants to search and analyze Chrome browser history and bookmarks data locally, including keyword searches, date range filtering, recent browsing activity, and usage statistics across all platforms.

UI Screenshot Comparison MCP

UI Screenshot Comparison MCP

Enables automated visual testing by comparing screenshots against baseline images using OpenAI to verify UI consistency. It generates detailed performance reports in both terminal and Excel formats based on provided user stories and acceptance criteria.

MCP Coordinator

MCP Coordinator

Acts as a proxy for multiple MCP servers, reducing context window usage from 15,000+ tokens to ~500 tokens by dynamically loading servers on-demand and exposing only 3 tools instead of all tool definitions.

MCP API Documentation System

MCP API Documentation System

A fully automated system that analyzes Django REST Framework ViewSets to generate accurate OpenAPI 3.0 specification documentation without manual configuration.

mcp-server-calc

mcp-server-calc

测试 MCP 服务器 (Cèshì MCP fúwùqì)

bingcn

bingcn

A Chinese Bing search tool based on MCP protocol, which supports calling through AI tools such as Claude, and can obtain webpage content without API keys.

QQ Channel Data Collector

QQ Channel Data Collector

Enables automated collection and AI-powered filtering of public QQ channel posts, comments, and images. Supports natural language criteria for content filtering and provides structured data storage in JSON/CSV formats.

Playwright MCP

Playwright MCP

用于 MCP 的 Playwright 封装器,使 LLM 驱动的客户端能够控制浏览器以执行自动化任务。

Figma MCP Proxy Server

Figma MCP Proxy Server

Provides secure access to Figma designs through Cursor IDE using a personal access token, enabling developers to list files, export assets, extract design tokens, and search designs without requiring individual Figma accounts.

LeanMCP Minimal Server

LeanMCP Minimal Server

A minimal MCP server framework that enables zero-config tool discovery and streamable HTTP transport using the LeanMCP SDK. It allows developers to build type-safe services with automatic schema validation and integrated React UI components.

Healthcare Analytics MCP Server

Healthcare Analytics MCP Server

Enables comprehensive healthcare data analysis using Tuva Health demo data with tools for value-based care analytics, quality measures, utilization analysis, and financial metrics. Supports patient demographics, PMPM analysis, chronic conditions tracking, readmissions analysis, and HCC risk scoring through BigQuery integration.

Next.js DevTools MCP

Next.js DevTools MCP

Provides specialized development tools and utilities for Next.js, allowing AI agents to perform runtime diagnostics and access official documentation. It enables automated context initialization and real-time interaction with Next.js development servers to query application state.

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 助手连接到实时天气数据。

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!

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.