stashcat-api-mcp

stashcat-api-mcp

MCP server for the Stashcat messenger API. Enables AI assistants to read and send messages, manage channels, conversations, files, polls, and more.

Category
访问服务器

README

stashcat-api-mcp

MCP (Model Context Protocol) server for the Stashcat / schul.cloud messenger API.

Allows AI assistants (e.g. Claude Desktop) to interact with Stashcat: read and send messages, manage channels and conversations, browse files, and more.

Requirements

  • Node.js 20+
  • A Stashcat account

Installation

git clone https://github.com/dclausen01/stashcat-api-mcp.git
cd stashcat-api-mcp
npm install
npm run build

Configuration

Copy .env.example to .env and fill in your credentials:

cp .env.example .env
STASHCAT_BASE_URL=https://api.stashcat.com/
STASHCAT_EMAIL=your-email@example.com
STASHCAT_PASSWORD=your-password
STASHCAT_APP_NAME=stashcat-mcp
STASHCAT_DEVICE_ID=              # Optional; auto-generated if omitted
STASHCAT_SECURITY_PASSWORD=      # Optional; defaults to STASHCAT_PASSWORD
                                 # Enables automatic E2E message decryption

SESSION_FILE_PATH=./stashcat-session.json

The server logs in once, unlocks E2E encryption, and persists the session to SESSION_FILE_PATH. On subsequent starts it reuses the saved session and only re-authenticates when the session has expired. E2E decryption is re-unlocked automatically on each start.

Usage with Claude Desktop

Add the server to your claude_desktop_config.json:

{
  "mcpServers": {
    "stashcat": {
      "command": "node",
      "args": ["/absolute/path/to/stashcat-api-mcp/dist/index.js"],
      "env": {
        "STASHCAT_EMAIL": "your-email@example.com",
        "STASHCAT_PASSWORD": "your-password",
        "STASHCAT_BASE_URL": "https://api.stashcat.com/"
      }
    }
  }
}

Available Tools

Tool Description
get_me Profile of the authenticated user
get_user Profile of a specific user
list_companies Companies the user belongs to
get_company Details of a company
list_company_members Members of a company
get_all_company_members Get all members (no pagination)
list_managed_users List managed users (for admins)
list_groups List company groups
list_channels Subscribed channels of a company
search_channels Search visible/joinable channels
get_channel_info Detailed info about a channel
get_channel_members Members of a channel
join_channel Join a channel
quit_channel Leave a channel
create_channel Create a new channel
edit_channel Edit channel settings
delete_channel Delete a channel permanently
invite_users_to_channel Invite users to a channel
accept_channel_invite Accept a channel invitation
decline_channel_invite Decline a channel invitation
remove_user_from_channel Remove a user from a channel
add_channel_moderator Grant moderator status
remove_channel_moderator Revoke moderator status
set_channel_favorite Mark/unmark channel as favorite
enable_channel_notifications Enable push notifications
disable_channel_notifications Disable push notifications
list_conversations All direct messages and group chats
get_conversation Details of a conversation
create_conversation Create a new encrypted conversation
archive_conversation Archive a conversation
set_conversation_favorite Mark/unmark conversation as favorite
get_messages Fetch messages from a channel or conversation
send_message Send a text message
delete_message Delete a message
mark_as_read Mark messages as read
like_message Like a message
get_flagged_messages Get flagged messages
unlike_message Remove like from a message
list_likes List users who liked a message
flag_message Flag a message
unflag_message Unflag a message
list_files List files and folders
get_file_info Metadata for a file
get_storage_quota Storage quota info
rename_file Rename a file
delete_files Delete one or more files
upload_file Upload a file to a channel/conversation/personal
download_file Download a file as base64
move_file Move a file to another folder
copy_file Copy a file to another location
create_folder Create a new folder
delete_folder Delete a folder
get_notifications Recent notifications
get_notification_count Number of unread notifications
get_account_settings Account settings
list_active_devices Active devices
change_status Change status message
change_password Change account password
deactivate_device Deactivate an active device
store_profile_image Upload profile image (base64)
reset_profile_image Reset profile image to default
delete_notification Delete a specific notification
list_events List calendar events in a time range
get_event_details Details for a specific event
create_event Create a new calendar event
edit_event Edit an existing event
delete_events Delete calendar events
respond_to_event Accept/decline event invitation
invite_to_event Invite users to an event
list_available_calendars CalDAV sync URLs
list_channels_having_events Channels with events
list_broadcasts List all broadcast lists
create_broadcast Create a new broadcast list
delete_broadcast Delete a broadcast list
rename_broadcast Rename a broadcast list
add_broadcast_members Add members to a broadcast list
remove_broadcast_members Remove members from a broadcast list
list_broadcast_members List members of a broadcast list
get_broadcast_content Get messages from a broadcast list
send_broadcast_message Send a message to a broadcast list
Polls (Surveys)
list_polls List polls by constraint (created/invited/archived)
get_poll_details Get full poll details with questions
create_poll Create a new poll (as draft)
edit_poll Edit an existing poll
delete_poll Delete a poll
publish_poll Publish a draft poll
archive_poll Archive or unarchive a poll
invite_to_poll Invite users or channels to a poll
list_poll_participants List users who answered a poll
create_poll_question Create a question in a poll
edit_poll_question Edit a question
delete_poll_question Delete a question
create_poll_answer Create an answer option
list_poll_answers List answers with vote counts
vote_poll Submit votes for a question
export_poll Export poll results as CSV
watch_poll Start/stop watching a poll
list_poll_invited_users List users invited to a poll
list_poll_invites List poll invites with pagination
edit_poll_answer Edit an answer option
delete_poll_answer Delete an answer option
Realtime
create_realtime_connection Connect to Socket.io for live events
disconnect_realtime Disconnect from realtime
send_typing_indicator Send "typing..." indicator

Building

npm run build      # compile with esbuild → dist/index.js
npm run typecheck  # TypeScript type check only
npm run clean      # remove dist/

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选