Token导航 LogoToken导航

MCP Server · 运维云端

datapulsesse (Mikolajkocik)

一个基于FastAPI构建的轻量级MCP服务器,通过SSE(服务器发送事件)实现异步消息传递,支持Bearer认证和JWT验证,适用于本地开发和云函数部署。

stdio官方级别未说明来源级核验工具 2
FastAPI云端部署Docker

快速开始

作者 / 组织
MikolajKocik
提供方
MikolajKocik

工具数量

2

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

datapulsesse (Mikolajkocik) 属于运维云端类 MCP Server,公开资料标注 2 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

运维云端

传输方式

stdio

认证方式

OAuth 授权

部署方式

公开资料未说明

安装与配置

安装命令

pip install -r requirements.txt

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

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

接入前确认

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

详细介绍

DataPulseSSE——基于SSE的轻量级MCP服务器(FastAPI)

一个使用FastAPI构建的小型、专注的MCP(模型上下文协议)服务器,它:

  • 维护每个会话的SSE(服务器发送事件)流
  • 接受MCP样式的消息,并通过SSE异步发出结果
  • 支持简单的承载身份验证(本地)和可选的JWT验证(RS256)
  • 附带示例工具(get_time、fetch_url)

它在本地运行(Uvicorn),可以托管在Azure Functions上(通过一个小型适配器)。

目录

  • 需求
  • 配置
  • 快速启动(本地)
  • 授权
  • API端点
  • 示例(卷曲)
  • 浏览器客户端(EventSource)
  • 数据模型
  • 会话和队列
  • 内置工具
  • 在Azure函数上运行
  • 安全和生产说明
  • 限制/TODO

需求

  • Python 3.10+
  • 点

配置

环境变量:

  • LOCAL_BARER_TOKEN--开发人员的本地BEARER令牌(默认值: secret_token)
  • JWT_ISSUER——可选,JWT RS256发卡机构(OIDC发卡机构URL)
  • JWT_AUDIENCE——可选的、预期的JWT观众
  • JWT_KEY——可选的PEM公钥,用于验证RS256令牌(如果您的身份验证代码支持静态密钥)

示例(bash):

export LOCAL_BEARER_TOKEN="secret_token"
# Optional JWT (RS256) verification:
export JWT_ISSUER="https://login.microsoftonline.com//v2.0"
export JWT_AUDIENCE="api://your-app-id"
export JWT_KEY="$(cat public_key.pem)"

注意:对于针对旋转密钥的生产级JWT验证,请使用JWKS发现(首选)而不是静态JWT_KEY。

快速启动(本地)

  1. 安装依赖项:
pip install -r requirements.txt
# If needed (not present in your requirements.txt):
pip install fastapi uvicorn
  1. 运行服务器:
uvicorn app.main:app --reload
  1. 打开SSE流(在新终端中):
# Use the same session_id for /events and /message
curl -N \
  -H "Authorization: Bearer ${LOCAL_BEARER_TOKEN:-secret_token}" \
  "http://localhost:8000/events?session_id=abc123"

提示: -N 禁用curl中的缓冲,这对SSE很重要。

授权

  • 本地承运人:发送 Authorization: Bearer secret_token (或您的LOCAL_BARER_TOKEN)。
  • JWT(RS256):如果通过环境变量配置,服务器将进行验证 Authorization: Bearer 并拒绝无效令牌。

如果没有提供有效的身份验证,服务器将返回401 Unauthorized。

API端点

GET/事件

  • 查询: session_id (必填)
  • 标题: Authorization: Bearer ...
  • 返回SSE流。消息以行的形式发送:
  data: {"type":"...","request_id":"...","data":{...}}
  • Keep‑alive comments : ping 在空闲时定期发送。

状态代码:

  • 200--溪流打开
  • 401--未经授权

POST/消息

  • 查询: session_id (必填)
  • 标题: Authorization: Bearer ..., Content-Type: application/json
  • 正文(MCP请求):
{
  "type": "list_tools" | "call_tool",
  "request_id": "req-123",
  "data": {
    "name": "get_time" | "fetch_url",
    "url": "https://example.com"
  }
}

行为:

  • 验证会话(TTL~1h)
  • 处理请求并将该会话的结果排队
  • 返回确认(实际结果到达SSE流)

示例(卷曲)

列出工具:

curl -X POST "http://localhost:8000/message?session_id=abc123" \
  -H "Authorization: Bearer ${LOCAL_BEARER_TOKEN:-secret_token}" \
  -H "Content-Type: application/json" \
  -d '{"type":"list_tools","request_id":"req-1","data":{}}'

调用get_time:

curl -X POST "http://localhost:8000/message?session_id=abc123" \
  -H "Authorization: Bearer ${LOCAL_BEARER_TOKEN:-secret_token}" \
  -H "Content-Type: application/json" \
  -d '{"type":"call_tool","request_id":"req-2","data":{"name":"get_time"}}'

调用fetch_url:

curl -X POST "http://localhost:8000/message?session_id=abc123" \
  -H "Authorization: Bearer ${LOCAL_BEARER_TOKEN:-secret_token}" \
  -H "Content-Type: application/json" \
  -d '{"type":"call_tool","request_id":"req-3","data":{"name":"fetch_url","url":"https://example.com"}}'

SSE事件示例:

data: {"type":"tool_result","request_id":"req-2","data":{"time":"2025-08-31T12:00:00Z"}}

浏览器客户端(EventSource)


  const sessionId = "abc123";
  const url = `http://localhost:8000/events?session_id=${encodeURIComponent(sessionId)}`;
  const es = new EventSource(url);

  es.onmessage = (e) => {
    console.log("SSE message:", e.data);
  };
  es.onerror = (e) => {
    console.warn("SSE error:", e);
  };

重要提示:浏览器不允许在EventSource中使用自定义标头,因此您无法直接附加授权。对于浏览器使用,放置一个网关/代理(例如APIM、反向代理),终止身份验证并转发到后端。

数据模型

MCPRequest(简称):

{"type":"list_tools|call_tool","request_id":"string","data":{...}}

MCP响应:

{"type":"list_tools|tool_result|error","request_id":"string","data":{...}}

错误:

{"type":"error","request_id":"string","error":"..."}

会话和队列

  • 会话在进程内存储(TTL~1h)。
  • 每个会话都有自己的消息队列。
  • 始终使用相同的 session_id 用于SSE流和POST消息。

内置工具

  • list_tools--返回可用的工具
  • get_time--返回当前UTC时间(ISO 8601,Z后缀)
  • fetch_url(url)--从url获取内容(短超时),返回HTTP状态和内容片段

在Azure函数上运行

  • 该仓库包括适配器(例如。, app/azure_adapter.py)使用Mangum在Azure Functions HTTP触发器上公开FastAPI应用程序。
  • 在功能应用程序中:

- 配置适配器的入口点 - 像在本地一样设置环境变量

安全和生产说明

  • 首选网关(例如Azure API管理)来处理OAuth/PKCE、速率限制和注入后端密钥。
  • 对于JWT,支持JWKS发现(旋转密钥)而不是静态公钥。
  • SSE可靠性:保持生命释放;考虑连接限制和适当的清理。
  • 可观察性:添加结构化日志记录和基本指标(例如请求计数、队列深度)。
  • 横向扩展:内存会话不会跨实例扩展;如果需要,使用共享存储(例如Redis)。

限制/TODO

  • 没有完整的MCP授权流(具有加密会话密钥的OAuth/PKCE)
  • 仅限内存会话/队列(无跨实例共享)
  • 默认情况下为最小身份验证;JWT是可选的,需要配置
  • 默认情况下不包括CI/CD测试自动化

工具与能力

工具数量

2

资源数量

0

提示词数量

0

能力标签

SSE协议Python本地部署MCP服务器FastAPI异步通信Bearer认证JWT验证

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

典型使用场景

看服务状态

查询容器、日志和监控指标,定位异常。

执行部署变更

在权限范围内触发发布、回滚和环境切换。

核对资源用量

汇总用量,找出闲置和超额的部分。

选择建议

值得选的地方

  • 只提供 2 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在运维云端场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

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

MCP World · 本页

2stdio有1 个2026-05-17
Ui Tars Desktop 8a825770

MCP World

0stdio有1 个2026-05-17
Elie222 MCP

MCP World

0未说明未标注1 个2026-05-17
Arizeai Phoenix MCP

MCP World

0stdio有3 个2026-05-17
Unity MCP 87ee506e

MCP World

42HTTP有2 个2026-05-17

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

常见问题

5 条

datapulsesse (Mikolajkocik) 怎么安装?

公开资料给出的安装命令是 pip install -r requirements.txt,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

datapulsesse (Mikolajkocik) 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

datapulsesse (Mikolajkocik) 收费吗?

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

datapulsesse (Mikolajkocik) 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

datapulsesse (Mikolajkocik) 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP