Discover Awesome MCP Servers

Extend your agent with 12,711 capabilities via MCP servers.

All12,711
🔒 Minimal GitHub OAuth-enabled MCP Server

🔒 Minimal GitHub OAuth-enabled MCP Server

Claro, aquí tienes una demostración rápida de un servidor MCP (Minecraft Protocol) que utiliza GitHub OAuth para autenticar usuarios. Ten en cuenta que esto es un ejemplo simplificado y requerirá ajustes para un uso en producción. **Conceptos Clave:** * **MCP (Minecraft Protocol):** El protocolo de comunicación entre el cliente de Minecraft y el servidor. * **GitHub OAuth:** Un mecanismo para permitir que los usuarios se autentiquen en tu servidor utilizando sus cuentas de GitHub. * **UUID (Universally Unique Identifier):** Un identificador único para cada jugador. Minecraft utiliza UUIDs para identificar a los jugadores de forma consistente. **Advertencia:** Este código es un ejemplo simplificado y no está listo para producción. Necesitarás implementar manejo de errores, seguridad robusta y persistencia de datos. **Pasos Generales:** 1. **Registrar una Aplicación OAuth en GitHub:** * Ve a [https://github.com/settings/developers](https://github.com/settings/developers) * Haz clic en "New OAuth App". * Completa los detalles: * **Application name:** Un nombre para tu aplicación (ej. "Mi Servidor Minecraft"). * **Homepage URL:** La URL de tu servidor o sitio web. * **Authorization callback URL:** La URL a la que GitHub redirigirá al usuario después de la autorización. Por ejemplo: `http://tu-servidor.com/auth/github/callback` (reemplaza con tu URL real). * Obtén el **Client ID** y el **Client Secret**. Guarda estos valores de forma segura. 2. **Estructura del Proyecto (Ejemplo en Python):** ``` mi_servidor_mcp/ ├── server.py # Lógica principal del servidor ├── auth.py # Manejo de la autenticación OAuth └── config.py # Archivo de configuración ``` 3. **Archivo `config.py`:** ```python GITHUB_CLIENT_ID = "TU_CLIENT_ID" # Reemplaza con tu Client ID de GitHub GITHUB_CLIENT_SECRET = "TU_CLIENT_SECRET" # Reemplaza con tu Client Secret de GitHub GITHUB_CALLBACK_URL = "http://tu-servidor.com/auth/github/callback" # Reemplaza con tu URL de callback SERVER_PORT = 25565 # Puerto del servidor Minecraft ``` 4. **Archivo `auth.py` (Manejo de Autenticación OAuth):** ```python import requests import config def get_github_access_token(code): """Obtiene el token de acceso de GitHub usando el código de autorización.""" data = { 'client_id': config.GITHUB_CLIENT_ID, 'client_secret': config.GITHUB_CLIENT_SECRET, 'code': code } headers = {'Accept': 'application/json'} response = requests.post('https://github.com/login/oauth/access_token', data=data, headers=headers) response.raise_for_status() # Lanza una excepción si hay un error return response.json().get('access_token') def get_github_user_info(access_token): """Obtiene la información del usuario de GitHub usando el token de acceso.""" headers = {'Authorization': f'token {access_token}'} response = requests.get('https://api.github.com/user', headers=headers) response.raise_for_status() return response.json() def get_minecraft_uuid(username): """Obtiene el UUID de Minecraft para un nombre de usuario.""" response = requests.get(f'https://api.mojang.com/users/profiles/minecraft/{username}') if response.status_code == 200: return response.json().get('id') else: return None ``` 5. **Archivo `server.py` (Ejemplo Simplificado del Servidor):** ```python import socket import threading import auth import config import uuid # Para generar UUIDs si no se encuentra el usuario en Mojang def handle_client(client_socket): """Maneja la conexión de un cliente.""" try: # Simulación de la recepción de un "código" de GitHub (en la realidad, esto vendría de la URL de callback) # **IMPORTANTE:** En un escenario real, el cliente (Minecraft) *no* interactúa directamente con GitHub. # El flujo sería: # 1. El usuario hace clic en un enlace en el juego que lo redirige a GitHub para la autorización. # 2. GitHub redirige al usuario de vuelta a *tu servidor web* (la callback URL). # 3. *Tu servidor web* recibe el código de autorización. # 4. *Tu servidor web* usa el código para obtener el token de acceso de GitHub. # 5. *Tu servidor web* usa el token de acceso para obtener la información del usuario de GitHub. # 6. *Tu servidor web* envía la información del usuario (o un token de sesión) al cliente de Minecraft. # **ESTO ES SOLO UNA SIMULACIÓN PARA DEMOSTRAR EL CONCEPTO:** github_auth_code = "SIMULATED_GITHUB_AUTH_CODE" # Reemplaza con el código real obtenido del callback # Obtener el token de acceso de GitHub access_token = auth.get_github_access_token(github_auth_code) # Obtener la información del usuario de GitHub user_info = auth.get_github_user_info(access_token) github_username = user_info.get('login') # Obtener el UUID de Minecraft minecraft_uuid = auth.get_minecraft_uuid(github_username) if minecraft_uuid: print(f"Usuario {github_username} autenticado con UUID: {minecraft_uuid}") client_socket.send(f"Autenticado con UUID: {minecraft_uuid}\n".encode()) else: # Si el usuario de GitHub no tiene una cuenta de Minecraft asociada con el mismo nombre, # puedes generar un UUID aleatorio (NO RECOMENDADO para producción, ya que no es persistente). # En un escenario real, deberías tener un sistema para vincular cuentas de GitHub a cuentas de Minecraft. new_uuid = str(uuid.uuid4()) print(f"Usuario {github_username} no encontrado en Mojang. Generando UUID temporal: {new_uuid}") client_socket.send(f"Usuario no encontrado. UUID temporal: {new_uuid}\n".encode()) client_socket.close() except Exception as e: print(f"Error al manejar el cliente: {e}") client_socket.close() def start_server(): """Inicia el servidor.""" server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_address = ('localhost', config.SERVER_PORT) server_socket.bind(server_address) server_socket.listen(5) print(f"Servidor escuchando en {server_address}") while True: client_socket, client_address = server_socket.accept() print(f"Conexión de {client_address}") client_thread = threading.Thread(target=handle_client, args=(client_socket,)) client_thread.start() if __name__ == "__main__": start_server() ``` **Explicación:** * **`config.py`:** Almacena la configuración, incluyendo las credenciales de GitHub OAuth. **Nunca subas este archivo a un repositorio público con tus credenciales reales.** * **`auth.py`:** * `get_github_access_token(code)`: Intercambia el código de autorización (obtenido después de que el usuario autoriza tu aplicación en GitHub) por un token de acceso. * `get_github_user_info(access_token)`: Utiliza el token de acceso para obtener información del usuario de GitHub (como su nombre de usuario). * `get_minecraft_uuid(username)`: Busca el UUID de Minecraft asociado con el nombre de usuario de GitHub. Esto asume que el nombre de usuario de GitHub es el mismo que el nombre de usuario de Minecraft. * **`server.py`:** * `handle_client(client_socket)`: Maneja la conexión de un cliente. **Este es el punto donde la simulación de GitHub OAuth ocurre.** En un escenario real, este código recibiría un token de sesión o información del usuario de un servidor web que ya ha completado el flujo de OAuth. * `start_server()`: Inicia el servidor de socket. **Cómo Ejecutar:** 1. **Instala las dependencias:** ```bash pip install requests ``` 2. **Reemplaza los valores en `config.py`** con tu Client ID, Client Secret y Callback URL de GitHub. 3. **Ejecuta `server.py`:** ```bash python server.py ``` **Limitaciones y Mejoras:** * **Simulación de OAuth:** El código `server.py` simula el flujo de OAuth. En un escenario real, necesitarás un servidor web (ej. usando Flask o Django) para manejar el callback de GitHub y la comunicación con el cliente de Minecraft. * **Seguridad:** Este código es *extremadamente* básico en términos de seguridad. Necesitarás implementar medidas de seguridad robustas, como: * Validación de entradas. * Protección contra ataques de inyección. * Almacenamiento seguro de credenciales. * Uso de HTTPS. * **Persistencia de Datos:** El UUID generado si el usuario no se encuentra en Mojang es temporal. Necesitarás una base de datos para almacenar la información del usuario y los UUIDs de forma persistente. * **Manejo de Errores:** El manejo de errores es muy básico. Necesitas implementar un manejo de errores más robusto. * **Comunicación con el Cliente de Minecraft:** Este ejemplo solo envía un mensaje de texto al cliente. Necesitarás implementar el protocolo MCP completo para comunicarte correctamente con el cliente de Minecraft. * **Vinculación de Cuentas:** La suposición de que el nombre de usuario de GitHub es el mismo que el nombre de usuario de Minecraft es poco realista. Necesitarás un sistema para que los usuarios vinculen sus cuentas de GitHub a sus cuentas de Minecraft. **Flujo de Autenticación Real (Esquema):** 1. **El usuario se conecta al servidor de Minecraft.** 2. **El servidor de Minecraft envía un mensaje al cliente pidiéndole que se autentique.** Este mensaje podría incluir un enlace a la página de autorización de GitHub. 3. **El usuario hace clic en el enlace y es redirigido a GitHub.** 4. **El usuario autoriza tu aplicación en GitHub.** 5. **GitHub redirige al usuario de vuelta a tu servidor web (la callback URL).** 6. **Tu servidor web recibe el código de autorización.** 7. **Tu servidor web usa el código para obtener el token de acceso de GitHub.** 8. **Tu servidor web usa el token de acceso para obtener la información del usuario de GitHub.** 9. **Tu servidor web vincula la cuenta de GitHub a una cuenta de Minecraft (si es necesario).** 10. **Tu servidor web genera un token de sesión y lo envía al cliente de Minecraft.** 11. **El cliente de Minecraft envía el token de sesión al servidor de Minecraft.** 12. **El servidor de Minecraft valida el token de sesión y permite que el usuario juegue.** Este ejemplo te da un punto de partida. La implementación completa de un sistema de autenticación con GitHub OAuth para un servidor de Minecraft es un proyecto más complejo que requiere un servidor web y un conocimiento profundo del protocolo MCP.

MSSQL Database Connector

MSSQL Database Connector

Un servidor de Protocolo de Contexto de Modelo que permite ejecutar consultas SQL y administrar conexiones con bases de datos de Microsoft SQL Server.

Fetch MCP Server

Fetch MCP Server

Proporciona funcionalidad para obtener contenido web en varios formatos, incluyendo HTML, JSON, texto plano y Markdown.

GoHighLevel MCP Server

GoHighLevel MCP Server

A Model Context Protocol server providing comprehensive integration with GoHighLevel's CRM, marketing automation, and business management tools, enabling AI assistants to interact with contacts, conversations, calendars, opportunities, payments, and workflows.

eDistrict Odisha ServicePlus MCP Server

eDistrict Odisha ServicePlus MCP Server

An MCP Server that enables interaction with Odisha's eDistrict services through the API Setu interface, allowing users to access and utilize Odisha government digital services through natural language.

MCP Python Function Generator Server

MCP Python Function Generator Server

geeknews-mcp-server

geeknews-mcp-server

Este proyecto es un servidor de Protocolo de Contexto de Modelo (MCP) que obtiene artículos de GeekNews. Está implementado en Python y realiza web scraping utilizando BeautifulSoup.

Lightning Tools MCP Server

Lightning Tools MCP Server

Permite la interacción con direcciones Lightning y herramientas comunes de Lightning a través de tu LLM, proporcionando funcionalidad de la Red Lightning a través del lenguaje natural.

Swagger MCP

Swagger MCP

Un servidor MCP que se conecta a una especificación Swagger y ayuda a una IA a construir todos los modelos requeridos para generar un servidor MCP para ese servicio.

Qiniu MCP Server

Qiniu MCP Server

An S3 resource server based on Model Control Protocol (MCP) that supports accessing and managing Qiniu Cloud Kodo storage services, enabling users to list buckets, browse objects, read content, and handle multiple storage buckets concurrently.

Mermaid Chart MCP

Mermaid Chart MCP

A powerful Model Context Protocol server that automatically generates Mermaid diagrams from code and provides SVG beautification features.

CLP MCP Server

CLP MCP Server

An MCP server implementation that allows Claude to read and process CLP (Compact Log Protocol) files, supporting both stdio and SSE/HTTP communication methods.

WebSearch MCP Server

WebSearch MCP Server

A server that enables web searches using different providers (currently Bing) and converts URL content to Markdown, with support for retrieving WeChat official account articles.

Atlassian MCP

Atlassian MCP

Plugin de código gestionado para Cursor IDE que proporciona integración con productos de Atlassian (JIRA, Confluence, BitBucket), permitiendo a los desarrolladores buscar tareas, crear nuevos problemas, ver documentación y gestionar repositorios de código directamente desde el IDE.

Ensembl MCP Server

Ensembl MCP Server

A Model Context Protocol server providing LLMs with access to the Ensembl genomics database, enabling AI assistants to query gene information, sequences, variants, and other genomic data across multiple species.

Pentest MCP

Pentest MCP

Un servidor de Protocolo de Contexto de Modelo que integra herramientas esenciales de pruebas de penetración (Nmap, Gobuster, Nikto, John the Ripper) en una interfaz unificada de lenguaje natural, permitiendo a los profesionales de seguridad ejecutar y encadenar múltiples herramientas a través de comandos conversacionales.

PDB MCP Server

PDB MCP Server

PDB MCP Server

Delve MCP

Delve MCP

Un servidor MCP basado en TypeScript que proporciona una interfaz completa al depurador Delve para programas Go, permitiendo la depuración, el rastreo y el análisis de código Go a través de comandos en lenguaje natural.

chess-uci-mcp

chess-uci-mcp

Servidor MCP para conectar con los motores de ajedrez utilizando el protocolo UCI.

Kobold MCP Server

Kobold MCP Server

A server enabling integration between KoboldAI's text generation capabilities and MCP-compatible applications, with features like chat completion, Stable Diffusion, and OpenAI-compatible API endpoints.

QGIS Model Context Protocol Integration

QGIS Model Context Protocol Integration

Conecta Claude AI a QGIS a través del Protocolo de Contexto de Modelos, permitiendo que Claude interactúe y controle directamente QGIS para tareas como la creación de proyectos, la manipulación de capas y la ejecución de código.

Kolada MCP Server

Kolada MCP Server

Un servidor MCP para Kolada.

Whissle MCP Server

Whissle MCP Server

Un servidor basado en Python que proporciona acceso a los puntos finales de la API de Whissle para la conversión de voz a texto, la diarización, la traducción y el resumen de texto.

Awesome MCP Server CN

Awesome MCP Server CN

Una colección de servidores MCP para servicios en China continental.

My First MCP Server

My First MCP Server

Mi primer servidor mcp

Lara Translate MCP Server

Lara Translate MCP Server

Un servidor MCP que proporciona capacidades de traducción automática a través de la API Lara Translate, con detección de idiomas y traducciones sensibles al contexto entre numerosos pares de idiomas.

Unstructured API Server

Unstructured API Server

Una implementación de servidor MCP que permite la interacción con la API de Unstructured, proporcionando herramientas para listar, crear, actualizar y administrar fuentes, destinos y flujos de trabajo.

tabular-mcp

tabular-mcp

tabular-mcp

RAGmonsters Custom PostgreSQL MCP Server

RAGmonsters Custom PostgreSQL MCP Server

A domain-specific MCP server that provides optimized API access to the RAGmonsters fictional monster dataset, enabling more efficient and secure interactions compared to generic SQL queries.

test-mcp-server

test-mcp-server