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
Visit Server

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured