SERVICE
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SERVICElist all integrated MCP tools"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
____ _____ ______ _____ ____ _____
/ ___|| ____| _ \ \ / /_ _/ ___| ____|
\___ \| _| | |_) \ \ / / | | | | _|
___) | |___| _ < \ V / | | |___| |___
|____/|_____|_| \_\ \_/ |___\____|_____|
MCP Hub & Notification Center
The only MCP server your AI agent needs.
AI agents today juggle a dozen MCP servers: one for GitHub, one for the filesystem, one for search, one for Slack. Every restart, every new project, every new agent has to re-configure all of them. SERVICE solves this. It's a persistent 24/7 background daemon that aggregates all your downstream MCP servers into one unified connection โ and layers on a real-time notification gateway so your agents can receive events from X/Twitter, Slack, Email, and webhooks the moment they happen.
One connection. All your tools. Always on.
Why SERVICE?
๐ Single MCP endpoint for everything โ Claude Desktop, Cursor, Copilot, and any MCP client connect to one URL (
http://localhost:3333/mcp) and instantly get all tools from all your downstream servers, namespaced cleanly (github__create_issue,filesystem__read_file, etc.)โก Real-time push, not polling โ integrations like Slack, Email, X/Twitter, and webhooks stream events to your agents the moment they arrive via SSE, so agents can react in real-time without burning tokens on polling loops
๐ Local-first and private โ all data lives in
~/.service/service.db(SQLite), credentials are AES-256-GCM encrypted, nothing leaves your machine unless you configure it to๐งฉ Plugin-style integrations โ add new integrations via a CLI wizard or the REST API; no rebuild required
Related MCP server: memex
Architecture
AI Agent (Claude Desktop / Cursor / Copilot / any MCP client)
โ
โ Single MCP connection (Streamable HTTP)
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SERVICE DAEMON โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ MCP Hub ยท port 3333 โ โ
โ โ Aggregates & proxies tools from all downstream MCPs โ โ
โ โ Namespaced tools: github__create_issue, etc. โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Notification Gateway ยท port 3334 โ โ
โ โ 24/7 listener for all integrations โ โ
โ โ SQLite persistence + SSE push to agents โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Integration System (plugin-based) โ โ
โ โ X/Twitter ยท Slack ยท Email ยท Webhooks ยท HTTP-poll โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Interactive TUI Dashboard (Ink v6) โ โ
โ โ Notification Center ยท Integration Manager ยท โ โ
โ โ MCP Manager ยท Full keyboard navigation โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โโโโโโ โโโโโโโโโโโโโโโโโโโโ
โผ โผ
Downstream MCPs (stdio) External Platforms
github, filesystem, memory, X/Twitter, Slack, Email,
brave-search, any MCP server Webhook, HTTP-poll, customQuickstart
# 1. Install globally
npm install -g service-mcp
# 2. Start the daemon
service start
# 3. Add your AI client config (see below)
# 4. Add integrations interactively
service integration add
# 5. Watch it live
service dashboardPorts:
3333โ MCP Hub (agents connect here) ยท3334โ Admin API + SSE stream
Connect Your AI Client
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"service": {
"url": "http://localhost:3333/mcp"
}
}
}Cursor
Edit your Cursor MCP settings (~/.cursor/mcp.json or via Settings โ MCP):
{
"mcpServers": {
"service": {
"url": "http://localhost:3333/mcp"
}
}
}Any stdio-compatible client
{
"mcpServers": {
"service": {
"command": "npx",
"args": ["service-mcp", "mcp-server"]
}
}
}CLI Reference
Daemon Lifecycle
Command | Description |
| Start the SERVICE daemon in the background |
| Gracefully stop the daemon |
| Show daemon status (uptime, ports, integrations, MCPs) |
Integration Management
Command | Description |
| List all configured integrations and their status |
| Add a new integration via interactive wizard |
| Permanently remove an integration |
| Re-enable a disabled integration |
| Disable without removing |
MCP Connection Management
Command | Description |
| List all downstream MCP connections |
| Add a downstream MCP server (interactive wizard if no args) |
| Disconnect and remove a downstream MCP |
Utilities
Command | Description |
| Open the interactive TUI dashboard (full-screen Ink v6 app) |
| Generate shell completion script (bash/zsh/fish) |
| Check for and install newer versions from npm |
| Show help for all commands |
| Show installed version |
Interactive TUI Dashboard
The service dashboard command launches a full-screen, keyboard-driven terminal UI built on Ink v6 (React for CLI โ the same framework powering Claude Code and Gemini CLI). It provides complete management of notifications, integrations, and MCP connections without leaving the terminal.
Navigation
Key | Action |
| Cycle between panes (Live Feed โ Integrations โ MCPs โ System) |
| Navigate lists |
| Open detail view for selected item |
| Go back to previous screen |
| Quit dashboard |
| Show/hide keyboard shortcut help overlay |
| Refresh current pane |
Notification Center
Manage all notifications in real-time:
Real-time updates: New notifications appear instantly via SSE push โ no polling
Visual indicators:
โunread (bold) vsโread (dimmed)Mark as read:
Spacemarks selected notification,Amarks all as readFilter:
utoggles unread-only viewSearch:
/opens inline full-text search (FTS5)Detail view:
Entershows full notification body, source, type, and timestamp
Integration Manager
View, configure, and manage all integrations:
Status badges: ๐ข active / ๐ด error / โธ disabled (color-coded)
Detail view: Shows config fields with secrets redacted as
โขโขโขโขโขโขEnable/Disable:
e/dkeys toggle integration stateRemove:
xkey with confirmation dialogAdd new:
aopens in-TUI multi-step form with type selection, schema-driven fields, and password masking for secret fields
MCP Connection Manager
Manage all downstream MCP server connections:
Status badges: ๐ข connected / ๐ด error / โณ connecting, with tool count display
Detail view: Full command + args, status, and scrollable tool list
Reconnect:
rkey triggers reconnect for disconnected MCPsRemove:
xkey with confirmation dialogAdd new:
aopens in-TUI form for name, command, and args
MCP Tool Reference
All built-in SERVICE tools are prefixed with service__. Downstream MCP tools are namespaced as {mcpName}__toolName (e.g. github__create_issue).
Notifications
Tool | Parameters | Description |
|
| Get recent notifications with optional filters |
| โ | Count of unread notifications |
|
| Mark a specific notification as read |
|
| Full-text search across notification history |
Agent Memory
Tool | Parameters | Description |
|
| Save a persistent key-value note |
|
| Retrieve a note by key |
| โ | List all saved note keys |
|
| Delete a note by key |
MCP Management
Tool | Parameters | Description |
|
| Add a downstream MCP at runtime |
|
| Remove a downstream MCP connection |
| โ | List all active downstream MCP connections |
System
Tool | Parameters | Description |
| โ | Daemon health: uptime, version, integration count |
| โ | Formatted guide of all available tools |
Platform Tools (Auto-registered from Integrations)
When integrations are active, their tools are automatically registered and available to your agents:
Integration | Tools |
X / Twitter |
|
Slack |
|
| |
HTTP-poll |
|
Integration Setup
Webhook
The simplest integration โ receives HTTP POST requests and converts them to notifications.
service integration add webhook --name my-webhook
# Returns webhook URL: http://localhost:3334/webhooks/<integration-id>Send events from any external system:
curl -X POST http://localhost:3334/webhooks/<id> \
-H "Content-Type: application/json" \
-d '{"title": "Deploy Complete", "body": "v2.1.0 deployed to production"}'X / Twitter
Requires a Twitter API v2 bearer token. Optional: keyword tracking.
service integration add x
# Wizard prompts for:
# bearer_token โ Twitter API v2 bearer token
# track_keywords โ (optional) comma-separated keywords to monitorSlack
Requires a Slack Bot Token with Socket Mode enabled.
service integration add slack
# Wizard prompts for:
# bot_token โ xoxb-... (Bot User OAuth Token)
# app_token โ xapp-... (App-Level Token for Socket Mode)Scopes required: channels:read, chat:write, reactions:write, channels:history
Email (SMTP + IMAP)
Monitors your inbox via IMAP and sends email via SMTP. Works with Gmail, Outlook, Fastmail, and any standard mail server.
service integration add email
# Wizard prompts for:
# imap_host, imap_port โ e.g. imap.gmail.com:993
# smtp_host, smtp_port โ e.g. smtp.gmail.com:587
# user, password โ your email credentials (stored encrypted)Tip for Gmail: Enable "App Passwords" in your Google Account security settings.
HTTP Poll
Polls a URL on a schedule and creates a notification whenever the content changes.
service integration add http-poll
# Wizard prompts for:
# url โ endpoint to poll
# interval_seconds โ polling interval (e.g. 60)
# method โ GET or POSTAdmin REST API
SERVICE exposes a full REST API on port 3334 for programmatic management and automation:
Endpoint | Method | Description |
|
| Health check โ returns |
|
| Full daemon status (uptime, version, counts) |
|
| List notifications ( |
|
| Mark a notification as read |
|
| List all configured integrations |
|
| Create a new integration |
|
| Remove an integration |
|
| List all available integration types |
|
| List downstream MCP connections |
|
| Add a downstream MCP server |
|
| Remove a downstream MCP |
|
| SSE stream โ real-time notification events |
|
| Inbound webhook receiver |
SSE Event Stream
Subscribe to real-time events:
curl -N http://localhost:3334/eventsEvents are JSON-encoded NotificationEvent objects pushed as they arrive.
Data Storage
All data is stored locally on your machine. Nothing is sent to external servers unless you configure an integration.
Path | Purpose |
| SQLite database โ notifications, integrations, notes |
| Daemon configuration |
| Daemon PID file |
| Runtime state (connected agents, uptime) |
| Rotating log files |
| Auto-generated AES-256-GCM encryption key for credentials |
Credentials stored in integrations are encrypted at rest using AES-256-GCM. The encryption key is generated once on first run and stored at
~/.service/.encryption_key.
Examples
See the examples/ directory for ready-to-use configs:
File | Description |
Full Claude Desktop configuration | |
Cursor editor MCP config | |
Sample downstream MCP connections (github, filesystem, brave) | |
Shell script for sending webhook events |
Requirements
Requirement | Version |
Node.js | โฅ 20.0.0 |
npm | โฅ 9.0.0 |
OS | macOS, Linux, Windows (WSL2) |
Development
# Clone and install
git clone https://github.com/baiehclaca/service-mcp.git
cd service-mcp
npm install
# Build TypeScript
npm run build
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Development mode (watch + auto-reload)
npm run dev
# Lint
npm run lintAdding a Custom Integration
Every integration implements the IntegrationAdapter interface:
interface IntegrationAdapter {
id: string
name: string
description: string
configSchema: JSONSchema // Fields the wizard will prompt for
connect(config: Record<string, string>): Promise<void>
disconnect(): Promise<void>
onEvent(handler: (event: NotificationEvent) => void): void
getTools(): MCPTool[] // Tools exposed to agents
}Register your adapter in src/integrations/index.ts โ no rebuild of the core daemon is needed.
License
MIT โ ยฉ 2024 service-mcp contributors
This server cannot be deployed
Maintenance
Related MCP Connectors
Real-time planetary signal engine and Model Context Protocol (MCP) server for autonomous AI agents.
Push notifications for AI agents - send instant iPhone notifications from any MCP client.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for AI agents to send notifications, copy to clipboard, request confirmations, and collect text input from users across their devices.11223 npmApache 2.0
- AlicenseNot gradedqualityCmaintenanceCentralized agentic memory and MCP gateway for LLMs, enabling persistent memory recall, validation, and integration with upstream MCP servers.1Apache 2.0
- AlicenseNot gradedqualityAmaintenanceA real-time inter-agent switchboard, delivered as one centralized streamable-HTTP MCP server. Any MCP-capable agent can message, coordinate, and stay ambiently aware of others.AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceA local MCP server that provides shared, real-time context across multiple AI agents via WebSocket and MCP resource notifications, enabling collaborative workspaces, memory, tasks, and messaging.13 npm1MIT