Asynchronous coordination layer for AI coding agents: identities, inboxes, searchable threads, and advisory file leases over FastMCP + Git + SQLite
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
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
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
- dynamic code execution eval()/exec() Dicklesworthstone-mcp_agent_mail-ac4966c/tests/test_guard_worktrees.py :881
exec( # deliberately running the rendered hook under test - suspicious bundled script suspicious bundled script Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/automatically_detect_all_installed_coding_agents_and_install_mcp_agent_mail_in_all.sh :57
eval "$(uv run python - <<'PY' - suspicious bundled script suspicious bundled script Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/install.sh :58
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/mcp_agent_mail/main/scripts/install.sh | bash -s -- --yes - suspicious bundled script suspicious bundled script Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/integrate_claude_code.sh :35
eval "$(uv run python - <<'PY' - suspicious bundled script suspicious bundled script Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/integrate_cline.sh :36
eval "$(uv run python - <<'PY' - suspicious bundled script suspicious bundled script Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/integrate_codex_cli.sh :34
eval "$(uv run python - <<'PY' - suspicious bundled script suspicious bundled script Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/integrate_cursor.sh :33
eval "$(uv run python - <<'PY' - suspicious bundled script suspicious bundled script Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/integrate_factory_droid.sh :33
eval "$(uv run python - <<'PY' - suspicious bundled script suspicious bundled script Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/integrate_gemini_cli.sh :33
eval "$(uv run python - <<'PY' - suspicious bundled script suspicious bundled script Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/integrate_github_copilot.sh :39
eval "$(uv run python - <<'PY' - suspicious bundled script suspicious bundled script Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/integrate_opencode.sh :38
eval "$(uv run python - <<'PY' - suspicious bundled script suspicious bundled script Dicklesworthstone-mcp_agent_mail-ac4966c/scripts/integrate_windsurf.sh :36
eval "$(uv run python - <<'PY'
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