发现优秀的 MCP 服务器
通过 MCP 服务器扩展您的代理能力,拥有 14,326 个能力。
Apple MCP Server
mpc-test
一个能够测试 MCP 协议所有功能的 MCP 服务器

Weather MCP Server
A simple MCP server that provides a tool to fetch current weather information for cities using the Open-Meteo API, communicating through stdin/stdout.

PiAPI-MCP Server
一个基于 TypeScript 的模型上下文协议 (MCP) 服务器,它支持与 PiAPI 集成,以便使用 Midjourney、Flux 等平台,通过兼容 MCP 的应用程序生成媒体内容。

Twilio Frontline MCP Server
An MCP server that enables interaction with Twilio Frontline API for customer communication workflows, auto-generated using AG2's MCP builder.
mcp-server-appointment-management
这个项目是一个基于 Java 的 MCP (模型-上下文-协议) 服务器,旨在管理来自数据库的预约数据。它提供了一个模块化的框架,暴露了用于数据访问和操作的内部工具,并内置了对 AI 驱动功能的支持。

ExploitDB MCP Server
一个模型上下文协议服务器,使 AI 助手能够从漏洞利用数据库中搜索和检索有关安全漏洞和弱点的信息,从而增强网络安全研究能力。

MCP Proxy Server
一个中心枢纽,将多个 MCP 资源服务器聚合到一个统一的界面中,使用户能够通过一个连接点访问来自多个后端服务器的工具和功能。

Inbox Zero AI MCP
一个 MCP 可以帮助你管理你的电子邮件。例如,它可以识别哪些邮件需要回复或跟进。 它提供的功能超越了基本的 Gmail 功能。

Moneybird MCP Server
一个模型上下文协议服务器,可以将 Claude 等 AI 助手连接到 Moneybird 会计软件,从而可以通过自然语言管理联系人、财务数据、产品和业务运营。
Spotify-Agent
Okay, this is a complex project, and I can't provide you with a complete, ready-to-run MCP (Minecraft Protocol) server implementation here. Building a full MCP server with Spotify, Last.fm, and internet integration for music recommendations requires significant coding effort and knowledge of several technologies. However, I can give you a detailed outline, code snippets (in Python, as it's commonly used for these tasks), and guidance to get you started. **I. Project Overview** The goal is to create an MCP server plugin (or a standalone server that interacts with a Minecraft server) that: 1. **Connects to Spotify and Last.fm APIs:** Retrieves user listening history, track information, artist information, and similar artist data. 2. **Interacts with the Internet (e.g., for Lyrics):** Fetches lyrics for songs. 3. **Stores and Processes Music Data:** Creates a database or data structure to store user preferences, track information, and recommendation data. 4. **Provides Minecraft Commands:** Allows players to request recommendations, view their listening history, and interact with the music system within the game. 5. **Delivers Recommendations:** Generates music recommendations based on user data and similarity algorithms. **II. Technology Stack** * **Minecraft Server:** You'll need a Minecraft server (e.g., Spigot, Paper, Fabric). Choose one you're comfortable with. * **MCP Server Library/Framework:** Choose a library that simplifies MCP server development. Popular options include: * **Python:** `mcstatus`, `nbt`, `minecraft-protocol` (for lower-level control) * **Java:** Spigot API, Paper API (if you're building a plugin) * **Programming Language:** Python or Java are good choices. Python is often preferred for scripting and API interactions. * **Spotify API:** Use the Spotify Web API (requires a Spotify Developer account). * **Last.fm API:** Use the Last.fm API (requires a Last.fm API key). * **Lyrics API (Optional):** Consider using a lyrics API like Lyrics.ovh or Musixmatch API. * **Database (Optional):** Consider using a database (e.g., SQLite, MySQL, PostgreSQL) to store user data and music information. SQLite is a good choice for smaller projects. * **Recommendation Algorithm:** Implement a recommendation algorithm (e.g., collaborative filtering, content-based filtering, hybrid approach). **III. Detailed Steps and Code Snippets (Python Example)** **1. Setting up the MCP Server (Python)** ```python import socket import struct import json import threading # Configuration HOST = 'localhost' PORT = 25565 # Default Minecraft port def handle_client(conn, addr): print(f"Connected by {addr}") try: # Handshake data = conn.recv(256) packet_length = struct.unpack('>i', data[:4])[0] packet_id = struct.unpack('>b', data[4:5])[0] if packet_id == 0x00: # Handshake packet handshake_data = json.loads(data[5:].decode('utf-8')) print(f"Handshake data: {handshake_data}") # Status Request data = conn.recv(256) packet_length = struct.unpack('>i', data[:4])[0] packet_id = struct.unpack('>b', data[4:5])[0] if packet_id == 0x00: # Status Request # Respond with server status status = { "version": { "name": "My Music Server", "protocol": 754 # Example protocol version }, "players": { "max": 100, "online": 0, "sample": [] }, "description": { "text": "A server for music recommendations!" } } status_json = json.dumps(status) status_bytes = status_json.encode('utf-8') status_length = len(status_bytes) response = struct.pack('>i', status_length + 1) + struct.pack('>b', 0x00) + status_bytes conn.sendall(response) # Ping Request data = conn.recv(256) packet_length = struct.unpack('>i', data[:4])[0] packet_id = struct.unpack('>b', data[4:5])[0] if packet_id == 0x01: # Ping Request ping_payload = data[5:] response = struct.pack('>i', len(ping_payload) + 1) + struct.pack('>b', 0x01) + ping_payload conn.sendall(response) except Exception as e: print(f"Error handling client: {e}") finally: conn.close() print(f"Connection closed with {addr}") def start_server(): server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # Allow reuse of the address server_socket.bind((HOST, PORT)) server_socket.listen(5) print(f"Server listening on {HOST}:{PORT}") while True: conn, addr = server_socket.accept() client_thread = threading.Thread(target=handle_client, args=(conn, addr)) client_thread.start() if __name__ == "__main__": start_server() ``` **Explanation:** * **`socket`:** Creates a socket for network communication. * **`struct`:** Packs and unpacks data in binary format (required for the Minecraft protocol). * **`json`:** Handles JSON data for the server status. * **`threading`:** Allows handling multiple client connections concurrently. * **`handle_client`:** This function handles the communication with a single Minecraft client. It receives the handshake, status request, and ping request, and sends back the appropriate responses. * **`start_server`:** Sets up the server socket and listens for incoming connections. **Important:** This is a *very* basic MCP server. It only handles the handshake, status request, and ping request. You'll need to implement the full Minecraft protocol to handle player login, chat messages, commands, and other game events. **2. Integrating with Spotify and Last.fm APIs** ```python import spotipy from spotipy.oauth2 import SpotifyClientCredentials import pylast # Spotify API Credentials (replace with your own) SPOTIPY_CLIENT_ID = "YOUR_SPOTIFY_CLIENT_ID" SPOTIPY_CLIENT_SECRET = "YOUR_SPOTIFY_CLIENT_SECRET" # Last.fm API Credentials (replace with your own) LASTFM_API_KEY = "YOUR_LASTFM_API_KEY" LASTFM_API_SECRET = "YOUR_LASTFM_API_SECRET" # Initialize Spotify client client_credentials_manager = SpotifyClientCredentials(client_id=SPOTIPY_CLIENT_ID, client_secret=SPOTIPY_CLIENT_SECRET) sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager) # Initialize Last.fm network network = pylast.LastFMNetwork( api_key=LASTFM_API_KEY, api_secret=LASTFM_API_SECRET, username="YOUR_LASTFM_USERNAME" # Replace with a Last.fm username for testing ) def get_spotify_track_info(track_name, artist_name): """Searches Spotify for a track and returns track information.""" query = f"track:{track_name} artist:{artist_name}" results = sp.search(q=query, type='track', limit=1) if results['tracks']['items']: track = results['tracks']['items'][0] return { 'id': track['id'], 'name': track['name'], 'artist': track['artists'][0]['name'], 'album': track['album']['name'], 'popularity': track['popularity'], 'uri': track['uri'] } else: return None def get_lastfm_recent_tracks(username): """Gets the recent tracks played by a Last.fm user.""" user = network.get_user(username) recent_tracks = user.get_recent_tracks(limit=10) # Get the last 10 tracks tracks = [] for item in recent_tracks: track = item.track tracks.append({ 'artist': track.artist.name, 'title': track.title }) return tracks # Example usage if __name__ == "__main__": # Spotify Example track_info = get_spotify_track_info("Bohemian Rhapsody", "Queen") if track_info: print("Spotify Track Info:", track_info) else: print("Track not found on Spotify.") # Last.fm Example recent_tracks = get_lastfm_recent_tracks("YOUR_LASTFM_USERNAME") # Replace with your Last.fm username print("\nLast.fm Recent Tracks:") for track in recent_tracks: print(f"- {track['artist']} - {track['title']}") ``` **Explanation:** * **`spotipy`:** The Spotify API library. You'll need to install it: `pip install spotipy` * **`pylast`:** The Last.fm API library. You'll need to install it: `pip install pylast` * **API Credentials:** You *must* replace the placeholder credentials with your own API keys and secrets from the Spotify Developer Dashboard and the Last.fm API page. * **`get_spotify_track_info`:** Searches Spotify for a track and returns information like ID, name, artist, album, and popularity. * **`get_lastfm_recent_tracks`:** Gets the recent tracks played by a Last.fm user. **3. Handling Minecraft Commands** You'll need to integrate your music functionality with Minecraft commands. The specific way to do this depends on the MCP server library you're using. Here's a general outline: * **Command Registration:** Register a new command (e.g., `/musicrecommend`, `/mylistenhistory`). * **Command Parsing:** Parse the arguments provided with the command. * **Command Execution:** Execute the appropriate music-related function based on the command and arguments. * **Response to Player:** Send a message back to the player in the Minecraft chat window with the results (e.g., the recommended songs, their listening history). **Example (Conceptual - using a hypothetical MCP library):** ```python # Hypothetical MCP library functions def register_command(command_name, command_handler): # Registers a command with the server pass def send_message_to_player(player_name, message): # Sends a message to a player in the game pass def handle_music_recommend_command(player_name, args): # Get the player's Last.fm username (from a database or configuration) lastfm_username = get_player_lastfm_username(player_name) if not lastfm_username: send_message_to_player(player_name, "Please link your Last.fm account first.") return # Get the player's recent tracks from Last.fm recent_tracks = get_lastfm_recent_tracks(lastfm_username) # Generate recommendations (implementation details omitted) recommendations = generate_recommendations(recent_tracks) # Format the recommendations into a message message = "Recommended Songs:\n" for track in recommendations: message += f"- {track['artist']} - {track['title']}\n" # Send the recommendations to the player send_message_to_player(player_name, message) def get_player_lastfm_username(player_name): # This function would retrieve the Last.fm username associated with the player # from a database or configuration file. # For example: # player_data = database.get_player_data(player_name) # return player_data.get('lastfm_username') return "YOUR_LASTFM_USERNAME" # Replace with your Last.fm username for testing # Register the command register_command("musicrecommend", handle_music_recommend_command) ``` **4. Recommendation Algorithm** This is the most complex part. Here are some approaches: * **Collaborative Filtering:** Find users with similar listening habits and recommend songs they like that the current user hasn't heard. Requires a database of user listening data. * **Content-Based Filtering:** Analyze the characteristics of the songs the user likes (e.g., genre, tempo, mood) and recommend songs with similar characteristics. You can use the Spotify API to get track features. * **Hybrid Approach:** Combine collaborative and content-based filtering for better results. **Example (Simplified Content-Based Filtering):** ```python def generate_recommendations(recent_tracks): """Generates recommendations based on recent tracks.""" recommendations = [] for track in recent_tracks: # Get Spotify track info track_info = get_spotify_track_info(track['title'], track['artist']) if track_info: # Get similar artists from Spotify artist_id = sp.artist(track_info['uri'].split(':')[2])['artists'][0]['id'] related_artists = sp.artist_related_artists(artist_id)['artists'] # Get top tracks from related artists for artist in related_artists[:3]: # Limit to 3 related artists top_tracks = sp.artist_top_tracks(artist['id'])['tracks'][:2] # Limit to 2 tracks for top_track in top_tracks: recommendations.append({ 'artist': top_track['artists'][0]['name'], 'title': top_track['name'] }) return recommendations ``` **5. Database (Optional)** If you want to store user data (e.g., Last.fm usernames, listening history), you'll need a database. SQLite is a good choice for smaller projects. ```python import sqlite3 # Database setup conn = sqlite3.connect('music_server.db') cursor = conn.cursor() # Create a table to store player data cursor.execute(''' CREATE TABLE IF NOT EXISTS players ( player_name TEXT PRIMARY KEY, lastfm_username TEXT ) ''') conn.commit() def set_player_lastfm_username(player_name, lastfm_username): """Sets the Last.fm username for a player in the database.""" cursor.execute("INSERT OR REPLACE INTO players (player_name, lastfm_username) VALUES (?, ?)", (player_name, lastfm_username)) conn.commit() def get_player_lastfm_username(player_name): """Gets the Last.fm username for a player from the database.""" cursor.execute("SELECT lastfm_username FROM players WHERE player_name = ?", (player_name,)) result = cursor.fetchone() if result: return result[0] else: return None # Example usage if __name__ == "__main__": set_player_lastfm_username("Player123", "YOUR_LASTFM_USERNAME") # Replace with your Last.fm username username = get_player_lastfm_username("Player123") print(f"Last.fm username for Player123: {username}") conn.close() ``` **IV. Key Considerations and Challenges** * **Minecraft Protocol:** Understanding the Minecraft protocol is crucial for building a functional MCP server. It's complex and constantly evolving. * **API Rate Limits:** The Spotify and Last.fm APIs have rate limits. You need to handle these limits gracefully to avoid being blocked. Implement caching and throttling. * **User Authentication:** You'll need a way for players to link their Spotify/Last.fm accounts to their Minecraft accounts. This typically involves OAuth 2.0. * **Data Storage:** Choosing the right data storage solution (database, file system, etc.) depends on the scale of your project. * **Performance:** Generating recommendations can be computationally expensive. Optimize your code and consider using background threads or asynchronous tasks. * **Error Handling:** Implement robust error handling to deal with API errors, network issues, and invalid user input. * **Security:** Protect API keys and user data. Don't store sensitive information in plain text. * **Scalability:** If you plan to support a large number of users, you'll need to design your system to be scalable. **V. Next Steps** 1. **Choose an MCP Server Library:** Select a library that suits your needs and programming language preference. 2. **Implement the Basic MCP Server:** Get a basic MCP server running that can handle the handshake, status request, and ping request. 3. **Integrate with the Spotify and Last.fm APIs:** Implement the functions to retrieve user listening history and track information. 4. **Implement Command Handling:** Add the ability to register and handle Minecraft commands. 5. **Implement a Recommendation Algorithm:** Start with a simple algorithm and gradually improve it. 6. **Add a Database (Optional):** If you need to store user data, set up a database. 7. **Test Thoroughly:** Test your server with multiple Minecraft clients and different scenarios. **VI. Chinese Translation of Key Terms** Here's a translation of some key terms that might be helpful: * **MCP Server:** MCP服务器 (MCP fúwùqì) * **Spotify API:** Spotify API (Spotify API) (Note: API is often used directly in Chinese) * **Last.fm API:** Last.fm API (Last.fm API) * **Recommendation Algorithm:** 推荐算法 (tuījiàn suànfǎ) * **Minecraft Command:** Minecraft 命令 (Minecraft mìnglìng) * **Listening History:** 听歌历史 (tīng gē lìshǐ) * **API Key:** API 密钥 (API mìyào) * **Database:** 数据库 (shùjùkù) * **User Authentication:** 用户认证 (yònghù rènzhèng) * **Rate Limit:** 速率限制 (sùlǜ xiànzhì) or 频率限制 (pínlǜ xiànzhì) * **Collaborative Filtering:** 协同过滤 (xiétóng guòlǜ) * **Content-Based Filtering:** 基于内容的过滤 (jī yú nèiróng de guòlǜ) This is a substantial project, but by breaking it down into smaller steps and using the resources and guidance provided, you can make progress towards building your music recommendation MCP server. Good luck!

Global MCP Server
A modular MCP server that extends GitHub Copilot's capabilities through intelligent context compression and dynamic model routing for long-lived coding sessions.

mysqldb-mcp-server
一个 MCP 服务器,可以实现 MySQL 数据库与 Claude 的集成。你可以执行 SQL 查询并管理数据库连接。
Sequential Thinking MCP Server
一个 MCP 服务器,它通过构建思维过程并自动将每个会话记录到 Recall,从而实现动态的、反思性的问题解决。
mcp-server-pdfme
MCPサーバの作り方 & 使い方
MCP Server/Client 指的是 **Minecraft Protocol Server/Client**,即 **Minecraft 协议服务器/客户端**。 更具体地说: * **Minecraft Protocol (MCP)**: 这是 Minecraft 客户端和服务器之间通信所使用的协议。它定义了客户端和服务器如何交换数据,例如玩家的位置、方块的变化、聊天消息等等。 它是一套规则和格式,确保双方能够理解彼此发送的信息。 * **MCP Server (Minecraft Protocol Server)**: 这是一个实现了 Minecraft 协议的服务器。 官方的 Minecraft 服务器就是一个 MCP 服务器。 但是,也存在许多其他的 MCP 服务器实现,例如用于创建自定义服务器或代理服务器。 它们负责接收来自客户端的请求,处理这些请求,并将响应发送回客户端。 * **MCP Client (Minecraft Protocol Client)**: 这是一个实现了 Minecraft 协议的客户端。 官方的 Minecraft 游戏客户端就是一个 MCP 客户端。 它负责连接到 MCP 服务器,发送请求(例如移动、挖掘、聊天),并接收来自服务器的响应,然后将这些响应呈现给玩家。 同样,也存在非官方的 MCP 客户端,例如用于自动化任务或测试。 **简单来说:** 想象一下,你在餐厅点餐。 * **MCP 协议** 就像餐厅的菜单,规定了你可以点什么菜,以及如何点菜(例如,你需要说出菜名和数量)。 * **MCP 服务器** 就像餐厅的服务员,负责接收你的订单,将订单交给厨房,然后将做好的菜端给你。 * **MCP 客户端** 就像你,负责阅读菜单,点菜,然后享用美食。 因此,MCP Server/Client 描述了 Minecraft 客户端和服务器之间基于 Minecraft 协议的通信关系。
Phalcon MCP Server
集成了 BlockSec 的 MCP 服务器 (Jí chéng le BlockSec de MCP fúwùqì) This translates to: * **集成 (Jí chéng):** Integrated / Integrates * **BlockSec 的 (BlockSec de):** BlockSec's / of BlockSec * **MCP 服务器 (MCP fúwùqì):** MCP Server Therefore, the whole phrase means "MCP server that integrates with BlockSec".
mcp-servers

GitHub Actions MCP Server
一个 MCP 服务器,它通过 GitHub API 提供列出、查看、触发、取消和重新运行工作流的工具,从而使 AI 助手能够管理 GitHub Actions 工作流。
MCP API Connect
允许 MCP 发起 REST API 调用的 MCP 服务器

IssueBadge MCP Server
A Model Context Protocol server that enables AI assistants to create, issue, and manage digital badges and certificates using natural language.

Kie.ai MCP Server
Enables AI-powered image generation and editing with Nano Banana, plus professional video creation with Veo3, all through Kie.ai's APIs. Includes task tracking, status monitoring, and 1080p video upgrades.

Parliament MCP Server
An MCP server that provides tools for parliamentary research by allowing users to search constituencies, elections, members, government posts, debates, and Hansard records, with additional semantic search capabilities over parliamentary data.

ExMCP Test ServerExMCP Test Server Summary
好的,这是将 "Test implementation of mcp server in Elixir" 翻译成中文的几种选择,根据不同的语境,可以选择最合适的: * **最直接的翻译:** Elixir 中 MCP 服务器的测试实现 * **更自然的翻译:** 使用 Elixir 实现的 MCP 服务器的测试 * **更详细的翻译:** 在 Elixir 中测试 MCP 服务器的实现 * **如果强调正在进行测试:** Elixir 中 MCP 服务器实现的测试工作 一般来说,**Elixir 中 MCP 服务器的测试实现** 或者 **使用 Elixir 实现的 MCP 服务器的测试** 比较常用。 所以,我推荐使用: **Elixir 中 MCP 服务器的测试实现** 或者 **使用 Elixir 实现的 MCP 服务器的测试**
SEC EDGAR MCP
用于美国证券交易委员会 EDGAR 系统的模型上下文协议 (MCP) 服务器

Typecast API MCP Server
通过模型上下文协议实现与 Typecast API 的无缝集成,允许客户端以标准化的方式管理声音、将文本转换为语音以及播放音频。
first-mcp-server
Raygun MCP Server
镜子 (jìng zi)

tinypng-mcp-server
使用 MCP 通过 TinyPNG

Llama 4 Maverick MCP Server
Bridges Llama models with Claude Desktop through Ollama, enabling privacy-first local AI operations with 10+ built-in tools for file operations, web search, calculations, and custom model deployment. Features streaming support, hybrid intelligence workflows, and extensive Python ecosystem integration for research, development, and enterprise applications.