github Python analyzed ac4966c

Dicklesworthstone/mcp_agent_mail

github

Asynchronous coordination layer for AI coding agents: identities, inboxes, searchable threads, and advisory file leases over FastMCP + Git + SQLite

maintainer
Dicklesworthstone
licence
NOASSERTION
first seen
2026-06-01
last seen
2026-09-06
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

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

tools

  • acquire_build_slot
  • archive_project
  • create_agent_identity
  • deregister_agent
  • ensure_product
  • ensure_project
  • fetch_inbox_product
  • file_reservation_paths
  • health_check
  • install_precommit_guard
  • products_link
  • register_agent
  • release_build_slot
  • release_file_reservations
  • renew_build_slot
  • renew_file_reservations
  • retire_agent
  • search_messages
  • search_messages_product
  • summarize_thread
  • summarize_thread_product
  • unarchive_project
  • uninstall_precommit_guard
  • unretire_agent
  • whois
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit ac4966c · analyzer v33 · 1w ago

skills & prompt files 2

danger signals12

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

code files: 192

filesystem 74

  • fs Dicklesworthstone-mcp_agent_mail-ac4966c/deploy/gunicorn.conf.py :4 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/integration_showcase.py :27 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/share_to_github_pages.py :23 import shutil
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/test_rich_output.py :15 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/update_sqlite_vendor.py :6 import shutil
  • fs Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :19 import shutil
  • fs Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/cli.py :11 import shutil
  • fs Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/config.py :6 from pathlib import Path
  • fs Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/db.py :32 from pathlib import Path
  • fs Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/guard.py :9 from pathlib import Path
  • fs Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/http.py :16 from pathlib import Path, PurePosixPath
  • fs Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/share.py :12 import shutil
show 28 more
  • fs Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/storage.py :35 from pathlib import Path, PurePosixPath
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/benchmarks/regression.py :19 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/benchmarks/utils.py :13 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/conftest.py :4 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/e2e/test_isomorphism_e2e.py :9 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/e2e/utils.py :6 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/integration/test_archive_workflow.py :3 import shutil
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/integration/test_mailbox_share_integration.py :4 import shutil
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/integration/test_worktrees_functionality_e2e.py :5 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_am_run_basic.py :9 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_app_helpers.py :5 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_archive_browser.py :9 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_attachment_policy.py :4 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_attachments_extended.py :4 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli.py :8 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli_archive_commands.py :17 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli_extended.py :4 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli_guard_commands.py :19 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli_mail_commands.py :18 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli_stub.py :10 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_clone_identity_equivalence.py :2 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_concurrent_writes.py :13 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_contact_and_routing.py :3 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_contact_management_flow.py :12 7. Contact policy: open (anyone can message)
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_database_failures.py :16 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_e2e_disaster_recovery.py :24 import shutil
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_e2e_multi_agent_workflow.py :27 from pathlib import Path
  • fs (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_entry_and_llm_errors.py :4 from pathlib import Path

34 more not shown — this panel samples each group; the count above is the real total.

shell / exec 32

  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/share_to_github_pages.py :24 import subprocess
  • shell Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :21 import subprocess
  • shell Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/cli.py :13 import subprocess
  • shell Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/guard.py :8 import subprocess
  • shell Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/http.py :394 import subprocess as _subprocess
  • shell Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/share.py :14 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/benchmarks/utils.py :8 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/e2e/test_toon_format_e2e.py :3 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/integration/test_worktrees_functionality_e2e.py :3 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_am_run_basic.py :458 import subprocess as stdlib_subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_archive_browser.py :8 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli.py :4 import subprocess
show 20 more
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli_archive_commands.py :15 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli_extended.py :226 from subprocess import run
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli_guard_commands.py :17 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli_mail_commands.py :16 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli_stub.py :9 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_clone_identity_equivalence.py :1 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_guard_integration.py :4 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_guard_prepush.py :3 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_guard_rename.py :3 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_guard_worktrees.py :10 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_identity_ignorecase.py :1 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_identity_markers.py :2 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_identity_worktrees.py :1 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_precommit_bypass.py :3 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_precommit_enforcement.py :21 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_prepush_enforcement_comprehensive.py :19 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_remote_normalization.py :2 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_time_travel.py :14 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_toon_formatting.py :4 import subprocess
  • shell (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_worktree_conflict_integration.py :3 import subprocess

network 30

  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/share_to_github_pages.py :57 import socket
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/update_sqlite_vendor.py :9 import urllib.request
  • net Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :32 from urllib.parse import parse_qsl
  • net Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/cli.py :29 import httpx
  • net Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/http.py :607 AsyncClient = httpx.AsyncClient
  • net Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/llm.py :13 import socket
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/benchmarks/bench_list_outbox.py :4 from urllib.parse import urlencode
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/e2e/test_isomorphism_e2e.py :12 import httpx
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_am_run_basic.py :13 import httpx
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_archive_browser.py :12 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli_extended.py :6 import httpx
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_db_migrations_and_http_main.py :6 from httpx import ASGITransport, AsyncClient
show 18 more
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_http_auth.py :23 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_http_auth_rate_limit.py :4 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_http_logging_and_errors.py :6 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_http_negative_jwt.py :8 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_http_rate_limit.py :23 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_http_rate_limiting_comprehensive.py :24 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_http_redis_rate_limit.py :9 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_http_server.py :23 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_http_stateful_mcp_session.py :13 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_http_transport.py :11 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_http_workers_and_options.py :8 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_identity_resources.py :4 from urllib.parse import quote
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_logging_and_redis_fallback.py :6 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_mail_viewer_e2e.py :9 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_mcp_resources.py :25 from urllib.parse import quote
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_security_input_sanitization.py :20 from httpx import ASGITransport, AsyncClient
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_share_export.py :7 import urllib.request
  • net (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_time_travel.py :19 from httpx import ASGITransport, AsyncClient

secrets 3

  • secrets Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/cli.py :2332 import getpass
  • secrets (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_entrypoints_and_llm.py :66 assert os.environ.get("GOOGLE_API_KEY") == "g-key"
  • secrets (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_llm_and_utils.py :35 assert os.environ.get("GOOGLE_API_KEY") == "gem-123"

database 39

  • db Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :38 from sqlalchemy import and_ as _sa_and, asc as _sa_asc, bindparam, delete as _sa_delete, desc as _sa_desc, exists as _sa_exists, func, or_ as _sa_or, select as _sa_select, text, update as _sa_update
  • db Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/cli.py :12 import sqlite3
  • db Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/db.py :35 from sqlalchemy.exc import OperationalError, TimeoutError as SATimeoutError
  • db Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/http.py :26 from sqlalchemy import text
  • db Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/models.py :8 from sqlalchemy import Column, Index, UniqueConstraint
  • db Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/rich_logger.py :918 from sqlalchemy import func, select
  • db Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/share.py :13 import sqlite3
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/e2e/test_isomorphism_e2e.py :17 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/integration/test_archive_workflow.py :4 import sqlite3
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/integration/test_mailbox_share_integration.py :5 import sqlite3
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_am_run_basic.py :15 from sqlalchemy import select
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_archive_browser.py :38 from sqlalchemy import text
show 27 more
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_auto_retire_stale_agents.py :18 from sqlalchemy import select as sa_select, update as sa_update
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli.py :3 import sqlite3
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_cli_extended.py :290 from sqlalchemy.ext.asyncio import AsyncSession
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_concurrency_agents.py :31 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_concurrent_writes.py :17 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_contact_and_routing.py :268 from sqlalchemy import select as _select
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_contact_management_flow.py :31 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_database_failures.py :19 from sqlalchemy.exc import OperationalError
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_e2e_disaster_recovery.py :32 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_e2e_multi_agent_workflow.py :31 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_file_reservation_lifecycle.py :33 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_mail_viewer_e2e.py :28 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_mcp_resources.py :29 from sqlalchemy import delete
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_messaging_semantics.py :9 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_performance_benchmarks.py :16 import sqlite3
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_project_agent_setup.py :29 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_query_locality.py :14 import sqlite3
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_reply_and_threads.py :73 from sqlalchemy import select as sa_select
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_resources_mailbox.py :7 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_server.py :17 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_session_context_regression.py :24 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_share_export.py :5 import sqlite3
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_startup_banner_db_reset.py :154 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_storage_edges.py :10 import sqlite3
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_time_travel.py :20 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_window_identity.py :19 from sqlalchemy import text
  • db (weak) Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_xss_corpus.py :21 import sqlite3

tool registrations 25

  • health_check Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :5833
  • ensure_project Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :5882
  • register_agent Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :5990
  • deregister_agent Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :6129
  • retire_agent Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :6170
  • unretire_agent Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :6265
  • archive_project Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :6304
  • unarchive_project Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :6341
  • whois Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :6740
  • create_agent_identity Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :6806
  • search_messages Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :10621
  • summarize_thread Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :10837
show 13 more
  • install_precommit_guard Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :11346
  • uninstall_precommit_guard Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :11373
  • file_reservation_paths Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :11398
  • release_file_reservations Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :11709
  • renew_file_reservations Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :12078
  • acquire_build_slot Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :12282
  • renew_build_slot Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :12345
  • release_build_slot Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :12387
  • ensure_product Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :12490
  • products_link Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :12537
  • search_messages_product Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :12645
  • fetch_inbox_product Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :12801
  • summarize_thread_product Dicklesworthstone-mcp_agent_mail-ac4966c/src/mcp_agent_mail/app.py :12868

declared dependencies 38

  • fastmcp@>=2.10.5
  • uvicorn@>=0.32.0
  • fastapi@>=0.110.0
  • PyYAML@>=6.0.2
  • pathspec@>=0.12.1
  • jinja2@>=3.1.4
  • markdown2@>=2.4.12
  • bleach@>=6.1.0
  • tinycss2@>=1.4.0
  • python-decouple@>=3.8
  • sqlmodel@>=0.0.16
  • sqlalchemy@>=2.0.35
show 26 more
  • aiosqlite@>=0.20.0
  • httpx@>=0.27.2
  • aiolimiter@>=1.1.0
  • tenacity@>=8.3.0
  • redis@>=5.3.0
  • rich@>=13.9.1
  • typer@>=0.15.0
  • structlog@>=24.1.0
  • orjson@>=3.10.7,<4
  • tiktoken@>=0.7.0
  • pillow@>=10.4.0
  • GitPython@>=3.1.43
  • filelock@>=3.16.0
  • jsonschema@>=4.23.0
  • attrs@>=24.2.0
  • authlib@>=1.5.2,<1.6
  • litellm@>=1.40.0,<2
  • ruff@>=0.14.1
  • pynacl@>=1.6.0
  • psutil@>=6.1.1
  • asyncpg@>=0.30.0
  • mypy@>=1.11.1
  • pytest@>=8.3.3
  • pytest-asyncio@>=0.23.8
  • pytest-cov@>=5.0.0
  • ipython@>=8.27.0