Run AI agents in Zulip as @mentionable bots — or wire into any MCP client.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · sse counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
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
- agent-ruleswindborne-zulipmcp-f8f0d51/CLAUDE.md
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 (