slack-notifications

安装量: 93
排名: #8722

安装

npx skills add https://github.com/oimiragieo/agent-studio --skill slack-notifications
Mode: Cognitive/Prompt-Driven
— No standalone utility script; use via agent context.
Slack Notifications Skill
Overview
This skill provides Slack API operations with progressive disclosure for optimal context usage.
Context Savings
~90% reduction
MCP Mode
~15,000 tokens always loaded (30+ tools)
Skill Mode
~500 tokens metadata + on-demand loading Requirements SLACK_BOT_TOKEN environment variable (required) SLACK_SIGNING_SECRET environment variable (optional, for event verification) SLACK_APP_TOKEN environment variable (optional, for Socket Mode) Setting up Slack Bot Token Create a Slack App at https://api.slack.com/apps Navigate to "OAuth & Permissions" Add required bot token scopes: chat:write - Send messages channels:read - List channels channels:history - Read channel history users:read - List users files:write - Upload files reactions:write - Add reactions Install app to workspace Copy "Bot User OAuth Token" to SLACK_BOT_TOKEN environment variable Tools The skill provides 14 tools across 5 categories: Category Tools Confirmation Required Messaging post-message, post-thread, update-message, delete-message Yes (all) Channels list-channels, get-channel, channel-history No Users list-users, get-user, user-presence No Files upload-file, list-files Yes (upload only) Reactions add-reaction, get-reactions No Quick Reference

Post message to channel

curl -X POST https://slack.com/api/chat.postMessage \ -H "Authorization: Bearer $SLACK_BOT_TOKEN " \ -H "Content-Type: application/json" \ -d '{"channel": "C1234567890", "text": "Hello from Claude!"}'

List channels

curl -X GET "https://slack.com/api/conversations.list" \ -H "Authorization: Bearer $SLACK_BOT_TOKEN "

Upload file

curl
-X
POST https://slack.com/api/files.upload
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
\
-F
"channels=C1234567890"
\
-F
"file=@report.pdf"
\
-F
"title=Weekly Report"
Tool Details
Messaging Tools (Confirmation Required)
post-message
Send a message to a Slack channel.
Parameters
:
channel
(required): Channel ID or name (e.g., "C1234567890" or "#general")
text
(required): Message text (supports Slack markdown)
thread_ts
(optional): Parent message timestamp for threading
blocks
(optional): Rich message blocks (JSON array)
Example
:
curl
-X
POST https://slack.com/api/chat.postMessage
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
\
-H
"Content-Type: application/json"
\
-d
'{
"channel": "C1234567890",
"text": "Deployment successful!",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Deployment Status\n:white_check_mark: Production deployed successfully"
}
}
]
}'
post-thread
Reply to a message in a thread.
Parameters
:
channel
(required): Channel ID
thread_ts
(required): Parent message timestamp
text
(required): Reply text
Example
:
curl
-X
POST https://slack.com/api/chat.postMessage
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
\
-H
"Content-Type: application/json"
\
-d
'{
"channel": "C1234567890",
"thread_ts": "1234567890.123456",
"text": "Thread reply here"
}'
update-message
Update an existing message.
Parameters
:
channel
(required): Channel ID
ts
(required): Message timestamp
text
(required): New message text
Example
:
curl
-X
POST https://slack.com/api/chat.update
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
\
-H
"Content-Type: application/json"
\
-d
'{
"channel": "C1234567890",
"ts": "1234567890.123456",
"text": "Updated message"
}'
delete-message
Delete a message.
Parameters
:
channel
(required): Channel ID
ts
(required): Message timestamp
Example
:
curl
-X
POST https://slack.com/api/chat.delete
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
\
-H
"Content-Type: application/json"
\
-d
'{
"channel": "C1234567890",
"ts": "1234567890.123456"
}'
Channel Tools
list-channels
List all channels in workspace.
Parameters
:
types
(optional): Comma-separated channel types (default: "public_channel")
Options: "public_channel", "private_channel", "mpim", "im"
limit
(optional): Max channels to return (default: 100)
Example
:
curl
-X
GET
"https://slack.com/api/conversations.list?types=public_channel,private_channel"
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
get-channel
Get channel information.
Parameters
:
channel
(required): Channel ID
Example
:
curl
-X
GET
"https://slack.com/api/conversations.info?channel=C1234567890"
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
channel-history
Get channel message history.
Parameters
:
channel
(required): Channel ID
limit
(optional): Max messages to return (default: 100)
oldest
(optional): Start of time range (Unix timestamp)
latest
(optional): End of time range (Unix timestamp)
Example
:
curl
-X
GET
"https://slack.com/api/conversations.history?channel=C1234567890&limit=50"
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
Security Note
Channel history may contain sensitive information. Use with caution.
User Tools
list-users
List all users in workspace.
Parameters
:
limit
(optional): Max users to return (default: 100)
Example
:
curl
-X
GET
"https://slack.com/api/users.list"
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
get-user
Get user profile information.
Parameters
:
user
(required): User ID
Example
:
curl
-X
GET
"https://slack.com/api/users.info?user=U1234567890"
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
user-presence
Get user online status.
Parameters
:
user
(required): User ID
Example
:
curl
-X
GET
"https://slack.com/api/users.getPresence?user=U1234567890"
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
File Tools
upload-file (Confirmation Required)
Upload a file to Slack channel.
Parameters
:
channels
(required): Comma-separated channel IDs
file
(required): File path to upload
title
(optional): File title
initial_comment
(optional): Message text
Example
:
curl
-X
POST https://slack.com/api/files.upload
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
\
-F
"channels=C1234567890"
\
-F
"file=@C:
\r
eports\weekly.pdf"
\
-F
"title=Weekly Report"
\
-F
"initial_comment=Here is this week's report"
list-files
List files in channel.
Parameters
:
channel
(optional): Channel ID to filter by
user
(optional): User ID to filter by
count
(optional): Max files to return (default: 100)
Example
:
curl
-X
GET
"https://slack.com/api/files.list?channel=C1234567890"
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
Reaction Tools
add-reaction
Add emoji reaction to a message.
Parameters
:
channel
(required): Channel ID
timestamp
(required): Message timestamp
name
(required): Emoji name (without colons, e.g., "thumbsup")
Example
:
curl
-X
POST https://slack.com/api/reactions.add
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
\
-H
"Content-Type: application/json"
\
-d
'{
"channel": "C1234567890",
"timestamp": "1234567890.123456",
"name": "thumbsup"
}'
get-reactions
Get reactions on a message.
Parameters
:
channel
(required): Channel ID
timestamp
(required): Message timestamp
Example
:
curl
-X
GET
"https://slack.com/api/reactions.get?channel=C1234567890&timestamp=1234567890.123456"
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
Agent Integration
Primary Agents
devops
Infrastructure alerts, deployment notifications, monitoring
incident-responder
Incident alerts, status updates, escalations
Secondary Agents
pm
Sprint notifications, milestone updates, team announcements
developer
Build notifications, PR alerts, test results
qa
Test failure alerts, quality reports
security-architect
Security alerts, vulnerability notifications Common Use Cases Deployment Notifications

Notify channel of successful deployment

curl -X POST https://slack.com/api/chat.postMessage \ -H "Authorization: Bearer $SLACK_BOT_TOKEN " \ -H "Content-Type: application/json" \ -d '{ "channel": "#deployments", "text": ":rocket: Production deployment completed", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "Production Deployment\n:white_check_mark: v1.2.3 deployed successfully\nDuration: 5m 23s" } } ] }' Incident Alerts

Alert on-call team of incident

curl -X POST https://slack.com/api/chat.postMessage \ -H "Authorization: Bearer $SLACK_BOT_TOKEN " \ -H "Content-Type: application/json" \ -d '{ "channel": "#incidents", "text": "<!channel> :rotating_light: High severity incident detected", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", "text": "Incident INC-1234\n:rotating_light: Severity: P1\nService: API Gateway\nStatus: 503 errors increasing" } } ] }' Test Results

Post test results

curl
-X
POST https://slack.com/api/chat.postMessage
\
-H
"Authorization: Bearer
$SLACK_BOT_TOKEN
"
\
-H
"Content-Type: application/json"
\
-d
'{
"channel": "#qa",
"text": "Test suite completed",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Test Results\n:white_check_mark: 245 passed\n:x: 3 failed\n:warning: 2 skipped"
}
}
]
}'
Security Considerations
Token Security
NEVER
expose bot token in logs or error messages
Store token in environment variable, not in code
Use least-privilege scopes for bot token
Rotate tokens periodically
Message Security
All message operations require confirmation
Channel history may contain sensitive information (PII, credentials, etc.)
Validate channel permissions before posting
Use private channels for sensitive communications
Data Privacy
Comply with workspace data retention policies
Avoid posting PII or credentials in messages
Use Slack's data export features for compliance
Respect user privacy and online status
Error Handling
Common Errors
Error
Cause
Solution
not_authed
Missing or invalid token
Check
SLACK_BOT_TOKEN
is set correctly
channel_not_found
Invalid channel ID
Verify channel ID with
list-channels
missing_scope
Bot lacks required permission
Add scope in Slack App settings
rate_limited
Too many requests
Implement exponential backoff
message_not_found
Invalid timestamp
Check message timestamp is correct
Retry Strategy
For rate limiting errors, implement exponential backoff:
Wait 1 second, retry
Wait 2 seconds, retry
Wait 4 seconds, retry
Wait 8 seconds, retry
Give up after 5 attempts
Rate Limits
Slack API rate limits:
Tier 1
1 request per second
Tier 2
20 requests per minute
Tier 3
50 requests per minute
Tier 4
100 requests per minute
Methods by tier:
chat.postMessage
Tier 3 (50/min)
conversations.list
Tier 2 (20/min)
users.list
Tier 2 (20/min)
files.upload
Tier 4 (100/min) Related Slack API Documentation: https://api.slack.com/docs Block Kit Builder: https://app.slack.com/block-kit-builder Slack App Management: https://api.slack.com/apps Memory Protocol (MANDATORY) Before starting: Read .claude/context/memory/learnings.md After completing: New pattern -> .claude/context/memory/learnings.md Issue found -> .claude/context/memory/issues.md Decision made -> .claude/context/memory/decisions.md ASSUME INTERRUPTION: If it's not in memory, it didn't happen.
返回排行榜