Personal-use MCP server that gives Microsoft 365 Copilot real hands on your own laptop: files, Python, Office, SQL, Web. 100+ tools, autonomous relay, easily extensible, no extra licences.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
- HIGH code analysis flagged dynamic code execution in MasayukiTa/m365-copilot-companion-mcp
transport http 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 5a1c787 · analyzer v33 · 11h ago
danger signals3
- dynamic code execution eval()/exec() MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/eval_one.py :33
exec(compile(program, "<bench>", "exec"), ns) - dynamic code execution __import__ sink MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/selfimprove/test_authority_ledger.py :186
assert __import__("os").path.isfile(store) - dynamic code execution eval()/exec() MasayukiTa-m365-copilot-companion-mcp-5a1c787/tests/test_faulthandler_rotation.py :44
cap = eval(m.group(1), {"__builtins__": {}})
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 1058
filesystem 326
- fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/attempt_snapshots.py :34
d = json.load(io.open(p, encoding="utf-8-sig")) - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/bestofn_on_ab.py :28
d = json.load(io.open(path, encoding="utf-8-sig")) - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/bestofn_on_samples.py :29
d = json.load(io.open(path, encoding="utf-8-sig")) - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/build.py :27
probs = [json.loads(l) for l in open(os.path.join(here, "HumanEval.jsonl"), - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/baseline.py :698
with open(args.out, "w", encoding="utf-8", newline="\n") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/calibration.py :105
with open(path, "w", encoding="utf-8") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/episode.py :46
import shutil - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/episodes/core.py :34
with open(path, "w", encoding="utf-8", newline="\n") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/episodes/office.py :27
with open(os.path.join(workdir, name), encoding="utf-8") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/episodes/runtime.py :57
with open(os.path.join(workdir, name), encoding="utf-8") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/episodes/sealed.py :72
with open(os.path.join(workdir, name), encoding="utf-8") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/fleet_agent.py :70
import shutil
show 28 more
- fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/job_authority.py :55
import shutil - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/pools.py :85
with open(path, encoding="utf-8") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/redact.py :33
* Only `str` was walked. A `pathlib.Path` or a `bytes` went through untouched, and - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/runner.py :276
import shutil as _shutil - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/seal_tool.py :31
with open(path, "w", encoding="utf-8", newline="\n") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/security_experiment.py :490
with open(args.out, "w", encoding="utf-8", newline="\n") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/test_calibration.py :8
from pathlib import Path - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/test_companionbench.py :43
with open(path, "w", encoding="utf-8", newline="\n") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/test_fleet_agent.py :33
with open(os.path.join(d, "memory", "INDEX.md"), "w", encoding="utf-8") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/test_office_episodes.py :32
with open(os.path.join(workdir, name), "w", encoding="utf-8", newline="\n") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/test_redact.py :144
import pathlib - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/test_runner.py :281
os.remove(path) - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/test_runtime_episodes.py :29
with open(path, "w", encoding="utf-8", newline="\n") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/test_sealed.py :34
with open(os.path.join(workdir, name), "w", encoding="utf-8", newline="\n") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/done_vs_correct.py :33
with io.open(path, encoding="utf-8") as fh: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/eval_one.py :21
prob = json.load(open(os.path.join(data_dir, safe_id + ".json"), encoding="utf-8")) - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/eval_to_ledger.py :37
verdicts = json.load(io.open(eval_path, encoding="utf-8-sig")) - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/evalhost_batch_grade.py :58
with open(os.path.join(workdir, "run.out"), "w") as f: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/fix_readme_bold.py :38
lines = open(path, encoding="utf-8").read().split("\n") - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/fleet_ctl.py :29
with open(path, encoding="utf-8") as f: - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/gaia/retry_controller.py :24
from pathlib import Path - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/gaia/run_pipeline.py :22
from pathlib import Path - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/gaia/runner.py :45
from pathlib import Path - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/local_review_transport.py :16
from pathlib import Path - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/m365eval/runner.py :54
from pathlib import Path - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/m365eval/suite_runner.py :49
from pathlib import Path - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/oracle_suite_repo.py :66
src = io.open(os.path.join(REPO, "relay", "outcomes.py"), encoding="utf-8").read() - fs MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/panel_shadow_report.py :37
with open(path, encoding="utf-8") as fh:
286 more not shown — this panel samples each group; the count above is the real total.
shell / exec 133
- shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/fleet_agent.py :71
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/job_authority.py :56
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/evalhost_batch_grade.py :13
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/gaia/retry_controller.py :20
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/gaia/run_pipeline.py :19
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/local_review_transport.py :13
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/pro_capture.py :203
top = subprocess.run(["git", "-C", p, "rev-parse", "--show-toplevel"], - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/pro_cycle.py :38
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/pro_grade_remote.py :53
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/pro_run_50.py :122
r = subprocess.run([PY, os.path.join(REPO, "bench", "pro_stage_goals.py"), - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/pro_stage_goals.py :28
return subprocess.run(cmd, cwd=cwd, capture_output=True, text=True, - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/rebuild_resume.py :9
import subprocess
show 28 more
- shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/remote/broker_client.py :24
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/remote/test_broker_client.py :74
assert src.count("subprocess.run(") == 1 - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/remote/test_broker_parse.py :11
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/review_build_goals.py :20
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/review_fix.py :38
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/review_run.py :72
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/run_oracle_ab.py :21
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/score.py :13
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_batch_setup.py :19
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_check.py :13
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_check_remote.py :26
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_check_selftest.py :7
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_clean_setup.py :10
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_diag.py :4
import subprocess, os, json - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_diag2.py :3
import subprocess, os - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_diffgate.py :14
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_lite300_miss_bundle.py :22
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_procs.py :3
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_procs2.py :3
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_repos_setup_batch.py :22
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_rerun_setup.py :19
subprocess.run(["git", "-C", wt, "checkout", "--", "."]) - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_run_until_done.py :39
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_singleshot.py :23
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_solve_decoupled.py :26
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_split.py :31
import subprocess - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_status.py :9
return subprocess.run(cmd, capture_output=True, text=True, errors="replace") - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/test_capture_survives_a_non_cp932_patch.py :30
A REPO-WIDE SWEEP FOUND 68 MORE. `subprocess.run(..., text=True)` with no `encoding=` and no - shell MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/test_pro_capture.py :13
import subprocess
93 more not shown — this panel samples each group; the count above is the real total.
network 36
- net MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/agents.py :30
import socket - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/job_authority.py :54
import socket - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/test_job_authority.py :81
import urllib.error - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/gaia/retry_controller.py :23
import urllib.request - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/gaia/run_pipeline.py :23
from urllib.request import urlopen - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/gaia/runner.py :42
import urllib.error - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/m365eval/runner.py :51
import urllib.request - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/ram_calib.py :14
import json, os, time, urllib.request - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_shim/sitecustomize.py :114
import requests as _rq - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/bridge/copilot_bridge.py :32
import socket - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/bridge/session_cli.py :24
import urllib.error - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/bridge/test_bridge_sessions.py :326
import socket as _socket
show 24 more
- net MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/chathub.py :131
from urllib.parse import urlsplit, parse_qsl - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/edge_auth.py :243
import urllib.parse as _p - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/relay_fleet.py :1351
import urllib.request - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/test_chathub.py :345
from urllib.parse import urlsplit, parse_qsl - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/test_edge_auth.py :196
import urllib.request as _req - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/ensure_m365_signin.py :31
import urllib.parse - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/probes/record_socket_frames.py :87
import urllib.request - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/probes/record_upload_call.py :43
import urllib.request - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/probes/replay_upload_with_our_token.py :85
import requests - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/probes/send_image_over_socket.py :115
import requests - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/status.py :41
import socket - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/update_from_release.py :20
import urllib.request - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/win/capture_watch.py :49
import urllib.request - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/win/checkpoint.py :21
import urllib.request - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/win/lean_capture_trial.py :63
import urllib.request - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/win/tab_audit.py :30
import urllib.request - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/win/verify_stack.py :28
import urllib.request - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/win/watch_stack.py :38
import urllib.request - net (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/tests/test_checkpoint_port_probe.py :22
import socket - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/tools/diagram_ops.py :6
import httpx - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/tools/judge_backend.py :382
import urllib.parse - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/tools/sql_ops.py :4
from urllib.parse import quote - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/tools/test_bridge_judge.py :48
from urllib.parse import urlparse - net MasayukiTa-m365-copilot-companion-mcp-5a1c787/tools/web_ops.py :3
from urllib.parse import urlparse
secrets 12
- secrets MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/gaia/runner.py :137
api_key = os.environ.get("MCP_API_KEY", "") - secrets MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/m365eval/runner.py :95
api_key = os.environ.get("MCP_API_KEY", "") - secrets MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/m365eval/suite_runner.py :837
api_key = os.environ.get("MCP_API_KEY", "") - secrets MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/swe_unlock_bootstrap.py :20
pw = os.environ.get("MCP_UNLOCK_PASSWORD") - secrets MasayukiTa-m365-copilot-companion-mcp-5a1c787/main.py :174
API_KEY = os.environ["MCP_API_KEY"] - secrets MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/test_unlock_inject.py :28
_PREVIOUS_PW = os.environ.get("MCP_UNLOCK_PASSWORD") - secrets (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/bootstrap.py :28
import getpass - secrets (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/rotate_secrets.py :202
# - MCP_API_KEY is read ONCE at import (main.py: API_KEY = os.environ["MCP_API_KEY"] - secrets (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/submit_goal.py :37
import getpass - secrets (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/test_bootstrap.py :540
self.assertEqual(bootstrap.os.environ["MCP_TEST_KEY"], "from_dotenv") - secrets MasayukiTa-m365-copilot-companion-mcp-5a1c787/tools/security.py :449
return os.environ.get("MCP_REQUIRE_UNLOCK_TOKEN") == "1" - secrets MasayukiTa-m365-copilot-companion-mcp-5a1c787/tools/test_powershell_hardening.py :56
"import os;print(os.environ.get('MCP_API_KEY','<absent>'))"], timeout=60)
database 19
- db MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/episodes/office.py :18
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/episodes/sealed.py :64
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/job_authority.py :162
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/test_office_episodes.py :15
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/test_runtime_episodes.py :11
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/companionbench/test_sealed.py :16
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/bridge/session_store.py :47
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/bridge/test_session_fields_persist.py :21
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/bridge/test_session_store_sqlite.py :10
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/fleet_retention.py :369
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/local_job_store.py :33
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/skills.py :21
import sqlite3
show 7 more
- db MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/test_fanout_carries_the_procedure.py :19
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/test_fleet_retention.py :271
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/relay/test_frame_side_skill.py :32
import sqlite3 - db (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/scripts/stress_session_store.py :24
import sqlite3 - db (weak) MasayukiTa-m365-copilot-companion-mcp-5a1c787/tests/test_skill_approval_flow.py :97
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/tools/skill_candidates.py :112
import sqlite3 - db MasayukiTa-m365-copilot-companion-mcp-5a1c787/tools/sql_ops.py :1
import sqlite3
declared dependencies 22
- fastmcp@>=3.4.7,<4.0
- httpx@>=0.28.1
- anyio@>=4.14.2
- pandas@*
- openpyxl@*
- python-pptx@>=1.0.2,<2.0
- python-docx@>=1.2.0
- pypdf@>=6.16.2
- send2trash@>=2.1.0
- matplotlib@*
- pytesseract@>=0.3.13
- ddgs@>=9.15.0
show 10 more
- watchdog@>=6.0.0
- pyodbc@>=5.3.0
- psutil@>=7.2.2
- python-dotenv@*
- PyYAML@>=6.0.3
- pytest@>=9.1.1
- playwright@>=1.61.0
- pillow@>=12.3.0
- pywin32@>=312; sys_platform == "win32"
- pdf2image@>=1.17.0
transport_posture 1
- network-listening, binds all interfaces, no auth detected MasayukiTa-m365-copilot-companion-mcp-5a1c787/bench/hb_server.py :13
app.run(host="0.0.0.0", port=443, ssl_context=ctx, threaded=True)