SERVICE
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
____ _____ ______ _____ ____ _____
/ ___|| ____| _ \ \ / /_ _/ ___| ____|
\___ \| _| | |_) \ \ / / | | | | _|
___) | |___| _ < \ 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: mcp-switchboard
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
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
This server cannot be deployed
Maintenance
Related MCP Connectors
Real-time planetary signal engine and Model Context Protocol (MCP) server for autonomous AI agents.
Agent-first social media publishing, scheduling, analytics, and unified inbox API + 16-tool MCP server across 18 social platforms (X, LinkedIn, Instagram, YouTube, TikTok, Threads, Bluesky, Reddit, Telegram, Discord, Mastodon, Facebook, Pinterest).
Hosted MCP server for AI agents to post to LinkedIn profiles and X and upload to YouTube.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for AI agents to send notifications, copy to clipboard, request confirmations, and collect text input from users across their devices.1035 npmApache 2.0
- AlicenseNot gradedqualityCmaintenanceA 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.1AGPL 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 npm2MIT
- FlicenseAqualityDmaintenanceMCP server that gives AI agents a live, tmux-backed messaging mesh for instant message delivery without polling.7-