MCPcopy
hub / github.com/caronc/apprise

github.com/caronc/apprise @v1.11.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.11.0 ↗
4,566 symbols 21,354 edges 402 files 3,431 documented · 75%
README

Apprise Logo


ap·prise / verb

To inform or tell (someone). To make one aware of something.


Apprise allows you to send a notification to almost all of the most popular notification services available to us today such as: Telegram, Discord, Slack, Amazon SNS, Gotify, etc.

  • One notification library to rule them all.
  • A common and intuitive notification syntax.
  • Supports the handling of images and attachments (to the notification services that will accept them).
  • It's incredibly lightweight.
  • Amazing response times because all messages sent asynchronously.

Developers who wish to provide a notification service no longer need to research each and every one out there. They no longer need to try to adapt to the new ones that comeout thereafter. They just need to include this one library and then they can immediately gain access to almost all of the notifications services available to us today.

System Administrators and DevOps who wish to send a notification now no longer need to find the right tool for the job. Everything is already wrapped and supported within the apprise command line tool (CLI) that ships with this product.

Paypal Follow

Discord Python Build Status Lines of Code CodeCov Status PyPi Downloads

Table of Contents

Visit the Official Documentation site for more information on Apprise.

Supported Notifications

The section identifies all of the services supported by this library. Check out the wiki for more information on the supported modules here.

Productivity Based Notifications

The table below identifies the services this tool supports and some example service urls you need to use in order to take advantage of it. Click on any of the services listed below to get more details on how you can configure Apprise to access them. If you're having trouble constructing your own URL; try our Apprise URL Builder out.

Notification Service Service ID Default Port Example Syntax
Apprise API apprise:// or apprises:// (TCP) 80 or 443 apprise://hostname/Token
AWS SES ses:// (TCP) 443 ses://user@domain/AccessKeyID/AccessSecretKey/RegionName

ses://user@domain/AccessKeyID/AccessSecretKey/RegionName/email1/email2/emailN | Bark | bark:// | (TCP) 80 or 443 | bark://hostname

bark://hostname/device_key

bark://hostname/device_key1/device_key2/device_keyN

barks://hostname

barks://hostname/device_key

barks://hostname/device_key1/device_key2/device_keyN | Blink(1) | blink1:// | USB | blink1://

blink1://serial/ | BlueSky | bluesky:// | (TCP) 443 | bluesky://Handle:AppPw

bluesky://Handle:AppPw/TargetHandle

bluesky://Handle:AppPw/TargetHandle1/TargetHandle2/TargetHandleN | Brevo | brevo:// | (TCP) 443 | brevo://APIToken:FromEmail/

brevo://APIToken:FromEmail/ToEmail

brevo://APIToken:FromEmail/ToEmail1/ToEmail2/ToEmailN/ | Chanify | chantify:// | (TCP) 443 | chantify://token | Amazon Chime | chime:// | (TCP) 443 | chime://WebhookID/Token | Discord | discord:// | (TCP) 443 | discord://webhook_id/webhook_token

discord://avatar@webhook_id/webhook_token | Dot. | dot:// | (TCP) 443 | dot://apikey@device_id/text/

dot://apikey@device_id/image/

Note: device_id is the Quote/0 hardware serial | Emby | emby:// or embys:// | (TCP) 8096 | emby://user@hostname/

emby://user:password@hostname | Enigma2 | enigma2:// or enigma2s:// | (TCP) 80 or 443 | enigma2://hostname | Evolution API | evolution:// or evolutions:// | (TCP) 80 or 443 | evolution://apikey@hostname/instance/ToPhoneNo

evolution://apikey@hostname:port/instance/ToPhoneNo

evolution://apikey@hostname/instance/ToPhoneNo1/ToPhoneNo2/ToPhoneNoN/ | FCM | fcm:// | (TCP) 443 | fcm://project@apikey/DEVICE_ID

fcm://project@apikey/#TOPIC

fcm://project@apikey/DEVICE_ID1/#topic1/#topic2/DEVICE_ID2/ | Feishu | feishu:// | (TCP) 443 | feishu://token | Flock | flock:// | (TCP) 443 | flock://token

flock://botname@token

flock://app_token/u:userid

flock://app_token/g:channel_id

flock://app_token/u:userid/g:channel_id | Google Chat | gchat:// | (TCP) 443 | gchat://workspace/key/token | Gotify | gotify:// or gotifys:// | (TCP) 80 or 443 | gotify://hostname/token

gotifys://hostname/token?priority=high | GroupMe | groupme:// | (TCP) 443 | groupme://bot_id

groupme://bot_id/access_token | Growl | growl:// | (UDP) 23053 | growl://hostname

growl://hostname:portno

growl://password@hostname

growl://password@hostname:port

Note: you can also use the get parameter version which can allow the growl request to behave using the older v1.x protocol. An example would look like: growl://hostname?version=1 | Guilded | guilded:// | (TCP) 443 | guilded://webhook_id/webhook_token

guilded://avatar@webhook_id/webhook_token | Home Assistant | hassio:// or hassios:// | (TCP) 8123 or 443 | hassio://hostname/accesstoken

hassio://user@hostname/accesstoken

hassio://user:password@hostname:port/accesstoken

hassio://hostname/optional/path/accesstoken | HumHub | humhub:// or humhubs:// | (TCP) 80 or 443 | humhubs://token@hostname/container_id

humhubs://user:password@hostname/container_id

humhubs://token@hostname/id1/id2/id3 | IFTTT | ifttt:// | (TCP) 443 | ifttt://webhooksID/Event

ifttt://webhooksID/Event1/Event2/EventN

ifttt://webhooksID/Event1/?+Key=Value

ifttt://webhooksID/Event1/?-Key=value1 | IRC | irc:// or ircs:// | (TCP) 6667 or 6697 | ircs://user:pass@irc.server/@user

ircs://user:pass@irc.server/#channel?join=true&mode=nickserv

ircs://user:pass@znc.server/@user1/@user2/@user3/#channel1 | Jellyfin | jellyfin:// or jellyfins:// | (TCP) 8096 | jellyfin://user@hostname/

jellyfins://user:password@hostname | Jira | jira:// | (TCP) 443 | jira://APIKey

jira://APIKey/@UserID

jira://APIKey/#Team

jira://APIKey/*Schedule

jira://APIKey/^Escalation | Join | join:// | (TCP) 443 | join://apikey/device

join://apikey/device1/device2/deviceN/

join://apikey/group

join://apikey/groupA/groupB/groupN

join://apikey/DeviceA/groupA/groupN/DeviceN/ | KODI | kodi:// or kodis:// | (TCP) 8080 or 443 | kodi://hostname

kodi://user@hostname

kodi://user:password@hostname:port | Kumulos | kumulos:// | (TCP) 443 | kumulos://apikey/serverkey | LaMetric Time | lametric:// | (TCP) 443 | lametric://apikey@device_ipaddr

lametric://apikey@hostname:port

lametric://client_id@client_secret | Lark | lark:// | (TCP) 443 | lark://BotToken | Line | line:// | (TCP) 443 | line://Token@User

line://Token/User1/User2/UserN | Mailgun | mailgun:// | (TCP) 443 | mailgun://user@hostname/apikey

mailgun://user@hostname/apikey/email

mailgun://user@hostname/apikey/email1/email2/emailN

mailgun://user@hostname/apikey/?name="From%20User" | Mastodon | mastodon:// or mastodons://| (TCP) 80 or 443 | mastodon://access_key@hostname

mastodon://access_key@hostname/@user

mastodon://access_key@hostname/@user1/@user2/@userN | Matrix | matrix:// or matrixs:// | (TCP) 80 or 443 | matrix://hostname

matrix://user@hostname

matrixs://user:pass@hostname:port/#room_alias

matrixs://user:pass@hostname:port/!room_id

matrixs://user:pass@hostname:port/#room_alias/!room_id/#room2

matrixs://token@hostname:port/?webhook=matrix

matrix://user:token@hostname/?webhook=slack&format=markdown | Mattermost | mmost:// or mmosts:// | (TCP) 8065 | mmost://hostname/authkey

mmost://hostname:80/authkey

mmost://user@hostname:80/authkey

mmost://hostname/authkey?channel=channel

mmosts://hostname/authkey

mmosts://user@hostname/authkey

| Microsoft Power Automate / Workflows (MSTeams) | workflows:// | (TCP) 443 | workflows://WorkflowID/Signature/ | Misskey | misskey:// or misskeys://| (TCP) 80 or 443 | misskey://access_token@hostname | MQTT | mqtt:// or mqtts:// | (TCP) 1883 or 8883 | mqtt://hostname/topic

mqtt://user@hostname/topic

mqtts://user:pass@hostname:9883/topic | Nextcloud | ncloud:// or nclouds:// | (TCP) 80 or 443 | ncloud://adminuser:pass@host/User

nclouds://adminuser:pass@host/User1/User2/UserN | NextcloudTalk | nctalk:// or nctalks:// | (TCP) 80 or 443 | nctalk://user:pass@host/RoomId

nctalks://user:pass@host/RoomId1/RoomId2/RoomIdN | Notica | notica:// | (TCP) 443 | notica://Token/ | NotificationAPI | napi:// | (TCP) 443 | napi://ClientID/ClientSecret/Target

napi://ClientID/ClientSecret/Target1/Target2/TargetN

napi://MessageType@ClientID/ClientSecret/Target | Notifiarr | notifiarr:// | (TCP) 443 | notifiarr://apikey/#channel

notifiarr://apikey/#channel1/#channel2/#channeln | Notifico | notifico:// or notificos:// | (TCP) 80 or 443 | notifico://ProjectID/MessageHook/

notifico://host/ProjectID/MessageHook/

notificos://host/ProjectID/MessageHook/ | ntfy | ntfy:// | (TCP) 80 or 443 | ntfy://topic/

ntfys://topic/ | Octopush | octopush:// | (TCP) 443 | octopush://APILogin/APIKey/TargetPhoneNo

octopush://Sender:APILogin/APIKey/TargetPhoneNo

octopush://Sender:APILogin/APIKey/TargetPhoneNo1/TargetPhoneNo2/TargetPhoneNoN | Office 365 | o365:// | (TCP) 443 | o365://TenantID:AccountEmail/ClientID/ClientSecret

o365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmail

o365://TenantID:AccountEmail/ClientID/ClientSecret/TargetEmail1/TargetEmail2/TargetEmailN | OneSignal | onesignal:// | (TCP) 443 | onesignal://AppID@API

Core symbols most depended-on inside this repo

get
called by 703
apprise/persistent_store.py
unquote
called by 679
apprise/url.py
instantiate
called by 619
apprise/apprise.py
get
called by 619
apprise/plugins/fcm/color.py
_apply_overflow
called by 328
apprise/plugins/base.py
join
called by 310
apprise/plugins/irc/client.py
add
called by 289
apprise/apprise.py
quote
called by 253
apprise/url.py

Shape

Method 1,808
Function 1,795
Route 498
Class 465

Languages

Python100%

Modules by API surface

tests/test_plugin_xmpp.py254 symbols
tests/test_retry_wait.py159 symbols
tests/test_plugin_matrix.py154 symbols
tests/test_utils_wkd.py77 symbols
tests/test_utils_socket.py74 symbols
tests/test_plugin_dot.py74 symbols
tests/test_api.py72 symbols
tests/test_plugin_email.py70 symbols
tests/test_plugin_irc.py63 symbols
tests/test_plugin_slack.py54 symbols
tests/test_notification_manager.py54 symbols
tests/test_utils_pgp.py53 symbols

Used by 2 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

PyYAML
certifi
click5.0 · 1×
requests-oauthlib

For agents

$ claude mcp add apprise \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact