Token导航 LogoToken导航

MCP Server · 开发工具

MCP SSE

An elixir Model Context Protocal (MCP) server library which uses the Server-Sent Events (SSE) transport type

SSE官方级别未说明来源级核验工具 0
服务器开发Cursor开发工具

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
kEND
提供方
kEND

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

64

仓库热度

收录来源

3 个

MCP.so

选型结论

MCP SSE 属于开发工具类 MCP Server,公开资料标注 0 个工具,通过SSE 远程服务接入,适配 Cursor,没有现成的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

SSE

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

远程服务不用写启动命令,在客户端 MCP 配置里填服务地址即可,具体字段按官方文档填写。

上手步骤

  1. 1

    确认访问方式

    这是SSE 远程服务,本地不用装依赖;先确认服务地址、账号归属和额度,再决定接哪个客户端。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填服务地址;需要授权的先完成登录,再回到客户端刷新。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

MCP通过SSE

此库提供了服务器发送事件(SSE)上模型上下文协议(MCP)的简单实现。

有关模型上下文协议的更多信息,请访问: 模型上下文协议文档.

目录

- 适用于Phoenix应用 - 适用于Bandit的插头应用

- 与MCP检查员一起 - 带光标

- 端口和HTTPS - 路径 - 存活

- 客户端使用示例 - 会话管理 - MCP响应格式

特性

  • 完整的MCP服务器实施
  • SSE连接管理
  • JSON-RPC消息处理
  • 工具注册和执行
  • 会话管理
  • 自动ping/keepalive
  • 错误处理和验证

创建自己的MCP服务器

您必须执行 MCPServer 行为。

您只需要实现所需的回调(handle_ping/1 和 handle_initialize/2)以及您想要支持的功能的任何可选回调。

这 use MCPServer 宏提供:

  • 内置消息路由
  • 协议版本验证
  • 可选回调的默认实现
  • JSON-RPC错误处理
  • 日志记录

看 DefaultServer 对于的默认实现 MCPServer 行为。

安装

对于Phoenix应用:

  1. 将所需配置添加到 config/config.exs:
# Configure MIME types for SSE
config :mime, :types, %{
  "text/event-stream" => ["sse"]
}

# Configure the MCP Server
config :mcp_sse, :mcp_server, YourApp.YourMCPServer
  1. 添加到您的依赖项中 mix.exs:
def deps do
  [
    {:mcp_sse, "~> 0.1.6"}
  ]
end
  1. 配置路由器(lib/your_app_web/router.ex):
pipeline :sse do
  plug :accepts, ["sse"]
end

scope "/" do
  pipe_through :sse
  get "/sse", SSE.ConnectionPlug, :call
  post "/message", SSE.ConnectionPlug, :call
end
  1. 运行您的应用程序:
mix phx.server

对于使用Bandit的插头应用:

  1. 在监督下创建新的Plug应用程序:
mix new your_app --sup
  1. 将所需配置添加到 config/config.exs:
import Config

# Configure MIME types for SSE
config :mime, :types, %{
  "text/event-stream" => ["sse"]
}

# Configure the MCP Server
config :mcp_sse, :mcp_server, YourApp.YourMCPServer
  1. 向添加依赖项 mix.exs:
def deps do
  [
    {:mcp_sse, "~> 0.1.6"},
    {:plug, "~> 1.14"},
    {:bandit, "~> 1.2"}
  ]
end
  1. 配置路由器(lib/your_app/router.ex):
defmodule YourApp.Router do
  use Plug.Router

  plug Plug.Parsers,
    parsers: [:urlencoded, :json],
    pass: ["text/*"],
    json_decoder: JSON

  plug :match
  plug :ensure_session_id
  plug :dispatch

  # Middleware to ensure session ID exists
  def ensure_session_id(conn, _opts) do
    case get_session_id(conn) do
      nil ->
        # Generate a new session ID if none exists
        session_id = generate_session_id()
        %{conn | query_params: Map.put(conn.query_params, "sessionId", session_id)}
      _session_id ->
        conn
    end
  end

  # Helper to get session ID from query params
  defp get_session_id(conn) do
    conn.query_params["sessionId"]
  end

  # Generate a unique session ID
  defp generate_session_id do
    Base.encode16(:crypto.strong_rand_bytes(8), case: :lower)
  end

  forward "/sse", to: SSE.ConnectionPlug
  forward "/message", to: SSE.ConnectionPlug

  match _ do
    send_resp(conn, 404, "Not found")
  end
end
  1. 设置您的应用程序监督(lib/your_app/application.ex):
defmodule YourApp.Application do
  use Application

  @impl true
  def start(_type, _args) do
    children = [
      {Bandit, plug: YourApp.Router, port: 4000}
    ]

    opts = [strategy: :one_for_one, name: YourApp.Supervisor]
    Supervisor.start_link(children, opts)
  end
end
  1. 运行您的应用程序:
mix run --no-halt

用法

与MCP检查员一起

  • 启动检查器:
MCP_SERVER_URL=localhost:4000 npx @modelcontextprotocol/inspector@latest
  • 引导到http://localhost:6274/
  • 确保您的服务器正在运行
  • 点击 Connect
  • 现在,您可以列出工具并调用它们

带光标

  • 打开光标设置
  • 导航到MCP选项卡
  • 点击 Add new global MCP server
  • 填写 ~/.cursor/mcp.json 与:
{
  "mcpServers": {
    "your-mcp-server": {
      "url": "http://localhost:4000/sse"
    }
  }
}
  • 确保您的服务器正在运行
  • 让Cursor运行您的工具之一

配置

端口和HTTPS

Bandit服务器可以在应用程序模块中配置其他选项:

# Example with custom port and HTTPS
children = [
  {Bandit,
    plug: YourApp.Router,
    port: System.get_env("PORT", "4000") |> String.to_integer(),
    scheme: :https,
    certfile: "priv/cert/selfsigned.pem",
    keyfile: "priv/cert/selfsigned_key.pem"
  }
]

路径

您可以自定义用于SSE和消息端点的路径:

config :mcp_sse,
  sse_path: "/mcp/sse",    # Default: "/sse"
  message_path: "/mcp/msg" # Default: "/message"

这允许您在路由器中使用自定义路径:

# Phoenix
scope "/mcp" do
  pipe_through :sse
  get "/sse", SSE.ConnectionPlug, :call
  post "/msg", SSE.ConnectionPlug, :call
end

# Plug
forward "/mcp/sse", to: SSE.ConnectionPlug
forward "/mcp/msg", to: SSE.ConnectionPlug

存活

SSE连接定期发送保活ping,以防止连接超时。 您可以在中配置ping间隔或完全禁用它 config/config.exs:

# Set custom ping interval (in milliseconds)
config :mcp_sse, :sse_keepalive_timeout, 30_000  # 30 seconds

# Or disable pings entirely
config :mcp_sse, :sse_keepalive_timeout, :infinity

快速演示

要查看MCP服务器的运行情况:

  1. 在一个终端中启动服务器:
# Our example server
elixir dev/example_server.exs

# Your Phoenix application
mix phx.server

# Your Plug application
mix run --no-halt
  1. 在另一个终端中,运行演示客户端脚本:
elixir dev/example_client.exs

客户端脚本将:

  • 连接到SSE端点
  • 初始化连接
  • 列出可用工具
  • 使用示例输入调用upcase工具
  • 显示每个步骤的结果

这提供了模型上下文协议流和服务器功能的实际演示。

其他注意事项

客户端使用示例

// Connect to SSE endpoint
const sse = new EventSource('/sse');

// Handle endpoint message
sse.addEventListener('endpoint', (e) => {
  const messageEndpoint = e.data;
  // Use messageEndpoint for subsequent JSON-RPC requests
});

// Send initialize request
fetch('/message?sessionId=YOUR_SESSION_ID', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'initialize',
    params: {
      protocolVersion: '2024-11-05',
      capabilities: {}
    }
  })
});

会话管理

MCP SSE服务器要求每个连接都有一个会话ID。路由器会自动执行以下操作:

  • 使用查询参数中的现有会话ID(如果提供)
  • 如果不存在,则生成新的会话ID
  • 确保所有请求 /sse 和 /message 终结点具有有效的会话ID

MCP响应格式

在MCP服务器中实现工具响应时,内容必须遵循MCP内容类型规范。 响应内容的格式应为以下类型之一:

# Text content
{:ok,
 %{
   jsonrpc: "2.0",
   id: request_id,
   result: %{
     content: [
       %{
         type: "text",
         text: "Your text response here"
       }
     ]
   }
 }}

# Image content
{:ok,
 %{
   jsonrpc: "2.0",
   id: request_id,
   result: %{
     content: [
       %{
         type: "image",
         data: "base64_encoded_image_data",
         mimeType: "image/png"
       }
     ]
   }
 }}

# Resource reference
{:ok,
 %{
   jsonrpc: "2.0",
   id: request_id,
   result: %{
     content: [
       %{
         type: "resource",
         resource: %{
           name: "resource_name",
           description: "resource description"
         }
       }
     ]
   }
 }}

对于JSON等结构化数据,您应该将其转换为格式化字符串:

def handle_call_tool(request_id, %{"name" => "list_companies"} = _params) do
  companies = fetch_companies()  # Your data fetching logic

  {:ok,
   %{
     jsonrpc: "2.0",
     id: request_id,
     result: %{
       content: [
         %{
           type: "text",
           text: JSON.encode!(companies, pretty: true)
         }
       ]
     }
   }}
end

有关响应格式的更多详细信息,请参阅 MCP内容类型规范.

贡献

  • 分叉存储库并克隆它
  • 在fork中创建一个新分支
  • 进行更改并提交
  • 将更改推到叉子上
  • 在上游打开拉取请求

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

developer-toolsElixir本地部署SSE协议MCP实现JSON-RPC服务器开发Elixir库

支持客户端

Cursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 3 个目录同时收录,信息可以交叉核对。
  • 走远程地址,接入方不用在本地装运行环境。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Cursor 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP SSE

MCP.so · 本页

0SSE未标注3 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP SSE 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

MCP SSE 怎么在 Claude Desktop、Cursor 里配置?

它是SSE 远程服务,在客户端的 MCP 配置里填服务地址即可,不用本地装依赖;需要授权或 API Key 的,先在官方页面拿到凭据再填。

MCP SSE 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP SSE 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

MCP SSE 支持哪些客户端?

公开资料标注支持 Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP