Discover Awesome MCP Servers

Extend your agent with 84,517 capabilities via MCP servers.

All84,517
phionyx-mcp-server

phionyx-mcp-server

An MCP trust boundary that produces signed, hash-chained evidence envelopes for third-party MCP tool calls, enabling tamper-evident audit and descriptor verification.

MEOK Watermark Attest MCP

MEOK Watermark Attest MCP

MEOK Watermark Attest - MCP server providing AI-powered tools and automation by MEOK AI Labs

ReftrixMCP

ReftrixMCP

Web design analysis MCP server with 20 tools for layout extraction, motion detection, quality scoring, and semantic search. Uses Playwright, pgvector HNSW, and Ollama Vision to turn web pages into searchable, structured design knowledge.

intervals.icu MCP Server

intervals.icu MCP Server

Enables Claude AI to access and manage intervals.icu training data, including workouts, wellness, and fitness trends, through natural language conversation.

mcp-feedback-pipe

mcp-feedback-pipe

Web-based feedback collection tool for MCP environments with Markdown, Mermaid charts, and image upload support.

analysis-gym

analysis-gym

Records and scores prospective equity earnings predictions made by AI agents, allowing comparison of different agent configurations.

Say MCP Server

Say MCP Server

A Model Context Protocol server that provides real-time voice notifications, utilizing a high-quality voice engine with automatic fallback to system voice.

Voice MCP

Voice MCP

Aquí tienes un servidor MCP de voz básico que utiliza Piper: ```python import asyncio import websockets import json import subprocess async def handle_connection(websocket, path): print(f"Nueva conexión desde {websocket.remote_address}") try: async for message in websocket: try: data = json.loads(message) text = data.get("text") if not text: print("Mensaje sin texto recibido.") continue print(f"Texto recibido: {text}") # Ejecutar Piper para generar audio try: process = subprocess.Popen( ["/opt/piper/piper", "--model", "/opt/piper/en_US-lessac-medium.onnx", "--output_file", "/tmp/output.wav"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE ) process.stdin.write(text.encode("utf-8")) process.stdin.close() process.wait() if process.returncode != 0: error_message = process.stderr.read().decode("utf-8") print(f"Error al ejecutar Piper: {error_message}") await websocket.send(json.dumps({"error": f"Error al ejecutar Piper: {error_message}"})) continue # Leer el archivo WAV generado with open("/tmp/output.wav", "rb") as f: audio_data = f.read() # Enviar los datos de audio al cliente await websocket.send(audio_data) print("Audio enviado.") except FileNotFoundError: print("Piper no encontrado. Asegúrate de que esté instalado y en la ruta correcta.") await websocket.send(json.dumps({"error": "Piper no encontrado."})) except Exception as e: print(f"Error al procesar el audio: {e}") await websocket.send(json.dumps({"error": f"Error al procesar el audio: {e}"})) except json.JSONDecodeError: print("Mensaje JSON inválido recibido.") await websocket.send(json.dumps({"error": "Mensaje JSON inválido."})) except Exception as e: print(f"Error al manejar el mensaje: {e}") finally: # Limpiar el archivo temporal try: subprocess.run(["rm", "/tmp/output.wav"], check=False) except Exception as e: print(f"Error al eliminar el archivo temporal: {e}") except websockets.exceptions.ConnectionClosedError: print(f"Conexión cerrada inesperadamente desde {websocket.remote_address}") except websockets.exceptions.ConnectionClosedOK: print(f"Conexión cerrada correctamente desde {websocket.remote_address}") except Exception as e: print(f"Error en la conexión: {e}") finally: print(f"Conexión con {websocket.remote_address} cerrada.") async def main(): start_server = await websockets.serve(handle_connection, "0.0.0.0", 8765) print("Servidor WebSocket escuchando en ws://0.0.0.0:8765") await asyncio.Future() # Ejecutar el servidor indefinidamente if __name__ == "__main__": asyncio.run(main()) ``` **Explicación:** 1. **Importaciones:** Importa las bibliotecas necesarias: `asyncio` para programación asíncrona, `websockets` para la comunicación WebSocket, `json` para manejar datos JSON y `subprocess` para ejecutar Piper. 2. **`handle_connection(websocket, path)`:** Esta función maneja cada conexión WebSocket individual. * Imprime un mensaje cuando se establece una nueva conexión. * Entra en un bucle asíncrono para recibir mensajes del cliente. * **Manejo de mensajes:** * Intenta decodificar el mensaje como JSON. * Extrae el texto del campo "text" del JSON. * Si no hay texto, imprime un mensaje y continúa. * Imprime el texto recibido. * **Ejecución de Piper:** * Utiliza `subprocess.Popen` para ejecutar Piper. **Asegúrate de que la ruta a `piper` y al modelo `.onnx` sean correctas para tu sistema.** El ejemplo asume que Piper está instalado en `/opt/piper` y el modelo en `/opt/piper/en_US-lessac-medium.onnx`. **Modifica estas rutas según tu configuración.** * Pasa el texto a Piper a través de la entrada estándar (`stdin`). * Especifica el archivo de salida como `/tmp/output.wav`. * Espera a que Piper termine. * Verifica el código de retorno de Piper. Si es diferente de 0, significa que hubo un error. Lee el mensaje de error de la salida de error estándar (`stderr`) y lo envía al cliente. * Lee los datos de audio del archivo `/tmp/output.wav`. * Envía los datos de audio al cliente a través del WebSocket. * Imprime un mensaje indicando que el audio fue enviado. * **Manejo de errores:** * Captura `FileNotFoundError` si Piper no se encuentra. * Captura otras excepciones que puedan ocurrir durante el procesamiento del audio. * Envía mensajes de error al cliente en formato JSON. * **Limpieza:** * Intenta eliminar el archivo temporal `/tmp/output.wav` después de cada mensaje, incluso si hubo un error. * **Manejo de cierre de conexión:** * Captura excepciones relacionadas con el cierre de la conexión WebSocket. * Imprime mensajes indicando el estado de la conexión. * Imprime un mensaje cuando se cierra la conexión. 3. **`main()`:** * Crea un servidor WebSocket que escucha en la dirección `0.0.0.0` (todas las interfaces) y el puerto `8765`. * Imprime un mensaje indicando que el servidor está escuchando. * Utiliza `asyncio.Future()` para mantener el servidor en ejecución indefinidamente. 4. **`if __name__ == "__main__":`:** Asegura que la función `main()` se ejecute solo cuando el script se ejecuta directamente (no cuando se importa como un módulo). **Cómo usarlo:** 1. **Instala las dependencias:** ```bash pip install websockets ``` 2. **Instala Piper:** Sigue las instrucciones de instalación de Piper en su repositorio de GitHub: [https://github.com/rhasspy/piper](https://github.com/rhasspy/piper). Asegúrate de descargar un modelo `.onnx` y saber dónde está ubicado. 3. **Modifica el script:** * Cambia las rutas a `piper` y al modelo `.onnx` en la línea `subprocess.Popen` para que coincidan con tu instalación. 4. **Ejecuta el servidor:** ```bash python tu_script.py ``` 5. **Crea un cliente WebSocket:** Necesitarás un cliente WebSocket para conectarte al servidor y enviarle texto. Aquí tienes un ejemplo básico en JavaScript: ```javascript const websocket = new WebSocket("ws://localhost:8765"); websocket.onopen = () => { console.log("Conectado al servidor WebSocket"); const text = "Hola, mundo. Esto es una prueba de Piper."; websocket.send(JSON.stringify({ text: text })); }; websocket.onmessage = (event) => { if (event.data instanceof Blob) { // Recibido audio como Blob const audioBlob = event.data; const audioUrl = URL.createObjectURL(audioBlob); const audio = new Audio(audioUrl); audio.play(); } else { // Recibido mensaje de texto (error) console.error("Error del servidor:", event.data); } }; websocket.onclose = () => { console.log("Conexión cerrada"); }; websocket.onerror = (error) => { console.error("Error de WebSocket:", error); }; ``` Guarda este código como un archivo HTML (por ejemplo, `cliente.html`) y ábrelo en tu navegador. **Puntos importantes:** * **Seguridad:** Este código es un ejemplo básico y no incluye ninguna medida de seguridad. Si vas a usarlo en un entorno de producción, debes agregar autenticación, autorización y otras medidas de seguridad. * **Manejo de errores:** El manejo de errores es básico. Debes mejorarlo para que sea más robusto y proporcione información más útil. * **Rendimiento:** Para un uso intensivo, considera optimizar el rendimiento, por ejemplo, utilizando un pool de procesos para ejecutar Piper. * **Rutas:** Asegúrate de que las rutas a `piper` y al modelo `.onnx` sean correctas. * **Dependencias:** Asegúrate de tener Piper instalado y configurado correctamente. * **Formato de audio:** El cliente asume que el audio se recibe como un Blob. Si Piper genera un formato diferente, deberás ajustar el código del cliente. * **Librerías:** Considera usar librerías más robustas para el manejo de audio en el cliente, como `Web Audio API`. Este es un punto de partida. Puedes expandirlo y adaptarlo a tus necesidades. Recuerda revisar la documentación de `websockets` y `piper` para obtener más información.

wikipedia-mcp-agent

wikipedia-mcp-agent

Enables searching and reading Wikipedia articles through tools like search, section listing, and content retrieval. Supports prompt templates and resource suggestions for topic exploration.

outlook-mcp

outlook-mcp

MCP server providing full control over Outlook.com, Hotmail, Live, or Microsoft 365 email via Microsoft Graph API, enabling reading, searching, sending, and managing messages and folders securely.

fugaku-mcp

fugaku-mcp

MCP server for the Fugaku supercomputer that enables natural language job submission, monitoring, file transfer, and command execution via AI agents like Claude Code.

Remote MCP Server on Cloudflare

Remote MCP Server on Cloudflare

Enables remote MCP access to math tools with OAuth authentication, deployable on Cloudflare Workers.

ChukMCPServer

ChukMCPServer

A Python framework for building Model Context Protocol servers with decorator-based tools, zero-config deployment, and high performance.

Remote MCP Server on Cloudflare

Remote MCP Server on Cloudflare

Enables deployment of MCP servers on Cloudflare Workers with OAuth authentication and remote connectivity. Provides a template for creating cloud-hosted MCP servers that can be accessed by Claude Desktop and other MCP clients over HTTP/SSE.

MCP FUSION

MCP FUSION

MCP Fusion is a TypeScript framework for building secure and governed MCP servers with egress firewalls, state-machine gating, and AI-friendly skill contracts.

Google Drive MCP Server

Google Drive MCP Server

A server that provides a Machine Control Protocol (MCP) interface to search, access, and interact with Google Drive files and folders, enabling AI assistants to work with Google Drive content.

JLCPCB Parts MCP Server

JLCPCB Parts MCP Server

A server that assists users in finding electronic components compatible with JLCPCB PCBA services through a searchable interface with filtering capabilities.

cursor-history-mcp

cursor-history-mcp

MCP server for browsing, searching, exporting, and backing up your Cursor AI chat history directly into Claude via natural language.

Tavily Web Search MCP Server

Tavily Web Search MCP Server

An experimental MCP server that provides web search capabilities using the Tavily API. Still in progress, not production-ready.

MCP Sound Tool

MCP Sound Tool

Una implementación del Protocolo de Contexto de Modelo que reproduce efectos de sonido (finalización, error, notificación) para Cursor AI y otros entornos compatibles con MCP, proporcionando retroalimentación de audio para una experiencia de codificación más interactiva.

showcase-mcp

showcase-mcp

MCP server that opens a native desktop window to display rich content (Markdown, HTML, Mermaid diagrams, images) with real-time updates via SSE.

Skulabs MCP Server

Skulabs MCP Server

Enables AI agents to interact with Skulabs inventory management system through comprehensive tools for managing products, orders, customers, and analytics. Supports voice agents like Retell AI and desktop applications like Claude for natural language inventory operations.

TypeScript MCP Server Boilerplate

TypeScript MCP Server Boilerplate

A boilerplate project for quickly developing Model Context Protocol (MCP) servers using TypeScript SDK, featuring example tools (calculator, greet), resources (server info), and AI image generation capabilities via Hugging Face.

airsstool

airsstool

Enables AI agents to discover, fetch, and manage RSS feeds from 1500+ websites via RSSHub, with subscription groups and content filtering.

MCP Presidio

MCP Presidio

An MCP server that enables LLMs to detect and anonymize over 25 types of Personally Identifiable Information (PII) using Microsoft Presidio. It supports various redaction strategies and can process both plain text and structured data to help ensure data privacy.

mcp-web-agent

mcp-web-agent

A token-efficient web browsing, scraping, and crawling MCP server that provides tools for fetching pages as clean markdown or schema-based JSON, verifying content, monitoring changes, and interacting with web pages via a persistent browser pool, complete with SSRF protection and rate limiting.

fpds-mcp

fpds-mcp

MCP server for querying U.S. Federal Procurement Data System (FPDS-NG) to search federal contract actions by keyword, agency, NAICS, or vendor, with USDC micropayments via x402.

garmin-mcp

garmin-mcp

Provides read access to Garmin Connect health and training data (sleep, heart rate, stress, HRV, activities) and supports writes like creating workouts, editing activities, and exporting files.

CampusMind-AI

CampusMind-AI

A calculator-focused MCP server template with tools, resources, and prompts built on NitroStack.

DOCX Document Creator

DOCX Document Creator

A FastMCP-powered microserver that allows users to programmatically generate well-formatted .docx documents with consistent styling, including features like titles, paragraphs, headings, citations, and footers.