github Python analyzed · update queued f878cea (1 behind)

microsoft/entrabot

github

Give a device-local AI agent its own Microsoft Entra identity. Reference implementation for Microsoft Agent 365 and Entra Agent ID.

maintainer
microsoft
license
MIT
first seen
2026-06-07
last seen
2026-08-06
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

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

tools

  • add_file_comment
  • add_promise
  • add_teams_member
  • add_word_comment
  • audit_log
  • bootstrap_body_state
  • create_chat
  • create_word_document
  • delete_teams_message
  • get_a365_file_metadata_by_url
  • list_chat_members
  • list_promises
  • list_recent_files
  • post_thinking_placeholder
  • read_a365_binary_file
  • read_a365_text_file
  • read_email
  • read_file
  • read_interactions
  • read_teams_messages
  • read_word_document
  • reply_to_word_comment
  • resolve_file_url
  • resolve_placeholder
  • resolve_promise
  • run_daily_summary
  • send_card
  • send_email
  • send_teams_message
  • share_file
  • update_placeholder
  • upload_file
  • view_image
  • wait_for_sponsor_dm
  • watch_teams_replies
  • whoami
  • write_text_file
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit f878cea · analyzer v32 · 3w ago

skills & prompt files 6

danger signals2

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

code files: 240

filesystem 96

  • fs (weak) microsoft-entrabot-f878cea/scripts/add_agent_sponsor.py :34 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/catch_up.py :10 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/claude_memory_sync.py :31 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/deprovision_blob_storage.py :33 import shutil
  • fs (weak) microsoft-entrabot-f878cea/scripts/deprovision_entra_agent_identity.py :20 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/ensure_a365_work_iq_permissions.py :18 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/entra_provisioning.py :32 import shutil
  • fs (weak) microsoft-entrabot-f878cea/scripts/generate_windows_cert.py :30 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/grant_files_consent.py :32 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/health_check.py :11 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/hooks/block_local_memory_write.py :26 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/hooks/inject_body_prompt.py :42 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/hooks/require_body_prompt.py :42 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/mcp_config.py :31 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/migrate_cursors_to_upn.py :43 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/provision_blob_storage.py :41 import shutil
  • fs (weak) microsoft-entrabot-f878cea/scripts/provisioner-token.py :19 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/remove_agent_sponsor.py :26 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/remove_agent_user_licenses.py :28 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/revoke_consent.py :29 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/rotate_cert_windows.py :23 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/scripts/spike_a365_work_iq.py :14 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/a365/config.py :6 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/a365/manifest.py :7 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/a365/provider.py :5 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/auth/delegated.py :13 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/config.py :12 import shutil
  • fs microsoft-entrabot-f878cea/src/entrabot/efferent_copy.py :51 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/identity/sponsors.py :20 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :21 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/preflight.py :24 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/singleton.py :46 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/storage/backend.py :25 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/storage/migration.py :25 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/storage/persona.py :19 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/tools/audit.py :14 from pathlib import Path
  • fs microsoft-entrabot-f878cea/src/entrabot/tools/email_poll.py :18 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/a365/test_manifest.py :4 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/a365/test_provider.py :5 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/auth/test_delegated.py :10 import shutil
  • fs (weak) microsoft-entrabot-f878cea/tests/conftest.py :8 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/docs/_helpers.py :11 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/docs/test_all_pages_in_nav.py :10 from pathlib import PureWindowsPath
  • fs (weak) microsoft-entrabot-f878cea/tests/docs/test_no_historical_prefixes.py :8 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/evals/conftest.py :21 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/hooks/test_block_local_memory_write.py :20 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/hooks/test_inject_body_prompt.py :29 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/hooks/test_require_body_prompt.py :21 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_a365_setup_prereqs.py :3 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_assign_agent_user_licenses.py :7 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_claude_memory_sync.py :17 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_create_entra_agent_ids.py :16 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_deprovision_blob_storage.py :7 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_deprovision_entra_agent_identity.py :12 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_ensure_a365_work_iq_permissions.py :5 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_entra_provisioning.py :7 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_grant_consent.py :7 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_health_check.py :7 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_list_agent_identities.py :7 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_list_sponsors.py :8 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_mcp_config.py :24 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_provision_blob_storage.py :13 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_provisioner_token_contract.py :11 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_remove_agent_sponsor.py :7 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_remove_agent_user_licenses.py :7 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_revoke_consent.py :7 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_show_agent_status.py :10 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_show_permissions.py :8 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_smoke_harness.py :7 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/scripts/test_status_wrapper.py :3 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/smoke/smokeit.py :15 import shutil
  • fs (weak) microsoft-entrabot-f878cea/tests/storage/test_backend.py :18 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/storage/test_migration.py :17 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/storage/test_persona.py :20 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/test_certificate_windows.py :27 from pathlib import Path # noqa: E402
  • fs (weak) microsoft-entrabot-f878cea/tests/test_config.py :5 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/test_config_windows_path.py :22 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/test_cursor_migration.py :26 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/test_deploy_rollback.py :20 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/test_efferent_copy.py :20 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/test_entra_provisioning_keyring_backend.py :13 import pathlib
  • fs (weak) microsoft-entrabot-f878cea/tests/test_generate_windows_cert.py :13 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/test_mcp_server_body_tools.py :12 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/test_no_dead_imports.py :15 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/test_preflight.py :15 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/test_prompt_doctrine.py :17 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/test_singleton.py :16 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/tools/test_audit.py :6 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/tools/test_body_bootstrap.py :13 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/tools/test_daily_summary.py :21 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/tools/test_email_poll.py :16 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/tools/test_identity.py :9 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/tools/test_interaction_log.py :23 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/tools/test_promises.py :304 # 3 open (kept).
  • fs (weak) microsoft-entrabot-f878cea/tests/tools/test_read_interactions.py :15 from pathlib import Path
  • fs (weak) microsoft-entrabot-f878cea/tests/tools/test_wait_for_sponsor_dm.py :554 from pathlib import Path

shell / exec 11

  • shell (weak) microsoft-entrabot-f878cea/scripts/deprovision_blob_storage.py :34 import subprocess
  • shell (weak) microsoft-entrabot-f878cea/scripts/entra_provisioning.py :33 import subprocess
  • shell (weak) microsoft-entrabot-f878cea/scripts/generate_windows_cert.py :27 import subprocess # noqa: S404 — subprocess is the whole point
  • shell (weak) microsoft-entrabot-f878cea/scripts/provision_blob_storage.py :42 import subprocess
  • shell microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :117 import subprocess
  • shell (weak) microsoft-entrabot-f878cea/tests/hooks/test_block_local_memory_write.py :18 import subprocess
  • shell (weak) microsoft-entrabot-f878cea/tests/hooks/test_inject_body_prompt.py :27 import subprocess
  • shell (weak) microsoft-entrabot-f878cea/tests/hooks/test_require_body_prompt.py :18 import subprocess
  • shell (weak) microsoft-entrabot-f878cea/tests/smoke/smokeit.py :16 import subprocess
  • shell (weak) microsoft-entrabot-f878cea/tests/test_certificate_windows.py :49 import subprocess
  • shell (weak) microsoft-entrabot-f878cea/tests/test_mcp_server_integration.py :83 import subprocess

network 52

  • net (weak) microsoft-entrabot-f878cea/scripts/add_agent_sponsor.py :36 import requests
  • net (weak) microsoft-entrabot-f878cea/scripts/catch_up.py :12 import httpx
  • net (weak) microsoft-entrabot-f878cea/scripts/create_entra_agent_ids.py :23 import socket
  • net (weak) microsoft-entrabot-f878cea/scripts/diagnose-chat.py :76 import httpx
  • net (weak) microsoft-entrabot-f878cea/scripts/diagnose_sponsor_emails.py :24 import httpx
  • net (weak) microsoft-entrabot-f878cea/scripts/ensure_a365_work_iq_permissions.py :21 import requests
  • net (weak) microsoft-entrabot-f878cea/scripts/find_local_blueprint_cert.py :24 import requests
  • net (weak) microsoft-entrabot-f878cea/scripts/grant_consent.py :29 import requests
  • net (weak) microsoft-entrabot-f878cea/scripts/list_blueprint_certs.py :21 import requests
  • net (weak) microsoft-entrabot-f878cea/scripts/migrate_cursors_to_upn.py :44 from urllib.parse import unquote
  • net (weak) microsoft-entrabot-f878cea/scripts/read_email.py :8 import httpx
  • net (weak) microsoft-entrabot-f878cea/scripts/remove_agent_sponsor.py :28 import requests
  • net (weak) microsoft-entrabot-f878cea/scripts/revoke_consent.py :31 import requests
  • net (weak) microsoft-entrabot-f878cea/scripts/show_agent_status.py :25 from urllib.parse import urlparse
  • net (weak) microsoft-entrabot-f878cea/scripts/spike_file_comments.py :25 from urllib.parse import urlparse
  • net (weak) microsoft-entrabot-f878cea/scripts/verify_blueprint_cert.py :28 import requests
  • net microsoft-entrabot-f878cea/src/entrabot/a365/mcp_client.py :8 import httpx
  • net microsoft-entrabot-f878cea/src/entrabot/graph_helpers.py :12 from urllib.parse import urlparse
  • net microsoft-entrabot-f878cea/src/entrabot/identity/sponsors.py :23 import httpx
  • net microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :23 import httpx
  • net microsoft-entrabot-f878cea/src/entrabot/preflight.py :27 import httpx
  • net microsoft-entrabot-f878cea/src/entrabot/storage/blob.py :15 import httpx
  • net microsoft-entrabot-f878cea/src/entrabot/tools/chat_cursors.py :40 from urllib.parse import quote
  • net microsoft-entrabot-f878cea/src/entrabot/tools/email.py :19 import httpx
  • net microsoft-entrabot-f878cea/src/entrabot/tools/email_poll.py :20 import httpx
  • net microsoft-entrabot-f878cea/src/entrabot/tools/files.py :41 from urllib.parse import quote, urlparse
  • net microsoft-entrabot-f878cea/src/entrabot/tools/identity.py :12 import httpx
  • net microsoft-entrabot-f878cea/src/entrabot/tools/promises.py :184 import httpx
  • net microsoft-entrabot-f878cea/src/entrabot/tools/rate_limit.py :1 """Graph API 429 rate-limit retry transport for httpx.
  • net microsoft-entrabot-f878cea/src/entrabot/tools/teams.py :3 All HTTP calls use ``httpx.AsyncClient`` with proper auth headers.
  • net microsoft-entrabot-f878cea/src/entrabot/url_safety.py :5 from urllib.parse import urlparse
  • net (weak) microsoft-entrabot-f878cea/tests/a365/test_mcp_client.py :3 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/evals/conftest.py :24 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/evals/test_files_scenario_1.py :13 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/identity/test_sponsor_chat_member_fetch.py :4 while reusing a single Agent User token + a single ``httpx.Client`` — fanning
  • net (weak) microsoft-entrabot-f878cea/tests/identity/test_sponsor_user_enrichment.py :25 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/smoke/smokeit.py :464 import requests
  • net (weak) microsoft-entrabot-f878cea/tests/storage/test_blob.py :13 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/test_cursor_migration.py :345 from urllib.parse import quote
  • net (weak) microsoft-entrabot-f878cea/tests/test_mcp_server_integration.py :23 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/test_preflight.py :18 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/tools/test_add_member_channel_binding.py :23 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/tools/test_add_member_sponsor_gate.py :20 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/tools/test_daily_summary.py :23 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/tools/test_email.py :14 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/tools/test_email_poll.py :18 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/tools/test_files.py :18 from urllib.parse import urlparse
  • net (weak) microsoft-entrabot-f878cea/tests/tools/test_rate_limit.py :9 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/tools/test_read_email.py :17 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/tools/test_teams.py :13 from urllib.parse import parse_qs
  • net (weak) microsoft-entrabot-f878cea/tests/tools/test_teams_odata_escape.py :15 import httpx
  • net (weak) microsoft-entrabot-f878cea/tests/tools/test_watch.py :10 import httpx

secrets 11

  • secrets (weak) microsoft-entrabot-f878cea/scripts/entra_provisioning.py :80 import keyring as _kr
  • secrets (weak) microsoft-entrabot-f878cea/scripts/find_local_blueprint_cert.py :23 import keyring
  • secrets microsoft-entrabot-f878cea/src/entrabot/platform/keyring_backend.py :10 import keyring
  • secrets microsoft-entrabot-f878cea/src/entrabot/platform/linux.py :7 import keyring
  • secrets microsoft-entrabot-f878cea/src/entrabot/platform/mac.py :7 import keyring
  • secrets microsoft-entrabot-f878cea/src/entrabot/platform/windows.py :27 import keyring
  • secrets (weak) microsoft-entrabot-f878cea/tests/smoke/smokeit.py :254 import keyring
  • secrets (weak) microsoft-entrabot-f878cea/tests/test_keyring_sanity.py :7 import keyring
  • secrets (weak) microsoft-entrabot-f878cea/tests/test_platform_keyring_backend.py :8 import keyring
  • secrets (weak) microsoft-entrabot-f878cea/tests/test_platform_windows.py :12 from keyring.backends.Windows import WinVaultKeyring
  • secrets (weak) microsoft-entrabot-f878cea/tests/tools/test_audit.py :251 import keyring.errors

tool registrations 37

  • send_teams_message microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :2156
  • post_thinking_placeholder microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :2446
  • update_placeholder microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :2506
  • resolve_placeholder microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :2575
  • delete_teams_message microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :2667
  • send_email microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :2776
  • read_email microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :2909
  • send_card microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :2953
  • list_chat_members microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :3075
  • add_teams_member microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :3114
  • create_chat microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :3197
  • read_teams_messages microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :3260
  • watch_teams_replies microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :3305
  • wait_for_sponsor_dm microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :3459
  • audit_log microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :3739
  • view_image microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :3785
  • whoami microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :3842
  • run_daily_summary microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :3940
  • add_promise microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :3987
  • list_promises microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4075
  • read_interactions microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4108
  • bootstrap_body_state microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4162
  • resolve_promise microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4185
  • resolve_file_url microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4303
  • list_recent_files microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4338
  • read_file microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4387
  • add_file_comment microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4469
  • read_word_document microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4541
  • create_word_document microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4571
  • add_word_comment microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4598
  • reply_to_word_comment microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4625
  • get_a365_file_metadata_by_url microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4658
  • read_a365_text_file microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4685
  • read_a365_binary_file microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4710
  • write_text_file microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4740
  • upload_file microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4815
  • share_file microsoft-entrabot-f878cea/src/entrabot/mcp_server.py :4895

declared dependencies 21

  • mcp@>=1.0.0
  • msal@>=1.28.0
  • msal-extensions@>=1.2.0
  • httpx@>=0.27.0
  • keyring@>=25.0.0
  • platformdirs@>=4.0.0
  • pydantic@>=2.0
  • cryptography@>=42.0
  • PyJWT@>=2.8.0
  • pypdf@>=4.0
  • click@>=8.1.0
  • pytest@>=8.0
  • pytest-asyncio@>=0.23.0
  • pytest-cov@>=5.0
  • ruff@>=0.4
  • respx@>=0.22.0
  • azure-identity@>=1.15.0
  • PyYAML@>=6.0
  • mkdocs-material@>=9.5
  • mkdocs-redirects@>=1.2
  • requests@>=2.31