Send email, push, Slack, Discord, Telegram and webhook notifications and manage templates with Ray.
MCPpedia last refreshed this data
io.github.gege-mn/ray-mcp is an MCP server that send email, push, Slack, Discord, Telegram and webhook notifications and manage templates with Ray. Its tool list has not been published yet over http and stdio, requires no API key, and scores 57/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"ray": {
"env": {
"RAY_API_KEY": "ck_live_..."
},
"args": [
"-y",
"@gege-mn/ray-mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Send email, push, Slack, Discord, Telegram and webhook notifications and manage templates with Ray.
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @gege-mn/ray-mcp against OSV.dev.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in communication
Official TypeScript library for the Telnyx API
Open-source SMS gateway. Turn your Android phone into an SMS API: send and receive SMS from your apps over REST and webhooks. Self-hostable, with a free hosted plan.
Send email and newsletters with Mailtea over MCP, plus skills for email and website design.
CVSS scoring, IOC extraction, email header triage, hash/JWT/timestamp decoding, CISA KEV lookup.
MCP Security Weekly
Get CVE alerts and security updates for io.github.gege-mn/ray-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
MCP server for Ray, the notification delivery API. It lets Claude, Cursor, VS Code, Windsurf, Codex, Zed and any other MCP client send notifications and manage templates, delivery webhooks and usage in your Ray workspace.
Ray here is the multi-tenant notification API from gege.mn (email via Amazon SES or SMTP, Firebase push, Slack, Discord, Telegram, SMS via Twilio or sendsms.mn, generic webhooks and an in-app feed). It is not the Ray distributed computing framework.
Ray runs an MCP server for you. There are two ways to connect, with the same tools:
| Hosted (recommended) | Local (this package) | |
|---|---|---|
| What runs | Nothing on your machine | npx -y @gege-mn/ray-mcp, a stdio process |
| Endpoint | https://ray-api.gege.mn/mcp (Streamable HTTP) | Bridges to the hosted endpoint |
| Auth | Authorization: Bearer <key> header | RAY_API_KEY environment variable |
| Use it when | Your client supports remote servers with custom headers | Your client only runs stdio servers (e.g. Claude Desktop config file), or you prefer env vars over headers |
This package is a thin bridge: it connects to the hosted endpoint with your key and mirrors its tool list, descriptions and instructions, so new tools appear without upgrading the package. All validation, scopes, rate limits and quota are enforced by Ray's API.
ck_live_ and is shown only once.
read scope: status, templates, usage, docs.write scope: also needed to send, create or change templates, and manage webhooks.The examples below use ck_live_... as a placeholder. Keep real keys out of version control.
Hosted:
claude mcp add --transport http ray https://ray-api.gege.mn/mcp --header "Authorization: Bearer $RAY_API_KEY"
Local:
claude mcp add ray --env RAY_API_KEY=ck_live_... -- npx -y @gege-mn/ray-mcp
Add --scope user to make it available in every project. Check the connection with claude mcp get ray.
Edit claude_desktop_config.json (Settings → Developer → Edit Config; macOS ~/Library/Application Support/Claude/claude_desktop_config.json, Windows %APPDATA%\Claude\claude_desktop_config.json), then fully restart Claude Desktop:
{
"mcpServers": {
"ray": {
"command": "npx",
"args": ["-y", "@gege-mn/ray-mcp"],
"env": { "RAY_API_KEY": "ck_live_..." }
}
}
}
.cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects.
Hosted:
{
"mcpServers": {
"ray": {
"url": "https://ray-api.gege.mn/mcp",
"headers": { "Authorization": "Bearer ck_live_..." }
}
}
}
Local:
{
"mcpServers": {
"ray": {
"command": "npx",
"args": ["-y", "@gege-mn/ray-mcp"],
"env": { "RAY_API_KEY": "ck_live_..." }
}
}
}
Cursor can read the key from your environment instead: "Authorization": "Bearer ${env:RAY_API_KEY}".
VS Code's mcp.json (.vscode/mcp.json in a workspace, or MCP: Open User Configuration) uses a top-level servers key and can prompt for the key so it isn't stored in the file:
{
"inputs": [
{ "id": "ray-api-key", "type": "promptString", "description": "Ray API key (ck_live_...)", "password": true }
],
"servers": {
"ray": {
"type
... [View full README on GitHub](https://github.com/gege-mn/ray-mcp#readme)