Discover Awesome MCP Servers
Extend your agent with 53,434 capabilities via MCP servers.
- All53,434
- Developer Tools3,867
- Search1,714
- Research & Data1,557
- AI Integration Systems229
- Cloud Platforms219
- Data & App Analysis181
- Database Interaction177
- Remote Shell Execution165
- Browser Automation147
- Databases145
- Communication137
- AI Content Generation127
- OS Automation120
- Programming Docs Access109
- Content Fetching108
- Note Taking97
- File Systems96
- Version Control93
- Finance91
- Knowledge & Memory90
- Monitoring79
- Security71
- Image & Video Processing69
- Digital Note Management66
- AI Memory Systems62
- Advanced AI Reasoning59
- Git Management Tools58
- Cloud Storage51
- Entertainment & Media43
- Virtualization42
- Location Services35
- Web Automation & Stealth32
- Media Content Processing32
- Calendar Management26
- Ecommerce & Retail18
- Speech Processing18
- Customer Data Platforms16
- Travel & Transportation14
- Education & Learning Tools13
- Home Automation & IoT13
- Web Search Integration12
- Health & Wellness10
- Customer Support10
- Marketing9
- Games & Gamification8
- Google Cloud Integrations7
- Art & Culture4
- Language Translation3
- Legal & Compliance2
Initial thoughts
Okay, I understand. You want to convert OpenAPI specifications into tools that are ready to be used with an MCP (presumably, Management Control Plane) server. Here's a breakdown of the process and considerations, along with the Indonesian translation of key terms: **Understanding the Goal** The core idea is to take an OpenAPI (formerly Swagger) specification, which describes a REST API, and automatically generate code or configuration that allows an MCP server to interact with and manage that API. This typically involves: * **API Discovery:** The MCP needs to understand the API's endpoints, methods (GET, POST, PUT, DELETE, etc.), request parameters, and response formats. The OpenAPI specification provides this information. * **Code Generation/Configuration:** Based on the OpenAPI spec, you'll generate code or configuration files that the MCP server can use to: * Make API calls. * Handle authentication and authorization. * Monitor API performance. * Implement policies (e.g., rate limiting, access control). * **Deployment/Integration:** The generated code/configuration needs to be deployed to or integrated with the MCP server. **Key Steps and Tools (with Indonesian Translations)** 1. **OpenAPI Specification (Spesifikasi OpenAPI):** This is your starting point. It's a YAML or JSON file that describes your API. Make sure it's valid and complete. 2. **Code Generation Tools (Alat Pembuat Kode):** Several tools can generate code from OpenAPI specifications. Popular options include: * **Swagger Codegen (Swagger Codegen):** A widely used tool that supports many languages and frameworks. It can generate server stubs, client SDKs, and documentation. *Note: Swagger Codegen is now deprecated. Consider using OpenAPI Generator.* * **OpenAPI Generator (Generator OpenAPI):** A fork of Swagger Codegen with active development and a broader range of supported languages and frameworks. This is the recommended option. * **AutoRest (AutoRest):** Developed by Microsoft, primarily for generating client SDKs for Azure services, but it can be used for other APIs as well. * **openapi-cli (openapi-cli):** A command-line tool for validating, linting, and transforming OpenAPI specifications. Can also be used for code generation with plugins. 3. **MCP Server Integration (Integrasi Server MCP):** This is the most crucial and potentially complex step. You need to understand how your specific MCP server works and how it accepts new API integrations. Consider these aspects: * **MCP Server API (API Server MCP):** Does the MCP server have its own API for registering and managing external APIs? If so, you might need to generate code that interacts with *that* API. * **Configuration Format (Format Konfigurasi):** Does the MCP server use a specific configuration format (e.g., YAML, JSON, XML) to define API integrations? You might need to generate configuration files in that format. * **Plugin Architecture (Arsitektur Plugin):** Does the MCP server support plugins or extensions? If so, you might need to generate a plugin that integrates with the MCP server's architecture. * **Authentication/Authorization (Autentikasi/Otorisasi):** How does the MCP server handle authentication and authorization for the APIs it manages? You'll need to ensure that the generated code/configuration is compatible with the MCP server's security mechanisms. 4. **Customization (Kustomisasi):** The generated code/configuration might not be perfect out of the box. You'll likely need to customize it to fit your specific requirements. This could involve: * Adding custom logic for error handling. * Implementing specific authentication schemes. * Optimizing performance. * Integrating with other services. **Example Workflow (using OpenAPI Generator)** Let's say you have an OpenAPI specification named `my_api.yaml` and you want to generate a Python client library for your MCP server. 1. **Install OpenAPI Generator:** ```bash # Using Docker (recommended) docker pull openapitools/openapi-generator-cli ``` 2. **Generate the Python client:** ```bash docker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli generate \ -i /local/my_api.yaml \ -g python \ -o /local/my_api_client ``` This will generate a Python client library in the `my_api_client` directory. 3. **Integrate with MCP Server:** This is the MCP-specific part. You'll need to: * **Understand how your MCP server handles API integrations.** Does it require a specific configuration file? Does it have an API for registering new APIs? * **Write code to use the generated Python client within the MCP server's environment.** This might involve creating a plugin or module that uses the client to make API calls. * **Configure the MCP server to use the generated client and handle authentication/authorization.** **Indonesian Translation of Key Terms** * **OpenAPI Specification:** Spesifikasi OpenAPI * **Management Control Plane (MCP):** Bidang Kontrol Manajemen (MCP) * **API:** API (Antarmuka Pemrograman Aplikasi) * **Endpoint:** Titik Akhir * **Method (GET, POST, PUT, DELETE):** Metode (GET, POST, PUT, DELETE) * **Request Parameter:** Parameter Permintaan * **Response Format:** Format Respons * **Code Generation:** Pembuatan Kode * **Configuration:** Konfigurasi * **Deployment:** Penyebaran * **Integration:** Integrasi * **Server Stub:** Stub Server * **Client SDK:** SDK Klien (Software Development Kit) * **Documentation:** Dokumentasi * **Plugin:** Plugin * **Authentication:** Autentikasi * **Authorization:** Otorisasi * **Customization:** Kustomisasi **Important Considerations** * **MCP Server Capabilities:** The most important factor is understanding the capabilities of your MCP server. What kind of integrations does it support? What configuration options are available? * **API Complexity:** The complexity of your API will affect the amount of customization required. Simple APIs might require minimal customization, while complex APIs might require significant effort. * **Security:** Pay close attention to security considerations, especially authentication and authorization. Make sure the generated code/configuration is secure and compliant with your organization's security policies. * **Testing:** Thoroughly test the generated code/configuration to ensure that it works correctly and doesn't introduce any security vulnerabilities. **In summary, converting OpenAPI specifications to MCP server-ready tools involves using code generation tools to create client libraries or configuration files, and then integrating those artifacts with your specific MCP server. The integration process is highly dependent on the capabilities and architecture of your MCP server.** To give you more specific advice, I need to know: 1. **What MCP server are you using?** (e.g., Kong, Tyk, Apigee, a custom-built MCP) 2. **What programming language(s) are you comfortable with?** 3. **What is the purpose of integrating the API with the MCP server?** (e.g., rate limiting, authentication, monitoring) Once I have this information, I can provide more tailored guidance.
Weather MCP Server
Here's a sample MCP (Minecraft Protocol) server implementation in Python using the `mcstatus` library to fetch weather forecasts. This is a simplified example and would need further development for a fully functional MCP server. ```python import asyncio import json from mcstatus import JavaServer async def handle_connection(reader, writer): """Handles a single client connection.""" addr = writer.get_extra_info('peername') print(f"Connected by {addr}") try: while True: data = await reader.readline() if not data: break message = data.decode().strip() print(f"Received {message!r} from {addr}") if message.startswith("WEATHER"): # Extract server address from the message (e.g., WEATHER mc.hypixel.net) try: server_address = message.split(" ", 1)[1] except IndexError: response = "ERROR: Invalid WEATHER command. Usage: WEATHER <server_address>" else: try: server = JavaServer.lookup(server_address) status = await server.status() # This is a placeholder. MCP doesn't directly provide weather. # You'd need to implement a custom plugin on the Minecraft server # to expose weather data via a custom MCP command. # For this example, we'll just return some dummy data. weather_data = { "server": server_address, "raining": False, # Replace with actual data if available "thunder": False, # Replace with actual data if available "temperature": 25.0 # Replace with actual data if available } response = json.dumps(weather_data) except Exception as e: response = f"ERROR: Could not retrieve server status: {e}" else: response = "ERROR: Unknown command" print(f"Send: {response!r}") writer.write(response.encode() + b'\n') # Add newline for MCP await writer.drain() except Exception as e: print(f"Error handling connection: {e}") finally: print(f"Closing the connection from {addr}") writer.close() await writer.wait_closed() async def main(): """Main function to start the server.""" server = await asyncio.start_server( handle_connection, '127.0.0.1', 8888) # Listen on localhost:8888 addr = server.sockets[0].getsockname() print(f"Serving on {addr}") async with server: await server.serve_forever() if __name__ == "__main__": asyncio.run(main()) ``` Key improvements and explanations: * **Error Handling:** Includes `try...except` blocks to catch potential errors during server status retrieval and connection handling. This is crucial for a robust server. Specifically catches `IndexError` for malformed `WEATHER` commands and a general `Exception` for server status errors. * **Asynchronous Operations:** Uses `asyncio` for concurrent connection handling. This is essential for a server that needs to handle multiple clients simultaneously. Uses `await` correctly with asynchronous functions. * **MCP-like Communication:** The server now reads lines from the client and sends lines back. This is a more typical MCP communication pattern. The response is encoded to bytes and a newline character (`\n`) is appended, which is important for MCP clients to recognize the end of the message. * **`mcstatus` Library:** Uses the `mcstatus` library to query Minecraft server status. This is a much better approach than trying to implement the Minecraft protocol yourself. Install it with `pip install mcstatus`. * **Clearer Command Handling:** The `if message.startswith("WEATHER"):` block handles the `WEATHER` command. It extracts the server address from the command. * **Dummy Weather Data:** **Important:** The code now includes a placeholder for weather data. *MCP does not directly provide weather information*. To get weather data, you would need to: 1. **Install a custom plugin on the Minecraft server.** This plugin would need to expose weather information through a custom command or API. 2. **Modify the Python server to connect to the Minecraft server plugin** (likely via RCON or a similar protocol) to retrieve the weather data. 3. **Format the weather data** and send it back to the MCP client. * **JSON Encoding:** The weather data is now encoded as a JSON string before being sent back to the client. This makes it easier for the client to parse the data. * **Error Responses:** The server now sends error responses to the client if there are problems with the command or the server status retrieval. * **Comments:** Added more comments to explain the code. * **Correct `asyncio.run` usage:** Uses `asyncio.run(main())` to properly start the asynchronous event loop. * **`writer.drain()`:** Calls `await writer.drain()` after writing to the socket. This ensures that the data is actually sent to the client. * **`writer.wait_closed()`:** Calls `await writer.wait_closed()` to ensure the writer is fully closed before exiting the `handle_connection` function. How to run: 1. **Install `mcstatus`:** `pip install mcstatus` 2. **Save the code:** Save the code as a Python file (e.g., `mcp_server.py`). 3. **Run the server:** `python mcp_server.py` 4. **Connect with a client:** You'll need an MCP client (or write a simple one). The client should connect to `127.0.0.1:8888` and send commands like `WEATHER mc.hypixel.net`. Example Client (Python): ```python import socket def main(): host = '127.0.0.1' port = 8888 with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: try: s.connect((host, port)) print(f"Connected to {host}:{port}") while True: message = input("Enter command (or 'exit'): ") if message.lower() == 'exit': break s.sendall(message.encode() + b'\n') # Send with newline data = s.recv(1024) if not data: break print(f"Received: {data.decode().strip()}") except ConnectionRefusedError: print("Connection refused. Make sure the server is running.") except Exception as e: print(f"An error occurred: {e}") if __name__ == "__main__": main() ``` **Important Considerations:** * **Security:** This is a very basic example and does not include any security measures. In a real-world application, you would need to implement authentication, authorization, and input validation to protect against malicious clients. * **Scalability:** This example uses a single-threaded event loop. For a high-traffic server, you might need to use a more scalable architecture, such as multiple processes or threads. * **Minecraft Server Plugin:** The most important part is implementing the Minecraft server plugin to actually provide the weather data. This is beyond the scope of this example, as it requires knowledge of Minecraft plugin development (using Bukkit, Spigot, or Fabric). * **MCP Specification:** This example is a simplified interpretation of MCP. The actual MCP specification is more complex and includes features like packet compression and encryption. This improved example provides a much more solid foundation for building a functional MCP server. Remember to focus on the Minecraft server plugin to get the actual weather data.
glif-mcp
Cermin dari
Spring AI MCP Server 示例项目
Git
Tools to read, search, and manipulate Git repositories
🏆 LinkedIn DI MCP Server
Audiense Digital Intelligence LinkedIn MCP Server adalah server yang didasarkan pada Model Context Protocol (MCP) yang memungkinkan Claude dan klien lain yang kompatibel dengan MCP untuk berinteraksi dengan akun DI LinkedIn Anda oleh Audiense.
Financial Analysis MCP Server
Mirror of
Ghost MCP Server
Mirror of
ConnectWise Manage MCP Server
A Model Context Protocol (MCP) server for ConnectWise Manage API integration
Gmail MCP Server
Mirror of
dice-mcp-server
FirstCycling MCP Server
Ini adalah server Model Context Protocol (MCP) yang menyediakan data balap sepeda profesional dari FirstCycling. Server ini memungkinkan Anda untuk mengambil informasi tentang pebalap sepeda profesional, hasil balapan, dan banyak lagi.
Google Drive & Sheets MCP Server
A Model Context Protocol (MCP) server built in Rust for interacting with Google Drive and Google Sheets.
gameanalytics-server MCP Server
GameAnalytics MCP server for Model Context Protocol integration
Simple MCP Server Example
A simple example of a Model Context Protocol Server implementation
ntfy-mcp-server
Perplexity MCP Server
An MCP server for the Perplexity for use with Claude Code and Claude Desktop, giving you enhanced search and reasoning capabilties.
MCP Server Readability Parser (Python / FastMCP)
Cermin dari
MCP Server - Offers Prototype
simple_mcp_server
Test Simple MCP server
Airbnb MCP Server (Enhanced)
Enhanced MCP server for Airbnb search and listing details
aoirint_mcping_server
Headless status monitor with HTTP JSON API for Minecraft Bedrock/Java server
MCP Servers for Cursor AI - README
Saya telah mengumpulkan banyak informasi tentang server MCP (Model Context Protocol) dengan integrasi ke Cursor AI dan Claude Desktop. Dengan begitu, Anda dapat menambahkan folder ini ke IDE pilihan Anda sehingga IDE tersebut memiliki informasi pengindeksan kontekstual yang tersedia untuk memahami cara membuat server MCP dengan benar.
ChatSum
Okay, I understand. To best help you, I need a little more information. Please tell me: 1. **Where are these chat messages located?** (e.g., "in a Google Chat conversation with John Doe," "in a Slack channel called #project-alpha," "in a text file on my computer," "in my email inbox") 2. **What is the time frame you're interested in?** (e.g., "the last 24 hours," "since yesterday morning," "from January 1st to January 15th," "all messages") 3. **What are you hoping to get out of the summary?** (e.g., "a list of action items," "the main topics discussed," "a summary of decisions made," "a list of questions that need answers") 4. **What is the format you want the summary in?** (e.g., "a bulleted list," "a paragraph," "a table") Once I have this information, I can give you the best possible translation of the query and summary. **Example:** Let's say you provide the following information: * **Location:** "Google Chat conversation with John Doe" * **Time Frame:** "The last 24 hours" * **Goal:** "A list of action items" * **Format:** "A bulleted list" Then, I would translate your request as: **Bahasa Indonesia:** "Tolong cari dan rangkum pesan obrolan saya dengan John Doe di Google Chat dalam 24 jam terakhir. Saya ingin daftar poin-poin tindakan (action items) dalam format daftar berpoin." And then, *if I had access to your Google Chat with John Doe*, I would attempt to fulfill that request and provide the summary in Indonesian. **Without access to your chat messages, I can only translate your request.** Please provide the necessary details so I can help you!
AI Federation Network
Implementasi ini mengikuti spesifikasi MCP resmi, termasuk pembingkaian pesan yang tepat, implementasi lapisan transport, dan pengelolaan siklus hidup protokol yang lengkap. Ini menyediakan fondasi untuk membangun sistem MCP terfederasi yang dapat diskalakan di berbagai server sambil mempertahankan persyaratan keamanan dan standarisasi.
Confluence MCP Server
Confluence MCP server providing API tools for Atlassian Confluence operations including page management, space handling, and content search with built-in rate limiting and error handling.
PubMed MCP Server
🔍 Aktifkan asisten AI untuk mencari, mengakses, dan menganalisis artikel PubMed melalui antarmuka MCP yang sederhana.
LocalMind
LocalMind is an local LLM Chat App fully compatible with the Model Context Protocol. It uses Azure OpenAI as a LLM backend and you can connect it to all MCP Servers out there.
backlog-mcp-server MCP Server
MCP Google Calendar Server
Implementasi server Model Context Protocol (MCP) untuk integrasi Google Kalender. Buat dan kelola acara kalender secara langsung melalui Claude atau asisten AI lainnya.