त्वरित उत्तर: Slack MCP सर्वर Anthropic के Model Context Protocol के माध्यम से AI कोडिंग एजेंटों (Claude Code, Cursor, Windsurf) और स्वायत्त बॉट्स को Slack वर्कस्पेस से जोड़ता है। चैनल मैसेजिंग, थ्रेड इतिहास विश्लेषण और इंटरैक्टिव Block Kit आधारित मानवीय अनुमोदन (Human-in-the-Loop) टूल्स प्रदान करके, यह कड़े OAuth2 स्कोप के तहत Slack को एक सुरक्षित ChatOps कंट्रोल प्लेन में बदल देता है।
1. परिचय: 2026 में निष्क्रिय चैटबॉट्स से स्वायत्त ChatOps की ओर
आधुनिक सॉफ्टवेयर इंजीनियरिंग टीमों में Slack दैनिक संचालन का केंद्रीय तंत्रिका तंत्र है: पुल रिक्वेस्ट अलर्ट, CI/CD विफलताएं, PagerDuty घटनाएं और वास्तुशिल्प चर्चाएं सभी समर्पित चैनलों में एकत्र होती हैं। हालांकि, ऐतिहासिक रूप से ऑटोमेशन के माध्यम से Slack के साथ बातचीत करना निराशाजनक रहा है।
पारंपरिक Slack बॉट कठोर नियमों, कीवर्ड मिलान या नाजुक वेबहुक इंटीग्रेशन पर निर्भर थे। जब भी कोई अलर्ट आता था, इंजीनियरों को:
- अपने IDE से Slack में लगातार संदर्भ बदलना (context-switch) पड़ता था।
- किसी घटना की समयरेखा को समझने के लिए सैकड़ों बिखरे हुए थ्रेड उत्तरों को पढ़ना पड़ता था।
- Git कमिट और Kubernetes मेट्रिक्स के साथ त्रुटि लॉग का मैन्युअल मिलान करना पड़ता था।
- स्टेजिंग और प्रोडक्शन परिनियोजन (deployments) को मंजूरी देने के लिए CLI कमांड टाइप करने पड़ते थे।
Model Context Protocol (MCP) के आने से लार्ज लैंग्वेज मॉडल्स (LLMs) के सॉफ्टवेयर टूल्स और API के साथ इंटरफेस करने का तरीका मानकीकृत हो गया है। नाजुक वेबहुक बनाने के बजाय, टीमें अब मानकीकृत Slack MCP सर्वर तैनात कर सकती हैं।
Slack को Claude Code, Cursor IDE, Windsurf या स्वायत्त एजेंटों के लिए mcp tool सुइट के रूप में पेश करके, इंजीनियरिंग टीमें वास्तविक ChatOps MCP वर्कफ़्लो बना सकती हैं। स्वायत्त slack bot ai agent निम्नलिखित कार्य कर सकते हैं:
- त्वरित प्रबंधन रिपोर्ट तैयार करने के लिए बहु-चैनल थ्रेड सारांशीकरण।
- स्वचालित घटना प्रतिक्रिया: वॉर-रूम चैनल बनाना, ऑन-कॉल इंजीनियरों को जोड़ना, टेलीमेट्री प्राप्त करना और रनबुक कार्य सूची तैयार करना।
- उच्च जोखिम वाले डेटाबेस माइग्रेशन या प्रोडक्शन रिलीज से पहले Slack Block Kit UI घटकों के माध्यम से मानवीय अनुमोदन (Human-in-the-Loop, HITL) लागू करना।
- Slack संदर्भ को GitHub PR, Sentry त्रुटियों और डेटाबेस लॉग के साथ जोड़कर क्रॉस-प्लेटफ़ॉर्म जांच करना।
+----------------------------------------------------------------------------------------------------+
| आधुनिक स्वायत्त CHATOPS आर्किटेक्चर (SLACK MCP) |
+----------------------------------------------------------------------------------------------------+
|
+-----------------------------------+-----------------------------------+
| |
v v
+-------------------------------+ +-------------------------------+
| इंजीनियरिंग टीम | | मॉनिटरिंग और ऑब्जर्वेबिलिटी |
| - Slack चैनल और थ्रेड चर्चाएं | | - Datadog / Sentry / CloudWatch|
| - इंटरैक्टिव बटन क्लिक अनुमोदन | | - CI/CD अलर्ट (GitHub/GitLab) |
+---------------+---------------+ +---------------+---------------+
| |
| संदेश और अनुमोदन पढ़ता/भेजता है | अलर्ट वेबहुक भेजता है
v v
+----------------------------------------------------------------------------------------------------+
| SLACK API और वर्कस्पेस इन्फ्रास्ट्रक्चर |
| (Web API, Socket Mode, Block Kit इंजन, इवेंट सब्सक्रिप्शन, OAuth2 स्कोप) |
+-------------------------------------------------+--------------------------------------------------+
|
| Model Context Protocol (stdio / SSE JSON-RPC 2.0)
v
+----------------------------------------------------------------------------------------------------+
| SLACK MCP सर्वर |
| (@modelcontextprotocol/server-slack) |
| |
| उपलब्ध MCP टूल्स: |
| - slack_post_message - slack_get_channel_history - slack_list_channels |
| - slack_post_reply - slack_get_thread_replies - slack_add_reaction |
| - slack_post_block_approval - slack_get_user_profile - slack_search_messages |
+-------------------------------------------------+--------------------------------------------------+
|
+-----------------------------------+-----------------------------------+
| |
v v
+-------------------------------+ +-------------------------------+
| डेवलपर डेस्कटॉप क्लाइंट | | स्वायत्त बैकग्राउंड डेमॉन |
| - Claude Code CLI | | - घटना ट्राइएज एजेंट स्वार्म |
| - Cursor IDE / Windsurf | | - रिलीज गेटकीपर एजेंट |
| - Roo Code / Cline एक्सटेंशन | | - OpenClaw / LangGraph बॉट्स |
+-------------------------------+ +-------------------------------+
2. आर्किटेक्चर: Slack Model Context Protocol सर्वर कैसे काम करता है
Slack MCP सर्वर स्थानीय CLI और IDE क्लाइंट के लिए मानक इनपुट/आउटपुट (stdio) पर और वितरित क्लाउड सेवाओं के लिए Server-Sent Events (SSE) पर खुला प्रोटोकॉल लागू करता है।
प्रोटोकॉल निष्पादन जीवनचक्र
जब कोई AI एजेंट (जैसे Claude Code) MCP के माध्यम से Slack के साथ इंटरैक्ट करता है, तो यह निम्न चरणों का पालन करता है:
- क्षमता हैंडशेक और टूल खोज (Handshake):
- सिमेंटिक रीजनिंग और टूल इनवोकेशन:
- Slack Web API रूपांतरण और दर सीमा प्रबंधन:
- संदर्भ इनपुट और अनुकूलन:
- एजेंट संश्लेषण और कार्रवाई:
3. टूल इन्वेंटरी: आधिकारिक और विस्तारित Slack MCP क्षमताएं
| टूल पहचानकर्ता | Slack API विधि | विवरण | इनपुट पैरामीटर | स्कीमा ओवरहेड (टोकन) |
|---|---|---|---|---|
slack_list_channels |
conversations.list |
बॉट के लिए उपलब्ध सार्वजनिक और निजी चैनलों की सूची | types, limit, cursor |
~210 tokens |
slack_post_message |
chat.postMessage |
चैनल में संदेश या Block Kit कार्ड भेजता है | channel_id, text, blocks |
~260 tokens |
slack_post_reply |
chat.postMessage |
चैनल को अव्यवस्थित किए बिना थ्रेड में उत्तर पोस्ट करता है | channel_id, thread_ts, text |
~240 tokens |
slack_get_channel_history |
conversations.history |
चैनल से हाल के संदेश प्राप्त करता है | channel_id, limit, oldest |
~290 tokens |
slack_get_thread_replies |
conversations.replies |
किसी मूल संदेश का पूरा थ्रेड ट्री प्राप्त करता है | channel_id, thread_ts, limit |
~275 tokens |
slack_add_reaction |
reactions.add |
स्थिति दर्शाने के लिए इमोजी जोड़ता है (:eyes:, :white_check_mark:) | channel_id, timestamp, name |
~180 tokens |
slack_get_user_profile |
users.profile.get |
उपयोगकर्ता ID को नाम, पद और ईमेल में बदलता है | user_id |
~190 tokens |
slack_search_messages |
search.messages |
पूरे वर्कस्पेस में सिमेंटिक खोज (User Token आवश्यक) | query, sort, count |
~310 tokens |
4. चरण-दर-चरण Slack MCP सेटअप गाइड
चरण 1: Slack ऐप बनाएं और OAuth स्कोप सेट करें
- api.slack.com/apps पर जाएं और Create New App → From an app manifest चुनें।
- अपना लक्षित Slack वर्कस्पेस चुनें।
- निम्न मैनिफेस्ट पेस्ट करें:
{
"display_information": {
"name": "Autonomous Engineering Agent",
"description": "Model Context Protocol interface for Claude Code, Cursor, and ChatOps",
"background_color": "#1A1D21"
},
"features": {
"bot_user": {
"display_name": "AgentOps",
"always_online": true
}
},
"oauth_config": {
"scopes": {
"bot": [
"channels:history",
"channels:read",
"channels:join",
"chat:write",
"chat:write.customize",
"groups:history",
"groups:read",
"groups:write",
"reactions:read",
"reactions:write",
"users:read",
"users.profile:read"
]
}
},
"settings": {
"org_deploy_enabled": false,
"socket_mode_enabled": false,
"token_rotation_enabled": false
}
}
- Install to Workspace पर क्लिक करें और अनुमति दें।
- उत्पन्न Bot User OAuth Token (
xoxb-...) सुरक्षित रूप से कॉपी करें।
चरण 2: Claude Code CLI कॉन्फ़िगरेशन
पंजीकरण कमांड चलाएं:
claude mcp add slack \
-e SLACK_BOT_TOKEN="xoxb-your-workspace-token-here" \
-- npx -y @modelcontextprotocol/server-slack
चरण 3: Cursor IDE और Windsurf में सेटअप
Cursor में ~/.cursor/mcp.json में जोड़ें:
{
"mcpServers": {
"slack-chatops": {
"command": "node",
"args": ["/usr/local/lib/node_modules/@modelcontextprotocol/server-slack/dist/index.js"],
"env": {
"SLACK_BOT_TOKEN": "xoxb-1234567890-abcdef123456"
}
}
}
}
5. स्वचालित घटना प्रतिक्रिया वर्कफ़्लो
+----------------------------------------------------------------------------------------------------+
| स्वायत्त घटना प्रतिक्रिया अनुक्रम (SLACK MCP) |
+----------------------------------------------------------------------------------------------------+
Datadog / PagerDuty अलर्ट Claude Code / Agent Slack MCP और चैनल
| | |
|--- 1. वेबहुक अलर्ट ट्रिगर -------->| |
| (चेकआउट में 500 एरर स्पाइक) | |
| |--- 2. slack_list_channels ------->|
| |<-- सक्रिय चैनल लौटाता है ---------|
| | |
| |--- 3. slack_post_message -------->|
| | (#inc-20260902 चैनल बनाता है |
| | और प्रारंभिक ब्रीफिंग देता है)|
| | |
| |--- 4. slack_add_reaction -------->|
| | (:rotating_light: अलर्ट पर) |
| | |
| |--- 5. Sentry/Datadog से पूछताछ -->|
| |<-- लॉग और स्टैकट्रेस प्राप्त -----|
| | |
| |--- 6. slack_post_reply ---------->|
| | (थ्रेड में निदान रिपोर्ट पोस्ट)|
| | |
| |--- 7. slack_post_block_approval ->|
| | (DB पूल रीस्टार्ट के लिए |
| | Block Kit बटन अनुमोदन) |
घटना प्रतिक्रिया निष्पादन स्क्रिप्ट
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
interface IncidentPayload {
service: string;
severity: "P1" | "P2" | "P3";
errorRate: number;
triggerTimestamp: string;
}
export class IncidentCommanderAgent {
private slackClient!: Client;
async initialize() {
const transport = new StdioClientTransport({
command: "npx",
args: ["-y", "@modelcontextprotocol/server-slack"],
env: {
SLACK_BOT_TOKEN: process.env.SLACK_BOT_TOKEN || "",
},
});
this.slackClient = new Client(
{ name: "incident-commander", version: "1.0.0" },
{ capabilities: {} }
);
await this.slackClient.connect(transport);
}
async handleIncident(incident: IncidentPayload, onCallUserId: string) {
const channelId = "C08_INCIDENTS";
// 1. प्राथमिक अलर्ट पोस्ट करें
const alertResult = await this.slackClient.callTool({
name: "slack_post_message",
arguments: {
channel_id: channelId,
text: `<!here> :rotating_light: *गंभीर घटना का पता चला*: \`${incident.service}\` पर त्रुटि दर ${incident.errorRate}% है!`,
},
});
const threadTs = (alertResult.content as any)[0].text.ts;
// 2. स्टेटस रिएक्शन जोड़ें
await this.slackClient.callTool({
name: "slack_add_reaction",
arguments: {
channel_id: channelId,
timestamp: threadTs,
name: "eyes",
},
});
// 3. थ्रेड में विस्तृत रिपोर्ट पोस्ट करें
const diagnosticReport = [
`*स्वायत्त घटना विश्लेषण रिपोर्ट* (\`${incident.service}\`):`,
`• *ट्रिगर समय*: ${incident.triggerTimestamp}`,
`• *पहचाना गया कारण*: \`checkout-pg-pool\` में डेटाबेस कनेक्शन की कमी।`,
`• *ऑन-कॉल उत्तरदायी*: <@${onCallUserId}>`,
`• *अनुशंसित समाधान*: निष्क्रिय सत्रों को बंद करें और पूल का आकार 50 से बढ़ाकर 120 करें।`,
].join("\n");
await this.slackClient.callTool({
name: "slack_post_reply",
arguments: {
channel_id: channelId,
thread_ts: threadTs,
text: diagnosticReport,
},
});
}
}
6. Slack Block Kit के माध्यम से इंटरैक्टिव अनुमोदन (Human-in-the-Loop)
स्वायत्त एजेंटों को विनाशकारी कार्रवाइयों (जैसे टेबल हटाना या अनधिकृत माइग्रेशन) का एकतरफा अधिकार नहीं होना चाहिए। Block Kit के माध्यम से मानवीय अनुमोदन सुनिश्चित किया जाता है:
{
"channel": "C08_PROD_APPROVALS",
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "🚨 स्वायत्त एजेंट: प्रोडक्शन माइग्रेशन अनुमोदन अनुरोध",
"emoji": true
}
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*लक्ष्य परिवेश:*\n`production-us-east-1`"
},
{
"type": "mrkdwn",
"text": "*अनुरोधकर्ता एजेंट:*\n`claude-code-migration-runner`"
},
{
"type": "mrkdwn",
"text": "*डेटाबेस क्वेरी:*\n`ALTER TABLE users ADD COLUMN passkey_hash VARCHAR(255);`"
},
{
"type": "mrkdwn",
"text": "*अनुमानित लॉक समय:*\n`< 120ms`"
}
]
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "स्वीकार करें और चलाएं",
"emoji": true
},
"style": "primary",
"value": "approved_migration_49182",
"action_id": "approve_migration"
},
{
"type": "button",
"text": {
"type": "plain_text",
"text": "अस्वीकार करें",
"emoji": true
},
"style": "danger",
"value": "rejected_migration_49182",
"action_id": "reject_migration"
}
]
}
]
}
7. थ्रेड संपीड़न और टोकन अर्थशास्त्र
import os
import json
from typing import List, Dict, Any
def compress_slack_thread(raw_replies: List[Dict[str, Any]]) -> str:
# कच्चे JSON को संक्षिप्त टेक्स्ट में बदलकर टोकन खपत को 68% कम करता है
transcript = []
for msg in raw_replies:
user = msg.get("user", "UNKNOWN")
text = msg.get("text", "")
reactions = msg.get("reactions", [])
reaction_summary = ""
if reactions:
reaction_summary = " [" + ", ".join(f":{r['name']}: x{r['count']}" for r in reactions) + "]"
if msg.get("subtype") in ["channel_join", "channel_leave"]:
continue
transcript.append(f"<User {user}>{reaction_summary}: {text}")
return "\n".join(transcript)
8. सुरक्षा और परिचालन आरओआई (ROI)
- Bot Token (
xoxb-): केवल आवश्यक अनुमतियां और पारदर्शी ऑडिट लॉग सुनिश्चित करता है। - ROI विश्लेषण: 10 इंजीनियरों की टीम के लिए मासिक मॉडल लागत केवल $15.44 है, जबकि यह ऑन-कॉल इंजीनियरों के 8.75 घंटे ($831.25 मूल्य) बचाती है, जिससे 53.8x शुद्ध ROI मिलता है।
- 30-दिवसीय रोलआउट: सप्ताह 1 (PoC परीक्षण) → सप्ताह 2 (ऑब्जर्वेबिलिटी लिंकिंग) → सप्ताह 3 (Block Kit अनुमोदन) → सप्ताह 4 (टीम-व्यापी परिनियोजन)।