Discover Awesome MCP Servers

Extend your agent with 14,392 capabilities via MCP servers.

All14,392
MCP Prompt Server

MCP Prompt Server

一个基于模型上下文协议的服务器,为代码审查和 API 文档生成等任务提供预定义的提示模板,从而在 Cursor/Windsurf 编辑器中实现更高效的工作流程。

MCP Server Giphy

MCP Server Giphy

使人工智能模型能够从 Giphy 搜索、检索和使用 GIF,并具有内容过滤、多种搜索方法和全面的元数据等功能。

LlamaCloud MCP Server

LlamaCloud MCP Server

镜子 (jìng zi)

piapi-mcp-server

piapi-mcp-server

镜子 (jìng zi)

MCP Server for Stock Market Analysis

MCP Server for Stock Market Analysis

NextChat with MCP Server Builder

NextChat with MCP Server Builder

具有 MCP 服务器创建功能的 NextChat 和 OpenRouter 集成 (Jùyǒu MCP fúwùqì chuàngjiàn gōngnéng de NextChat hé OpenRouter jíchéng)

MCP Server Reddit

MCP Server Reddit

镜子 (jìng zi)

mcp-google-sheets: A Google Sheets MCP server

mcp-google-sheets: A Google Sheets MCP server

一个模型上下文协议服务器,与 Google Drive 和 Google Sheets 集成,使用户能够通过自然语言命令创建、读取、更新和管理电子表格。

LLMling

LLMling

易于使用的 MCP (模型上下文协议) 服务器和 AI 代理,定义为 YAML。

LiteMCP

LiteMCP

一个用于优雅地构建 MCP 服务器的 TypeScript 框架

MCP Server MetaTool

MCP Server MetaTool

Elixir MCP Server

Elixir MCP Server

Okay, here's an example of how you might implement a simplified MCP (Metaverse Communication Protocol) server using Elixir and Server-Sent Events (SSE) for transport. This is a basic illustration and would need significant expansion for a real-world application. **Conceptual Overview** * **MCP (Metaverse Communication Protocol):** In this simplified example, we'll assume MCP messages are JSON objects with a `type` field (e.g., "chat", "location", "event") and a `payload` field containing the data. * **SSE (Server-Sent Events):** A unidirectional protocol where the server pushes updates to connected clients. Suitable for real-time data streams. * **Elixir/Phoenix:** We'll use Elixir (a functional programming language) and the Phoenix framework (a web framework built on Elixir) to handle the server-side logic. * **PubSub:** We'll use Phoenix's built-in PubSub system to broadcast messages to relevant clients. **Code Example (Phoenix Application)** 1. **Create a Phoenix Project:** ```bash mix phx.new mcp_sse --no-ecto cd mcp_sse ``` (The `--no-ecto` flag skips database setup, as we won't be using a database in this simplified example.) 2. **Define a Channel (for SSE):** Create a new channel file: `lib/mcp_sse_web/channels/mcp_channel.ex` ```elixir defmodule McpSseWeb.McpChannel do use Phoenix.Channel require Logger def join("mcp:" <> topic, _payload, socket) do Logger.info("Client joined topic: #{topic}") {:ok, socket} end def handle_in("mcp_message", payload, socket) do # Process the MCP message case process_mcp_message(payload) do {:ok, broadcast_payload} -> # Broadcast the processed message to the appropriate topic broadcast!(socket, "mcp_update", broadcast_payload) {:noreply, socket} {:error, reason} -> Logger.error("Error processing MCP message: #{reason}") {:reply, {:error, reason}, socket} end end defp process_mcp_message(payload) do # Example: Validate the message and potentially transform it try do message = Jason.decode!(payload) case message do %{"type" => type, "payload" => _} -> {:ok, message} # Just pass it through for now _ -> {:error, "Invalid MCP message format"} end rescue _ -> {:error, "Invalid JSON"} end end end ``` 3. **Configure the Channel in `lib/mcp_sse_web/endpoint.ex`:** In the `socket` function, add the channel: ```elixir socket "/socket", McpSseWeb.UserSocket, websocket: true, longpoll: false channel "mcp:*", McpSseWeb.McpChannel ``` 4. **Create a Route for SSE:** In `lib/mcp_sse_web/router.ex`, add a route: ```elixir scope "/", McpSseWeb do pipe_through :browser get "/", PageController, :index get "/sse/:topic", SseController, :stream end ``` 5. **Create an SSE Controller:** Create `lib/mcp_sse_web/controllers/sse_controller.ex`: ```elixir defmodule McpSseWeb.SseController do use McpSseWeb, :controller require Logger def stream(conn, %{"topic" => topic}) do conn |> put_resp_content_type("text/event-stream") |> put_resp_header("cache-control", "no-cache") |> send_chunked(200) |> stream_events(topic) end defp stream_events(conn, topic) do Phoenix.PubSub.subscribe(McpSse.PubSub, "mcp:" <> topic) receive do {:mcp_update, message} -> Logger.info("Sending SSE event to topic #{topic}: #{inspect message}") conn = chunk(conn, "event: message\ndata: #{Jason.encode!(message)}\n\n") stream_events(conn, topic) # Continue listening after :infinity -> Logger.warn("SSE stream timed out for topic #{topic}") conn end end end ``` 6. **Update `application.ex`:** Make sure `McpSse.PubSub` is started in your application's supervision tree. In `lib/mcp_sse/application.ex`: ```elixir def start(_type, _args) do children = [ McpSseWeb.Telemetry, {Phoenix.PubSub, name: McpSse.PubSub}, # Add this line McpSseWeb.Endpoint ] opts = [strategy: :one_for_one, name: McpSse.Supervisor] Supervisor.start_link(children, opts) end ``` 7. **Update `page_controller.ex`:** ```elixir defmodule McpSseWeb.PageController do use McpSseWeb, :controller def index(conn, _params) do render(conn, "index.html") end end ``` 8. **Create `index.html.heex`:** ```html <h1>MCP SSE Example</h1> <div id="sse-output"></div> <script> const topic = "my_topic"; // Replace with your desired topic const eventSource = new EventSource(`/sse/${topic}`); eventSource.onmessage = (event) => { const data = JSON.parse(event.data); const outputDiv = document.getElementById("sse-output"); outputDiv.innerHTML += `<p>Received: ${JSON.stringify(data)}</p>`; }; eventSource.onerror = (error) => { console.error("SSE error:", error); }; </script> ``` **Explanation:** * **`McpChannel`:** Handles WebSocket connections. It receives `mcp_message` events, processes them (in `process_mcp_message`), and then broadcasts the processed message using `Phoenix.PubSub` to a topic. The `process_mcp_message` function is a placeholder for your actual MCP message validation and transformation logic. * **`SseController`:** Handles SSE connections. When a client connects to `/sse/:topic`, the `stream` action sets the correct headers for SSE and then calls `stream_events`. `stream_events` subscribes to the `Phoenix.PubSub` topic and listens for `mcp_update` messages. When a message is received, it formats it as an SSE event and sends it to the client using `chunk`. * **`Phoenix.PubSub`:** A publish-subscribe system. The `McpChannel` publishes messages to topics, and the `SseController` subscribes to those topics. * **Client-Side JavaScript:** The JavaScript in `index.html.heex` creates an `EventSource` that connects to the `/sse/:topic` endpoint. It listens for `message` events and displays the received data in the `sse-output` div. **How to Run:** 1. Install dependencies: `mix deps.get` 2. Start the Phoenix server: `mix phx.server` 3. Open your browser to `http://localhost:4000`. **Testing (Sending MCP Messages):** You can use `iex` to simulate sending MCP messages through the WebSocket channel. 1. Open a new terminal and start `iex`: `iex -S mix phx.server` 2. Connect to the channel: ```elixir {:ok, socket} = Phoenix.Endpoint.broadcast(McpSseWeb.Endpoint, "mcp:my_topic", "mcp_update", %{"type" => "chat", "payload" => %{"message" => "Hello from IEx!"}}) ``` (Replace `"my_topic"` with the topic you're using in your client.) You should see the message appear in the browser. **Important Considerations and Next Steps:** * **Error Handling:** The error handling in this example is very basic. You'll need to add more robust error handling and logging. * **Authentication/Authorization:** This example has no authentication. You'll need to implement authentication and authorization to control who can send and receive messages. Phoenix provides good mechanisms for this. * **Message Validation:** The `process_mcp_message` function is a placeholder. You'll need to implement proper validation of MCP messages to ensure they are well-formed and contain the expected data. * **Scalability:** For a production system, you'll need to consider scalability. Phoenix channels and PubSub are generally scalable, but you may need to use a distributed PubSub implementation (e.g., using Redis) for very high message rates. * **Message Persistence:** This example doesn't persist messages. If you need to store messages, you'll need to integrate a database (e.g., using Ecto). * **MCP Definition:** You'll need a formal definition of your MCP message types and their schemas. Consider using a schema validation library like `conform` or `jason` to enforce the schema. * **Client-Side Reconnection:** The client-side JavaScript should handle reconnection if the SSE connection is lost. The `EventSource` API has built-in reconnection logic, but you may want to customize it. * **Binary Data:** If you need to send binary data, you'll need to encode it (e.g., using Base64) before sending it over SSE. This example provides a starting point for building an MCP server using Elixir and SSE. Remember to adapt it to your specific requirements and add the necessary features for a production-ready system.

Python CLI Tool for Generating MCP Servers from API Specs

Python CLI Tool for Generating MCP Servers from API Specs

根据 OpenAPI 或 GraphQL 规范提供的输入,使用 Anthropic 的 SDK 生成一个 MCP 服务器。

Petstore3

Petstore3

一个代理服务器,通过将 OpenAPI 规范动态翻译成标准化的 MCP 工具,连接 AI 代理和外部 API,从而实现无缝交互,无需定制集成代码。

mcp-server-zenn: Unofficial MCP server for Zenn (

mcp-server-zenn: Unofficial MCP server for Zenn (

一个非官方的 Zenn 模型上下文协议服务器,它可以通过 Zenn 平台的 API 获取文章和书籍。

Vibe-Coder MCP Server

Vibe-Coder MCP Server

一个 MCP 服务器,它为基于 LLM 的编码实现结构化的工作流程,通过功能澄清、文档生成、分阶段实施和进度跟踪来指导开发。

Maccam912_searxng Mcp Server

Maccam912_searxng Mcp Server

镜子 (jìng zi)

OpenAI MCP Server

OpenAI MCP Server

镜子 (jìng zi)

MCP Server for Running E2E Tests

MCP Server for Running E2E Tests

端到端 MCP 服务器,用于自动化验证您的人工智能生成的代码。 (Duān dào duān MCP fúwùqì, yòng yú zìdònghuà yànzhèng nín de réngōng zhìnéng shēngchéng de dàimǎ.)

Mattermost MCP Server

Mattermost MCP Server

一个 MCP 服务器,使 Claude 和其他 MCP 客户端能够与 Mattermost 工作区交互,提供频道管理、消息传递功能和主题监控功能。

Edgeone Pages Mcp Server

Edgeone Pages Mcp Server

一种服务,能够将 HTML 内容快速部署到 EdgeOne Pages,并自动为已部署的内容生成可公开访问的 URL。

MCP Server DevOps Bridge 🚀

MCP Server DevOps Bridge 🚀

Azure Log Analytics MCP Server

Azure Log Analytics MCP Server

使用自然语言查询 Azure Log Analytics 的 MCP 服务器

Gemini Context MCP Server

Gemini Context MCP Server

一个 MCP 服务器实现,旨在最大化 Gemini 的 200 万 token 上下文窗口,并提供工具以实现跨多个 AI 客户端应用程序的高效上下文管理和缓存。 (Alternative, slightly more technical translation): 一个 MCP 服务器实现,其目标是充分利用 Gemini 的 200 万 token 上下文窗口,并提供工具来高效地管理和缓存多个 AI 客户端应用之间的上下文信息。

Linear MCP Server

Linear MCP Server

一个模型上下文协议(Model Context Protocol)服务器,使大型语言模型能够与 Linear 的问题跟踪系统进行交互,从而管理问题、项目、团队和其他 Linear 资源。

MCP Tools

MCP Tools

一个命令行界面,用于通过标准输入输出 (stdio) 和 HTTP 传输与 MCP (模型上下文协议) 服务器交互。

Wikipedia

Wikipedia

Agentis MCP

Agentis MCP

用于创建人工智能代理的 Python 框架,这些代理使用 MCP 服务器作为工具。与任何 MCP 服务器和模型提供商兼容。

AlphaVantage MCP Server

AlphaVantage MCP Server

一个集成了 AlphaVantage 金融数据 API 的 MCP 服务器,提供对股票市场数据、技术指标和基本财务信息的访问。

mcp-server-iris: An InterSystems IRIS MCP server

mcp-server-iris: An InterSystems IRIS MCP server

Okay, here's a translation of the English text "Execute SQL Query on InterSystems IRIS. Do some monitoring and manipulations with Interoperability" into Chinese: **执行 InterSystems IRIS 上的 SQL 查询。对互操作性进行一些监控和操作。** Here's a breakdown of the translation: * **执行 (zhí xíng):** Execute, Perform * **InterSystems IRIS 上的 (InterSystems IRIS shàng de):** On InterSystems IRIS * **SQL 查询 (SQL chá xún):** SQL Query * **对 (duì):** To, Regarding, With respect to * **互操作性 (hù cāo zuò xìng):** Interoperability * **进行 (jìn xíng):** To carry out, To conduct, To perform * **一些 (yī xiē):** Some * **监控 (jiān kòng):** Monitoring * **和 (hé):** And * **操作 (cāo zuò):** Manipulation, Operation Therefore, the complete translation is: **执行 InterSystems IRIS 上的 SQL 查询。对互操作性进行一些监控和操作。**