github analyzed f8f0d51

windborne/zulipmcp

github

Run AI agents in Zulip as @mentionable bots — or wire into any MCP client.

maintainer
windborne
license
Apache-2.0
first seen
2026-06-07
last seen
2026-06-17
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport stdio · sse counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit f8f0d51 · analyzer v20 · 1d ago

skills & prompt files 1

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 4

  • fs windborne-zulipmcp-f8f0d51/zulipmcp/agent_backends.py :8 from pathlib import Path
  • fs windborne-zulipmcp-f8f0d51/zulipmcp/core.py :6 from pathlib import Path
  • fs windborne-zulipmcp-f8f0d51/zulipmcp/listener.py :19 from pathlib import Path
  • fs windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :23 from pathlib import Path

shell / exec 1

  • shell windborne-zulipmcp-f8f0d51/zulipmcp/listener.py :14 import subprocess

network 1

  • net windborne-zulipmcp-f8f0d51/zulipmcp/core.py :12 import requests

tool registrations 27

  • set_context windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :300
  • reply windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :340
  • listen windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :445
  • end_session windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :641
  • list_streams windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :722
  • get_stream_topics windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :751
  • get_stream_members windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :774
  • get_messages windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :796
  • get_message_by_id windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :848
  • get_message_link windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :866
  • verify_message windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :893
  • send_message windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :934
  • send_direct_message windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :956
  • add_reaction windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :977
  • remove_reaction windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :991
  • edit_message windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :1010
  • move_messages windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :1033
  • resolve_topic windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :1078
  • list_emoji windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :1112
  • typing windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :1131
  • stop_typing windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :1150
  • get_user_info windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :1173
  • resolve_name windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :1213
  • get_subscribed_streams windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :1234
  • fetch_image windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :1251
  • fetch_file windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :1265
  • upload_file windborne-zulipmcp-f8f0d51/zulipmcp/mcp.py :1280

declared dependencies 3

  • diskcache@*
  • fastmcp@*
  • zulip@*

obfuscation 1

  • dynamic require()/import() windborne-zulipmcp-f8f0d51/zulipmcp/__init__.py :3 from .core import (