github Python analyzed 880854b

sandraschi/discord-mcp

github

Discord bot bridge via FastMCP — guilds, messages, moderation, RAG search, agentic workflow. Local web dashboard. For Cursor / Claude Desktop.

maintainer
sandraschi
licence
MIT
first seen
2026-06-08
last seen
2026-09-11
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

capabilities 2 tools
transport stdio · streamable-http · http counts 2 tools · 0 res · 0 prompts permission surface via code analysis

tools

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

analyzed commit 880854b · analyzer v33 · 1d ago

skills & prompt files 14

danger signals2

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

code files: 128

filesystem 12

  • fs sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/rag.py :6 from pathlib import Path
  • fs sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/rules.py :3 from pathlib import Path
  • fs sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/scheduler.py :7 from pathlib import Path
  • fs sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/server.py :11 from pathlib import Path
  • fs sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/slack_bridge.py :3 from pathlib import Path
  • fs (weak) sandraschi-discord-mcp-880854b/scripts/cua-smoke.py :47 with open(p) as f:
  • fs (weak) sandraschi-discord-mcp-880854b/scripts/cua-webapp-test.py :33 from pathlib import Path
  • fs sandraschi-discord-mcp-880854b/src/discord_mcp/rag.py :6 from pathlib import Path
  • fs sandraschi-discord-mcp-880854b/src/discord_mcp/rules.py :3 from pathlib import Path
  • fs sandraschi-discord-mcp-880854b/src/discord_mcp/scheduler.py :7 from pathlib import Path
  • fs sandraschi-discord-mcp-880854b/src/discord_mcp/server.py :11 from pathlib import Path
  • fs sandraschi-discord-mcp-880854b/src/discord_mcp/slack_bridge.py :3 from pathlib import Path

shell / exec 4

  • shell sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/server.py :20 import subprocess
  • shell (weak) sandraschi-discord-mcp-880854b/scripts/cua-smoke.py :31 import subprocess
  • shell (weak) sandraschi-discord-mcp-880854b/scripts/cua-webapp-test.py :27 import subprocess
  • shell sandraschi-discord-mcp-880854b/src/discord_mcp/server.py :20 import subprocess

network 19

  • net sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/agentic.py :689 import httpx
  • net sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/message_watcher.py :19 import httpx
  • net sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/portmanteau.py :8 import httpx
  • net sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/rules.py :77 import httpx
  • net sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/sampling/discord_sampling_handler.py :22 from urllib.parse import urlparse
  • net sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/server.py :646 import httpx
  • net sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/slack_bridge.py :41 import httpx
  • net (weak) sandraschi-discord-mcp-880854b/scripts/cua-smoke.py :34 import urllib.error
  • net (weak) sandraschi-discord-mcp-880854b/scripts/cua-webapp-test.py :30 import urllib.error
  • net sandraschi-discord-mcp-880854b/src/discord_mcp/agentic.py :689 import httpx
  • net sandraschi-discord-mcp-880854b/src/discord_mcp/message_watcher.py :19 import httpx
  • net sandraschi-discord-mcp-880854b/src/discord_mcp/portmanteau.py :8 import httpx
show 7 more
  • net sandraschi-discord-mcp-880854b/src/discord_mcp/rules.py :77 import httpx
  • net sandraschi-discord-mcp-880854b/src/discord_mcp/sampling/discord_sampling_handler.py :22 from urllib.parse import urlparse
  • net sandraschi-discord-mcp-880854b/src/discord_mcp/server.py :646 import httpx
  • net sandraschi-discord-mcp-880854b/src/discord_mcp/slack_bridge.py :41 import httpx
  • net (weak) sandraschi-discord-mcp-880854b/tests/helpers.py :5 import httpx
  • net (weak) sandraschi-discord-mcp-880854b/tests/live/conftest.py :6 import httpx
  • net (weak) sandraschi-discord-mcp-880854b/tests/test_message_watcher.py :35 with patch("discord_mcp.message_watcher.httpx.AsyncClient") as mock_client:

secrets 6

  • secrets sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/agentic.py :753 key = os.getenv("DISCORD_SAMPLING_API_KEY", "").strip() or os.getenv("OPENAI_API_KEY", "").strip()
  • secrets sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/portmanteau.py :35 os.environ.get("DISCORD_TOKEN")
  • secrets sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/sampling/discord_sampling_handler.py :45 if os.getenv("DISCORD_SAMPLING_USE_OPENAI_KEY", "").lower() in ("1", "true", "yes"):
  • secrets sandraschi-discord-mcp-880854b/src/discord_mcp/agentic.py :753 key = os.getenv("DISCORD_SAMPLING_API_KEY", "").strip() or os.getenv("OPENAI_API_KEY", "").strip()
  • secrets sandraschi-discord-mcp-880854b/src/discord_mcp/portmanteau.py :35 os.environ.get("DISCORD_TOKEN")
  • secrets sandraschi-discord-mcp-880854b/src/discord_mcp/sampling/discord_sampling_handler.py :45 if os.getenv("DISCORD_SAMPLING_USE_OPENAI_KEY", "").lower() in ("1", "true", "yes"):

database 2

  • db sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/scheduler.py :5 import sqlite3
  • db sandraschi-discord-mcp-880854b/src/discord_mcp/scheduler.py :5 import sqlite3

tool registrations 4

  • show_guilds_card sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/tools/prefab_cards.py :12
  • show_guild_channels_card sandraschi-discord-mcp-880854b/mcpb/src/discord_mcp/tools/prefab_cards.py :40
  • show_guilds_card sandraschi-discord-mcp-880854b/src/discord_mcp/tools/prefab_cards.py :12
  • show_guild_channels_card sandraschi-discord-mcp-880854b/src/discord_mcp/tools/prefab_cards.py :40

declared dependencies 22

  • fastmcp@>=3.4.4,<4
  • python-dotenv@>=1.0.0
  • httpx@>=0.27.0
  • pydantic@>=2.0.0
  • fastapi@>=0.104.0
  • uvicorn@>=0.23.0
  • lancedb@>=0.4.0
  • sentence-transformers@>=3.0.0
  • pyarrow@>=14.0.0
  • prefab-ui@>=0.14.0
  • websockets@>=12.0
  • pytest@>=7.0
show 10 more
  • pytest-asyncio@>=0.21
  • pytest-cov@>=5.0
  • ruff@>=0.16.0,<0.17
  • tauri-build@2
  • tauri@2
  • tauri-plugin-shell@2
  • tauri-plugin-fs@2
  • tauri-plugin-process@2
  • serde@1
  • serde_json@1

cursor-plugin 1

  • opaque (low) sandraschi-discord-mcp-880854b/.cursor/mcp.json bundled .cursor/ plugin descriptor (sandraschi-discord-mcp-880854b/.cursor/mcp.json) — presence-detected; review the descriptor